書籍
1. C++ API Design
講了接口設計, 文檔(doxygen),測試等方面。
對於從頭編寫基礎庫, 或者沒有基礎庫開發經驗並且需要短期內上手, 有一定實際參考價值。
2. The Mikado Method
所謂Mikado Method方法是用來維護一套現有代碼的方法,包括四個步驟:
- Set goal
- Experiment
- Visualize
- Undo
書本身挺好的,操作性應該挺強,但是是Java語言的,因此只看了chapter1.
3. The legacy code programmer's toolbox
是因爲看了這個網頁 https://www.fluentcpp.com/2020/01/24/mikado-refactoring-with-c-feature-macros/ 而買的電子書 (leanpub.com)
買完了比較後悔的是, 這本書並沒有怎麼給出怎麼用 Mikado 方法來重構已有 C++ 代碼。 感覺這個網頁存在誤導嫌疑, 讓我一開始以爲這本書和這個blog的內容相關。
書裏面幾乎都是文字, 你可以說確實是經驗之談, 也確實是 fluentcpp.com 網站作者寫的書。 但是沒啥可操作性。。
4. Modern C++ Programming with Test-Driven Development
這本書是講 TDD (Test-Driven-Development,測試驅動的開發)。但實際上大多數項目並不是從頭開發的,面對老代碼纔是實際中的絕大多數情況。
好在,這本書專門有一個章節講述了面對 legacy code 的經驗之談, 也有對應的樣例代碼:
https://learning.oreilly.com/library/view/modern-c-programming/9781941222423/f_0093.html
5. Working Effectively with Legacy Code
這本書從題目上就是面對 legacy code。然而, 這又是一本依託於 Java 語言的書。
API設計原則
C++ API 設計的 25 個錯誤以及如何避免
https://www.acodersjourney.com/top-25-cplusplus-api-design-mistakes-and-how-to-avoid-them/
20個破壞ABI的改變
https://www.acodersjourney.com/20-abi-breaking-changes/
Qt API 設計原則
- Qt官方wiki中的 API 設計原則: https://wiki.qt.io/API_Design_Principles#The_Copy_Cat_Trap
- coolshell 的中文翻譯: