我正在尋找意見,或者如果有一個商定的方式這樣做,關於命名命名空間類。命名類像「com.facebook.FacebookClient」vs「com.facebook.Client」
例如爲:
com.facebook.FacebookClient
vs
com.facebook.Client
或者
javax.script.ScriptEngine;
vs
javax.script.Engine;
我目前喜歡在每個例子中的第一個名字,但多餘的詞似乎有點浪費。
我正在尋找意見,或者如果有一個商定的方式這樣做,關於命名命名空間類。命名類像「com.facebook.FacebookClient」vs「com.facebook.Client」
例如爲:
com.facebook.FacebookClient
vs
com.facebook.Client
或者
javax.script.ScriptEngine;
vs
javax.script.Engine;
我目前喜歡在每個例子中的第一個名字,但多餘的詞似乎有點浪費。
以Actionscript爲例,我會說客戶端上的FacebookClient。出於這個原因:
import com.facebook.Client;
import com.twitter.Client;
你不得不指的是由它的類的全包在同一個類來創建一個實例:
new com.facebook.Client();
如果是FacebookClient,我可以兼得
new FacebookClient();
new TwitterClient();
當客戶端代碼彈出時,客戶端會很煩人。額外點擊以選擇正確的客戶端;)
facebook域名是否有其他類型的客戶端? javax.script域是否有其他類型的引擎?他們未來可能會想要嗎?如果是這樣,你需要一些東西來區分它們。否則它可能被浪費空間。
當然,未來幾乎不可能確定。
我唯一要補充的是如果你在C#中使用using
指令。如果你有兩個命名空間與client
相同的方法名稱,那麼會有一個confict/confusion。
儘管可以使用別名輕鬆處理此衝突。 – 2010-06-03 20:47:59
@Fredrik:絕對好點!謝謝 – 2010-06-03 20:59:54
我一般去的東西,如:。
[公司名稱] [項目名稱] [功能區]【類別】
即
com.dave.megaproject.dataaccesslayer。 postcodelookup
或.NET世界:
命名空間DaveFirm.MegaProject.DataAccessLayer.PostCodeLookup
在一個類名和文件名是一對一的語言中,有一個參數可以用來命名類名,而不管包是什麼。我很多人通過classname來定位文件,無論是通過打開名爲<class>.java
的文件還是通過在他們的IDE中使用「快速打開」。心理障礙的額外位置決定你需要哪個Client.java
可能足以讓你感到煩惱,因爲你喜歡額外的命名。
而且,它使事情變得更容易閱讀,而且它不像任何現代編輯器(例如vi或更高版本),您需要多次輸入它(有時甚至不會一次)。
每次我都會使用FacebookClient風格的額外單詞,只是因爲名稱的最小形式更具描述性,在多文件搜索中更容易找到對該名稱的引用。
從長遠角度來看,優化邊緣案例往往會成爲一個糟糕的主意。我會使用客戶端,然後在他們需要更多描述性名稱的情況下重新考慮(或簡單地換行)。 – sal 2010-06-03 21:29:52
從長遠來看可能是真實的,但這是一個相當主觀的問題。當優化如此微不足道時,我更喜歡優化的清晰度。 – typeoneerror 2010-06-03 21:52:48