看着看着就想着应该把一些好的建议和好的提问记下来,日常开发中实时提问。然后还有很多想法,比如总结一个项目体检表出来,对着检查项发现问题。
enmm……我是不是有点上瘾?!

文章目录
1、架构设计的目的
软件项目中的架构设计是想要解决一个问题:让普通程序员也能参与其中,一起实现复杂系统,而不必依赖于很多精英。
架构设计,就是通过组织人员和技术,低成本满足需求以及需求的变化,保障软件稳定高效运行。
1.1、什么是复杂的软件项目
复杂的软件项目通常有两个特点:
- 需求不确定
- 技术复杂

技术的复杂性主要体现在四个方面:
- 需求让技术变复杂:软件要能不断响应新的需求
- 人员让技术变复杂:团队成员水平不一,擅长的技术方向也不一样
- 技术本身复杂:技术本身的使用门槛较高
- 保证软件稳定运行是复杂的:运行时的不确定性
1.2、架构设计如何解决“复杂”
因为技术的复杂性,会导致软件开发变得很复杂,开发成本高。而架构设计恰恰可以在这些方面很好地解决技术复杂的问题。
主要从四个方面来:
- 架构设计可以降低满足需求和需求变化的开发成本:通过对系统抽象和分解,把复杂系统拆分成若干简单的;对需求的变化,已经有一些成熟的架构实践。
- 架构可以帮助组织人员一起高效协作:通过抽象再拆分,可以把复杂的系统拆分成开发人员可以各自独立完成的模块。
- 架构设计可以帮助组织好各种技术:如分层架构
- 架构设计可以保障服务稳定运行:如分布式架构、异地多活等
1.3、什么是架构设计
架构设计的目标,使用最小的人力成本来满足需求开发和响应需求的变化,用最小的运行成本来保障软件的运行。
架构设计的方法都是基于工程领域分而治之的策略,本质上就是将系统分拆,将人员分拆。但是光拆还不够,拆完了还能拼回来&