今天突發奇想,對編碼習慣和編程風格很感興趣,於是乎,找了一下關於編程風格(Java篇)的資料,希望對愛好編碼或者開始學習編碼的同學有幫助!
好處不多說了,但是有幾個原則如下:
1.保持原有風格
2.堅持最小驚奇原則
3.第一次就做對
4.記錄所有非規範行為
格式規範:
1.縮進嵌套的代碼:在每個代碼塊和嵌套中加入縮進,縮進代碼,加強可讀性。這些地方包括【類定義,內部類定義,方法定義,靜態塊,for循環語句,if-else語句,try、catch和finally塊,匿名內部類,while語句,do-while語句】
2.斷開很長的句子:第一,如果包含了逗號,那麼在每一個逗號後面都另起一行,把逗號後面的每一個表達式都和逗號前面的表達式的第一個字母對齊。第二,應該在優先順序最低的運算符之前斷行。
3.使用空白:關鍵字和左括弧之間,右括弧和緊隨其後的關鍵字,除了」.」之外的運算符與其前後的表達式之間用空格隔開。每個邏輯上獨立的方法和代碼段之間,定義類或者介面的成員之間,每個類和介面之間應該加入空白行。
4.不要直接使用Tab控制符:不同環境對Tab控制符的解釋也是不同的。
命名約定:
1.名稱應該具有實際意義
2.使用人們熟悉的名稱
3.謹慎使用過長的名字,可以使用簡明通用的縮寫
4.盡量保留母音字母
5.縮寫詞的第一個字母大寫
6.不要使用大小寫來區分的名字
包命名:
1.用你所在組織的域名的倒序小寫形式作為包的根限定詞
2.使用單獨的小寫詞作為每個包的根名
3.僅當新舊版本二進位兼容的時候,其包可以使用相同的名字,否則,請使用新名字
類型命名:
1.類和介面名中的每個單詞的第一個字母大寫
類命名:
1.用名詞命名類
2.具有成組相關屬性,靜態服務或者常量的類名字使用複數形式
介面命名:
1.用名詞或者形容詞命名介面
方法命名:
1.方法名中的第一個單詞小寫,其後每個單詞的第一個字母大寫
2.用動詞命名方法
3.遵循JavaBean中命名屬性訪問函數方法:set,get,is
變數命名:
1.變數命中的第一個單詞小寫,其後的每個單詞的第一個字母大寫
2.用名詞命名變數
3.集合引用名要用複數形式
4.為不重要的臨時變數簡歷並使用一套標準名字
欄位命名:
1.使用this欄位變數可以區分開局部變數
參數命名:
1.構造函數或者」set」方法給欄位分配參數賦值,參數名應該和欄位名相同
常量命名:
1.常量的每個單詞均大寫,單詞之間使用下劃線連接
文檔約定:
1.為使用和維護你的代碼的人編寫文檔
2.註釋和代碼要同步
3.使用積極的語氣,省略無用的詞語
註釋類型:
1.用文檔註釋來描述編程介面
2.用標準註釋格式隱藏代碼而不必刪除它們
3.用單行註釋解釋實現細節
文檔註釋:
1.在編寫代碼前描述編程介面
2.為公用,受保護,包,私有成員建立文檔
3.為每個包編寫總結和概述
4.為包的每個應用程序或組編寫概述
註釋風格:
1.對所有文檔註釋使用統一的格式和組織結構
2.關鍵字,標識符和常量應放到
…
標籤中
3.將代碼放入
…標籤中
4.在標識符第一次出現的時候用{@link}標籤
5.為Javadoc標籤簡歷並使用一套固定的順序
6.使用第三人稱敘述的形式
7.編寫獨立的概述
8.省略概述中動作和服務的主語
9.省略事物概述中的對象和動詞
10.使用this而不是the來指代當前類中的實例
11.方法名或者構造函數名不需圓括弧,除非你想突出一個特殊的簽名
註釋內容:
1.每個類、介面、欄位和方法都編寫概述
2.完整描述每個方法的簽名
3.包含示例
4.為前置、後置、不變條件編寫文檔
5.為已知的缺陷和不足編寫文檔
6.為同步語法編寫文檔
內部註釋:
1.僅添加有助於理解你的代碼的內部註釋
2.描寫代碼為什麼這樣做,而不是在做什麼
3.避免使用行章節附註釋
4.用行章節附註釋解釋局部變數聲明
5.建立並使用一套關鍵詞來標識尚未解決的問題
6.在嵌套程度高的控制結構中標記出嵌套結束位置
7.如果兩個case標記之間沒有break語句,就在中間加入「fall-through」註釋
8.標記空語句
編程約定:
1.將表示基礎數據類型的類聲明為final類型
2.通過本地類型和其他具體類型建立具體類型
3.定義小的類和小的方法
4.定義子類,以便任何使用超類的地方都可以使用子類
5.使所有欄位私有
6.使用多態來替代instanceof
類型安全:
1.以java.lang.Object包裝通用類,提供靜態類型檢查
2.以類的形式封裝枚舉類型
3.盡量使用泛型
語句和表達式:
1.用等價的方法替換重複的、複雜的表達式
2.使用塊語句代替控制流結構的表達式
3.使用括弧明確操作順序
4.在switch語句中的最後一個case體使用break語句
5.使用equals,而不是==來檢測對象的對等關係
構造:
1.構造狀態有效的對象
2.不要從構造函數中調用非final方法
3.用嵌套的構造函數消除冗餘代碼
異常處理:
1.使用不受檢查、運行時的異常來報告可能在程序邏輯中出錯的嚴重未查明錯誤
2.使用檢查異常來報告可能發生,而在正常的程序運行時極少發生的錯誤
3.用返回代碼報告可預知的狀態改變
4.僅轉化異常來添加信息
5.不要私自處置運行時或者錯誤異常
6.用finally語句塊釋放資源
斷言:
1.按照約定編程
2.用無用代碼消除機制實現斷言
3.用斷言捕捉代碼中的邏輯錯誤
4.用斷言檢測方法的前置條件和後置條件
併發:
1.僅在適當的地方使用線程
同步:
1.避免同步
2.用同步的包裝器,提供同步介面
3.如果方法包含幾個不需要同步的重要操作,那麼不要同步整個方法
4.讀寫實例變數的時候避免不必要的同步
5.使用notify而不是notifyAll
6.為同步初始化使用雙重檢查模式
效率:
1.使用懶惰初始化
2.避免創建不必要的對象
3.重新初始化並重新使用對象,盡量不要新建對象
4.把優化工作留在日後
打包約定:
1.將經常使用、更改、同時發布或者互相依存的類型,放在同一個包里
2.共同封閉原則
3.重用/發布等價原則
4.無環依賴原則
5.將不穩定的類和介面隔離在單獨的包中
6.易於修改的包不要依賴於難以修改的包
7.最大化抽象最大化穩定性
8.將高層設計和架構作為穩定的抽象,組織為穩定的包
End.