一线架构师实践指南(二)
本书的第二部分讲了概念架构。有经验的架构师不会一上来就关注如何定义接口,他们在大型系统架构设计的早期比较注重识别重大需求,特色需求,高风险需求,据此来设计概念架构,新手多是使用“架构=模块+结构”。第二部分一开始,就点明了架构新手的问题所在。方法虽然好用,但也要联系实际。磨刀不费砍材功,这让我想起初中上数学课,老师总是说先仔细看题,多看几遍再去写。多看几遍题,能明确思路,也能尝试找到新的更好的办法去解题。相比扫一眼题目就动笔套公式,可能前者用几行后者要用十几行。这个思路类比书中就说概念架构,一个清晰明确的概念架构可以解决很多不必要的麻烦,也会减少很多人力物力的浪费。
在书中的例子里,小张和老王都及时醒悟,通过概念架构设计的产品也成功上市,赢得好评。概念性架构界定系统的高层组件以及它们之间的关系。概念性架构意在对系统进行适当分解,而不是陷入细节。借此,可以和管理人员,市场人员,用户等非技术人员交流架构。概念性架构规定了每个组件的非正式规约及架构图,但不设计接口。
概念架构不同于理想架构,架构设计的驱动力是功能+质量+约束;用例技术是功能需求实际上的标椎,用例技术涉及但无法全面涵盖非功能性需求。阶段也不是视图,视图之间必须是并列关系,但概念架构不可能和模块+接口一级。概念架构是一个架构设计阶段,必须在细化架构设计阶段之前,针对重大需求,特效需求,高风险需求形成稳定的高层架构设计成果。
概念架构阶段有三个步骤,分别是初步设计,高层分割和考虑非功能性需求。在初步设计中会使用鲁棒图;高层分割中主要使用切系统为系统和切系统为子系统两种方法,前者书中举例SAAS模式的软件租用平台架构设计;考虑非功能性需要趁早。