- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要一些有关如何使用遗留代码的建议。
不久前,我接到的任务是向报告应用程序添加一些报告。 2005 年用 Struts 1 编写的。没什么大不了的,但是代码相当困惑。没有使用Action形式,基本上代码就是一个巨大的action,里面有很多if-else语句。此外,这里没有人具备这方面的功能知识。我们只是碰巧在契约(Contract)中包含了它。
我对此很不满意,不知道如何继续。这个应用程序是隐形的:很少有人(但都非常重要)使用它,所以他们不在乎我在阅读代码、标准等时眼睛是否流血。
但是,我觉得技术债是要还的。我应该如何进行呢?继续沿着 if-else 的道路走下去,还是尝试以正确的方式满足此要求,而忽略项目的其余部分?冒着截止日期的风险开始大规模重构?
最佳答案
遗留代码是一个大问题,我确信人们不会同意!
我想说,开始一次大的重构可能是一个错误。
重大重构意味着需要做大量工作才能使其按照现在的方式运行。如果您选择自己承担这件事,那么您所做的事情不会有太多的可见度。如果它有效,没有人会知道你写的工作时间。如果它不起作用,并且您最终得到了整洁的代码,但添加了一些错误(以及谁曾经编写过没有添加一些错误的代码),那么您将得到“为什么要进行此更改”类型的问题。
我目前即将完成一个基于 10 年历史的代码库的项目。一路上我们已经做了很多重构。但对于我们所做的每一次重构,我们都可以证明“这一特定的改变将使我们现在正在执行的实际任务变得更容易”。而不是“这对于 future 的工作来说现在更干净”。我们发现,当我们处理代码、解决我们实际遇到的问题时,我们已经清理了很多代码,但没有破坏它(太多)。
我想说,在您进行大量重构之前,您将需要自动化测试,因此您会很高兴您已将其正确地重新组合在一起!
大多数重构都是为了“使维护和 future 的开发更容易”。你的项目听起来 future 不会有太多的发展。这限制了重构给公司带来的优势。
关于refactoring - 关于使用遗留代码的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4760074/
我经常从专业人士的博客中听到一些事情,比如一有机会就重构你的代码。究竟是什么?用更简单和更少的行重写您的代码?这样做的目的是什么? 最佳答案 Refactoring代码是一个清理代码、减少困惑并提高可
我的代码非常困惑,当前的修订版几乎完成了,这意味着我想要的此修订版/冲刺的所有功能都已完成。 我应该按原样完成此修订并稍后重构它还是应该立即重构它? 最佳答案 这个没有“正确”的答案,真的是轻重缓急的
在我的部门,我们目前正在使用 ReSharper 4.0,并决定是否在下周发布时升级到 4.5。我个人是 ReSharper 的忠实粉丝,但我的一些同事指出,他们一直在使用来自 DevExpress
关于 TDD 中的红色、绿色、重构 (RGR) 工作流程的文章建议您在需要时通过编写“有罪的”代码来快速实现绿色(Kent Beck 举例说 TDD 中的“快速绿色为所有罪恶找借口”),然后重构以改进
我正在使用 clojure-maven-plugin。当我执行 cider-connect 时,我收到此消息“警告:clj-refactor 和 refactor-nrepl 不同步。它们的版本分别为
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 4年前关闭。 Improve t
我的开发环境是 Visual Studio 2010,安装了 Resharper 5.1.3000.12 和 AnkhSVN 2.1.10129.17。 我的理解是,当对文件执行 Refactor->
我想使用重构浏览器以编程方式将实例变量添加到现有类: | theClass className | className := #MyClass. theClass := (RBClass existi
你喜欢你的 CRUD 程序吗?代码生成、框架驱动还是手动编写? 最佳答案 我对代码生成器的经验是它们是一个好的开始,但是在更改完成后,我通常想手动重写模块。当然,这可能会成为维护问题。但这真的变成了“
考虑: if (something) { // Code... } 安装 CodeRush 后,建议执行以下操作: if (!something) { return; } // Cod
我想生成一个序列,稍后我可以对其进行(映射)。它应该看起来像这样: ((0 0) (0 1) (0 2) (0 3) ... (7 7)) 为了产生如此简单的结果,我现在必须执行的这段代码看起来非常非
我对编程还是很陌生,我想编写尽可能干净的代码。 这听起来像是一个愚蠢的问题,但我应该按什么顺序排列我的方法?功能上当然没关系,但布局却有很大的不同。假设我们在一个类中有以下代码: -(void)tes
是否有任何实证研究表明重构(或缺乏重构)对开发团队生产力的影响? (注意:我只是在寻找经验数据——根据我自己的经验,我个人知道重构是有效的,但我想知道是否有一些确凿的数据来支持这种说法)。 最佳答案
假设我有一个包含一堆相互依赖的函数的库,这个库太大了,我想把它拆分。有哪些算法可以找到合适的分区? 简单的例子,里面有四个函数:alpha,beta,gamma,delta。 beta 和 gamma
我正在阅读 Fowler 的“重构”,第 1 章。 在第 51 页上,您看到一部附有价格等级的电影。第一种方法是:使用继承来创建多部电影,每部电影都有其独特的 getCharge 方法来计算价格。在第
假设您在某个地方工作,其中对源代码的每次更改都必须与错误报告或功能请求相关联,并且无法对该政策进行改革。在这样的环境中,处理代码重构(即改进代码但不修复错误或添加功能的更改)的最佳方法是什么? 编写错
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: What's the best way to do a bulk namespace rename on a lar
我重构了我和其他人的代码 一直 . 当我在一个分支而不是在 Trunk 中工作时,这有时会导致一些非常痛苦的合并,特别是如果我不定期合并回 Trunk(分支上的代码慢慢地从 Trunc 移开,当人们修
我作为程序员工作的 IT 部门围绕着 30 多年的代码库(Fortran 和 C)。代码状况不佳的部分原因是 30 多年的临时考虑不周的更改,但我也怀疑其中很多与进行更改的程序员的能力有关(顺便说一句
为了能够维护我编写的代码,我必须很好地命名变量,记录我的代码,确保没有重复发生,确保抽象在起作用,从而避免黑客攻击..并谨慎地注释,因为注释经常打断我阅读本书的内容。码。 但是我见过的许多其他代码库更
我是一名优秀的程序员,十分优秀!