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