重構學習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;
  }
}

重構雖然簡單,但是效果很明顯,記住我們為人寫代碼,而不是為計算機寫代碼,如果命名不能反映代碼的意圖,就立即動手改掉它,否則接下來它將浪費你無數的時間在讀懂和理解代碼上,更可恨的是今天讀懂了,過幾天還要重新讀和理解它。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM