博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编写高质量代码改善C#程序的157个建议——建议148:不重复代码
阅读量:4632 次
发布时间:2019-06-09

本文共 937 字,大约阅读时间需要 3 分钟。

建议148:不重复代码

 如果发现重复的代码,则意味着我们需要整顿一下,在继续前进。

重复的代码让我们的软件行为不一致。举例来说,如果存在两处相同的加密代码。结果在某一天,我们发现加密代码有个小Bug,然后修改了它,却又忘记了角落里的某处存在着一份相同的代码,那么这个Bug就会隐藏起来。

让我们重现这个例子:

void PagerEncrypt()        {            //加密代码        }        void AnswerEncrypt()        {            //相同的加密代码        }

在这段代码中,方法PagerEncrypt和AnswerEncrypt使用了相同的加密代码。在实际使用过程中,这两个方法可能不会靠得如此近,它们甚至可能在不同的命名空间下。糟糕的是,重构人员在进行重构的时候,没有发现AnswerEncrypt,于是代码结构变成了:

void PagerEncrypt()        {            Encrypt("密文");        }        void AnswerEncrypt()        {            //相同的加密代码        }        string Encrypt(string intput)        {            string output = string.Empty;            //加密代码            return output;        }

  在开发人员在Encrypt中发现Bug并修正它后,两端原本相同的加密代码变成不同的了。一份值正确的,一份是错误的。而对于这些代码的调用者来说,他看到了类似的方法接口,却没想到其内部实现是完全不一样的。这增加了调用者的排错难度。

所以,对于开发者来说,务必注意不要让代码中出现相同的片段,这不仅是为了代码的整洁,还可以避免更多难以察觉的Bug的出现。

 

 

 

转自:《编写高质量代码改善C#程序的157个建议》陆敏技

转载于:https://www.cnblogs.com/jesselzj/p/4753681.html

你可能感兴趣的文章
七牛云上传与删除图片
查看>>
MyEclipse2016添加外部的maven插件
查看>>
51nod 1002 数塔取数问题
查看>>
jquery删除内容是动态修改序号
查看>>
水题水一波、
查看>>
子查询时间比较
查看>>
缓存清理的工具类
查看>>
数组的属性、foreach遍历、交错数组与矩形数组的区别
查看>>
hihoCoder 2 * problem
查看>>
MHA高可用集群
查看>>
Swift Internal Parameter and External Parameter 外部参数和内部参数
查看>>
[LeetCode] Number of Digit One 数字1的个数
查看>>
SQL语言分类
查看>>
SublimeServer插件安装和使用
查看>>
C++——多态性实现机制
查看>>
datanode启动失败
查看>>
JAVA--线程
查看>>
常用跨浏览器事件封装
查看>>
android+onTouchEventView+背景图片
查看>>
Tomcat工作原理
查看>>