22个代码的坏味道
22个代码的坏味道
何时应该重构呢
重复代码
重复代码的恶心之处就在于你每次修改都可能需要修改多处
过长函数
程序愈长愈难理解。每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途命名
过大的类
这个类做了太多的事情了,它太累了
过长参数列表
一般是不建议超过五个。太长难以理解而且不美观
发散式变化
如果一个类经常因为不同的原因在不同的方向上发生改动,那就是发散式变化。也就是说这个类内聚性不好,职责太多
霰弹式修改
如果每次遇到某种变化,都需要在许多类内作出小改变,那就是霰弹式修改。需要合并成一个类。
依恋情节
类的函数对某个类的兴趣高过对自己所处类的兴趣
数据泥团
不同类中含有相同的字段
基本类型偏执
死活就是要用基本类型,不肯封装成可读性比较高的类
switch语句
swich语句的问题在于重复,如果对一个字段在多处使用了多个switch,那后面修改时就要修改多处。只使用一次switch是可以的
平行继承体系
当你为某个类增加一个子类,必须也为另一个类增加一个子类,导致不必要的修改。
冗赘类
没啥卵用或者用处很小的类
夸夸其谈未来性
属于过度优化。把未来可能改动提前编码了
令人迷惑的暂时字段
类中某个实例变量仅为某种特定情况而设,大多数情况用不上
过度耦合的消息链
消息链太长,牵一发而动全身。
中间人
中间人拿钱不干事,只管传递消息,应该绕过它
狎昵关系
两个类交互过于亲密,花费太多时间去使用互相的数据
异曲同工的类
不同的类干着相似的活
不完美的第三方库
你的功能需求超出这个库的能力了
纯数据类
类没有相关的操作,只有读写数据的函数
被拒绝的遗赠
子类继承了超类的行为,但是不愿意支持超类的接口,说明这个子类不孝顺,应该另立门户。
过多的注释
指一个函数写太多注释。应该根据注释分割成不同的函数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