1 What is Design and architecture?

人们总是把架构一词用在脱节底层细节的高层事物上,而设计则更多被用来代替较低层级的结构与决策,但是如果你真正看看架构师在做什么究竟,就会发现这种用法毫无道理。

想想为我设计新家的那位建筑师吧。这套房子有没有建筑设计?当然有。那什么是建筑设计呢?其实就是房子的造型、外观、立面效果,以及各个空间和房间的布局。
但当我翻看建筑师绘制的图纸时,会看到海量的底层细节:我能看到每一个插座、开关、灯具的位置;能看到哪个开关控制哪盏灯;能看到暖气炉装在哪里,热水器和污水泵的尺寸与安装位置;还能看到墙体、屋顶和地基具体的施工做法。

总体来说,我能看到这些所有的小细节才来做所有高层决策,我也看到这些底层的细节和高层的决策都是设计一个房子的一部分。

软件设计亦是如此。底层细节与高层结构同属一个整体,二者交织成一张连续的脉络,共同定义系统的架构。二者缺一不可,事实上,它们之间并无清晰的界限,从最高层到最底层,只有一连串连贯不断的设计决策。

目标?

这些设计的目标是啥?一个好的软件设计的目的是啥?
软件架构的目标,是最小化构建与维护目标系统所需的人力成本。

设计质量的衡量标准,仅仅是满足客户需求所需要付出的工作量。如果这种工作量很低,并且在系统整个生命周期中始终保持很低,那这个设计就是优秀的。如果随着每一次新版本发布,工作量越来越大,那这个设计就是糟糕的。道理就这么简单。

Conclusion

在任何情况下,研发团队最好的选择都是:认清并避免自身的过度自信,开始认真重视软件架构的质量。
想要真正重视软件架构,你就必须明白什么是优秀的软件架构。想要构建出能最小化人力、最大化生产力的系统设计与架构,你就必须知道,架构具备哪些特质才能达成这个目标。
而这,正是本书的核心内容。本书会阐述何为优秀、整洁的架构与设计,帮助开发者打造出能长期创造价值、生命周期健康的系统。

posted @ 2026-03-19 15:25  cyusouyiku  阅读(4)  评论(0)    收藏  举报