每個架構師都應該讀的八本經典書籍

格雷戈爾·霍普在本文討論了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.pswp.cn/diannao/38011.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38011.shtml
英文地址,請注明出處:http://en.pswp.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.圍繞與公司業務有關的法律問題及法…