重構學習1-重命名方法、類、參數等
查看本人文章索引請通過http://www.rzrgm.cn/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; } }
重構雖然簡單,但是效果很明顯,記住我們為人寫代碼,而不是為計算機寫代碼,如果命名不能反映代碼的意圖,就立即動手改掉它,否則接下來它將浪費你無數的時間在讀懂和理解代碼上,更可恨的是今天讀懂了,過幾天還要重新讀和理解它。

浙公網安備 33010602011771號