好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

重命名方法、类、参数等

重命名方法、类、参数等

 摘要:本人也是coding很多年,最近刚从开发经理转行做架构师,致力于学习面向对象、设计模式、TDD、极限编程、架构设计,记得Martin Fowler在《重构》一书说过,“精彩的代码是怎么想出来的,比看到精彩的代码更加令人期待”,对于架构同样如此,“优秀的架构是怎么想出来的,比看到优秀的架构更加令人期待”,因此我希望把我的学习成长记录下来,有任何异议还望大家指出,共同学习,为了方便查阅,特意做出索引一页。

    查看请通过 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  I sDepartmentID  = ( from  column  in  dt.AsEnumerable()  select  column[ "  ID  "  ]).Contains(DepartMentID);
    if   (I sDepartmentID  )
  {
      return   true  ;
  }
    else  
  {
      return   false  ;
  }
} 

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

分类:  重构

http://www.cnblogs.com/seesea125/archive/2012/04/17/2453599.html

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于重命名方法、类、参数等的详细内容...

  阅读:37次