架构设计主题阅读书目

十多年来,我一直从事研发工作,既做过车联网、平安城市这种大系统,也做过图像处理软件、视频播放器这种小工具,虽然没有架构师之名,却也做了不少架构相关的事。近期想把这一块工作独立出来,同时为了提高认知,做一个关于架构方面的主题阅读,下面分享一下我学习中的一些书籍。

现在大家谈什么都喜欢说认知升级,本文也是从架构认知升级的思路进行,这里引用了孟岩总结的一个认知层次框

层次名称描述举例
L3认识论从哲学上分析我们所面对的领域之内是否能够以及为什么可以产生科学的认知,我们认知的边界在哪里黑箱认识理论
L2方法论能够指导我们产生科学方法的方法和思维模式系统论和系统科学
L1科学方法一套具体的、一致的、系统的概念、方法和过程,重复这个过程可以产生局部的或全局的最优解各领域内仅经过实践检验的框架、方法、流程、规则
L0实践经验未经审视和加工的实践经验,包含真知灼见,也包含矛盾、混乱和武断,往往将有效实践编程一种不可重复的艺术行为各个领域的实践经验、管理艺术、领导艺术、成功学、心灵鸡汤、诸子格言等

L0/L1 软件架构实践和框架

《程序员必读之软件架构》

作者Simon Brown,译者邓钢,人民邮电出版社

工作中,团队里可能每个人都在做设计,做架构,但从来没人说过什么是架构,该如何架构,这应该是大部分团队的现状。为什么没人拿架构做为一个明确的主题去讨论,可能的原因是:架构是关于抽象和经验。你说是好的实践,好的架构,最后的落脚点还是交付、性能、可用性上。如果一个的软件满足了这些,谁又会在意出发点和过程呢?你说未来有风险,互联项目快速迭代,开发换了一波又一波,谁又能做到持续负责?在KPI文化里,没法量化的东西是不被重视的。

本书的主要价值,我认为是提出了一套轻量级的架构方案,看去不那么高大上,但是可操作性强。它对个人的帮助大于团队,有了这些方法论,可以切实解决实际的问题,比如如何画图,用草图而不是UML,用语境、容器、组件层层递进的表达;比如技术选择,从哪些方面,什么角度进行;比如预先设计,怎么判断哪些需要预先设计,哪些不需要。这些都是初识架构最纠结的地方。

本书主要介绍了以下内容:
- 软件架构的本质
- 软件架构的角色
- 开始编码前真正需要思考的事情
- 如何用简单的草图让你的软件可视化
- 为软件生产文档的轻量方法
- 为什么敏捷和架构并不冲突
- “恰如其分”的预先设计是什么
- 如何通过风险风暴来识别风险

《恰如其分的软件架构-风险驱动的设计方法》

作者George Fairbanks,译者张逸、倪健、高翌翔,华中科技大学出版社

本书从方法学的角度分析如何获得“恰如其分”的架构。作者建议根据项目面临的风险来调整架构设计的成本,并从多个视角阐述了软件架构的建模过程和方法,包括用例模型、概念模型、域模型、设计模型和代码模型等。书中提出了风险驱动模型(Risk-Driven Model)分为三步:
- 识别风险并进行优先级排列
- 选择并应用相关技术
- 评估风险是否降低

作者在书中提到了三种设计思路
- 计划式设计:考虑未来的功能扩展,传统的瀑布式采取事先设计的做法,可以认为是计划式设计
- 演进的设计:提倡满足客户现有的需求,敏捷方法学倾向于演进式设计
- 最小计划设计:介乎于演进式设计与计划式设计之间,算是一种中庸之道的选择

作者所谓“恰如其分”,其实就是在权衡计划式与演进式设计中找到一个平衡点,这就是他所推崇的最小计划设计。

其他一些具体应用实践

上面介绍的软件架构设计,不涉及行业和业务,但是在具体的应用领域,也会有一些不同的知识、方法、框架和实践。比如:
- 游戏引擎架构
- 前端架构设计
- 轻量级微服务架构
- 服务器端网络架构
- 5G网络架构
- Hadoop应用架构
- ……

L1/L2 架构设计框架和方法论

《系统架构设计-程序员向架构师的转型之路》

作者:郑天明,人民邮电出版社

