设计与架构
设计
设计是更偏向底层细节的行动,设计需要考虑底层细节
架构
比设计维度更高的行动,架构是抛弃实现细节,关注整体的实现
总结
架构和设计是两个单独的行动,我的理解是先要做架构再做设计,只有把整体从全盘考虑清楚,明确了整体的方向,底层的实现细节再从每个点分别考虑。
架构是什么
架构的定义
软件架构是软件系统的基本描述,通过软件架构定义软件系统中的模块、模块之间的关系以及软件系统的开发标准,架构是软件系统的指导方针。
通过架构可以描述一个软件系统中的实现模块、模块之间的边界以及系统的开发标准。
架构的目标
用最少的人力实现构建和维护系统的业务需求
架构的特点
要想跑得快,先要跑的稳
要在团队内制定软件开发的标准,多一点标准可以让架构走的更远
过度自信会影响开发
面对一个架构设计问题时,不要想着重构,因为重构之后的路就是现在自己现在面对的架构设计问题,所以要想着如何解决问题。不要盲目自信觉得重构架构可以解决任何问题
足够灵活
- 架构的基础就是灵活,架构要容易被维护和修改
- 灵活要有范围,灵活要在架构标准内,如果超出架构标准不是灵活而是难题
设计架构需要考虑的几个方面
- 人力资源的成本
- 设备的成本
- 迭代周期
- 改动的影响面
- 新人上手的周期
- 支撑业务的周期
架构的价值维度
行为架构
具体体现为:
- 程序员通过产品文档实现一个系统的功能
- 修复系统中的某个bug
架构价值
具体体现为:
- 架构的灵活性,软件应该容易被修改,变更实施的难度应该可以和变更的范围成等比关系
- 好的系统架构设计应该尽可能做到和“形状”(改动点)无关
总结
软件架构师更应该关注系统的整体结构,而不是具体的功能和系统行为的实现