zoukankan      html  css  js  c++  java
  • 【转】编写高质量代码改善C#程序的157个建议——建议148:不重复代码

    建议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个建议》陆敏技

  • 相关阅读:
    对百度搜索引擎的评论
    团队开发个人总结05
    Bootsrap下拉菜单实现Hover下拉效果
    C#抽奖优惠券生成唯一码方法
    js.live方法无效, 报错:uncaught TypeError: $(...).live is not a function
    SQL 插入一条自定义主键值的数据
    一款很简单的直接发送邮件功能
    SQL生成指定范围内随机值
    SQL(replace)替换字段中指定的字符
    SQL表中删除一列
  • 原文地址:https://www.cnblogs.com/farmer-y/p/8022120.html
Copyright © 2011-2022 走看看