《架构之美》阅读笔记01

       今天,我读了《架构之美》的一二章,初步了解了架构的基本含义以及一个好的架构应该具备的特性,架构是由一些结构组成,这些结构的设计目的是让架构师、构建师,以及其他利益相关人看到他们的关注点是如何得到满足的。对于架构的特性,书中明确指出一般架构师会考虑的几点:具备客户要求的功能、能够在要求的工期内安全的构建、性能足够好、可靠的、可用的,并且使用时不会造成伤害、安全的、成本是可以接受的、符合法规标准、将超越前人及其竞争者。“架构”一般来源于建筑,而对于一个建筑物的完成必不可少的就是建筑师,建筑师是确保设计概念在实现时得到一致体现的保证。这一角色在软件开发时相当于软件架构师,在软件系统开发时架构师必须做出许多设计决定,这些设计包括行为上的和结构上的。那么软件架构师如何创建软件架构,首先书中介绍架构师的首要关注点不是系统的功能而是软件需要满足的品质,也就是确保系统设计能满足客户的需要,架构师需要与利益相关人协作,理解这些品质关注点和约束。书中给出一般系统的关注点包括功能性、可变性、性能、容量、生态系统、模块化、可构建性、产品化。架构师处理关注点时需要将系统组织成一些结构,每种结构都定义了特定类型的组件之间的具体关系。书中接受了一些关键的结构:信息隐藏结构、使用结构、进行结构、访问结构等等。

      第二章主要讲了两种软件系统。一是“混乱大都市”,具有很糟糕很混乱的构架。我对此系统的理解就是像我们这学期编写的系统一样,为实现功能代码混乱,没有任何分层,不仅别人无法理解,而且自己也难以维护,这种系统健壮性不够,极易崩溃。作者指出这种不良的架构会产生的深远影响和严重反弹,造成的问题主要有:低品质的软件和漫长的版本发布周期、系统没有弹性,不能适应变更或添加新的功能、无所不在的代码问题、员工问题,大量混乱的公司内部政治、公司不能成功、许多痛苦和面对代码深夜加班。由此可见,这种架构绝对不可采取,而我们也必须尽快学习其他软件架构。此章二是讲述“设计之城”,此系统对品质的控制过程为:结对编程,对没有结对编程的工作进行代码/设计复审、对每一段代码进行单元测试,从而达到高品质的软件系统,“设计之城”成功的另一个因素是分配的开发时间段,不长也不短。现在的“设计之城”代码还不是很完整,但随着代码的使用,灵活的代码结构对于系统开发必然会有很大的帮助。