理解非常大的C++应用程序的最常用方法是什么?

Chr*_*ris 7 c++ project-management

当一个新的C++项目传递给你时,通过它并熟悉整个代码库的标准方法是什么?你刚开始在顶级文件开始阅读所有x-100文件?您是否使用工具为您生成信息?如果是这样,哪个工具?

Wil*_*ung 12

我使用变更请求/错误报告来指导我学习一些新项目.尝试一次性消耗全部内容对我来说绝对没有意义.变更单或错误报告为我提供了指导,可以专注于系统的这一个卷须,通过代码跟踪它的活动.

在合理数量的这些之后,我可以很好地理解项目的基本原理.


Ree*_*sey 10

这是我的一般过程:

  • 首先要了解应用程序的功能以及应用程序的用途.(我看到有太多开发人员完全跳过这一关键步骤.)
  • 搜索与项目相关的任何开发人员文档.(但是,意识到这几乎总是错误的并且过时了 - 它只会提供有用的线索.)
  • 试着找出组织中的逻辑.主体系结构是如何定义的?使用了什么样的大规模模式?(即:MVC,MVP,IoC等)
  • 尝试找出与项目中"大"对象相关的主要类.这有助于上述观点.
  • 在尝试维护项目时,慢慢开始重构和清理.

通常,这会让我至少有点速度.然而,通常我最终给出了这样的项目,因为必须修复或增强某些东西,并且时间并不总是现实的,在这种情况下,我经常只需要跳进去祈祷.


Dom*_*ger 8

  • 可以通过添加一个小功能开始处理它.
  • 在调试器中逐步启动应用程序启动.


Mar*_*ett 8

您可以尝试通过doxygen运行它,最后给出一组可浏览的文档 - 但基本上唯一的方法是调试器,一些trace/std :: cerr消息和大量咖啡.

编写测试用例的建议是Working-Effectively-Legacy-code的基础和cppunit测试库的要点.如果你可以采取这种方法取决于你的团队和你的设置 - 如果你是新的初级,你不能真正重写应用程序以支持测试.