架构设计
复杂的软件项目通常有两个特点:需求不确定和技术复杂
技术复杂主要体现在:需求复杂导致、人员过多导致、技术本身导致、软件稳定运行导致
架构设计可以降低满足需求和需求变化的开发成本、可以帮助组织人员一起高效协作、可以帮助组织好各种技术、可以保障服务稳定运行
什么是架构设计
用最小的人力成本来满足需求的开发和响应需求的变化,用最小的运行成本来保障软件的运行
架构设计的本质要求就是组织人员和技术把系统和团队拆分,并安排好切分后的排列关系,让拆分后的部分能通过约定好的协议相互通信,共同实现最终的结果
步骤
1 分析需求
2 选择相似的成熟的架构设计方案
3 自顶向下层层细化
部署架构、开发架构(如分层)、API/数据库表/模块设计
4 验证、优化架构设计方案
可参考《从零开始学架构》,也可以看本人关于此课程的总结
技术选型
受制于时间、范围和成本的约束,要分析可行性和风险,要考虑利益相关人
步骤:问题定义、调研、验证、决策,也是根据工程思维得出来的
1 问题定义
为什么需要技术选型?技术选型的目标是什么?
只有明确了技术选型的目标,才能有一个标准可以来评判该选择哪一个方案
2 调研
满足技术选型目标吗? 满足范围、时间和成本的约束吗? 是不是可行? 有什么样的风险?风险是不是可控? 优缺点是什么?
3 验证
可以通过一 个小型的快速原型项目,用候