解开架构的神秘面纱
列举众多的示例,供大家参考
希望人人了解架构,人人都可以从架构师的高度开展工作
什么是架构?
组成派
软件系统的架构将系统描述为计算组件及组件之间的交互(The architecuture of a software system defines the system in terms of computational components and interactions among those components)
Mary Shaw《软件体系结构:一门初露端倪学科的展望》
决策派
软件架构包含了关于一下问题的重要决策
软件系统的组织
选择组成系统的结构元素和他们之间的接口,以及当这些元素相互协作时所体现的行为
如何组合这些元素,使他们逐渐合成更大的子系统
用户知道这个系统组织的架构风格:这些元素以及他们的接口、协作和组合
软件架构并不仅仅注重软件本身的结构和行为,还注重其他特性:使用、功能性、性能、弹性、重用、可理解性、经济和技术的限制和权衡,以及美学
为什么要做架构
上承业务目标
下接技术决策
控制整体复杂性
有利于软件目标的沟通并达成一致
有利于软件的组织和开发
有利于迭代开发和增量交付
架构设计关注性能、可扩展性、可测试性等非功能性要求,有利于提高软件的整体质量