问题标签 [legacy-code]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4411 浏览

java - 使用没有泛型的遗留代码时如何避免 Eclipse 警告?

我正在使用JSON.simple从 Java 生成 JSON 输出。但是每次我调用 jsonobj.put("this", "that") 时,我都会在 Eclipse 中看到一个警告:

类型安全:方法 put(Object, Object) 属于原始类型 HashMap。对泛型 HashMap 的引用应该被参数化

干净的解决方法是 JSONObject 是否被泛化,但由于不是,我不能添加任何泛型类型参数来解决这个问题。我想关闭尽可能少的警告,因此将“@SuppressWarnings("unchecked")”添加到许多方法中并不吸引人,但是除了忍受警告之外,我还有其他选择吗?

0 投票
4 回答
383 浏览

jquery - 从 jquery 1.3 升级到 1.4 的最佳方法是什么?

鉴于我们正在使用的所有库,我正在尝试确定升级是否可行。问题是其中一些插件不再开发,所以我不确定它们中的哪些与 1.4 兼容

关于如何最好地解决对旧插件的遗留依赖项的任何想法?

0 投票
2 回答
1643 浏览

html - 将基于表格的布局转换为基于 div/css 的布局

我应该为一个相当大的 Web 应用程序重写 UI。问题是布局完全基于表格,如果我能以某种方式半自动地将表格转换为 div,它将为我节省大量时间。

做这样的事情时最好的做法是什么?这是个好主意吗?

应用程序使用在运行时解析为 html 的布局文件(包含类似于帮助程序的内容),应用程序本身也在特定位置输出 html。因此,工作将包括在应用程序中转换这些帮助程序和 htmloutput 代码。

0 投票
11 回答
1295 浏览

legacy-code - 如何激励团队致力于遗留产品

我们是一个致力于遗留代码的团队,这些代码非常古老,并且是用最初编程时代的语言编写的。由于团队成员接受了最新技术的培训,现在开始处理遗留代码,他们并不高兴。如何激励他们也使用遗留代码?

0 投票
6 回答
2084 浏览

java - 用 Java 理解一个大公司的项目

用 Java 理解大公司项目的最佳方法是什么?

0 投票
3 回答
145 浏览

c++ - 寻求重新设计界面的建议

作为维护大量遗留代码的一部分,我们需要更改部分设计,主要是使其更具可测试性(单元测试)。我们需要解决的问题之一是组件之间的现有接口。两个组件之间的接口是一个只包含静态方法的类。

简化示例:

该接口由组件 A 使用,因此不同的方法可以使用 ABInterface::methodA() 来准备一些输入数据,然后调用组件 B 中的适当函数。

现在我们出于各种原因尝试重新设计这个界面:

  • 扩展我们的单元测试覆盖率——我们需要解决组件之间的这种依赖关系,并且要引入存根/模拟

  • 这些组件之间的接口与原始设计不同(即,用于组件间 i/f 的许多新功能是在此接口类之外创建的)。

  • 代码很旧,随着时间的推移发生了很大变化,需要重构。

更改不应对系统的其余部分造成破坏。我们试图限制在生产代码中留下许多测试所需的工件。性能非常重要,在重新设计后应该没有(或非常少)降级。代码是 C++ 中的 OO。

我正在寻找一些想法采取什么方法。关于如何有效地做到这一点的任何建议?

0 投票
2 回答
149 浏览

asp.net - 是否有简化多处遗留代码更新的解决方案?

我正在处理一些最初设计用于处理两种不同类型文件的旧代码。我最近的任务是在这段代码中添加一种新的文件。我的大部分问题都通过用一个新条目填写一个扩展的 XML 文件来解决,该条目处理从列表命名到文件如何以复数小写形式编写的所有内容。但这最终还是不够的,因为在 24 个不同的代码文件中可能有 50 个不同的地方,我必须更新仅针对原始两种文件类型分支的硬编码开关语句。

不幸的是,这没有一致性。有些方法一半来自 XML 文件,一半来自硬编码。一些看起来可以从 XML 文件中操作的文件不需要,而一些我希望我需要更新硬代码的文件不需要它。因此,找到其中大部分的唯一方法是在整个系统只有部分运行时运行测试,找到修复的一步(当我很幸运错误日志实际上告诉我发生了什么时),然后再次运行整个事情。这浪费了时间测试已经确认可以工作的代码部分,最好把时间花在测试我必须添加的新部分上。

这是一个麻烦半,幸运的是,我可以预期在不久的将来我将不得不添加另一种新的文件。

有没有可以帮助这种努力的解决方案?我可以输入当前功能的一些参数,记录整个代码项目中实际需要更新的点,并在下次需要向代码添加新功能时运行一些不错的东西。它甚至不需要完全自动化,这将帮助我直接导航到所有内容的特定点,甚至可能记录需要加载的参数类型。

怀疑它特别重要,但代码由 ASP.NET 页面、一些 ASP.NET 控件、数百个 C# 代码文件和一些额外的 XML 文件组成。目前这一切都在几个大型 Visual Studio 2008 项目中。

