程序员如何做「技术架构」:不是堆技术,是解决问题
架构是程序员从初级到高级的分水岭。
会写代码是基础,能设计架构才是能力。
一、什么是技术架构
技术架构是对系统整体结构的规划和设计。
不是"用什么技术",是"系统怎么组织"。
二、架构的目标
1. 满足业务需求
架构是为业务服务的,不是炫技。
2. 可扩展
业务增长了,架构能支撑。
3. 可维护
出了问题能快速定位和维护。
4. 高可用
系统要稳定,不能动不动就挂。
5. 成本可控
架构要考虑成本,不是越牛越好。
三、架构的层次
1. 业务架构
业务怎么组织、流程是什么。
2. 应用架构
应用怎么拆分、模块之间的关系。
3. 数据架构
数据怎么存储、怎么访问。
4. 技术架构
用什么技术、怎么部署。
四、好的架构特征
1. 简单
简单不等于简陋,是"刚好够用"。
2. 可演进
架构不是一成不变的,要能随业务演进。
3. 分层清晰
每层职责明确,依赖关系清晰。
4. 边界清晰
模块之间通过接口交互,不直接依赖实现。
五、架构设计的方法
1. 从需求出发
不是"我要用什么技术",是"我要解决什么问题"。
2. 画架构图
先画出来,再讨论。
3. 考虑权衡
没有完美的架构,只有权衡后的选择。
4. 逐步演进
不要一开始就设计完美的架构,从小处开始,逐步演进。
六、一句话总结
技术架构 = 满足业务 + 可扩展 + 可维护 + 高可用 + 成本可控,核心是解决问题而不是堆技术。