我最近被分配了一个项目来进一步开发现有的代码库。代码不包含任何测试,甚至不包含任何一行注释。整个“事物”是以一种非常模糊的方式编写的,因此需要花费大量时间来弄清楚会发生什么。
你通常如何解决这类问题?关于如何处理这种情况的提示和三折?
答案 0 :(得分:5)
一次一个块。
当您必须进行修改时,请针对您正在修改的内容编写测试。然后安全地进行更改。随着时间的推移,你最终得到了更清晰的代码,这些代码已经过测试。
答案 1 :(得分:2)
它有源代码控制吗?浏览变化的历史。
如果没有,请将其置于源控制中。你将不可避免地做出重大改变。缺乏预期行为的文件证明了这一点。如果您在努力检查更改时,您将可以回滚并重做。
随时创建文档。当您了解代码执行/预期要执行的操作时,请记录它。
答案 2 :(得分:1)
以下是code comprehension tools的列表。
答案 3 :(得分:1)
我这样做的方法是清理代码,如果它尚未清理(对齐大括号等等)。大多数体面的文本编辑都内置了这个功能(eclipse,netbeans。)
然后我可能会浏览应用程序并跟踪逻辑所在的位置,浏览代码并熟悉以前的开发人员如何处理事情。
答案 4 :(得分:1)
一次一个功能。当你走的时候,假设很少并评论(对你自己)。我最近刚刚做了这个 - 假设一个'c ++'程序基本上是99%c,主模块用1个单片类编写。如果有足够的时间,您将熟悉代码,并能够轻松地在其中跳转。只是不要在第一周开始改变事情。直到你确切知道发生了什么事,你才会在以后拍摄自己。
几天之内不会那么糟糕:)
答案 5 :(得分:0)
如果它处于可运行状态,一种方法是在应用程序开头附近设置一个断点,并逐步执行调试器中的典型执行,以查看代码实际执行的操作(与您认为的相反)。