0 投票
1 回答
52 浏览

asp.net - 使用另一个服务器端编程平台最佳实践扩展旧站点

我工作的公司有一个 6-8 年前由一个团队开发的网站,该团队非常热情地使用他们自己的基于 PHP 的私有 CMS。我必须在一周内将来自一个 Intranet 公司数据库的动态数据放到这个站点上:2-3 页。我联系了公司站点管理员,她向我展示了管理部分 - CMS 只允许插入 html 块和管理站点地图(站点部署在公司内部的机器上并且完全可访问和升级)。

  • 我不是 PHP 专家,我不想深入了解几乎没有人听说过的传统 CMS 引擎
  • 我也不想联系开发团队,因为我不确定他们是否仍然存在并且有足够的能力来扩展这个旧时代的网站,无论如何这将花费太多时间。

我即将在 IIS 上部署 helper asp.net 站点,需要 2-3 个页面并通过当前站点的 iframe 引用 helper 站点。新页面也将允许从当前站点下载一些动态内容。

可以吗? iframe 方法的缺陷是什么?

0 投票
1 回答
5767 浏览

legacy-code - 计算年百分比率(需要一些继承代码的帮助)

我正在制作一个为客户提供大致贷款报价的应用程序(它们稍后由其他后台系统计算)。我收到了我们正在为其制作计算器的金融公司的一些代码。我的问题是我不理解计算年百分比率(包括启动和月费)的代码部分。

这可能是他们正在使用的这种方法,但我无法确定: http ://www.efunda.com/math/num_rootfinding/num_rootfinding.cfm#Newton_Raphson

代码可以正常工作,但我真的很讨厌在我不完全理解和/或信任的代码上构建应用程序。最终的答复将是做同样事情的源代码,但带有注释和可理解的变量名称(我并没有真正例外:-) 欢迎所有想法 - 也许有人有指向解释它的文章的链接。

(请注意,我绝不是数学或金融奇才)

0 投票
1 回答
363 浏览

c# - C#细粒度权限:多内部系统、内网场景

我有以下情况:

  • 多个用户 (< 100)
  • AD 中的用户帐户(在不同的组下)
  • AD中的每个组对应一个内部部门;每个部门至少有一名主管
  • (有人可能会说)我们有交叉监督(有适用于一组组的主管角色,即,可能有一个主管实际上监督三个或组 - 正如 AD 中存在的那样)
  • 多个内部系统,其中一半基于 Web,均基于 .Net 框架构建

目前,我们有大多数基于桌面的系统通过文件夹权限对用户进行身份验证(使用 ClickOnce 部署在网络环境中,每个部署文件夹都由单个用户授予权限)。但是,这不适用于所有桌面系统;我们有两个使用自己的嵌入式身份验证系统,如下所示:

  • 系统 A 基本上由不同的数据表组成(只是在屏幕上显示一些数据)。

  • 所有的数据表实际上都是相同数据的不同分组;此数据是指特定帐户。

  • 每个帐户行包含列 {number, owner, type, data1, data2, data3, data4 ...};不同的分组基于数量/所有者/类型。

  • 所有数据(n)列都是数字(分组完成时显示每个分组的总和)

对于这个特定系统,数据列属于组。因此,AD Group1 中的用户可以看到列数据(1-5),Group2 可以看到列数据(7-9)等等。但是,每个组的主管可以看到他们组的一个额外列(Group1 的主管可以看到 data(1-5) 和 data6 - 我们称之为组的“特殊列”);有主管可以看到其他群组栏目(包括“专栏”或不包含),有普通主管可以看到所有栏目,也有用户可以看到所有非特殊栏目。一团糟。

为了解决这个问题,ClickOnce 是不够的;所以基本上开发团队所做的就是嵌入一个特定的授权程序集,它使用当前系统作为参数查询数据库(它支持其他系统)并返回一组列名作为结果;然后将这些结果用于仅检索特定用户列的另一个查询中。

这个遗留系统即将被更新的系统取代;经过大量考虑(包括可维护性 - 系统架构一团糟),因为它只是关于数据检索和以最少的处理显示,我们决定使用(一些)查询并重新编写数据检索逻辑。

最重要的是,大多数现有的基于 Web 的系统都是硬编码许可的 (if (sADLogin == "userA") {..}); 其中一些只依赖于发送给特定用户和手指交叉的超非直观 URL。伤心。

我们希望使用更抽象的方法来获得许可(这样我们就可以让每个系统都使用相同的身份验证提供程序)。使用 Web 服务/WCF 似乎是合适的(还考虑到我仍然需要验证基于桌面的系统和一些电子表格,可能使用名字);但是我找不到合适的模式或架构模型。Microsoft 文档中有一个 WCF Intranet 模式可以解决大部分问题 - 除了我不能将我的 Windows 组用作角色。有一个 Internet 模式(http://msdn.microsoft.com/en-us/library/ff650091.aspx),但是,它似乎可以处理角色问题(这就是我现在要做的),但是因为这是我第一次处理 WCF 安全问题

有任何想法吗?

谢谢,