Martin Fowler和Kent Beck指出的代码22种坏味道

重构的定义

  1. 名词形式:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

  2. 动词形式:使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。

重构的好处

  1. 重构改进软件设计
  2. 重构使软件更容易理解
  3. 重构帮助找到bug
  4. 重构提高编程速度

代码的22种坏味道

  1. 重复代码(Duplicated Code)
  2. 过长函数(Long Method)
  3. 过大的类(Large Class)
  4. 过长参数列(Long Parameter List)
  5. 发散式变化(Divergent Change)
  6. 散弹式修改(Shotgun Surgery)
  7. 依恋情结(Feature Envy)
  8. 数据泥团(Data Clumps)
  9. 基本类型偏执(Primitive Obsession)
  10. switch惊悚现身(Switch Satement)
  11. 平行继承体系(Parallel Inheritance Hierarchies)
  12. 累赘类(Lazy Class)
  13. 夸夸其谈未来性(Speculative Generality)
  14. 令人迷惑的暂时字段(Temporary Field)
  15. 过度耦合的消息链(Message Chains)
  16. 中间人(Middle Man)
  17. 亲昵关系(Inappropriate Intimacy)
  18. 异曲同工的类(Alternative Classes with Different Interfaces)
  19. 不完美的库类(Incomplete Library Class)
  20. 纯稚的数据类(Data Class)
  21. 被拒绝的遗赠(Refused Bequest)
  22. 过多的注释(Comments)

