02.架构设计方式
架构的推导
- 产品功能架构:描述的是系统能做什么。用于指导用户使用产品。
- 业务概念架构:表示拥有哪些业务模块,且各自的能力是什么。用于研发人员和业务人员理解业务内在的概念和联系。
- 应用逻辑架构:表示系统中有哪些模块、模块的职责以及模块的关系,模块主要包含功能模块、复用模块、非功能模块。用于指导软件的研发。
- 工程骨架架构:约束代码组织结构,防止代码混乱不堪。
非功能性需求决定架构
因为软件是为了满足客户的功能性需求的,所以很多设计人员可能会认为架构是由要实现的功能性需求决定的。但实际上真正决定软件架构的其实是非功能性需求。架构师要更加关注非功能性需求,常见的非功能性包括:性能,伸缩性,扩展性和可维护性等,甚至还包括团队技术水平和发布时间要求。
能实现功能的设计总是有很多,考虑了非功能性需求后才能筛选出最合适的设计。