每个架构师都应该读的八本经典书籍

格雷戈尔·霍普在本文讨论了8本被视为软件架构师必读的经典书籍。

以下是所提及的关键书籍的摘要:
1、维特鲁威(公元前 20 年)的《建筑学》:
虽然与软件架构没有直接关系,但这部古代文献被提及,具有历史背景和个人丰富意义。

2、《1975 年:人月神话》:
这本由 Fred Brooks 撰写的经典著作最初出版于近半个世纪前,是“在延迟的软件项目中增加人力只会让项目更晚”这一著名见解的来源。即使是周年纪念版也已经有 30 年的历史了,所以你没有理由不读它。

这本书因其关于在后期项目中增加人力的引言而闻名,在软件开发领域被广泛引用。

3、《1977 年:模式语言》:
在我们讨论软件架构和设计模式的二十年前,Christopher Alexander 就发表了可能对软件架构实践产生最大影响的外部工作。这本书的概念与《设计模式》非常相似。

正如书名所示,这本书不仅仅是一本模式集,而是一种由模式组成的语言,这是许多现代(技术)模式书籍所没有正确理解的。十年前,亚历山大出版了《形式综合笔记》,显然引起了作者的注意。

4、《1978 年:数据与现实》:
探讨了数据建模这一主题,从一开始就提醒我们数据不是现实,其中有一句我最喜欢的台词:

  • “高速公路没有漆成红色,河流也没有县界从中间穿过”。

本书重点介绍数据建模,强调模型应该是对现实的有用解释,而不是精确的表示。

这里的关键点是,建模(可以是数据建模或我们绘制的架构模型)的目的不是代表现实,而是代表对现实的有用解释。

按照乔治·博克斯的座右铭“所有模型都是错误的;有些是有用的”,我们不应该试图让模型“正确”,而应该让它变得有用。

5、《1996 年:软件架构》
Mary Shaw 和 Dave Garlan 合著:这本书被认为是软件架构方面的首批定义性著作之一,介绍了架构风格,并在编程语言和抽象数据类型的背景下定位了软件架构。

我是在 2002 年 10 月购买的这本书,我在思考这本书中介绍的设计模式和架构风格之间的区别。当时 Bobby 和我正在编写《企业集成模式》。

作者之一Mary 告诉我,如果他们在写这本书时对设计模式运动更熟悉,他们可能会将这些风格称为“模式”(他们的书源自1994 年 1 月的一篇论文,大约在《设计模式》出版半年前)。

这本书最突出且最常被引用的关键要素是:

  • a) 将软件架构定位为高级编程语言和抽象数据类型的演化,以及

  • b) 常见架构样式的目录。

这本书相对较薄(264 页),因此它值得您花费 0.63 英寸的实体书架空间。

