我必须使用超过100k行代码对现有C ++项目进行增强。 我的问题是如何以及从何处开始这些项目? 如果代码没有很好地记录,问题会进一步增加。是否有任何自动化工具可用于研究大型项目的代码流?
感谢名单,
有一本书给你:Working Effectively with Legacy Code
它不是关于工具,而是关于可以用来更好地理解和更改代码的各种方法,过程和技术。它甚至是从C ++的角度编写的。
一位非常优秀的奥地利程序员曾告诉我,为了理解程序,首先必须了解程序使用的数据结构。
在触摸任何东西之前使用Source Control!
还有另一本好书,目前在网上免费提供,关于面向对象的再造:http://www.iam.unibe.ch/~scg/OORP/
Diomidis Spinellis的书"Code Reading"包含许多关于如何获得关于更大,未知项目的概述和深入知识的建议。
第6章仅关注该主题(解决大型项目)。关于工具(第9章)和架构(第8章)的章节也可能包含很好的提示。
然而,这本书是关于理解(通过阅读)“代码”。它没有直接解决维护步骤。
我要做的第一件事就是尽量找到产品的要求。
这种尺寸的产品在没有要求的情况下开发几乎是不可想象的。
通过仔细阅读要求,您将能够:
否则你只是在看代码,试图暗示开发人员的意图......
如果您能够在PC中运行代码,则可以尝试通常从分析输出构建调用图。
还可以交叉引用工具,如cscope,ctags,lxr等。可以提供很多帮助。一个
花一些时间阅读,构建类图,甚至在你需要长时间理解的代码部分添加注释是熟悉代码库并准备修改/扩展它的步骤。
您需要做的第一件事是了解代码的工作原理。阅读有关的文档,然后观察程序在调试器下运行。如果您观看主要功能/循环,然后慢慢深入到程序中,您就可以很好地了解操作的方式。确保你写下你的发现,以便其他人在你有更好的职位开始后跟进。
使用Doxygen标记集运行EXTRACT_ALL以记录代码库中的所有关系。它不会帮助您完成代码流程,但希望它能够为整个应用程序的结构和设计提供一些启示。