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

格雷戈尔·霍普在本文讨论了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.mfbz.cn/a/758491.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CesiumJS【Basic】- #028 天空盒

文章目录 天空盒1 目标2 代码2.1 main.ts3 资源天空盒 1 目标 配置显示天空盒 2 代码 2.1 main.ts import * as Cesium from cesium;// 创建 Cesium Viewer 并配置地形数据和天空盒 const viewer = new Cesium.Viewer(

【Python系列】列表推导式:简洁而强大的数据操作工具

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

最强文生图模型Stable Diffusion 3 Medium 正式开源

Stability AI 宣布 Stable Diffusion 3 Medium 现已开源,是 Stable Diffusion 3 系列中最新、最先进的文本生成图像 AI 模型 —— 官方声称是 “迄今为止最先进的开源模型”,其性能甚至超过了 Midjourney 6。 Stable Diffusion 3 Medium 模型规格参数达到…

用友U8 Cloud smartweb2.showRPCLoadingTip.d XXE漏洞复现

0x01 产品简介 用友U8 Cloud 提供企业级云ERP整体解决方案,全面支持多组织业务协同,实现企业互联网资源连接。 U8 Cloud 亦是亚太地区成长型企业最广泛采用的云解决方案。 0x02 漏洞概述 用友U8 Cloud smartweb2.showRPCLoadingTip.d 接口处存在XML实体,攻击者可通过该漏…

redis实战-短信登录

基于session的登录流程 session的登录流程图 1. 发送验证码 用户在提交手机号后,会校验手机号是否合法,如果不合法,则要求用户重新输入手机号 如果手机号合法,后台此时生成对应的验证码,同时将验证码进行保存&#x…

昇思25天学习打卡营第七天|模型训练

背景 提供免费算力支持,有交流群有值班教师答疑的华为昇思训练营进入第七天了。 今天是第七天,前六天的学习内容可以看链接 昇思25天学习打卡营第一天|快速入门 昇思25天学习打卡营第二天|张量 Tensor 昇思25天学习打卡营第三天|数据集Dataset 昇思25天…

51单片机第17步_外部中断

本章重点学习外部中断。 1、外部中断0框图&#xff1a; 2、外部中断1框图&#xff1a; 3、程序举例&#xff1a; #include <REG51.h> //包含头文件REG51.h,使能51内部寄存器; #include <intrins.h> //包含头文件intrins.h,要放在stdio.h的头文件之前; //使能…

[leetcode]圆圈中最后剩下的数字/ 破冰游戏

. - 力扣&#xff08;LeetCode&#xff09; class Solution {int f(int num, int target) {if (num 1) {return 0;}int x f(num - 1, target);return (target x) % num;} public:int iceBreakingGame(int num, int target) {return f(num, target);} };

基准测试程序的认知与分析 —— SPEC基准测试程序集的深入探索

基准测试程序的认知与分析 —— SPEC基准测试程序集的深入探索 一、实验目的&#xff1a; 了解和掌握Spec基准程序测试对基准程序测试结果进行分析和比较 二、实验准备知识&#xff1a; 计算机系统设计和分析的量化原则。 计算机系统设计和分析的量化原则是指导计算机系统架…

一篇就够了,为你答疑解惑:锂电池一阶模型-离线参数辨识(附代码)

锂电池一阶模型-参数离线辨识 背景模型简介数据收集1. 最大可用容量实验2. 开路电压实验3. 混合动力脉冲特性实验离线辨识对应模型对应代码总结下期预告文章字数有点多,耐心不够的谨慎点击阅读。 下期继续讲解在线参数辨识方法。 背景 最近又在开始重新梳理锂电池建模仿真与S…

【保姆级教程+配置源码】在VScode配置C/C++环境

