这是我参与「第四届青训营 」笔记创作活动的第11天
架构是什么
架构,又名软件架构 , 是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。架构描述语言(ADL)用于描述软件的体系架构。现在已有多种架构描述语言,如Wright(由卡内基梅隆大学开发),Acme(由卡内基梅隆大学开发),C2(由UCI开发),Darwin(由伦敦帝国学院开发)。ADL的基本构成包括组件、连接器和配置。
系统架构师是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。主要着眼于系统的“技术实现”。因此他/她应该是特定的开发平台、语言、工具的大师,对常见应用场景能给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价。 系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等。
架构面临的问题
•架构设计是为了解决特定领域不同发展阶段的业务问题
•不同领域的架构有明显的技术差异,但也有很多相似性
•架构不仅面临技术挑战,还要应对组织业务膨胀的熵增
•移动端需要利用有限的设备资源设计符合小屏幕的架构
常见的架构手段
•不同架构手段的共同目标是高内聚低耦合
•找到适合业务场景的架构而不是炫技滥用
•一个复杂的系统是多种架构模型的组合体
架构演进的例子
•架构随业务发展由简单变得复杂是规律
•没必要最初用复杂架构来解决简单问题
•需要用规范持续重构来对抗代码的腐朽