《重构-改善既有代码的设计》一书才刚开始看,以后在实际生产中要牢记上述几条,刻意练习,才能形成习惯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kent BeckMartin Fowler、Michael C. Feathers、Robert C. Martin、Joshua Kerievsky、Gerard Meszaros等大师们的传世著作为如何提升编程技艺和代码质量提供了思想和原则上的指导,本书则为实践和融合这些思想、原则提供了过程和方法上指导。本书通过编程操练的方式讲述了如何用TDD(测试驱动开发)的方法来驯服烂代码,通过结对编程的对话形式展示了驯服烂代码的完整过程,将驯服烂代码所需要的思想、态度、习惯、方法和技艺完全融入编程操练实践中,是目前最具实践指导意义的驯服烂代码的著作。, 全书共20章,分为四个部分:第一部分(第1~10章)首先通过测试后行和测试先行两种方法完成了一个名为“码农酒店”(世界时钟)的编程操练题目,然后对这两种方法进行对比,引出了烂代码的概念,读者能非常直观看出哪一种方法更容易写出烂代码。第二部分(第11~15章)通过一个名为Trivia(答题闯关游戏)的经典编程操练题目详细讲述了驯服一段烂代码的过程,首先讲解了代码腐臭的识别和记录,然后讲解了如何通过一系列的重构来清除这些腐臭。第三部分(第16~18章)通过三个编程操练题目详述了编写真正的单元测试的过程,首先讲解了用提取接口的办法编写Stub来进行单元测试,以及用子类化并覆写方法的办法编写Mock来进行单元测试,然后讲解了如何将被测类与文件系统之间的这种不适用于单元测试的耦合,转化为被测类与字符串之间这种适合与单元测试的耦合。第四部分(第19~20章)总结了驯服烂代码的步骤及方法,首先讲解了TDD开发方法的一种实现:I-EPP-TR方法,该方法中的全面重构的概念对传统的重构概念进行了扩展,然后讨论了如何才能将前面所讨论的良好的编程方法形成习惯并固化下来。
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
### 回答1: Martin Fowler是一位资深的软件工程师和重构领域的权威,他是《重构:改善既有代码的设计》的作者。他的这本书是现代软件开发中关于重构的经典之作,演示了如何通过重构提高代码质量和可维护性。 针对Martin Fowler重构的epub版本,我认为由于电子书可以方便地进行修改和更新,可以通过重构来改进书籍的质量和阅读体验。具体来说,以下是一些可能的重构方法和目标: 1. 改善代码结构:通过调整章节和段落的顺序,优化内容的逻辑结构,使读者能更容易地理解和消化书中的知识。 2. 优化代码风格:检查并统一使用一致的格式和命名规范,使整个电子书的风格统一、易读。 3. 提升可维护性:识别和重构书中重复的内容或主题,并将其合并或抽取为可重复使用的模块,以减少冗余并改进维护效率。 4. 增加交互性:通过添加链接、图表、代码片段等元素,提供更多参考和实例,使读者能更直观地理解和应用重构技巧。 5. 修复错误和不精确的描述:通过修复错误和澄清模糊的描述,提升书籍的准确性和可靠性。 总之,将Martin Fowler重构书籍转换为epub格式并进行重构有助于改进读者的阅读体验,并使书籍更加易读、易懂和易用。重构不仅仅是应用于代码,它也适用于提升文档和书籍的质量,使其能够更好地满足读者的需求。 ### 回答2: Martin Fowler是软件开发领域的知名专家,他对重构方法论的贡献得到了广泛的认可和赞赏。他的著作《重构——改善既有代码的设计》是软件开发领域得一本经典之作,是指导开发人员如何改进既有代码质量的重要参考资料。今年,Martin Fowler将他的《重构》一书发布为epub格式,这将为读者提供更方便的阅读方式,并且可以在不同的电子阅读设备上进行阅读。 这本epub版的《重构》将保留原书中的核心理论和实践原则,同时结合电子书的优势,添加了更好的排版和导航功能。读者在使用电子阅读设备阅读时,可以根据自己的喜好调整字体大小和样式,从而提升阅读的舒适度。此外,epub版还可以自动调整页面布局,适应不同尺寸的屏幕,使得阅读体验更加便捷。 另外,这个epub版的《重构》还将添加更多的交互和导航功能。比如,读者可以通过目录快速跳转到感兴趣的章节或小节,也可以在书中进行全文搜索,方便查找相关内容。书中还将包含丰富的示例和案例,以帮助读者更好地理解重构的概念和应用。 总之,Martin Fowler发布的epub版《重构》将为读者提供更加便利和丰富的阅读体验。不仅可以随时随地地进行阅读,同时还可以利用其交互和导航功能更好地学习和实践重构方法。无论是软件开发人员还是对软件设计感兴趣的读者,这本epub版的《重构》都将成为他们不可或缺的学习资料。 ### 回答3: 马丁·福勒(Martin Fowler)是一位知名的软件开发专家和架构师,他是《重构》这本经典著作的作者之一。他在书中详细介绍了软件开发中的重构概念和技术,并为开发人员提供了一套实用的方法和技巧,使得他们能够改善现有代码的质量和可维护性。 重构是指在不改变现有功能的情况下,通过修改代码的内部结构和设计来提高代码的质量和可读性。福勒提出了一系列的重构方法,包括提取方法、内联方法、重命名变量等等。他强调通过频繁的重构来保持代码的整洁和可维护性,从而降低开发过程中的风险和成本。这些重构方法在业界得到广泛的应用,并被视为提高代码质量的重要工具。 福勒选择将《重构》这本书制作成EPUB格式,使得读者可以在电子设备上方便地阅读。EPUB是一种常见的电子出版格式,可以自适应不同设备的屏幕大小,并支持字体、图像和布局等多种自定义设置。这使得读者可以根据自己的喜好和需求来调整阅读体验,提高学习效果。 通过将《重构》制作成EPUB格式,福勒希望更多的开发人员和软件架构师能够方便地获取这本信息丰富的书籍。EPUB格式的优点在于其便携性和可定制性,读者可以随时随地地学习和实践重构技术。这对于推动软件行业的技术进步和质量提升有着积极的影响。 总的来说,福勒将《重构》制作成EPUB格式是为了更好地传播重构的理念和方法。这种格式的选择使得读者能够更便捷地学习和应用重构技术,提高软件开发的效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值