今天突發奇想,對編碼習慣和 編程風格 很感興趣,于是乎,找了一下關于編程風格(Java篇)的資料,希望對愛好編碼或者開始學習編碼的同學有幫助!
來自《The Elements of Java Style》-《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.將高層設計和架構作為穩定的抽象,組織為穩定的包
以上僅是一些規則簡單的羅列,推薦閱讀此書,
推薦去我的博客閱讀更多:
1.Java JVM、集合、多執行緒、新特性系列教程
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
4.Java、后端、架構、阿里巴巴等大廠最新面試題
覺得不錯,別忘了點贊+轉發哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/69357.html
標籤:Java
