重构第三章-代码的坏味道

3.1 Duplicated Code(重复代码)

 

3.2 Long Method(过长函数)

    让小函数容易理解的真正关键在于一个好名字。

    每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途(而非实现手法)命名。

    条件表达式和循环常常也是提炼的信号。

 

3.3 Large Class(过大的类)

 

3.4 Long Parameter List(过长参数列)

 

3.5 Divergent Change(发散式变化)

    一个类受多种变化的影响

 

3.6 Shotgun Surgery(霰弹式修改)

    一种变化引发多个类相应修改

 

3.7 Feature Envy(依恋情结)

 

3.8 Data Clumps(数据泥团)

 

3.9 Primitive Obsession(基本类型偏执)

 

3.10 Switch Statements

 

3.11 Parallel Inheritance Hierarchies(平行继承体系)

 

3.12 Lazy Class(冗赘类)

 

3.13 Speculative Generality(夸夸其谈未来性)

 

3.14 Temporary Field(令人迷惑的暂时字段)

 

3.15 Message Chains(过度耦合的消息链)

 

3.16 Middle Man(中间人)

 

3.17 Inappropriate Intimacy

 

3.18 Alternative Class with Different Interfaces(异曲同工的类)

 

3.19 Incomplete Library Class(不完美的库类)

 

3.20 Data Class(纯稚的数据类)

 

3.21 Refused Bequest(被拒绝的遗赠)

 

3.22 Coments(过多的注释)

   当你感觉需要撰写注释时,请先尝试重构,试着让所有注释都变得多余。

 

参考资料:

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

posted @   diameter  阅读(117)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示