对我来说,比这本书更引人注目的是[玛丽在 2015 年](https://www.enterpriseintegrationpatterns.com/ramblings/84_saturn.htmlmaryshaw)巴尔的摩 SATURN 大会上关于软件工程的主题演讲。您可以在 YouTube 上观看视频录制。

从亚马逊的评论中,有两个片段恰如其分地将这本书描述为一个宝贵的时间胶囊:

  • “非常适合用来告诉你那位无知的老板什么是建筑。”
  • “如果您正在寻找尖端的软件架构原则,那么这本书绝对不适合您。”

6、《1990 年:你的灯亮着吗?》
20 世纪 90 年代,我们迎来了一批多产且富有洞察力的作家,如 Fred Brooks、Larry Constantine、Tom DeMarco、Gerald Weinberg、Ed Yourdon 等。这些书籍从更广泛的角度审视了软件架构师的工作环境,例如理解问题、与利益相关者沟通或组建项目团队。

这本书是其中我喜欢之一。从更广阔的视角审视软件架构师的工作环境,涵盖了问题理解和利益相关者沟通等主题。

7、《2006 年:企业架构作为战略》
如果说我们在 1996 年看到了第一本关于软件架构的书籍,那么 10 年后,随着 Jeanne Ross、Peter Weill 和 David Robertson 的《企业架构战略》的问世,企业架构首次出现在舞台(或书架)上。

这本书被认为是企业架构方面的首批定义性著作之一,介绍了业务模型与架构选择之间的关系等概念。

我们发现,企业架构领域只有 18 年的历史,这或许可以解释围绕其确切范围、目的以及与业务架构的关系的众多争论,后者似乎是最具争议的(或至少是最激烈的)。

书中引用最多的成果(包括我自己)是一个矩阵,它显示了业务模型和架构选择之间的关系。例如,复制的业务模型(连锁酒店、麦当劳)更注重通用应用程序平台,而多元化业务则需要跨不同系统的集成。

我使用这个矩阵来提醒人们,技术架构和业务战略之间的联系比他们想象的要紧密得多。

8、《2002 年:设计日常》
建筑师也是设计师,他们可以从现实世界(尤其是咖啡店)中学到很多东西。

我最喜欢的一本关于设计的书是唐·诺曼的《设计心理学》,这本书在 Goodreads 上有43,000 个评分。

这本书虽然不是专门讨论软件的,但它提供了可应用于软件架构的设计原则方面的宝贵见解。

读完这本书后,你再也不会用同样的眼光看待门把手或炉子,也许看待软件也是如此。

最后
该文还提到了其他有影响力的书籍,如《设计模式》(1995 年)、《领域驱动设计》(2003 年)和《企业集成模式》(2003 年),这些书对于软件架构师来说都是重要的读物。

更多原文:https://www.jdon.com/74402.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/38011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++特殊类设计单例模式...

文章目录 请设计一个类,不能被拷贝请设计一个类,只能在堆上创建对象请设计一个类,只能在栈上创建对象请设计一个类,不能被继承请设计一个类,只能创建一个对象(单例模式)单例模式:饿汉模式:懒汉模…

代发考生战报:6月25号 南宁 HCIP-Transmission传输 H31-341考试884分通过

代发考生战报:6月25号 南宁 HCIP-Transmission传输 H31-341考试884分通过 ,今天我和同事两个人去考的,我考试遇到1个新题,他遇到两个新题,客服提供的题库很稳定,全覆盖了,轻松通过,考…

【语言模型】Xinference的部署过程

一、引言 Xinference,也称为Xorbits Inference,是一个性能强大且功能全面的分布式推理框架,专为各种模型的推理而设计。无论是研究者、开发者还是数据科学家,都可以通过Xinference轻松部署自己的模型或内置的前沿开源模型。Xinfe…

pikachu靶场 利用Rce上传一句话木马案例(工具:中国蚁剑)

目录 一、准备靶场,进入RCE 二、测试写入文件 三、使用中国蚁剑 一、准备靶场,进入RCE 我这里用的是pikachu 打开pikachu靶场,选择 RCE > exec "ping" 测试是否存在 Rce 漏洞 因为我们猜测在这个 ping 功能是直接调用系统…

性能评测系列:云架构扩展演进横向对比

原始测评报告 性能评测系列(PT-010):Spring Boot RDS for MySQL,高并发insert 性能评测系列(PT-012):Spring Boot(K8s多实例) RDS for MySQL,高并发insert 性能评测系列&#xff…

一元线性回归-R语言

# # 安装包 # install.packages(ggplot2) # library(ggplot2) Sys.setlocale(category LC_ALL, locale English_United States.1252) # Sys.setlocale("LC_ALL","Chinese") x <- c(18, 20, 22, 24, 26, 28, 30) y <- c(26.86, 28.35, 28.87,28.75,…

Linux——vim的配置文件+异常处理

vim的配置文件&#xff1a; [rootserver ~]# vim /etc/vimrc # 输入以下内容 set nu # 永久设置行号 shell [rootserver ~]# vim /etc/vimrc 或者 vim ~/.vimrc set hlsearch "高亮度反白 set backspace2 "可随时用退格键删除 set autoindent…

期货的杠杆怎么计算?

什么是杠杆系数 杠杆系数是指期货合约价值与保证金之间的比例。它表示投资者只需投入少量资金&#xff0c;就可以控制价值更高的期货合约。杠杆系数越高&#xff0c;投资者的资金放大倍数就越大&#xff0c;但风险也越大。 什么是期货保证金呢&#xff1f; 期货保证金&…

《HelloGitHub》第 99 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、…

Multicolor Dragon-MCD 六彩神龙_RSI

MCDX 六彩神龙 https://www.tradingview.com/script/u2dIgVpN-M2J-Indicator-MCDX/ MCDX is an indicator based on mutilple Relative Strength Index (RSI) with different period, then classify into 3 categories - Retailer, Hot Money and Banker - Green - Retailer零…

2024.06.28 刷题日记

394. 字符串解码 给定一个经过编码的字符串&#xff0c;返回它解码后的字符串。 示例 1&#xff1a; 输入&#xff1a;s “3[a]2[bc]” 输出&#xff1a;“aaabcbc” 示例 2&#xff1a; 输入&#xff1a;s “3[a2[c]]” 输出&#xff1a;“accaccacc” 示例 3&#xff1a;…

怎么进行模型微调,以微调llama3为例

微调模型&#xff08;Fine-tuning&#xff09;通常涉及以下步骤&#xff0c;以微调 LLaMA 3 为例&#xff1a; 1. 准备工作 在开始微调之前&#xff0c;需要准备以下工作&#xff1a; 选择预训练模型&#xff1a;LLaMA 3 是一个大型的语言模型&#xff0c;可以通过 Hugging F…

react 中 Swiper vertical 模式下 autoHeight 失效的问题

Swiper 在 vertical 模式下 autoHeight 失效的问题&#xff0c;导致页面出现多余的空白高度&#xff0c;网上找了很多方法都无效&#xff0c;我直接暴力更改。 <SwiperclassNameindex-swiperdirection{vertical}mousewheel{true}centeredSlides{true}autoHeight{true}slide…

VS2019+QT5.12.10: error MSB4036: 未找到“Join”任务。请检查下列各项: 1.) 项目文件中的任务名

