天天看點

是否需要有代碼規範?

是否需要有代碼規範?

       對于很多“程式猿”來說,都有着一套隻有自己才能看懂得代碼格式,相信每個人都存有自己的觀點。比如:

  1. 這些規範都是官僚制度下産生的浪費大家的程式設計時間、影響人們開發效率, 浪費時間的東西。
  2. 我是個藝術家,手藝人,我有自己的規範和原則。
  3. 規範不能強求一律,應該允許很多例外。
  4. 我擅長制定編碼規範,你們聽我的就好了。

       按我個人的觀點來說,我是反駁以上說法的。首先我對于文本的書寫十分注重排版和美觀,我認為這就是自己一個“門面”,就像是人們常說的“字如其人”。再者,在軟體開發的整個生命同期中,均由最初的開發人員來維護的情況幾乎是沒有的。是以說讓我換位到程式維護這一方來考慮,當你面對眼前“一坨坨”的代碼,相信都會忍不住吐槽:“這一坨坨都是個啥@#¥%#¥……”,随後拂袖而去。

       雖說吐槽聲有如滔滔洪水,但建一座堤壩便可将其截流。Yes!it is 代碼規範化。說起代碼規範,首先要了解其意義。

是用來管理代碼格式和風格的文檔和規範,要求公司内部統一規範,其中包括:命名規則(資料庫字段,表名,存儲結構名、函數、變量、檔案名等),每行字元數(編譯軟體每行顯示的字元數量,多少個字元換行),縮進的格式(tab還是四個空格),函數的代碼行數等内容。
代碼規範同時包括了編碼風格和其它規範,不僅僅指代碼格式。例如,像“傳回成功/失敗的函數應該用一個整數作為傳回值”,這樣的規則不屬于編碼風格。

(一)論代碼規範的重要性

  1. 促進團隊程序。對于一個團隊内進行協同開發,程式的維護和複查是全隊成員的工作,如果開發人員堅持個人風格進行編寫,很可能會造成整體進度和延後。
  2. 降低維護成本。一個軟體的生命周期中,80%的花費在于維護,規範的代碼可以減少編碼人員的了解時間,降低維護代價,易于進行二次開發。
  3. 可讀性增強。編碼規範可以改善軟體的可讀性,可以讓程式員盡快而徹底地了解新代碼。
  4. 便于産品的釋出。如果你将源碼作為産品釋出,需要按照規範,确認它是否被很好的打包并且清晰無誤。

(二)論代碼規範的實施性

  1. 代碼審查。會很大程度的改變程式猿們的編寫态度。如果你在程式設計,而且知道将會有同僚檢查你的代碼,那麼你寫出的代碼将更加整潔,有更好的注釋,更好的程式結構。因為你知道,那個你很在意的人将會檢視你的程式。沒有代碼審查,你知道人們最終還是會看你的程式。
  2. 基本的規範化制度。制度會限制堅持己見的人。
  3. 更正編寫習慣。盡早的改正自己的編寫習慣,将代碼規範化。

(三)論代碼規範的編寫指南

(1)排版規範

  1. 程式塊采用縮進,縮進空位為4個。
  2. 分解符如“{”和“}”獨占一行,并且位于同列。
  3. 較長的語句、表達式、參數要書寫多行。
  4. 一行隻寫一條語句。
  5. if,for,do,while,case,switch,default 獨占一行,且語句塊都要加“{ }”,無論語句多少。
  6. 相對獨立的業務語句塊之間,變量說明後加空行。
  7. 對齊隻用空格不用TAB,避免不同編輯器對TAB處理不同。
  8. 對二個以上的關鍵字、變量、常量進行對等操作時,變量前後必須留白格。
  9. 類屬性和方法不用交叉放置,不同存取範圍的屬性或方法也不遠交叉放置。

(2)注釋規範

  1. 有代碼的地方就有注釋,杜絕沒有任何注釋的代碼,推薦注釋量在20%以上。
  2. 包的注釋:在包的目前路徑放入一名為package.html的HTML檔案,方面JavaDoc收集。注釋内容簡述本包的作用、内容、産品子產品、版本、版權等,如:檔案注釋:檔案開始,package 關鍵字前面,記載版權說明、描述資訊、生成日期、修改曆史等。
  3. 類和接口的注釋:在package之後,class或interface之前,描述目前類或接口的功能,作者,生成日期,修改日志,版本号等。
  4. 類屬性、方法注釋:在類或方法的前面,類屬性記載屬性的功能用處,用/* 開頭描述注釋,放置JavaDoc收集;類方法注釋需要記載方法的功能簡述、詳細、輸入參數、輸出值、抛出的異常、作者等。

注意事項

  1. 包結構清晰,類、接口、方法、屬性命名貼切易懂。
  2. 該注釋的地方注釋,注釋清楚、易懂,沒有二義性。
  3. 接口定義明确,精确方法功能,每個方法隻實作一個功能。
  4. 方法内部的代碼行數控制在200行以内,一個類的代碼行數控制在1000行以内,如果你的類代碼在1000行以上,請重新思考設計思路,這裡說的代碼行數不把注釋計算在内。
  5. 多個方法内部如果有相似的功能代碼塊,應該提取為公用方法。
  6. 盡量将業務相近的方法放在一起,便于尋找。
  7. 方法内部盡量不要catch異常,讓外部調用者知道出錯細節。
  8. 方法内部對于對象參數的調用,盡量判斷非null引用,除非你的設計能保證非空對象。
  9. 不用的資料及時是否,如果資料庫連接配接、集合、共享鎖等。
  10. 不要使用技巧性比較高的表達式。

       規範的代碼有利于幫助我們了解開發語言的架構,也能夠快速提升開發水準,是以更要注重基礎習慣的養成。

2016-3-22 1:27:44