命名一直是大家常常討論的事情,
不論是package、class、jar、file、document、properties等等,
這邊分享一些書中提到的觀念,
我想寫程式的方式每個人都有自己的想法,
看到別人提出的論點可以多聽多看多了解,
覺得好的可以學起來用,
但不認同的也可以提出來討論,
畢竟這也不是聖經或是spec,
不會有人逼你一定要用,
在此將一些覺得不錯的條列如下:
1. 名符其實
每一段Code中的所有變數,應該要可以解答所有讀者的疑惑,
可以比較以下兩段程式碼,第二段會比第一段容易理解每個變數代表的涵義,
很常看到在宣告m這種變數後,再寫一段註解解釋m是什麼意思,
如果這樣的話,不如直接宣告為month更顯得淺顯易懂。
int m; String str; List<Integer> list=null; int month; String memberName; List<Integer> memberList=null;
2. 有意義的區別
不要使用會讓人搞不清楚的命名,例如Member和MemberInfo兩個類別,
直覺上看起來是一樣的,或是使用a、an、the這種名稱,
像account和theAccount,或Item和ItemObject。
3. 可被搜尋
當一個變數或常數在程式中很常用到,最好給一個容易被搜尋到的名稱來代替,
比較以下兩段程式碼,for迴圈中的數字,
當使用變數名稱取代後,會更好搜尋及了解涵義。
int sum = 0; for (int i = 0; i < 10; i++) { sum += i * 2; } int total_item_count = 10; int item_exchange = 2; for (int i = 0; i < total_item_count; i++) { sum += i * item_exchange; }
4. 類別和方法的命名
類別的命名盡量使用名詞,例如Member、Account、Item等等,
方法的名稱則使用動詞,例如save、update、delete、add等等,
取出使用get,設定修改用set,判定或flag使用is。
5. 避免雙關語
有時候你會常常使用add這樣的名稱,
不論是增加、插入、附加等等,
但你可以考慮用add、insert、append等等的命名來區別這其中的差異,
可以幫助讀者更好理解。
沒有留言:
張貼留言