排版
原則 團隊應遵守一致的排版風格
規則1 在不同的概念之間,增加空行。如import與包名,import與類名,方法與方法,類與類,變數宣告與變數宣告。
規則2 將邏輯緊密相關的**放在一起。
規則3 控制一行的寬度,不要超過120個字元。換行應在低優先順序運算子處換行。
規則4 控制一行的寬度,在不同的概念之間(關鍵字、變數·、操作符等·)增加空格,以便區分概念。
規則5 控制採用縮進來區分不同層次的概念(不用tab,用4空格)。
建議1 將區域性變數的作用域最小化。
建議2 if,for,do,while,case,switch,default等語句自佔一行,且if,for,do,while語句的執行語句無論多少都要加括號。
建議3 控制好檔案長度,最好不要超過500行。
注釋原則 盡量使用**來解釋自己
規則1 注釋應解釋**的意圖,而不是描述**怎麼做的。
規則2 保證注釋與**一致,避免產生誤導。
規則3 注釋應與其描述**位置相鄰,放在所注釋**上方或者右方,並與**採用同樣的縮排。
建議1 不要用注釋保留廢棄**。
建議2 不要用注釋記錄修改日誌。
命名原則 團隊為包、類、方法、變數取乙個好名字,使**易於理解
規則1 禁止使用魔鬼數字。
規則2 常量命名,由全大寫單詞組成,單詞間用下劃線分割,且使用static final修飾
規則3 變數、屬性命名,使用名詞,並採用首字母小寫的駝峰命名
規則4 方法的命名,用動詞和動賓結構,採用首字母小寫的駝峰命名
規則5 類和介面的命名,採用首字母大寫的駝峰命名法
規則6 包的命名,由乙個或若干個單詞組成,所有的字母均為小寫
變數和型別
原則 謹慎使用靜態成員變數
錯誤使用靜態變數可能有以下場景:
1、認為靜態變數屬於某個例項,而實際是多個例項操作同乙個變數,造成值與預期不一致
2、沒有注意靜態變數的初始化順序,讀取還未初始化的靜態變數值。
1、類的所有例項必須共享同乙個變數時,比如計數器。
2、工具類提供的常量,如配置檔案中的引數「對映」到類的變數,基本第一次賦值後,資料不再被修改。
3、單例模式中應用
規則1 避免隨意進行型別強行轉換,應改善設計,或在轉換前用instanceof進行判斷。
規則2 需要精確計算時不要使用float和double,建議使用int,long,bigdecimal。
規則3 不能使用浮點數作為迴圈變數,例,精度問題會導致(float) 20000000000 == 20000000020為true
規則4 浮點型資料判斷相等不能直接使用 ==
一般採用如下:
float a=...;
float b=...;
if(math.abs(a-b)<1e-6f)
規則5 避免同乙個區域性變數在前後表達不同的含義
規則6 不要在單個的表示式中對相同的變數賦值吵過一次。
方法原則1 方法設計的第一原則是短小
原則2 方法設計應遵循單一職責原則(srp),乙個方法僅完成乙個功能
原則3 方法設計應遵循單一抽象層次原則(slap)
原則4 方法設計應遵循命名與查詢職責分離原則(cqrs)
規則1 不要把方法的入參作為工作變數/臨時變數,除非特別需要(如,方法外需要改變後的方法內引用變數)
規則2 使用類名呼叫靜態方法,而不要用例項或表示式來呼叫
建議1 應明確規定對介面方法引數的合法性由呼叫者負責還是由方法本身負責。
建議2 謹慎使用可變數量引數的方法
建議3 對接方法的引數不宜過多
包、類和介面
原則1 類和介面的設計應遵循物件導向solid設計原則
1、單一職責原則
說明:就乙個類而言,應該僅有乙個引起它變化的原因。如果能想到多於乙個的動機去改變類,那麼這個類就具有多於乙個的職責
異常原則1 只針對真正異常的情況才會使用exception機制
規則2 對可恢復的情況使用受檢異常(checked exception)對程式設計錯誤使用執行時異常(runtime exceptio)
規則3 不要忽略異常
規則4 方法注釋和文件中要包含所丟擲異常的說明
規則5 方法丟擲的異常,應該與本身的抽象層次相對應
規則6 在finally塊中不要使用return、break或continue使finally塊非正常結束。
規則7 不要直接捕獲受檢異常的基類exception
建議1 對第三方api丟擲的大量各類異常進行封裝
建議2 乙個方法不應該丟擲太多型別的異常
C 中的程式編寫規範 約定
c 中的程式編寫規範 約定 www.guanwei.org.cn 一 變 常 參量的建議 字首 表示內容 或afx 表示為全域性 m 表示為某個類的成員 b 表示為布林型 h 表示為控制代碼 c或ch 表示為字元型 l 表示為長型 clr 表示為32位顏色值 n 表示為整型 cx或cy 表示為座標的...
C 編寫規範
c 編寫規範 一 兩種命名風格 1.pascal風格 大駝峰命名法 包含乙個到多個單詞,每個單詞首字母大寫,其餘字母均小寫。例如 helloworld setname等等。2.camel風格小駝峰命名法 包含乙個到多個單詞,第乙個單詞首字母小寫,其餘單詞首字母大寫。例如 name productid...
javascript編寫規範
變數和函式 變數名應當遵循camel case,並且命名字首應當是名詞。以名詞作為字首可以讓變數和函式區分開來,因為函式名字首應當是動詞。比如 var count 10 var myname nicholas function getname 函式和方法常用單詞 can has is get set...