1、背景 两个VS2019打开两个相同的项目&#xff0c;一个里可以正常运行&#xff0c; 一个中一直报错&#xff0c;&#xff0c;报的错也是瞎几把报的。。 2、重新安装插件 之前在VS的扩展中在线安装了qt插件&#xff0c; 安装了一半&#xff0c;比较慢&#xff0c;直接强行退出…

传媒行业指哪些?需要过等保吗?

传媒&#xff0c;一个人人都接触的行业。相信大家都听过传媒&#xff0c;但具体传媒行业是指什么&#xff0c;包括哪些&#xff0c;详细很多人都不了解。这不一些人在问&#xff0c;传媒行业指哪些&#xff1f;需要过等保吗&#xff1f;这里跟我们小编一起来讨论讨论吧&#xf…

玩游戏就能学习亚马逊云科技AWS技术并通过热门技术认证考试??

亚马逊AWS限时活动&#xff0c;玩免费游戏Cloud Quest Practitioner送AWS云从业证书考试25%折扣券(价值171元)&#xff0c;玩游戏的同时还能学知识一举两得。Cloud Quest是AWS出的一款3D角色扮演游戏/虚拟城市建造形式的实验课程(游戏画面有点像天际线)&#xff0c;大家通过完成…

【01-02】Mybatis的配置文件与基于XML的使用

1、引入日志 在这里我们引入SLF4J的日志门面&#xff0c;使用logback的具体日志实现&#xff1b;引入相关依赖&#xff1a; <!--日志的依赖--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version&g…

338. 比特位计数(leetcode)

338. 比特位计数&#xff08;leetcode&#xff09; 题目描述 给你一个整数 n &#xff0c;对于 0 < i < n 中的每个 i &#xff0c;计算其二进制表示中 1 的个数 &#xff0c;返回一个长度为 n 1 的数组 ans 作为答案。 示例1 输入&#xff1a;n 2 输出&#xff1a;[0…

Sorting

本节提供有关在数据网格中对数据进行排序的信息。 GridControl-Grid View Sort Data 默认情况下&#xff0c;最终用户可以按任何列对数据进行排序&#xff0c;但使用MemoExEdit、ImageEdit和PictureEdit在位编辑器的列除外。在运行时&#xff0c;单击列标题一次以升序排列数…

中国电信股份有限公司江西分公司招聘信息 7.5日截止

法律事务管理(南昌) 学历要求 本科及以上学历 岗位职责 1.依据国家法律、法规和相关规章规定,为公司其他部门提供日常法律服务与支持; 2.负责公司各类合同审核工作; 3.负责公司法律文件的起草和法律事务谈判; 4.围绕与公司业务有关的法律问题及法…