`
ojava
  • 浏览: 2185 次
  • 来自: 烟台
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

我的重构哪里不规范?

阅读更多
在项目中,由于没有经过大脑思考,结果产生了流水账形式的代码。

流水账代码:就是根据是详细设计书把整个业务的流程顺序完成到一个类的一个方法中,
而没有根据功能划分成若干个小的方法。

这种流水账式的代码非常不容易测试,因为详细设计中已经将设计细化到对字符串如何操作了,
所以从这样的设计书的高度看业务,简直就是乱七八糟!

所幸,还有重构这个工具,就重构,发现很多的局部变量,因为在多处改变值,而且后续还要使用,
所以只能把这种变量,提到类变量的高度,好多啊。

这样一来,
1。如果要用junit测试,还需要再给相应的提出来的变量加上set,get方法。
2。因为重构出来的方法都是private的,所以测试的时候还要用反射的方法。

上面这两种情况可以避免吗?这是一个问题。
还有一个对自己的警告:小心费力不讨好!
分享到:
评论
7 楼 抛出异常的爱 2007-06-15  
gigix 写道
抛出异常的爱 写道
不过对于拿不准的,写出来出错看不出来,找不到错的
还是要写中间测试帮助编码

nope...
if you make any mistake during refactoring and break any test,
and if you can't fix it immediately,
you should revert to previous successful step immediately.
(that's why you should check in as frequently as you can.)

那么不动老的代码。。。
写新方法,新的测试,
所有需要的方法都写完了(小步前进?)
再一次把老的代码删去
用新的代码顶上?
6 楼 gigix 2007-06-15  
抛出异常的爱 写道
不过对于拿不准的,写出来出错看不出来,找不到错的
还是要写中间测试帮助编码

nope...
if you make any mistake during refactoring and break any test,
and if you can't fix it immediately,
you should revert to previous successful step immediately.
(that's why you should check in as frequently as you can.)
5 楼 抛出异常的爱 2007-06-15  
gigix 写道
First of all you should have tests for you original method.
During your refactoring those test should always pass.
So you don't have to test new (and quite possible private) methods/fields you extract out.
是的,不用再加测试了,先写着,
不过对于拿不准的,写出来出错看不出来,找不到错的
还是要写中间测试帮助编码
PS:如果要测试中间的private方法,可以写在主函数中一个
public XXX (){ return 你要测试的方法 ;}

PS:天啊。。。变的够快。。。认不出来了
4 楼 gigix 2007-06-15  
First of all you should have tests for you original method.
During your refactoring those test should always pass.
So you don't have to test new (and quite possible private) methods/fields you extract out.
3 楼 ojava 2007-06-15  
无设计,无定义(对每个类与方法),无规则,的重构。。。叶公好龙

这句话,一针见血!!!

刚学习测试,准备在项目中实践,结果发现自己的代码根本没有办法测试,因为这个巨大的方法太大,看不清要实现的业务是什么!
头脑中就是因为缺少测试的思想,才导致出现这样的问题,果然没有思想是不行的,亡羊补牢,现在晚了吗?
2 楼 抛出异常的爱 2007-06-15  
<br/>
<strong>ojava 写道:</strong><br/>
<div class='quote_div'>在项目中,由于没有经过大脑思考,结果产生了流水账形式的代码。<br/>
<br/>
流水账代码:就是根据是详细设计书把整个业务的流程顺序完成到一个类的一个方法中,<br/>
而没有根据功能划分成若干个小的方法。<br/>
<br/>
这种新式的代码非常不容易测试,因为详细设计中已经将设计细化到对字符串如何操作了,<br/>
所以从这样的设计书的高度看业务,简直就是乱七八糟!<br/>
<br/>
所幸,还有重构这个工具,就重构,发现很多的局部变量,因为在多处改变值,而且后续还要使用,<br/>
所以只能把这种变量,提到类变量的高度,好多啊。<br/>
<br/>
这样一来,<br/>
1。如果要用junit测试,还需要再给相应的提出来的变量加上set,get方法。<br/>
2。因为重构出来的方法都是private的,所以测试的时候还要用反射的方法。<br/>
<br/>
上面这两种情况可以避免吗?这是一个问题。<br/>
还有一个对自己的警告:小心费力不讨好!</div>
<br/>
<br/>
<br/>
无设计,无定义(对每个类与方法),无规则,的重构。。。叶公好龙
1 楼 Xiaohanne 2007-06-15  
面向接口不要面向实现,谢谢

相关推荐

    27丨理论一:什么情况下要重构?到底重构什么?又该如何重构?1

    重构是软件开发过程中的一个重要环节,它涉及到代码的优化、设计改进和质量提升,而不改变程序的外部行为。本文将详细探讨重构的目的、对象、时机和方法,帮助开发者理解和掌握重构的核心理念。 **重构的目的(Why...

    webui2重构规范

    **WebUI2重构规范** 在前端开发中,重构是一个至关重要的环节,它旨在提升代码质量、可维护性和可扩展性。WebUI2重构规范旨在为开发者提供一套清晰、一致的指导原则,确保项目的稳定性和效率。以下是根据标题、描述...

    加餐二丨设计模式、重构、编程规范等相关书籍推荐1

    在IT行业中,设计模式、重构和编程规范是提升软件质量、可维护性和团队协作效率的重要基石。以下是对标题和描述中提及的一些书籍的详细介绍: 1. **《设计模式》**:由Gang of Four(GoF)撰写,是设计模式领域的...

    网站重构,公用模板重构

    首先,重构是软件开发中的一个过程,它不改变软件的功能,而是通过改进代码结构和设计来提高其可读性、可扩展性和性能。在Web开发领域,重构通常涉及HTML、CSS和JavaScript的优化,以符合WEB标准和WEB2.0的原则。 ...

    解析重构利器与意图导向编程规范

    ### 解析重构利器与意图导向编程规范 #### 一、重构的重要性 重构是软件开发过程中不可或缺的一部分,尤其是在采用测试驱动开发(TDD)方法时。重构不仅能够提高代码的质量,还能增强程序的可维护性和可扩展性。在...

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

    重构是软件开发过程中一个至关重要的环节,它旨在不改变代码外在行为的前提下,改进代码结构,使之更易理解和修改。此书深入浅出地介绍了重构的概念、原则和实践方法,对于任何Java开发者来说,都是提升编码技艺的...

    .java代码重构

    在Java编程中,代码重构是一种常见的实践,尤其在大型项目中,为了保持代码的健康状态和持续优化,重构是必不可少的。 1. **重构的目的** - 提高代码质量:通过消除冗余代码,简化复杂的逻辑,使得代码更加清晰...

    java代码重构经验分享

    本文总结了 Java 代码重构的经验和技术规范,包括重构要求、重构的工作、代码的坏味道和异常处理。 重构要求 在进行代码重构时,需要遵守以下要求: 1. 安全第一,确保关键部分的代码正确无误,先做出 demo,各...

    jsoup和jtidy 对html操作,将不规范的html转换为xhtml

    在网页开发和数据抓取领域,处理HTML(超文本标记语言)文档时,经常会遇到不规范的HTML代码,这些代码可能由于各种原因如拼写错误、缺少闭合标签等导致解析困难。在这种情况下,jsoup和Jtidy这两个Java库就显得尤为...

    SQL应用重构 PDF

    《SQL应用重构》这本书主要探讨了如何通过优化SQL查询来提升数据库应用的性能和可维护性。在现代软件开发中,SQL是数据处理的核心语言,其效率和合理性直接影响到整个系统的运行效率。以下是对该书内容的详细解读: ...

    JAVA系统重构

    - **代码审查工具**:使用代码审查工具(如SonarQube、FindBugs等)来检测潜在的问题和不规范的编码习惯。 #### 六、总结 重构是软件开发过程中不可或缺的一环,它不仅能够提高代码质量和系统的稳定性,还能显著...

    重构 改善既有代码的设计.ppt,编程功底的体现,必修课

    《重构:改善既有代码的设计》是一门针对程序员和软件开发者的必修课程,它强调了在不改变软件功能的前提下,通过一系列系统性的方法优化代码结构,以提高代码的可读性和可维护性。重构是软件开发过程中不可或缺的一...

    重构你的Rails程式码

    ### 重构你的Rails程式码 在进行Rails版本升级时,重构代码是一个绝佳的机会。本文将深入探讨为何这是个好时机来进行重构,并提供一系列实用的方法帮助您优化代码。 #### 为什么这是一个好时机重构代码? 1. **...

    我的重构学习

    【重构】是软件开发中的一个重要概念,旨在改进代码的结构,提高代码的可读性和可维护性,而不改变其外部行为。在这个过程中,开发者通过一系列小型的修改逐步优化代码,而不是一次性进行大规模的改动,以降低引入...

    java代码重构经验总结

    在软件开发过程中,代码重构是一项重要的技能,它旨在不改变代码外部行为的前提下,改进其内部结构,从而提升代码质量和可维护性。本文将深入探讨Java代码重构的关键点,涵盖重构原则、重构技巧以及常见的代码“坏...

    重构改善既有代码的设计第2版.pdf

    2. 重构的原则:包括何谓重构、两顶帽子、为何重构、何时重构、重构的挑战、重构、架构和YAGNI、重构与软件开发过程、重构与性能、重构起源何处、自动化重构等。 3. 代码的坏味道:包括神秘命名、重复代码、过长函数...

Global site tag (gtag.js) - Google Analytics