一、为什么软件项目需要架构设计?
复杂的软件项目通常有两个特点:需求不确定和技术复杂。
技术复杂性体现在:需求让技术复杂、人员让技术复杂、技术本身是复杂的、让软件稳定运行是复杂的,而技术架构可以解决这些问题。
架构设计可以降低满足需求和需求变化的开发成本:通过对系统抽象和分解,将复杂系统拆分成若干简单的,让普通程序员也能实现复杂系统。
架构设计可以组织人员一起高效协作:拆分系统,独立完成任务后根据约定好的接口协议集成
架构设计可以帮助组织好各种技术:如分层架构,UI层、服务层、数据访问层、数据库
架构设计可以保障服务稳定运行:如分布式架构、异地多活
二、什么是架构设计?
架构设计的目标:用最小的人力成本来满足需求的开发和响应需求的变化,用最小的运行成本来保障软件的运行。
架构设计的道:把系统和团队拆分,并安排好拆分后的排列关系,让拆分后的部分能通过约定好的协议相互通信,共同实现最终的结果。系统模块之间通过接口、协议交互,人员、小组之间通过流程规范协作。
三、如何做好架构设计?
1、分析需求
产品需求只有功能描述和界面交互,还需要进一步进行抽象。
分析用例:理清主要用户角色和其使用的场景。
2、选择相似的成熟的架构设计方案
如选择基于成熟