翻閱別人整理的一份《Java語言編碼規範(Java Code Conventions)》。我從其中抽出了我覺得自己會犯的錯誤,或者是閱讀代碼的時候常常遇到的問題羅列出來。自我警示而已。不能算什麼文章。
- 我翻閱的此文檔版權如下:
- 譯者 晨光(Morning)
- 蒐集整理:華竹技術實驗室http://sinoprise.com
- 簡介:
- 本文檔講述了Java語言的編碼規範,較之陳世忠先生《c++編碼規範》的浩繁詳盡,此文當屬短小精悍了。而其中所列之各項條款,從編碼風格,到注意事項,不單隻Java,對於其他語言,也都很有借鑑意義。因爲簡短,所以易記,大家不妨將此作爲handbook,常備案頭,逐一對驗。
- 聲明:
- 如需複製、傳播,請附上本聲明,謝謝。原文出處:http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html, 譯文出處:http://morningspace.51.net/,[email protected]
- 聲明:
推薦一行一個聲明,因爲這樣利於寫註釋。即:
- int size;//size of XXXX
- int length;//length of XXXX
- int foo ,fooarray[];//居然可以這麼幹。我從來沒幹過。。。見識了。
比較整齊的製表符方式:
- int size; //size of XXXX
- int length; //length of XXXX
- Object currentyXXXX; //currently selected XXXX
- 初始化
儘量在聲明局部變量的同時初始化。唯一不這麼做的理由是變量的初始值依賴於某些先前發生的計算。
- 語句
簡單語句:
每行最多包含一條語句。
複合語句:
大括號可以被用於所有語句,包括單個語句。
見過有人寫switch語句 每個case後又有一對大括號。
當switch語句的某個case後面不需要break的時候應該寫註釋說明。。
if語句總是用 {}括起來。避免使用如下容易引起錯誤的格式
- if(condition)
- statement;
項目裏面這樣的寫法比比皆是,看着就像出門沒穿內褲一樣,感覺又危險又不舒服。
- 命名規則
臨時變量
整型變量常用 i j k m n
字符型 用:c d e
實例變量
大小寫規則和變量相似,除了前面需要一個下劃線。
- 變量賦值
避免在一個語句中給多個變量賦相同的值。比如
- fooBar.fChar = barFoo.lchar = ‘c’; //AVOID!!
- if(c++ = d++){//我痛恨看到這樣的代碼,看得人都皮發麻。。
- }
不要使用內嵌(embedded)賦值運算符試圖提高運算是的效率。不知道是否真的可以提高運算效率。。 這樣的代碼看着讓人崩潰。
- d = (a = d + c) + r; //AVOID !!
應該寫成
- a= b +c;
- d = a + r;
- 返回值
讓你的程序結果符合目的。例如:
- if(booleanExpression){
- return ture;
- }else{
- return false;
- }
完全可以寫成 。。。
- return booleanExpression;
- if(!booleanExpression){
- //語句A
- }else{
- //語句B
- }
實在想不通 爲什麼不寫成
- if(booleanExpression){
- //語句B
- }else{
- //語句A
- }
比較喜歡逆向思維?還是怎麼?其實也可以理解,或許是因爲項目中剛開始只需要考慮!booleanExpression的情況,而後來又有需求兩種情況都考慮。所以就產生了這樣的代碼。
類似的還有:
- if(condition){
- return x;
- }
- return y;
應該寫做:
- return (condition ? x : y);