zoukankan      html  css  js  c++  java
  • 重构学习1重命名方法、类、参数等

    查看本人文章索引请通过http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html

    动机:重命名是重构最基础的一个重构,也是最简单的重构,但是这个重构也是很重要的,它是让代码具有可读性的关键第一步,“要想成为一个真正的编程高手,起名的水平是至关重要的“,如果你看到一个函数名称不能很好的表达它的用途,应该马上加以修改,记住,你的代码首先是为人写的,其次才是为计算机写的。而人需要良好名称的函数。”

    方法:首先考虑给这个函数写上一句怎样的注释,然后想办法将注释函数名称。

    注意:

    一 不要怕名字长,长度不是问题,关键在于函数名称和函数本体之间的语义距离。

    二 需要规范命名的不仅是方法名,也包括类名,参数名,控件名,页面名(WebForm),尽管规范都可能不一样,但是每个团队应该有统一的规范。

    示例:

    /// <summary>
    /// 判断是否是技术部
    /// </summary>
    /// <returns></returns>
    public bool isScience(int DepartMentID, string id)
    {
           DataTable dt = Attendance.getdepmentID(id);
        bool dtt = (from column in dt.AsEnumerable() select column["ID"]).Contains(DepartMentID);
        if (dtt)
        {
          return true;
        }
        else
        {
          return false;
        }
    }

    首先isScience让别人看了不知道什么意思,再一个参数string id也不知道这个id是什么id,dtt也不知道代表了什么。

    重构后代码如下:

    /// <summary>
    /// 判断是否是技术部
    /// </summary>
    /// <returns></returns>
    public bool IfMinTech (int DepartMentID, string DepartmentIDList)
    {
      DataTable dt = GetMinTechALLDepartmentID(DepartmentIDList);
      bool IsDepartmentID = (from column in dt.AsEnumerable() select column["ID"]).Contains(DepartMentID);
      if (IsDepartmentID )
      {
        return true;
      }
      else
      {
        return false;
      }
    }

    重构虽然简单,但是效果很明显,记住我们为人写代码,而不是为计算机写代码,如果命名不能反映代码的意图,就立即动手改掉它,否则接下来它将浪费你无数的时间在读懂和理解代码上,更可恨的是今天读懂了,过几天还要重新读和理解它。

  • 相关阅读:
    gsm at 指令
    wm8976 codec
    【Gym 100971J】Robots at Warehouse
    【XDU1144】合并模板
    腾讯云CentOS7安装LNMP+wordpress
    【USACO1.1】Broken Necklace
    【校赛小分队之我们有个女生】训练赛6
    【计导作业】——商品记录
    C 文件读写2
    C 文件读写1
  • 原文地址:https://www.cnblogs.com/seesea125/p/2453599.html
Copyright © 2011-2022 走看看