没有导师的理论构建

主要观点:

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