最近学习了Udemy的一个软件架构课程,在此做一个记录和分享。
总的来说,软件架构是基于实际业务需求,无法为实际业务服务,再花哨的软件架构都无法产生任何价值。
当需求到来,我们需要分以下几个大致步骤进行分析和拆解。
- 背景分析——更好的了解客户或业务需求
- 分析功能需求——从客户的角度,描述出功能需求
- 分析非-功能需求——从从技术的角度,描述技术需求
- 技术选型——选择适合团队、项目要求(时间、成本、质量等)的技术方案
- 技术架构的设计——综合考虑单个组件、各个组件间的交互模式、
- 技术细节的把控——具体到接口、通讯方式
- 技术方案的实施——确保设计的架构按预期执行,并且即时调整架构中不合理的部分
期间也会涉及到和各个部门或组的人进行交流,会涉及到一些软技能。因此要把一个架构做好,需要密切的团队合作,很考验架构师的综合素质和实力。