`
leeseon
  • 浏览: 104113 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

最难的重构!

阅读更多

如愿以偿用公司的钱买到了Ref++的一个单用户的License,现在天天用它,这才发现它最管用的一个功能,不是我最常用的rename与extract method,而是encapsulate member variable,毕竟其它的功能用手做起来也不算麻烦,只是这个操作还是用机器来做好一些。

我现在重构的项目,是我所遇到的最难重构的一个项目:里面的数据结构都是“裸露”的,只在几个有限的类中对这群数据做着各种各样的操作,类都大的没有办法,更可怕的是函数也很大。最离谱的是居然有一个90多行的巨大宏,原因只是因为有些操作懒得用函数来做,结果搞成宏了之后,越改越大。当然其实这样的直接原因是因为数据没有用类来封装,只是散乱的一团,如果要做一件事,所以总需要有太多的做为准备的临时变量,所以函数都基本上很大,而且拥有30个左右的临时变量。

而且,函数的重构还是好说,但是对于这个数据的整体上的重构太累了,因为这种好比如全局变量般的结构体与数组,是所有函数的操作场,只要改动一点点,就会有无数个函数需要你来调整

噢,天!我不想再说了,反正这个东东让我头大了一个多月了,最近总算是好一点,唉。

分享到:
评论

相关推荐

    重构你的Rails程式码

    复杂的代码通常更难维护,也更容易引入错误。使用工具如 `reek` 或 `cyclo` 可以帮助分析并降低代码复杂度。 6. **静态代码分析:** 利用静态代码分析工具(如 `Rubocop`、`Brakeman`)来检查潜在的问题,这有助于...

    三位重构算法

    传统的路面三维重构大多数仅反映了路面的部分信息,很难建立出立体直观的三维 路面模型"真正的路面包括纹理!平整度!车辙!.路型!高程!里程等信息"本文基于 生成了可视化的三维数字路面,为道路的养护维修提供了有效的...

    PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数

    经常重构可以帮助代码保持良好的结构和清晰性,保证代码能够被正确地放置在其最恰当的位置。此外,重构可以帮助开发者更容易地理解程序的工作原理,更快地找到潜在的bug,从而提高编码速度。 3. 重构的难点和风险 ...

    何谓重构,为什么要重构?

    - **设计变更**:有时,某些设计上的改动很难仅仅通过重构来实现,可能需要重新考虑整个架构。 ### 结论 重构是软件开发中不可或缺的一部分,它不仅能提高代码的质量,还能加速开发进程。通过遵循最佳实践和使用...

    人工智能支配自动驾驶受“电车难题”诘难吗--一个重构“伤害伦理”的视角.pdf

    "人工智能支配自动驾驶受“电车难题”诘难吗--一个重构“伤害伦理”的视角" 本文尝试从“伤害伦理”入手,基于“道德主义”立场对“人工智能”背景下的“电车难题”进行进一步的解析,并且指出那种可能的“技术主义...

    SourceMonitor: 代码重构的小工具,大用场

    高复杂度通常意味着更难理解和调试。 3. **覆盖率报告**:SourceMonitor可以生成详细报告,显示代码覆盖情况,帮助开发者识别未被充分测试的部分,从而改进测试策略。 4. **文件和类结构可视化**:通过树形视图,...

    重构-改善既有代码的设计

    - **缺乏测试覆盖**:没有足够的单元测试支持,重构过程中的问题很难被及时发现。 - **团队协作问题**:如果团队成员之间沟通不足,可能会导致多人同时修改同一段代码,增加合并冲突的风险。 #### 6. 重构工具与...

    基于压缩感知的信号重构算法

    在基于压缩感知的信号重构算法中,OMP 算法是其中最经典的一种。下面我们将对基于压缩感知的信号重构算法进行详细的介绍。 压缩感知理论的出现是为了解决传统信号处理方法中的某些问题。传统信号处理方法通常需要...

    可重构路由器研究的现状与展望.pdf

    文章还比较了硬件实现、软件实现和可重构系统的性能差异,指出硬件实现方式处理速度快但开发难、成本高;软件实现方式灵活但性能较低;而可重构系统则结合了前两者的优点,有较好的可升级性。 可重构路由器研究的...

    基于最小生成树算法的配电网故障隔离及重构

    受煤矿配电网区域规模的约束,传统启发式搜索很难快速定位配电网故障,无法实现配电网故障自愈。以煤矿典型配电网为研究对象,采用最小生成树算法建立相关数学模型对其进行故障定位及重构。将煤矿配电网内的电源、负荷...

    重构_改善既有代码的设计

    - **代码难以理解**:如果一段代码很难读懂,那么很可能是因为命名不当或者结构复杂,此时可以通过重命名变量、分解方法等方式来改进。 - **频繁修改**:经常被改动的代码通常意味着它承担了过多的责任,可能需要将...

    一种可重构的处理器架构.pdf

    然而,运算部件级别的重构虽然能提供更高的灵活性,却存在用户程序移植难、开发效率低以及验证过程复杂等问题。基于这些挑战,本文所提出的可重构处理器架构选择放弃基于运算部件的重构方式,转而采用静态可重构方法...

    Designing.with.Web.Standards.2nd.Edition.Jul.2006 (网站重构 英文 第二版)

    Designing.with.Web.Standards.2nd.Edition.Jul.2006 (网站重构英文第二版),其它地方很难下到的,给点分吧,我穷人.

    高效重构 C++ 代码(中)

    一旦顺序不当,很容易让重构失去安全性,或者干脆让某些重构变得很难完成.  本节是个人对重构手法的整理和提炼,帮助大家跳出细节,快速掌握重要的重构手法并且能够尽快在自己的重构实践中进行使用.随后我们整理了...

    基于动态可重构FPGA的容错技术研究.pdf

    传统的硬件技术很难解决这一问题,因为它们无法适应这种高辐射环境。 针对上述问题,本研究提出了基于动态可重构FPGA的容错技术,这种技术具有独特的灵活性,可以根据需要对芯片进行编程和重构。动态可重构FPGA可以...

    重构与模式.pdf

    由于提供的文件内容【部分内容】中大部分文字出现乱码且信息不完整,很难从中提炼出有价值的关于“重构与模式”的知识点。然而,依据文件信息中提供的标题和描述,并结合文件内容中唯一清晰的段落“INCIDENTRESPONSE...

    重构-改善既有代码的设计+中文版

    重构-改善既有代码的设计+中文版>>经典书籍,会编程不难,难的是编好程!

Global site tag (gtag.js) - Google Analytics