- 广泛:尝试获得所有代码之间如何关联的整体概述
- 狭窄:一次专注于小节,完全理解它们的工作原理
- 选择要开发的功能,并在学习的过程中逐步实现
- 如果有可用的类图和UML,请尝试从中获得洞察力(并保持更新)
- 还有其他不同的方法吗?
我目前正在处理的是一个大约有20,000行C++应用程序和库(编辑:从大局来看很小!)。在工业界,我想您会由一位经验丰富的程序员进行介绍。但是,如果没有这种情况,有什么方法可以尽快开始添加价值呢?
--
答案摘要:
- 通过调试模式逐步执行代码,查看其工作原理
- 与比你更熟悉代码库的人搭档,轮流担任编码和观察/讨论的人。在团队成员之间轮换伙伴以传播知识。
- 编写单元测试。从你认为代码将如何运行的断言开始。如果结果符合你的预期,你可能已经理解了代码。如果不是,你有一个需要解决的谜题或者需要进行查询。(感谢Donal,这是一个很好的答案)
- 类似于上述方法,通过现有功能代码的单元测试进行学习
- 阅读UML、Doxygen生成的类图和其他文档,以获得对代码的广泛感觉。
- 进行小的编辑或修复错误,然后逐步建立起来
- 做笔记,不要跳进去开始开发;花时间理解比生成混乱或不合适的代码更有价值。
本帖是the-best-way-to-familiarize-yourself-with-an-inherited-codebase的部分重复。