可能重复:
C++代码依赖/调用图"查看器"?
我正在开发一个庞大的C++代码库,目前我遇到了模块化代码的问题.我必须将我的代码分成独立的独立模块.
我能想到的一种方法是生成依赖图,然后进行更高级别的分类.其他方法是从入口点(某个函数abc()
)开始并生成函数调用树,其每个节点将包含该函数所在的文件的名称.此后,我可以使用一些脚本将这些功能提取到单独的模块中.
我的问题是,是否有任何工具可以帮助我完成这项任务?有没有人早点遇到这样的问题.或者你能建议任何方法来实现同样的目标吗?
第一级模块化 - 我希望你已经完成了 - 在类中构建你的代码.如果你的代码只是函数的集合 - 即C加上一些语法的含义 - 那么现在是重写代码的时候了,因为没有多少依赖图构建会让你免于维护地狱.
如果你有类,模块化应该是找到紧密协作的类(如Customer
,Order
和Invoice
),并将它们与只与它们失去联系的类(如Employer
或Facility
)分开.然后从那里拿走它.
模块化代码首先需要思考.没有自动程序可以替代它.实际上,从你写的很少的内容来看,我担心任何自动化过程都会让事情变得更糟,因为显然对这个项目的投入已经太少了.也就是说,你写了100万行代码,而不考虑模块化,现在你想对模块化发生时仍没有真正思考它.你正在前往史诗般的失败.