前言
软件架构里每个人都有自己的理解,尤其在大型复杂企业级架构下,不同阶段不同层面不同场景的架构应该做什么、如何做等都不同。
本文是软件架构设计中,自己对如何做好架构的一个思考。
如何做好架构设计
说到架构设计,有很多资料和关键字可参考,结合自己理解主要的方面:
架构的定义:系统基本的组织,体现各个构件、构件间的相互关系、构件与环境间的关系,以及治理其设计和演进的原则。
架构师职责:做架构离不开架构师,架构师的职责包括架构规划、架构设计、技术选型等,需有全局的视野并坚持长期主义,在有限的资源和成本下平衡各方做决策。
架构设计原则:OCP开闭原则,SRP单一职责原则、LSP里氏替换原则、ISP接口隔离原则、DIP依赖反转原则,以及
架构风格/模式:DDD领域驱动、CQRS命令查询职责分离、事件驱动、微服务架构等。
谈架构设计离不开要做的业务或要达到的目标,下面从几个问题来看涉及到的架构:
- 为什么干:业务动机、战略层设计
- 干什么:业务能力,业务架构
- 谁来干:组织架构设计
- 怎么干:业务流程设计、产品、技术、数据层架构
从全局到具体层面,架构又可以分级:
- 策略级:关注整体性全局性
- 设计级:关注全局性的规范、设计和搭建
- 实施级:关注具体事项的方案
如上描述,参考:
附录参考
企业架构设计中,可参考的比如TOGAF(The Open Group Architecture Framework)企业架构标准,以及它的ADM(Architecture Development Method)架构开发方法,ADM描述了在不同层次:业务、应用、数据、技术上的架构方法,并定义了各个阶段,又称王八图:
TOGAF详细可参考其他资料。
其他
待持续更新