架构师的职责是什么

  • 切分系统。无论是单体应用还是微服务结构,都需要把系统分为若干模块。切分有两个维度。一是从职责上,比如UI、业务逻辑、数据库;二是从业务上,按用例切分。也就是Uncle Bob说的,把相同原因并且相同时间变化的放一起,把不同原因或者不同时间变化的分开。
  • 确定模块间依赖。原则是高层不依赖细节,细节依赖高层。比如用户可以修改UI和Controller而不会影响业务,可以更换数据库而不影响业务、UI。可以更换框架而不影响业务。总之保持系统灵活、容易修改、保持扩展性。
  • 让多个团队一起工作。通过切分系统模块、确定模块依赖,将系统划分为多个可以相对独立的部分,可以由多个Team共同开发。确定一些规范,让多团队协作更加容易,生产力更高。
  • 保持团队生产力。通过让系统更加灵活,更加可以修改,让系统不因规模扩大而生产力下降很多。让团队始终能高效地工作。包括开发、发布、维护。
  • 确定细节方案。在业务逻辑分开后,如何让细节方案能适合系统的可用性、可维护性、可扩展性。需要确定很多细节,如框架、工具、数据库、协议等。
原文地址:https://www.cnblogs.com/bobdeng/p/8514766.html