站在巨人的肩膀上不香嗎?書籍推薦:DDD作為企業軟體設計開發必讀書籍 - lpalmieri
我大約在三年前加入這個行業,當時還只是一個尚未畢業的數學家,後來轉為ML實踐者。我又花了兩年的時間才找到自己的位置,在該職位上,構建軟體是我的主要職業。
第一手實戰經驗非常強大,但是一個人的時間有限。因此,書籍使我有機會學習其他從業者的精通技巧,這些都是經過數千個小時的工作而建立的。就是隻能通過閱讀吸收10%的知識,那仍然很划算。
當我發現自己在某些專業關係中從受指導者轉到指導者角色時,需要越來越多地分享自己成長經歷。
架構
設計資料密集型應用程式:可靠,可擴充套件和可維護系統背後的大構想 by Martin Kleppmann
它闡述大量基礎知識,並且設法結合了第一原理方法,重點關注那些對現實世界中大規模分散式系統背後的工程選擇的決策影響。
我經常推薦它作為對現實世界中的分散式系統的初級讀物。
設計
領域驅動的設計:解決軟體核心中的複雜性,作者: Eric Evans
關於DDD 的書,也稱為“ 大藍皮書”。它很長,但是涵蓋了無數的材料:如果您要編寫企業軟體,這是必須閱讀的內容。
在編寫企業軟體時,將複雜的業務領域的規則和思維模型轉化為軟體確實是挑戰的核心。Evans引入的技術和術語將使您受益匪淺,因為您要處理的域的複雜性以及您所從事的組織的數量在增加。
其他有人向我建議了沃恩·弗農(Vaughn Vernon)的“ 領域驅動設計精煉,但是我還沒有親自閱讀。
第二本是:
函式式領域驅動實現領域建模 Scott Wlaschin
我發現這本書是從他的談話中引發的 -我喜歡這個談話,也喜歡這本書。它本身就是DDD以及型別驅動開發的更廣泛主題的很好的介紹。
簡而言之,我們可以利用型別系統來表示域的約束,從而使不正確的狀態難以表示或無法表示。
該書在函數語言程式設計的上下文中介紹了該思想,但是,即使對於非嚴格函式式的程式語言,只要它們具有豐富的型別系統(例如Rust),它確實是可行的。
測試
測試驅動開發 肯特·貝克
在我們的測試驅動開發領域中,人們普遍讚賞。儘管如此,由於種種原因,我還沒有遇到很多實際操作本書的實踐者。
作者本人:肯特·貝克(Kent Beck)是XP(X treme P rogramming)的建立者,它是TDD的主要聲音之一,也是敏捷宣言的權威之一。
這本書無非是與他進行了長時間的配對程式設計會議,因為他通過TDD來解決問題(即編寫測試框架-這裡有一個meta元素),以他的方式編寫程式碼。
第二本:有效地使用遺留程式碼:克爾·費瑟斯
自動化測試並未涵蓋其所有行為,包括舊程式碼。而且大多數工程師將把大部分職業用於這種舊程式碼(包括他們在六個月或十二個月前編寫的程式碼)的維護上。我已經在我的短期軟體職業中花了相當大的一部分。
第三本:xUnit測試模式:重構測試程式碼 ,作者Gerard Meszaros
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是一本很棒的咖啡桌書,但是我認為我從未見過有人每天使用它。這並不是您每天使用的那種書。您可以像補充維生素那樣以小劑量(在經過最初的符號表示等之後)食用。但是,這並沒有減少它的用處。
相關文章
- C++必讀書籍推薦C++
- 設計模式 經典書籍必備推薦設計模式
- 書籍推薦:《API 設計模式》API設計模式
- 程式設計科普書籍推薦程式設計
- Oracle Form開發書籍推薦OracleORM
- Android開發書籍推薦Android
- 推薦Java程式設計師閱讀的書籍Java程式設計師
- 書籍版面設計軟體
- Java書籍推薦Java
- javascript推薦書籍JavaScript
- Java學習必備書籍推薦Java
- 誰能推薦推薦好的 PHP 設計模式得書籍和有關框架核心得書籍PHP設計模式框架
- 頂級程式設計師推薦的程式設計開發書籍【整合】程式設計師
- 計算機書籍(必看推薦)計算機
- 後端書籍推薦後端
- 機器學習必看書籍推薦機器學習
- PHP新手推薦書籍PHP
- [轉]javascript推薦書籍JavaScript
- 《java 進階之路》 上--推薦書籍Java
- 必讀技術書籍
- 開始學go,有推薦什麼書籍的嗎?Go
- 程式設計書籍推薦——按角色劃分程式設計
- python 書籍推薦 三Python
- Android開發者書籍推薦Android
- DBA學習書籍推薦
- Java學習推薦書籍Java
- [原創]推薦軟體測試書籍(不定時更新)
- 站在巨人的肩膀上——圖靈成立八週年大型贈書活動圖靈
- 程式設計師經典書籍推薦-附 PDF程式設計師
- 程式設計書籍推薦——按內容劃分程式設計
- 頂級 Linux 開發者推薦的程式設計書籍Linux程式設計
- 推薦10本C#程式設計的最佳書籍C#程式設計
- Linux好書、經典書籍推薦Linux
- 程式設計師必讀的書籍和期刊雜誌程式設計師
- Java學習必備書籍推薦終極版!Java
- 老司機分散式書籍推薦分散式
- 推薦書籍:金字塔原理
- C++學習推薦書籍C++