站在巨人的肩膀上不香嗎?書籍推薦: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是一本很棒的咖啡桌書,但是我認為我從未見過有人每天使用它。這並不是您每天使用的那種書。您可以像補充維生素那樣以小劑量(在經過最初的符號表示等之後)食用。但是,這並沒有減少它的用處。
相關文章
- 書籍推薦:《API 設計模式》API設計模式
- 統計學書籍推薦
- 頂級 Linux 開發者推薦的程式設計書籍Linux程式設計
- 書籍版面設計軟體
- javascript推薦書籍JavaScript
- Java書籍推薦Java
- Java學習必備書籍推薦Java
- 誰能推薦推薦好的 PHP 設計模式得書籍和有關框架核心得書籍PHP設計模式框架
- 頂級程式設計師推薦的程式設計開發書籍【整合】程式設計師
- 計算機書籍(必看推薦)計算機
- 站在巨人的肩膀上
- 後端書籍推薦後端
- python 書籍推薦 三Python
- 開始學go,有推薦什麼書籍的嗎?Go
- 程式設計師經典書籍推薦-附 PDF程式設計師
- Java學習必備書籍推薦終極版!Java
- 學習Hadoop最佳書籍推薦Hadoop
- 盤點最受推薦的 9本全棧開發書籍全棧
- 強烈推薦所有程式設計師都要看完的書籍程式設計師
- 史上最全的Java進階書籍推薦Java
- 推薦適合Java初學的書籍?Java
- 老司機分散式書籍推薦分散式
- 機器學習必看書籍推薦機器學習
- 程式設計師成長之路上的10本必讀書籍程式設計師
- 2021 書單推薦 | 15 本高分 AI 書籍,統統免費讀AI
- 計算機專業必讀的經典書籍!!(建議收藏)計算機
- 軟體工程作業:閱讀書籍並提出三到五個問題軟體工程
- 10多本計算機經典書籍推薦計算機
- 初學者學習Java程式設計的基礎書籍推薦Java程式設計
- 有沒有好的測試書籍推薦
- oracle最佳化相關書籍推薦Oracle
- 7本產品經理推薦書籍
- 學Java可以看哪些書?6本Java書籍推薦Java
- 站在巨人的肩膀上:遷移學習遷移學習
- Transformer:讓ChatGPT站在肩膀上的巨人?ORMChatGPT
- 嵌入式軟體行業核心書籍行業
- 軟體測試書籍-學軟體測試最好的書
- 站在巨人肩膀上看原始碼-HashSet原始碼