《微服务设计》阅读笔记二
2017-08-08 本文已影响0人
BrianZhang
《微服务设计》,Building Microservices,作者Sam Newman,译者崔力强、张骏,人民邮电出版社,2016年。
笔记中有些内容直接引用原书。
================================================================
第二章 演化式架构师
软件行业中的架构师和建筑行业中的建筑师在英文中都是architect一词,架构师这个概念应该也是从建筑业借用过来的,但两个角色不能简单类比。建筑师面临的物理规律和需求都是确定性的,而软件的架构师没有坚实的物理规律可以依靠,更要面对可能不断变化的需求,因此想要依靠设计大量图表和文档创建一个如同卢浮宫金字塔一样完美的软件系统方案,是难以奏效的。
与其比作建筑师,比作城市规划师可能会贴切一些。城市规划师规划城市中不同区域的功能(生活区、工业区、办公区等),而并不去对单个楼做规划设计。城市会不断变化和改造,但大部分时候区域功能是不变的。同样,架构师应对用户的需求变更, 应该是做一个允许变化的计划,而不是对未来的变化进行预测,因为对未来的预测常常会失败。要允许变化,就不能做出过于详尽的设计。架构师不仅要考虑终端用户,也要将开发人员和运维人员作为系统的用户,他们也是参与者。Frank Buschmann说:架构师的职责之一就是保证该系统适合开发人员在其上工作。