優秀 Java 程序員寫代碼的風格

今天突發奇想,對編碼習慣和 編程風格 很感興趣,因而乎,找了一下關於編程風格(Java篇)的資料,但願對愛好編碼或者開始學習編碼的同窗有幫助!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.將代碼放入<pre>…</pre>標籤中

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、後端、架構、阿里巴巴等大廠最新面試題

以爲不錯,別忘了點贊+轉發哦!

相關文章
相關標籤/搜索