目录 一、下载VScode 1. 在官网直接下载安装即可 2. 安装中文插件 二、下载C语言编译器MinGW-W64 三、配置编译器环境变量 1. 解压下载的压缩包&#xff0c;复制该文件夹下bin目录所在地址 2. 在电脑搜索环境变量并打开 3. 点击环境变量→选择系统变量里的Path→点击编…

羊了个羊:羊、羊、羊

一、I am me&#xff0c;羊羊羊 英文中的 我就是我&#xff08;I am me&#xff09;&#xff0c;其实就是&#xff1a;羊 羊 羊&#xff0c;为什么会有这么一个结论呢&#xff1f; 请往下看&#xff1a; I&#xff0c;就是羊 am&#xff08;是&#xff09;&#xff0c;也是羊 …

『MySQL 实战 45 讲』22 - MySQL 有哪些“饮鸩止渴”提高性能的方法?

MySQL 有哪些“饮鸩止渴”提高性能的方法&#xff1f; 需求&#xff1a;业务高峰期&#xff0c;生产环境的 MySQL 压力太大&#xff0c;没法正常响应&#xff0c;需要短期内、临时性地提升一些性能 短连接风暴 短连接模式&#xff1a;执行很少的 SQL 语句就断开&#xff0c;…

等保测评练习卷15

等级保护初级测评师试题15 姓名&#xff1a; 成绩&#xff1a; 判断题&#xff08;10110分&#xff09; 1. 防火墙应关闭不需要的系统服务、默认共享和高危端口&#xff0c;可以有效降低系统遭受攻击的可能性。&am…

学会整理电脑,基于小白用户(无关硬件升级)

如果你不想进行硬件升级&#xff0c;就要学会进行整理维护电脑 基于小白用户&#xff0c;每一个操作点我都会在后续整理出流程&#xff0c;软件推荐会选择占用小且实用的软件 主要从三个角度去讨论【如果有新的内容我会随时修改&#xff0c;也希望有补充告诉我&#xff0c;我…

【数据结构】详解二叉树之堆

失败只是暂时停止成功&#xff0c;假如我不能&#xff0c;我就一定要&#xff1b;假如我要&#xff0c;我就一定能&#xff01;&#x1f493;&#x1f493;&#x1f493; 目录 ✨说在前面 &#x1f34b;知识点一&#xff1a;树的概念和结构 • &#x1f330;1.什么是树&#x…

什么是自然语言处理(NLP)?详细解读文本分类、情感分析和机器翻译的核心技术

什么是自然语言处理&#xff1f; 自然语言处理&#xff08;Natural Language Processing&#xff0c;简称NLP&#xff09;是人工智能的一个重要分支&#xff0c;旨在让计算机理解、解释和生成人类的自然语言。打个比方&#xff0c;你和Siri对话&#xff0c;或使用谷歌翻译翻译一…

h5兼容table ,如何实现h5在app内使用h5渲染table表格而且实现横屏预览?

压图地址 横屏div 通过css 实现 transform: rotate(90deg); transformOrigin: 50vw 50vw ; height: 100vw; width: 100vh;<divclass"popup-box":style"{transform: originSet 0 ? rotate(90deg) : ,transformOrigin: originSet 0 ? 50vw 50vw : ,height…

正版软件 | R-Studio T80+:数据恢复与取证分析的专业之选

在数据恢复和数字取证领域&#xff0c;专业人士需要一款强大、可靠的工具来应对复杂和高要求的任务。R-Studio T80 由 R-TT 公司推出的新型许可软件&#xff0c;以其年度付费订阅模式&#xff0c;为专家提供了成本效益更高的解决方案。 全面功能&#xff0c;专业服务 R-Studio …

如何在 Linux 中后台运行进程?

一、后台进程 在后台运行进程是 Linux 系统中的常见要求。在后台运行进程允许您在进程独立运行时继续使用终端或执行其他命令。这对于长时间运行的任务或当您想要同时执行多个命令时特别有用。 在深入研究各种方法之前&#xff0c;让我们先了解一下什么是后台进程。在 Linux 中…