The Architecture of Open Source Applications
開源程式架構 https://aosabook.org/en/
建築師接受訓練時要研究數以千計的建築,與建築大師們對這些建築的評論。相較之下,大多工程師只知道幾個大型程式(而且通常是他們自己的作品),而從未學習歷史上的偉大程式。結果就是工程師們重複著其他人犯過的錯,而不是建築在他人的成功專案之上。
我們的目標是改變現狀。在這兩本書中,超過四打的開源工程師們解釋他們的軟體如何組成與及為何如此組成。每個程式的最主要元件為何?這些元件如何互動?這些元件的開發者們們在過程中學到了什麼?透過回答這些問題,這本書的貢獻者們讓我們洞悉他們的思路。 如果你是個初階工程師,想學著知道你那些富有經驗的同事們如何思考,這幾本書是很好的開始。如果你是個中階或資深工程師,想了解你的同裁們如何解決困難的設計問題,這幾本書也能幫上忙。
以上是翻譯自網頁的簡介,以下是我的補充:
- 網頁上不只 AOSA 兩本書,還有 500 Lines or Less(五百行內)與 The Performance of Open Source Applications (開源程式的效能),總共四本書。
- 五百行 python 寫個 python 編譯器
- 五百行 OCR
- 有三篇的作者是唐鳳
- Firefox Release 工程
- GDB
- GHC (Haskell 編譯器)
- Git
- MediaWiki(推動世界十大網站維基百科的軟體)
- nginx
- Puppet(不是 Puppeteer,現在比較少聽到,類似 ansible、fabric、chef)
- PyPy
- SQLAlchemy(Python 的 ORM)
- ZeroMQ(message queue)
- Audacity(跨平台音訊處理程式)
- BASH
- CMake
- Eclipse(IDE)
- Jitsi(影音通訊軟體)
- LLVM
- Riak and Erlang/OTP(Erlang/OTP 的語言特色是工程師很難在錯誤處理上偷工減料)
- Selenium WebDriver(E2E Testing)