一直以来,设计(Design)与架构(Architecture)这两个概念让大多数人十分 迷惑一一什么是设计?什么是架构? 二者究竟有什么区别?
本书的一个重要目标就是要清晰、明确地对二者进行定义。首先我要明确地说, 二者没有任何区别。 一丁点区别都没有!
软件架构的终极目标是,用最小的人力成本来满足构建和维护该系统 的需求。
一个软件架构的优劣,可以用它满足用户需求所需要的成本来衡量。 如果该成 本很低,并且在系统的整个生命周期内一直都能维持这样的低成本,那么这个系统 的设计就是优良的。如果该系统的每次发布都会提升下一次变更的成本,那么这个 设计就是不好的。就这么简单。
我们怎么能够预知某个系统未来的变更需求,以便提前做准备呢?我们怎么能在没有水晶球与时光穿梭机的情况下,未卡先知,降低未来的变更成本呢?
软件架构是一个猜想,只有通过实际实现和测量才能证实。
一一-Tom Gilb
如果你觉得好架构的成本太高,那你可以试试选择差的架构加上返工重来的成本。
一一一Brian Foote 和Joseph Yoder
所谓软件架构,就是你希望在项目一开始就能做对,但是却不一定能够做得对的决策的集合。
一一- Ralph Johnson