主要观点:
- Peter Naur 在 1985 年的文章《Programming as Theory Building》提出编程是程序员构建知识,文档是辅助产品等观点,作者推荐阅读全文,尤其讨论其中关于新程序员掌握程序理论的观点。
- 作者认为仅从代码和文档中恢复程序理论是可能的,并分享自己从代码和文档中创建程序理论的方法,包括理论修改、重新创建理论等方面。
- 以向 neovim 提交 PR 为例,介绍了创建程序理论的步骤,如确定要修改的部分、找到关心的代码部分、阅读源代码、验证理解、编写新代码和测试新代码等。
关键信息: - Naur 认为编程是理论构建,解决方案建议会影响程序的力量和简单性,程序文本和文档不足以承载重要设计想法,新程序员需与拥有理论的程序员密切合作才能掌握理论。
- 作者认为理论修改是 Ward Cunningham 所说的“consolidation”,随着时间推移,对程序应如何行为的理解会改变,需要修改和重构程序。
- 创建程序理论的步骤包括确定目标、通过搜索错误、回溯等找到关心的代码部分,阅读源代码,通过实验验证理解,复制现有代码并修改,以及找到并运行现有测试等。
重要细节: - 在 neovim 的例子中,作者通过搜索“drop”找到相关代码,阅读源代码找到函数
ex_drop
,通过实验验证理解,复制现有代码并修改,添加新测试等步骤来完成 PR。 - 阅读源代码时可使用 LSP 进行名称解析,调试时可使用编辑器内置的调试器或终端调试器,进行各种实验如设置断点、打印变量、设置硬件观察点等。
- 测试新代码时可使用与找到关心代码部分相同的技术找到现有测试,阅读测试套件的文档,找到运行单个测试的方法等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。