软件架构的进化
2018-05-06 本文已影响0人
Anson_hyq
什么是软件架构
软件架构是在软件的内部,经过综合各种因素的考量、权衡;选择特定的技术,将系统划分成不同部分并使这些部分相互工作、彼此协调,为用户提供需要的价值
设计软件架构需要考虑哪些因素
- 业务需求
系统需要实现哪些功能? - 技术栈
实现该系统需要用到哪些技术栈? - 成本
公司需要投入多少成本才能完成这样的系统? - 组织架构
需要涉及哪些部门,各部门都能提供怎样的服务? - 可扩展性
业务量大的时候,是否容易扩展 - 可维护性
学习成本:新人上手需要多长时间
架构进化史
- 一层架构
把页面、业务处理逻辑、数据库等放在一台机器上 - MVC架构
解决了代码杂乱无章、职责不清晰的问题
在各层之间定义接口,并将接口和实现分离 - 微服务架构
将前端和后端从物理上隔离开,实现两个完全独立维护的模块
再将后台处理逻辑尽可能的从业务上拆分,实现各部分单独部 署,互不影响
可以认为是将一个单体架构变成了多个架构