1. 什么是软件架构
软件架构是在软件的内部,经过综合各种因素的考量、权衡;选择特定的技术,将系统划分成不同部分并使这些部分相互工作、彼此协调,为用户提供需要的价值
2. 设计软件架构需要考虑哪些因素
1、业务需求
2、技术栈
3、成本
4、组织架构
5、可扩展性
6、可维护性
7、学习成本
3. 架构进化史
一层架构:把页面、业务处理逻辑、数据库等放在一台机器上;
MVC架构:解决了代码杂乱无章、职责不清晰的问题,在各层之间定义接口,并将接口和实现分离;
单块服务架构(一层架构、MVC架构)
优点:易于开发、测试、部署、水平伸缩
缺点:代码膨胀,难以维护;构建、部署成本大;新人上手困难;创新困难;可扩展性差;
微服务架构:将前端和后端从物理上隔离开,实现两个完全独立维护的模块。再将后台处理逻辑尽可能的从业务上拆分,实现各部分单独部 署,互不影响。可以认为是将一个单体架构变成了多个架构