C++接口设计和代码重构
书籍
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 的中文翻译:
KDE 的二进制兼容规则
https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B