`
sing100star
  • 浏览: 28983 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

重构代码的新的体会

阅读更多

重构代码的过程就是发现知识,探索规律的过程。

第一件事情,就是要发现隐藏在泥潭中的各种概念。然后把这些概念意义提炼出来、抽取出来。这个过程犹如发现团队所需要的人才一样。一旦发现某个概念,我们便可以了解到他们能做什么,不能做什么。

第二件事情,就是观察代码在做什么事情,已超过一个屏幕的代码,其中必然蕴含着各种缺陷,当我看到一个超 6 屏的代码时,我就想到一个孤独的程序员,他不愿与别人沟通,不会寻求帮助,他很累,但是他仍然要不断写代码。我所要做的事情就是引导他,让他学会与其他沟通,和别人一起工作。代码也是如此,分析每一个方法的职责,不要让函数越权,然后让适合的类完成恰当的事情。代码才会具有活力,也更容易吸引新的成员加入中。

第三件事情,就是给每一段代码,写多个测试用例以保证代码能够朝着正确的目标前进。正如我们给每个团队成员确立目标一样,有了目标,我们不会迷茫,可以衡量离目标距离。我想这就是测试驱动的精华。给自己的代码确立一个目标,让代码茁壮成长。

 

但是现实是如此的糟糕。传统的 dao service action 三层结果过于僵化。在验证业务测试的过程中,我们发现 service 过于强大,以至于每个业务逻辑需要依赖 service ,于此同时 service 又直接依赖于 dao 。使我们无法专心与目标。

于此同时又一个问题浮现在眼前。遗留系统的业务几乎集中在 action 层,系统难以改动,难以吸引新的成员加入。

遇到这些问题,我们怎么做?首先深呼吸一下,浏览代码,你会发现几乎同样的代码散落在各个角落,比如

 

 

If(null != id && !””.equals(id.trim()){
	//do xxxxxxxxxxxxxxxxxx
}

 

看到这里,你应该把这个方法提取出来放到 StringUtil 中,并名为 hasText(String str) 并编写一个 testCase ,保证正确。随后替换这些重复代码。这样做之后,你会发现,代码行少了许多,心情也好多了。干劲也更加足。

分享到:
评论

相关推荐

    《重构 改善既有代码的设计》之重构,第一个案例详解

    通过对本书第一章案例的学习,我们深刻体会到了重构的重要性以及其带来的好处。重构不仅仅是关于代码的优化,更是对软件架构的整体改进。通过不断地练习和实践,我们可以更好地理解和应用重构技术,从而成为一名更...

    《重构-改善既有代码的设计》电子书以及总结的书中源码

    《重构-改善既有代码的设计》是一本经典的软件开发著作,由Martin Fowler撰写,它深入探讨了重构这一关键的软件工程实践。重构是提高代码质量、可读性和维护性的重要手段,通过对现有代码进行一系列微小的改进,而不...

    Refactoring To Patterns《重构与模式》英文版

    该书旨在将重构技术和设计模式有效地结合起来,通过一系列具体的案例分析和实际代码示例来展示如何安全地进行设计变更。 #### 关键概念解析 **重构**是一种软件工程实践,指的是在不改变外部行为的前提下对现有...

    写好代码的十个秘诀——一个编程高手的新的体会!

    当发现代码有重复或难以理解的部分时,应考虑进行重构,使其更符合面向对象或其他编程原则。 此外,还有其他一些需要注意的点,如避免过多的参数传递,合理使用常量和枚举类型,以及保持代码布局整洁,这些都是编写...

    大三下学期3.2重构引导课 .pdf

    重构可以在多个时刻发生,例如在添加新功能时、修改错误时、或者在代码审查期间。然而,在代码无法运行时、项目接近最后期限时,可能不适合进行重构。 重构的基本技巧在于小步前进并频繁测试,确保在每次小的修改...

    读《修改代码的艺术》有感

    这篇博客文章可能是作者在阅读这本书后,结合自己的理解和实践,分享了一些关于如何有效工作于遗留代码的心得体会。 首先,"源码"这个标签暗示了文章会涉及代码级别的修改和优化。在遗留代码中工作时,理解现有代码...

    一次重构经历 双色球单式-验证.pdf

    - **我学到了什么**:通过这次重构,作者深刻体会到了良好的编程习惯的重要性,以及不断学习和改进的价值。 此次重构经历不仅是一次技术上的挑战,也是对个人编程技能的一次提升。通过不断的迭代和优化,最终实现了...

    重构—程序设计(改善既有代码的设计)

    中文版程序设计丛书,让你从以往的程序中得到自己以前没有体会到的代码忧化和设计层次上的提升。 任何一个编程人员都应该具备这样的素质,任何一种学习方法都不及这个它让你层次提升的速度。 相信自己、发掘自己

    自动生成代码

    9. **学习和使用经验**:博主可能会分享自己使用某款代码生成工具的心得体会,包括优点、缺点、适用场景和避免的陷阱。 通过阅读这篇博客,我们可能能了解到更多关于选择合适的代码生成工具、如何设置模板、以及...

    DSP基本实验心得体会

    ### DSP基本实验心得体会 #### 实验背景与目的 在数字信号处理(DSP)的学习过程中,进行内插实验是一项重要的实践活动,旨在帮助学生理解和掌握信号重建的基本原理和技术。内插技术通常用于提高信号的质量或者...

    PerCM个人代码管理软件

    我这里需要不断地对代码进行重构,并且做出有足够挑战价值的工作。 经过一段时间的修改,现在代码很糟糕,是到了改对其进行修整的时候了。好看的代码,将是更为宝贵的财富。更何况这里编写的是用于资料统计的工具了...

    关于那些阅读源代码技巧

    首先,阅读源代码的目的可以多种多样,包括纯粹为了学习、添加新功能、重构代码以及修复Bug。不同的目的决定了阅读源码的不同心态和方法。比如,如果是为了学习而去阅读源码,往往可以保持较为放松和愉快的心情,而...

    测试驱动开发.pdf测试驱动开发.pdf

    TDD可以提升开发者对代码质量的信心,并且在需要修改或重构代码时,能够更放心地进行,因为有自动化的测试集作为保障。 测试驱动开发在极限编程(Extreme Programming,简称XP)中占据核心地位。极限编程是一种软件...

    个人工作心得体会.zip

    4. **代码质量和重构**:编写可维护、可扩展的代码是IT专业人员的基本功。作者可能分享了关于代码审查、单元测试、重构和遵循最佳实践的心得。 5. **团队协作与沟通**:在IT项目中,团队合作至关重要。作者可能介绍...

    仿真实验,仿真实验心得体会,matlab源码.zip

    2. **调试与优化**:在源码执行过程中遇到的问题和解决方法,如错误排查、性能优化、代码重构等,都是心得体会的重要组成部分。 3. **结果分析**:实验者可能描述了如何解读仿真结果,比较实际与预期结果的差异,...

Global site tag (gtag.js) - Google Analytics