前言
近期准备精读《架构整洁之道》这本书。从架构目标分析学习相关设计原理。也刚好自己的近期工作的内容有可参考的案例。
设计与架构是什么?
设计是什么?架构是什么?你内心的答案是什么?在我还没开始精读这本书之前,我的理解是:
- 设计:实现业务时的详细的设计,比如模块的依赖设计,业务逻辑设计,前端页面的设计。更偏向于细节内容的设计
- 架构:类似搭建房子一样,先有房子的形状、布局等,一个项目的架构那就是各个模块依赖关系,或者说结构。未来设计方向的一个框架。
书中谈到,“架构” 常用于高层的上下文中,而不在低层的细节。但“设计”往往意味着低层的结构和决定。在软件设计中,低层细节和高层决定也是软件设计的一部分。它们形成一个连续的结构,定义了系统的形状。它们之间没有明确分界线。
所以,高层决定细节的方向,但从低层细节设计也看到其决定了高层架构的方向。低层细节和高层决定都是设计的一部分。
什么样的设计是好的?最终的决定目标是什么?
软件架构的目标是什么?
软件架构的目标是最小化需要构建和维护系统的人力资源
客户需求的变化总是多样的。设计质量的衡量可以通过你为客户需求所需努力来体现。如果需求让你人力和时间投入比较少,那么设计是好的,如果需要努力很多,那么设计是不好。
最好的设计和架构,就是构建的系统付出最小的努力而收益是最大的。
功能和架构,哪个更重要?
对于产品经理,他们经常觉得软件系统能工作更重要,但是对于开发者,有责任判断架构对功能紧迫性的重要性。