知识卡片

架构新手与老练架构师的关键区别

普通读书笔记卡

内容

概念架构是直指系统设计目标的设计思想和重大选择,是任何复杂系统成败最关键、最具指向性的设计——但它容易被程序开发人员低估,因为项目经理、架构师、总工这类角色对”架构大方向正确”这条原则往往”最深有感慨”,普通开发人员却”感触不深”。这个认知差距直接体现在新手和老手做架构设计时的行为差异上:架构新手尤其害怕接手自己没做过的系统,系统一旦较大,习惯性地祭出”架构=模块+接口”这个法宝,却发现不太奏效,于是”乱了阵脚”——本质上是跳过了概念架构这个环节,直接扎进细化架构的细节。有经验的架构师则完全不同:他们不会一上来就关注如何定义接口,而是在大型系统架构设计的早期,优先识别三类需求——重大需求、特色需求、高风险需求,据此决定如何划分顶级子系统、采用什么架构风格和开发技术、是否要支持集成和二次开发。这条区别背后的逻辑是:概念架构不是可以跳过的”锦上添花”步骤,而是决定后续所有细节设计能否成立的先决条件——竞争对手产品彩页上印的架构图是概念架构,售前和投标场合讲的架构也是概念架构,这些场合根本不会展开到接口级别,但依然能让人判断出产品的技术优势,这恰恰说明概念架构层面的判断力才是真正区分架构师水平的能力,而非接口定义的熟练度。

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第4章《架构设计过程》"【强调】培训中发现的问题(关于原则2)"节(源文件:_epub-src/OEBPS/text00007.html) - 结论依据:原文对比"架构新手……系统较大时,一旦祭出'架构=模块+接口'的法宝却不太奏效,架构新手就往往乱了阵脚。相反,有经验的架构师不会一上来就关注如何定义'接口',他们在大型系统架构设计的早期比较注重识别1)重大需求、2)特色需求、3)高风险需求",直接支撑本卡片结论。 - 原始内容:架构新手和有经验架构师的区别之一,在于是否懂得、并能有效地进行概念架构的设计……有经验的架构师……在大型系统架构设计的早期比较注重识别1)重大需求、2)特色需求、3)高风险需求。