Android學習系列(24)–App代碼規範之使用CheckStyle

來源:互聯網
上載者:User

最近經常思考團隊開發的一些東西,其中代碼風格不統一是最常見的問題之一。按理說,大家協商和溝通一下,風格統一一下就可以了,其實不然,因為這是個個性張揚的時代!
工作code review中用了CheckStyle小半年了,覺得很好很強大很方便,大家寫出來的代碼就像一個人寫出來的一樣,值此辭舊迎新,特簡做說明,與爾同饗。

1.簡介
官方網站:http://checkstyle.sourceforge.net/
CheckStyle提供了一個協助JAVA開發人員遵守某些編碼規範的工具。它能夠自動化代碼規範檢查過程,從而使得開發人員從這項重要,但是枯燥的任務中解脫出來。
CheckStyle檢驗的主要內容
(1). Javadoc注釋
(2). 命名規範
(3). 標題
(4). Import語句
(5). 體積大小
(6). 空白
(7). 修飾符
(8). 塊
(9). 代碼問題
(10). 類設計
(11). 混合檢查(包活一些有用的比如非必須的System.out和printstackTrace)

2.定製
官方提供的代碼規範往往太過嚴格,在工作中使用不太現實,所以有必要根據具體情況來定製具體的代碼規範,CheckStyle對代碼規範的定製提供了很多大靈活性。
下面我們來定義一些基本的規範,後續有增加我們再修改。
(1). 不要tab鍵;
(2). 避免重複的import, 多餘的import和import *
(3). 常量全部大寫字母(static final);
(4). 成員變數以m開頭;
(5). 當有多重修飾符時,修飾符採用以下順序:(public,protected,private,abstract,static,final,transient,volatile,synchronized,native,strictfp)
 ... ...
其他的我們後面慢慢的修改。 

3.設定檔
在運行checkstyle時,需要一個參數(注:我的ubuntu伺服器上安裝的checkstyle5.4版本,最新的是5.5版本):


這個設定檔就是用來定義你自己定製的代碼規範,你可以參考官方說明:http://checkstyle.sourceforge.net/availablechecks.html
這裡,我們根據上面說的,來寫這樣一個code_check.xml :

<?xml version="1.0"?><!DOCTYPE module PUBLIC    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"><module name="Checker">    <!-- 檢查檔案是否以一個新行結束-->    <module name="NewlineAtEndOfFile"/>    <!-- 檢查檔案中是否含有tab鍵--><module name="FileTabCharacter"/><module name="TreeWalker">    <!-- 常量全部用大寫-->    <module name="ConstantName"/><!-- 避免.*,重複多餘的和不使用的import--><module name="AvoidStarImport"/>        <module name="RedundantImport"/>        <module name="UnusedImports"/>    <!-- 成員變數格式為:m+大寫+字母--><module name="MemberName"><property name="format" value="^m[A-Z][a-zA-Z0-9]*$"/></module><!-- 檢查代碼塊:起始大括弧和if等同行,不能有空的代碼塊,結束大括弧另起一行--><module name="LeftCurly"/>        <module name="NeedBraces"/>        <module name="RightCurly"/>        <!-- 當有多重修飾符時,修飾符採用以下順序:             (public,protected,private,abstract,static,final,             transient,volatile,synchronized,native,strictfp) --><module name="ModifierOrder"/>    </module></module>

更多檢查規範中文說明參考園子裡地址: http://www.cnblogs.com/liugang/archive/2010/10/26/1860903.html

4.使用checkstyle
外掛程式工具的使用我就不介紹了,我只想起個拋磚引玉的作用,checkstyle命令非常簡單,這裡我只說明3個參數:-c, -r, -o。

/******************* ***CheckStyle Usage** ******************//*** *參數 *1. -c  設定檔,並驗證檔案 *2. -o 輸出結果 *3. -r  遍曆目錄 **///用我們定製的code_checks.xml檢查檔案$>checkstyle -c ~/GitProj/world/code_checks.xml   ~/GitProj/world/floworld/src/com/tianxia/app/floworld/appreciate/AppreciateLatestActivity.java//用我們定製的code_checks.xml檢查目錄下的所有源檔案,並把結果輸出到result.txt中$>checkstyle -c ~/GitProj/world/code_checks.xml    -r ~/GitProj/world/floworld/src/com/tianxia/app/floworld/appreciate/

我們開啟result.txt來看下輸出結果:

又是tab又是命名不規範,非常的準確。

5.與Git掛鈎
快12點了,我先把文章發表出來,這部分隨後我再補寫。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.