主要观点:在成熟复杂的代码库(如Buttondown)中高效快速工作需要大量隐性知识,但文档往往不能真正解决问题。一种有用的方法是在测试中捕捉步骤,如添加新的 Django 模块到代码库时需添加到多个不同位置,可通过测试来确保;对于维护单独的enums.json
文件以记录枚举值的情况,也可类似处理。这种测试驱动的不变量是自我记录的,能包含代码指针、技术解释和修复方法。
关键信息:
- 代码库工作需隐性知识,文档虽重要但不能解决确保人人能安全快速做事的问题。
- 以添加 Django 模块为例,需添加到
pytest.ini
、pyproject.toml
、modules.txt
等多个位置,可通过测试来确保。 - 对于维护
enums.json
文件,通过测试确保枚举值的完整性,如在测试中遍历枚举名和枚举值进行检查。 - 测试驱动的不变量自我记录,能包含多种信息,如“添加新枚举值”这样的任务可通过测试来记录和解决。
重要细节:
- 给出了具体的测试代码示例,如
pytest_generate_tests
函数用于参数化测试,test_module_is_present_in_pytest
函数用于检查模块是否在相关文件中。 - 对于
enums.json
文件的测试示例,通过遍历枚举名和枚举值进行检查,同时处理已知缺失的枚举值对。 - 强调在审查 PR 时思考“测试能否捕捉到这个”,并将测试定义为“练习代码库的脚本”。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。