站在巨人的肩膀上不香嗎?書籍推薦:DDD作為企業軟體設計開發必讀書籍 - lpalmieri

banq發表於2020-03-08

我大約在三年前加入這個行業,當時還只是一個尚未畢業的數學家,後來轉為ML實踐者。我又花了兩年的時間才找到自己的位置,在該職位上,構建軟體是我的主要職業。

第一手實戰經驗非常強大,但是一個人的時間有限。因此,書籍使我有機會學習其他從業者的精通技巧,這些都是經過數千個小時的工作而建立的。就是隻能通過閱讀吸收10%的知識,那仍然很划算。

當我發現自己在某些專業關係中從受指導者轉到指導者角色時,需要越來越多地分享自己成長經歷。

架構

設計資料密集型應用程式:可靠,可擴充套件和可維護系統背後的大構想 by Martin Kleppmann

站在巨人的肩膀上不香嗎?書籍推薦:DDD作為企業軟體設計開發必讀書籍 - lpalmieri

它闡述大量基礎知識,並且設法結合了第一原理方法,重點關注那些對現實世界中大規模分散式系統背後的工程選擇的決策影響。

我經常推薦它作為對現實世界中的分散式系統的初級讀物。

設計

領域驅動的設計:解決軟體核心中的複雜性,作者: Eric Evans

站在巨人的肩膀上不香嗎?書籍推薦:DDD作為企業軟體設計開發必讀書籍 - lpalmieri

關於DDD 的書,也稱為“ 大藍皮書”。它很長,但是涵蓋了無數的材料:如果您要編寫企業軟體,這是必須閱讀的內容。

在編寫企業軟體時,將複雜的業務領域的規則和思維模型轉化為軟體確實是挑戰的核心。Evans引入的技術和術語將使您受益匪淺,因為您要處理的域的複雜性以及您所從事的組織的數量在增加。

其他有人向我建議了沃恩·弗農(Vaughn Vernon)的“ 領域驅動設計精煉,但是我還沒有親自閱讀。

第二本是:

函式式領域驅動實現領域建模 Scott Wlaschin

站在巨人的肩膀上不香嗎?書籍推薦:DDD作為企業軟體設計開發必讀書籍 - lpalmieri

我發現這本書是從他的談話中引發的 -我喜歡這個談話,也喜歡這本書。它本身就是DDD以及型別驅動開發的更廣泛主題的很好的介紹。

簡而言之,我們可以利用型別系統來表示域的約束,從而使不正確的狀態難以表示或無法表示。

該書在函數語言程式設計的上下文中介紹了該思想,但是,即使對於非嚴格函式式的程式語言,只要它們具有豐富的型別系統(例如Rust),它確實是可行的。

測試

測試驅動開發 肯特·貝克

站在巨人的肩膀上不香嗎?書籍推薦:DDD作為企業軟體設計開發必讀書籍 - lpalmieri

在我們的測試驅動開發領域中,人們普遍讚賞。儘管如此,由於種種原因,我還沒有遇到很多實際操作本書的實踐者。

作者本人:肯特·貝克(Kent Beck)是XP(X treme P rogramming)的建立者,它是TDD的主要聲音之一,也是敏捷宣言的權威之一。

這本書無非是與他進行了長時間的配對程式設計會議,因為他通過TDD來解決問題(即編寫測試框架-這裡有一個meta元素),以他的方式編寫程式碼。

第二本:有效地使用遺留程式碼:克爾·費瑟斯

站在巨人的肩膀上不香嗎?書籍推薦:DDD作為企業軟體設計開發必讀書籍 - lpalmieri

自動化測試並未涵蓋其所有行為,包括舊程式碼。而且大多數工程師將把大部分職業用於這種舊程式碼(包括他們在六個月或十二個月前編寫的程式碼)的維護上。我已經在我的短期軟體職業中花了相當大的一部分。

第三本:xUnit測試模式:重構測試程式碼 ,作者Gerard Meszaros

站在巨人的肩膀上不香嗎?書籍推薦:DDD作為企業軟體設計開發必讀書籍 - lpalmieri

Feathers彙集了一系列有用的技術來馴服野獸-使用測試記錄現有行為,以使發展系統自身以滿足新要求成為可能。

事實是,我們的測試已開始使我們放慢腳步-隨著程式碼庫的發展,編寫和維護它們變得越來越麻煩。結果,我們編寫的測試越來越少,沒有得到認可。如果我們在不改變方向的情況下堅持下去,我們很可能會加入那些把測試視為障礙而不是資產的人。相反,我找到了這本書,並且對測試套件的重大重構使我們回到了以前的開發速度,而絲毫不影響我們的測試實踐。

Epic

特蕾西·基德(Tracy Kidder)的新機器之魂

軟體開發生命週期

Jez Humble和David Farley的 持續交付:通過構建,測試和部署自動化釋出可靠的軟體

這本書已有10年的歷史了,但是它經受了時間的考驗:技術可能已經改變,但是在設計(和自動化)當代系統的釋出管道時,這裡強調的原理和挑戰仍然是相關的。

Nicole Fosgren,Jez Humble和Gene Kim 加速:精益軟體和Devops的科學

Accelerate不一定會在軟體交付中引入一套革命性的方法,但是它提供了可靠的資料點和可靠的研究,證明其中某些方法(精益,DevOps等)確實對組織的業務績效具有可衡量的影響。 這四個關鍵指標對於衡量工程團隊的健康狀況非常有用。

HN討論:https://news.ycombinator.com/item?id=22515743

HN評論摘錄:

在處理複雜的業務領域以及如何為它們構建軟體時,DDD書籍真是天賜之物。我希望他們在大學而不是所有課程的教學者中教授這些東西。

為什麼沒有TAOCP,沒有人月神話?TAOCP是一本很棒的咖啡桌書,但是我認為我從未見過有人每天使用它。這並不是您每天使用的那種書。您可以像補充維生素那樣以小劑量(在經過最初的符號表示等之後)食用。但是,這並沒有減少它的用處。

 

相關文章