摘自:代碼那些事之命名——《可讀代碼的藝術》讀后感
http://bj007.blog.51cto.com/1701577/1309002
比如GetPage函數命名中Get就比較空泛,可能有幾種情況,比如從文件讀取、去遠處獲取、去數據庫查詢、或者就是簡單地從返回成員變量,如果一切都是Get就需要扒開具體實現才可能確定到底用哪種方式。如果我們可以選擇更具體的詞,比如文件讀取用Read或者Load、遠程獲取用Fetch、數據庫查詢用Query、簡單返回成員變量時候采用Get,并且整個項目保持一致,可能僅僅看到名字就可以閃現出對應的場景。將信息塞進名字中的一部分就是選擇很具體、避免空泛的一些詞。
被誤解是很受傷的一件事,但是我們的命名就嘗嘗別誤解,而且還常常是整個意思反過來了。因此在檢查名字的時候就是主動問下自己“別人對于這個名字是否有不同的解讀?”。比如如下代碼:
results = Database.all_objects.filter("year <= 2011")
其中,results會包含什么呢?問題就出在filter上,可能是過濾掉、也可能是過濾出。建議就是如果要過濾出,select()會更好,如果要過濾掉,exclude()會更好。
Powered by: C++博客 Copyright © 金慶