架构之美读书笔记

架构是一个过程,而非一个结果

艺术是不可能被生产出来的,生产出来的,叫艺术品

常见的架构技术:分层,组件化、服务化、标准化、缓存、分离、队列、复制、冗余、代理

好的架构致力于消除各种重复性

让它尽可能简单,但不要过于简单

只有变化是永恒不变的

架构是一种这种,决定改进其中一个特征常常会对其他特征产生负面影响

每种架构都由组件及其关系构成

架构的目的是系统具备所要求的特征

结构在架构设计中将系统化简为交互的组建

建筑师的职责是:1、设计满足客户的需要。2、设计具有概念完整性,处处具有相同的设计原则。3、设计满足法规和安全性要求。  建筑师充当建造者和客户之间的桥梁

目前软件架构师没有历史和传统规定其具体职责

软件架构师的主要设计决定包括:行为和结构。结构指内部组件的组织结构(模块图、类图),行为包括外部行为(需求)、内部行为(内部组件之间的行为)

架构的定义:一组有标注的图纸和功能描述,它说明了设计和构建一个系统时所使用的结构

架构是系统设计的一部分,它突出某些细节,并通过抽象忽略掉另一些细节

系统架构师首要关注的不是系统的功能,而是需要满足的品质

架构师的关注顺序为:品质(可变性、可维护性、可伸缩性)、折中(根据优先级)、

如果计划的架构不能被一个人设计,那么也不能被一个人理解

架构师的主要关注点为:功能性、可变性、性能、容量、生态系统、可构建性、产品化、安全性

系统的结构会反映出构建它的组织的结构。反过来也成立

常见的重要架构结构:信息隐藏结构、使用结构、进程结构、访问结构

信息隐藏结构:模块A的秘密是模块B的秘密的一部分,那么A就是B的一部分(两个程序共享一个秘密时,他们才属于同一个模块)

使用结构:如果程序B必须存在并正常功能,A才能正常工作,就说模块A使用了模块B。使用结构中如果包含环,还里的所有模块都必须存在且正常工作。如果不包括环,则就是层次结构。层次结构要求:一个层次要比其上个层次快9倍,使用频率高9倍

访问结构:如果两个段被同一组程序访问,那他们就该合并

对于一组给定的功能需求和品质需求,没有唯一正确的架构

架构有两种评估方法:确定架构属性(性能建模评估性能、失效数模型评估可靠性和可访问性等)、对架构师提出质询

软件系统就像由建筑和后面的路构成的城市

坏的设计会招致在它上面叠加坏的设计

软件设计的关键品质是内聚和耦合。

好的设计会限制通信的线路,只提供那些绝对需要的

只设计你知道需要的东西

形式永远服从功能

XP没有贬低设计,它贬低的是不必要的工作

YAGNI:如果你不是马上需求,就不要去做

不要在还不知道需求的情况下就作出架构决策,不要猜测


你可能感兴趣的:(架构之美读书笔记)