1、重复代码(Duplicated
Code):一个以上的地方看到相同的程序结构,那么当可肯定:设法将他们合而为一,程序会变得更好;
2、过长函数(Long Method):一个较长的函数应该要设法将其拆成数个小的函数,越长的程序将让人越难以理解;
3、过大类(Large Class):过大的类中往往有太多的实例变量和重复代码,你要做的就是提炼它们,消除重复代码和过长的函数,尝试将5个100行代码的函数提炼成5个10行的函数和10个2行的函数,必要的话根据客户的使用方式提炼出接口,这可以帮助你看清楚如何分解这个类;
4、过长参数列(Long
Parameter List):太长的函数参数列会让人无法理解和难以使用,必要时可以将所需的大量参数制造成一个参数对象;
5、发散式变化(Divergent
Change):如果某个类经常性因为不同的原因在不同的方向上发生变化就叫发散式变化,比如新加入一个数据库我需要修改类中的3个函数,新加入一个工具我需要修改类中的4个函数,那么你应该将这个类拆成两个,一个处理数据库,一个处理工具,那么每个类只会因为一个方向的变化而产生变化;
6、散弹式修改(Shotgun
Surgery):与发散式变化相反,如果你修改一处代码会导致许多不同的类也需要相应的修改,那么你应该要考虑是不是移动那些类,将其放进同一个类中了;
7、依恋情节(Feature Envy):如果一个函数对某个类的兴趣高过对自己所属类的兴趣,例如某函数为了计算某值调用了另一个类中的半打取值函数(getting method),那么你应该考虑是不是把这个函数直接移动至另一个类中了;
8、数据泥团(Data Clumps):你经常可以看见有多个不同的类中存在着相同的值域,找出这些值域的出现点,提炼到一个新的独立对象中去,这样可以缩短参数列简化函数的调用动作。
9、基本型别偏执(Primitive
Obsession):将基本的数据按照对象的防止建立对应的类来存放它们,类似于结合数值和币别的money
classes,含一个起始值和一个结束值的range classes,电话号码或邮政编码等等的特殊Stings。你可以将原本单独存在的数据值替换为对象,从而走进对象的世界。后面将会详细介绍有效的处理方法。
10、switch惊悚现身(Switch Statements):大多数时候都尽量不要使用switch,一看到它你就应该考虑以多态来替换它,这样可以让你的代码更加优雅。
分享到:
相关推荐
笔记的第1-7天可能侧重于介绍重构的基本理论,包括重构的意义、何时进行重构以及如何衡量重构的效果。作者可能会讲解软件设计原则,如开闭原则、单一职责原则等,这些都是重构时需要遵循的重要指导方针。 8-14天...
《重构商业:产业互联网时代的商业模式重构》读书笔记模板.pptx
《从跟随到领先:H为管理体系重构之路》读书笔记.pdf
《从跟随到领先:H为管理体系重构之路》读书笔记.docx
《从跟随到领先:华为管理体系重构之路》读书笔记x.pptx
《从跟随到领先:H为管理体系重构之路》读书笔记.pptx
《重构笔记》主要探讨的是软件开发过程中的一个重要实践——重构,它是提高代码质量、可维护性和可读性的重要手段。重构是指在不改变代码外在行为的前提下,对代码进行修改,以改善其内部结构。这一过程可以是局部的...
重构的益处多样,包括改善软件设计,使代码更易于阅读和理解,帮助定位和修复bug,以及提高编程效率。重构应该成为开发过程中的常态,特别是在添加新功能、修复错误或代码审查时,都是进行重构的好时机。当发现代码...
个人读书笔记,学习共享,希望每个苦恼于代码一坨坨混乱不堪的程序员都能学习. * 整洁代码的意义? 可读性,可维护性。 * 如何写出整洁代码? 1.只做一件事 2.不重复 3.有表达力 * 整洁代码的态度要求,要遵守...
读书笔记:重构中一个以高性能、高效率、高兼容性和多功能为目标、多框架平台支持和兼容的Pixiv聊天机器人。
《重构-第3章 代码的坏味道》是软件开发领域的一本经典著作,由Martin Fowler所著。这本书深入探讨了如何识别并消除代码中的不良设计模式,以提高代码质量、可读性和可维护性。在第三章中,作者详细列举了多种"代码...
下面将详细解读这个领域的核心知识点,并基于"代码质量-读书笔记"的内容展开讨论。 首先,我们要理解什么是代码质量。代码质量不仅仅关乎代码的正确性,更包括其可读性、可维护性、可扩展性等多个方面。良好的代码...
在当今时代,互联网金融已不再是陌生的话题,而是深深地融入了我们的日常生活之中。在互联网技术的推动下,金融行业的传统模式正经历着前所未有的变革。特别是众筹作为一种新兴的金融模式,正在引领着互联网金融的...
### 《Python编程金典》读书笔记知识点梳理 #### 1. 绪论 绪论部分通常会介绍Python的历史背景、特点以及为什么选择Python作为学习和使用的编程语言。此外,还会涉及Python与其他编程语言的区别,以及它在不同领域...
### PRML读书会笔记知识点概览 #### 一、引言 《Pattern Recognition and Machine Learning》(PRML)是一本经典的机器学习教材,由Christopher M. Bishop撰写。本书以其全面性和深度著称,在机器学习领域内被视为...
PDF格式的书籍可以在不同的设备上阅读,易于分享和笔记,为读者的学习和使用提供了极大的便利。然而,技术书籍的价值不仅在于阅读,更在于实践。因此,建议读者在阅读的同时,将理论知识与实际编程相结合,通过具体...
综上所述,英语口译笔记法是一项综合性的技能,它涵盖了符号系统、信息筛选、时间管理、结构化记录、回顾与重构、练习与反馈以及心理素质等多个方面。通过系统地学习和实践,口译员可以在工作中更高效地完成翻译任务...
总之,这个C++读书笔记程序及源码资源为学习者提供了宝贵的实践材料,通过阅读和理解源码,不仅可以深化对C++语言的理解,还能掌握数据库和界面编程的核心技能。同时,它还提醒我们,理论知识与实际项目相结合是提升...
高桥政史通过自己的经验总结,可能还会分享一些使用方格笔记本的具体案例,以及如何将这种笔记本应用到不同的学习场景中,如课堂笔记、会议记录、读书笔记等。 对于学习方法,作者可能会介绍一些高效笔记技巧,例如...