这是我偶然发现的一本书,豆瓣上没有评价,全书围绕普通开发人员如何向架构师转型这一课题,从架构师的角色以及转型过程中会遇到的困难及其解决方法切入展开讨论,仔细读来内容非常丰富,很适合搭建自己的架构知识框架

全书从软件架构体系结构、架构设计、技术体系等角度出发,详细介绍了架构师区别于一般开发人员所需要掌握的架构设计方法论与相关实践,包括架构风格与模式、领域驱动设计、类与框架设计、分布式系统架构设计、微服务架构设计、各种主流的技术体系与实践等内容。然后针对软件架构系统工程、业务模型设计、敏捷方法与实践、产品交付模型与质量控制等架构师所必须掌握的系统工程和过程管理知识以及应用进行详细阐述,确保其站在架构师的高度进行系统设计和开发完整生命周期的全局管理。作为技术团队的领导者,架构师同样需要具备相应的综合能力,书籍的最后对架构师所需的各项软能力也做了一些介绍。

L2/L3 架构方法论和认知论

《我的架构思想-基本模型、理论与原则》

作者:周爱民,由北京图灵文化发展有限公司发行数字版

这本书是架构领域的超级大牛周爱民的作品,是从他的代表作《大道至易》拆分出来的,目前只有电子版本。

全书以系统的认识论作为出发点,全面描述了架构的思想、过程、方法。在此基础上,提出并论述了普遍性的架构理论和参考原则。通过全新的观察视角,书中对“架构”以及“架构师角色”提出了新的定义,并主要讨论了形成论与组成论两种架构方法。此外,本书在“架构意图”方面的讨论,既直指架构思想的本质,又为架构决策与实施找到了依据,颇为难得。

这是一本触及了 L3 级认知层次的书。虽然书中并没有明确的引用系统论、控制论、信息论等经典理论,但是从内容来看,作者所强调的正是系统论的认知思维模式。当然主要内容还是在L2层次上介绍方法论,帮助大家提升解决问题的能力。

本书主要内容:
- 系统的过程
- 知识的构建
- 架构师的能力结构
- 系统架构与决策
- 架构的表达与逻辑
- 架构的原则

最后,本书在附录中提供了一个超越软件架构的案例,尝试解决作者早期提出的EHM模型(软件工程中的层状模型)中所蕴含的问题,由此提出了新的组织架构。这是一个非常惊喜的彩蛋,我第一时间就打印出来准备反复研读。

《架构之美》

作者:Till Adam,译者:王海鹏、蔡黄辉、徐锋,机械工业出版社

这本书也是架构领域的经典,但是在豆瓣上评分并不高,我想其中一个可能的原因是,对于没有一定项目经验的人,难以产生共鸣和理解。

本书围绕5个主题领域来组织本书的内容:概述、企业应用、系统、最终用户应用和编程语言。书中让最优秀的设计师和架构师来描述他们选择的软件架构,剥开架构的各层,展示他们如何让软件做到实现功能、可靠、易用、高效率、可维护、可移植和优雅。这本书就如同汇集了各个电视频道充斥的各类股评专家(当然是顶尖级的)的析股法则大全,需要你自己结合实践去分辨,去吸收,从而帮助你成为一个成熟的架构师。

什么是成熟的架构师呢?简单来说,就是能够取各家之所长,因地制宜,形成适合自己设计场景的架构设计规律法则。对于有一定项目经验,经历过一些项目体验的人应该能找到共鸣,对于新手暂时不推荐。

《超越软件架构-创建和维护优秀的解决方案》

作者:Luke Hohmann。中国电力出版社出版发行。

这是一本站在更高视野来描述架构的书,探讨了管理业务和技术之间关系的棘手问题。本书是对如何合理管理这一重要关系的实践性指导。在现代经济中,每个软件决策都可能会对业务产生重大影响;反之,大多数业务决策也将影响到软件应用的生存能力。本书在真实业务环境中为创建优秀软件方案提供了深刻的见解和有用的经验。

软件专家Luke Hohmann描述了软件架构决策的业务分枝,并进而指导了如何理解和领会那些为创建成功的软件所必须解决的业务问题,通过业务和技术之间的协作得以创建优秀的技术方案,确保组织获得成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值