今天突發奇想,對編碼習慣和 編程風格 很感興趣,因而乎,找了一下關於編程風格(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.將高層設計和架構做爲穩定的抽象,組織爲穩定的包
以上僅是一些規則簡單的羅列,推薦閱讀此書。
推薦去個人博客閱讀更多:
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
以爲不錯,別忘了點贊+轉發哦!