231得票34回答
如何处理一个有11000行的C++源代码文件?

我们的项目有一个巨大的(mainmodule.cpp)源代码文件,大约有11000行。每当我需要修改它时,我都感到非常恐惧。 由于这个文件是如此核心和庞大,它会不断积累更多的代码,我无法想出一个好方法使它开始缩小。 该文件在我们产品的多个(>10)维护版本中被使用并经常进行更改,因此重构它...

128得票3回答
编程卡塔是用于练习重构老旧代码的工具。

最近几个月我对编程卡塔很感兴趣。我认为这是磨练编程技能和提高工作中编写代码质量的好方法。 有很多地方可以找到卡塔,例如: http://codekata.pragprog.com/ http://schuchert.wikispaces.com/Katas http://www.cod...

83得票3回答
为什么要将cast free的返回值转换为void?

我正在阅读一本书(Programming with POSIX Threads, Butenhof, 1997),其中使用了C语言,我遇到了下面这行代码:(void)free(data); 这里,data只是指向一个已分配结构体的指针。data = malloc(sizeof(my_struc...

83得票8回答
将单元测试添加到遗留代码中

在事后给旧代码添加单元测试,你有这样的经历吗?那时候代码有多复杂,每件事情都需要模拟和替身,这有多难?最终结果是否值得?

81得票19回答
如何最好地熟悉大型代码库?

加入一个已经存在大量代码的团队可能会让人感到不知所措。最好的方法是什么呢? 广泛:尝试获得所有代码之间如何关联的整体概述 狭窄:一次专注于小节,完全理解它们的工作原理 选择要开发的功能,并在学习的过程中逐步实现 如果有可用的类图和UML,请尝试从中获得洞察力(并保持更新) 还有其他不同的方...

68得票8回答
遗留的C/C++项目中死代码检测

如何在C/C++代码中检测死代码?我有一个相当大的代码库需要处理,其中至少有10-15%是死代码。是否有基于Unix的工具可以识别这些区域?有些代码片段仍然使用大量的预处理器,自动化过程能够处理吗?

39得票11回答
你能对遗留代码库做哪些事情,以最大程度地提高质量?

作为在遗留代码库中工作的人,哪些措施对于提高代码库质量并具有持久影响力? 删除未使用的代码 删除重复的代码 在测试覆盖度低的情况下添加单元测试 在文件间创建一致的格式 更新第三方软件 减少静态分析工具(例如Findbugs)生成的警告 该代码库由许多开发者在多年时间内编写,不同开发者的...

38得票4回答
遗留代码处理建议

我需要关于如何处理遗留代码的建议。 有一段时间,我被分配任务给一个报表应用程序添加一些报告。这个应用程序是在2005年写的,使用Struts 1框架,但代码非常混乱。没有使用Action forms,基本上所有的代码都在一个巨大的Action中,里面有很多的if-else语句。此外,我们这里...

37得票8回答
大型Java堆转储中查找内存泄漏的方法

我需要查找 Java 应用程序中的内存泄漏问题。我有一些经验,但希望能获得此方面的方法策略建议。欢迎提供任何参考和建议。 关于我们的情况: 堆转储文件大于 1GB 我们有来自 5 次内存泄漏问题的堆转储文件。 我们没有任何测试用例来引发这个问题。仅在(大规模的)系统测试环境中使用至少一周...

36得票2回答
在Windows 7 / 8 / 10上安装VB6

我在Windows 7上安装VB6时遇到了问题。我知道它是一个遗留的IDE,在网上的研究并没有太大的帮助。每次我试图在Windows 7上安装VB6时,除了告诉我存在兼容性问题的警报之外,安装程序运行并在结束前失败,最终导致安装过程失败。再尝试安装时,某些dll文件似乎无法访问。 这些是我查看...