legacy-code相关内容

遗留 C/C++ 项目中的死代码检测

您将如何在 C/C++ 代码中进行死代码检测?我有一个相当大的代码库可以使用,至少有 10-15% 是死代码.是否有任何基于 Unix 的工具来识别这些区域?有些代码仍然使用大量的预处理器,自动化流程可以处理吗? 解决方案 您可以为此使用代码覆盖率分析工具并查找代码中未使用的点. gcc 工具链的一个流行工具是 gcov,以及图形前端 lcov (http://ltp.sourcef ..
发布时间:2021-12-29 12:47:30 C/C++开发

在 Windows 7/8/10 上安装 VB6

我在 Windows 7 上安装 VB6 时遇到问题.我意识到它是一个传统的 IDE,我在网上的研究并没有多大帮助.每次我尝试在 Windows 7 上安装 VB6 时,除了通知我兼容性问题的警报外,安装程序运行并在接近尾声时失败,最终安装过程失败.当再次尝试时,某些 dll 文件可能无法访问. 这些只是我访问过的少数几个链接中的一部分,希望能找到解决方案,甚至只是看到一些面包屑: 如 ..
发布时间:2021-12-23 17:51:18 其他开发

如何通过反射改变方法行为?

我在一些遗留代码中有一个静态方法,它被多个客户端调用.我显然没有选择覆盖它,或者通过依赖注入改变行为.我不允许修改现有的类. 我现在想做的是使用反射更改行为(该方法 - 具有相同的签名和返回类型). 有可能吗?如果没有,有什么设计模式可以拯救我吗? 谢谢! 编辑:对我可以更改/修改的内容有些困惑.我无法更改任何现有的类/方法 - 但我可以向项目添加更多类.我对现有类能做的最 ..
发布时间:2021-12-22 08:46:33 Java开发

将 cout 和 stdout 都重定向到 C++ 中的字符串以进行单元测试

我正致力于在单元测试中获取一些遗留代码,有时感知现有程序行为的唯一方法是通过控制台输出. 我在网上看到了很多关于如何将标准输出重定向到 C++ 中的另一个文件的示例,但是有没有一种方法可以将其重定向到内存中的流,这样我的测试就不必依赖磁盘了? > 我想将遗留代码发送到 stdout 的任何内容放入 std::string 中,以便我可以轻松地在输出中找到. 编辑 遗留代码太糟 ..
发布时间:2021-12-09 19:31:49 C/C++开发

如何使用旧版 javascript 库作为 Angular 服务的范围依赖项?

具体来说,我正在使用一个约 800 行的 SCORM API 包装器库,以促进与 LMS 的通信.作者不是用Angular写的.一个传统的、原始的 js 文件 (index.js) 被包裹在它上面,我包含了两者的片段,以了解这里使用的结构. SCORM = {//定义SCORM对象version: null,//存储SCORM版本.handleCompletionStatus: true,//包 ..

如何使用旧版 javascript 库作为 Angular 服务的范围依赖项?

具体来说,我正在使用一个约 800 行的 SCORM API 包装器库,以促进与 LMS 的通信.作者不是用Angular写的.一个传统的、原始的 js 文件 (index.js) 被包裹在它上面,我包含了两者的片段,以了解这里使用的结构. SCORM = {//定义SCORM对象version: null,//存储SCORM版本.handleCompletionStatus: true,//包 ..

Windows 7 是否支持 VB6 运行时?

我似乎无法找到直接的答案.似乎不支持 Visual Studio 6,但我只关心运行时.我们有一些我们不想重写的旧应用,但我们的客户希望它们能够在 Windows 7 上运行. 如果有人可以提供 MS 官方关于该主题的内容的链接,那将非常有帮助. 解决方案 YES! 官方 支持声明: 核心 Visual Basic 6.0 运行时将在 Windows Vista、Windows ..
发布时间:2021-09-16 20:34:55 其他开发

向遗留代码添加单元测试

事后,您是否曾向遗留代码添加单元测试?代码有多复杂,存根和模拟一切有多难?最终结果值得吗? 解决方案 我发现,最好的方法是逐步添加单元测试,而不是直接说我们现在将对应用程序进行单元测试. > 因此,如果您要接触代码以进行错误修复或重构,请先编写单元测试.对于错误,单元测试将有助于证明问题出在哪里,因为您可以复制它. 如果重构,你会想写单元测试,但你可能会发现测试是不可能写的,所以 ..
发布时间:2021-09-14 18:43:35 其他开发

使用单元测试进行实际重构

刚刚阅读了重构:改进现有代码的设计,我开始了我的第一次重构,几乎立即遇到了障碍.它源于这样一个要求,即在开始重构之前,您应该围绕遗留代码进行单元测试.这让您可以确保重构不会改变原始代码所做的事情(只是如何做到了). 所以我的第一个问题是:如何对遗留代码中的方法进行单元测试?如何在 500 行(如果我幸运的话)方法周围进行单元测试,而该方法不只执行一项任务?在我看来,我必须重构我的遗留代码才能 ..
发布时间:2021-07-05 20:40:07 其他开发

遗留代码噩梦

我继承了一个项目,其中的类图非常类似于意大利面条盘上的蜘蛛网.在过去的两个月里,我编写了大约 300 个单元测试,为自己提供了一个涵盖主要可执行文件的安全网. 我的敏捷开发书籍图书馆随时触手可及: 有效处理遗留代码 重构 代码完成 C# 中的敏捷原则模式和实践 等 问题是我触摸的所有东西似乎都破坏了其他东西.UI 类混合了业务逻辑和数据库代码.许多类之间存在相互依赖关系. ..
发布时间:2021-07-05 20:39:30 其他开发

关于使用遗留代码的建议

我需要一些关于如何处理遗留代码的建议. 不久前,我接到了向报告应用程序添加一些报告的任务.用 Struts 1 写的,早在 2005 年.没什么大不了的,但是代码很乱.没有使用Action形式,基本上代码是一个巨大的动作,里面有很多if-else语句.此外,这里没有人有这方面的功能知识.我们只是碰巧在我们的合同中有它. 我对此很不满意,不知道如何继续.这个应用是隐形的:很少有人(但都很 ..
发布时间:2021-07-05 20:39:27 其他开发

你可以对遗留代码库做些什么,这将对提高质量产生最大的影响?

当您在遗留代码库中工作时,随着时间的推移,什么会对提高代码库的质量产生最大的影响? 删除未使用的代码 删除重复代码 添加单元测试以提高覆盖率低的测试覆盖率 跨文件创建一致的格式 更新第 3 方软件 减少静态分析工具(即Findbugs)生成的警告 多年来,代码库由许多具有不同专业知识水平的开发人员编写,其中许多领域未经测试,有些领域无需花费大量时间编写测试就无法测试. ..
发布时间:2021-07-05 20:39:24 其他开发

编码 Katas 以练习遗留代码的重构

最近几个月我对编写 katas 非常感兴趣.我相信它们是磨练我的编程技能和提高我在工作中编写的代码质量的好方法. 有很多地方可以找到 Katas.喜欢.. http://codekata.pragprog.com/ http://schuchert.wikispaces.com/Katas http://www.codingdojo.org/ 我发现这些是 Katas ..
发布时间:2021-07-05 20:39:18 其他开发

如何在多线程环境中使用旧的单线程 C++ 库

我有一个旧的 C++ 库,它是为在单线程环境中使用而设计的. 该库公开了用于初始化的接口,它改变了库的内部数据结构和用法,它只读取数据并进行计算. 我的目标是在 Windows 多线程应用程序中使用这个库,不同的线程调用使用不同数据初始化的 dll 实例. 假设重写dll以允许多线程会被禁止,有没有办法让一个DLL的多个实例存在于同一个进程中,具有单独的内存空间,或者通过其他方式 ..
发布时间:2021-06-04 20:24:57 C/C++开发

在Windows 7/8/10上安装VB6

在Windows 7上安装VB6时遇到了问题.我意识到这是一个旧式IDE,我对网络的研究并没有太多帮助.每次我尝试在Windows 7上安装VB6时,除了会通知我有关兼容性问题的警报外,安装程序还会运行并在接近尾声时失败,最终安装过程将失败.而且,当再次尝试时,某些dll文件可能无法访问. 这些只是我访问过的几个链接中的一些链接,希望获得解决方案,甚至只是看到一些面包屑: 如何在VB6 ..
发布时间:2020-11-29 02:10:51 其他开发

1998 vintage C代码现在无法在gcc下编译

我有大约1.6万行1998年的老式C代码(〜50个主编),当时在gcc下完美构建,但现在在第一个例程“口吃"中出现了许多“需要左值作为赋值左赋值"错误. C".我还没有足够的C程序员来发现问题,并且似乎无法在Internet上针对我的问题找到答案(带有此相当普通的错误消息). 以下是详细信息: 从(老式)Makefile编译行: gcc -O3 -Wall -D__dest_os ..
发布时间:2020-11-12 22:50:34 其他开发

计算年百分比(需要一些有关继承代码的帮助)

我正在制作一个可以为客户提供和近似贷款报价的应用程序(它们稍后由其他后台系统计算). 我从金融公司收到了一些我们要为其制作计算器的代码. 我的问题是我不理解代码中计算年度百分比(包括启动费和月费)的部分. 他们正在使用的可能是这种方法,但我不能真正说出: http://www.efunda.com/math/num_rootfinding/num_rootfinding.cfm# Newto ..
发布时间:2020-11-06 19:02:37 其他开发

如何使内部Java包在Eclipse中可访问?

我有一个使用Java 11(或Java 10)在Eclipse中打开的旧版Java(8)项目。 Eclipse现在正正确地抱怨无法访问的软件包。例如。 com.apple.laf.AquaComboBoxUI 。 从命令行编译时,我可以通过添加使这些包显式访问 javac 的参数: -add-exports java.desktop / com。 apple.laf =全部取消命名 ..
发布时间:2020-10-27 07:05:07 Java开发