程式碼美化工具的使用

來源:互聯網
上載者:User

使用一致的代碼美化工具(Pretty print program)的主要原因是使程式的結構和編碼樣式標準化,這樣代碼易於閱讀和理解。

使用好的編碼約定可以使原始碼明白、易讀、準確,更加直觀且與其他語言約定保持一致。一個縮排良好的代碼可以大大提高代碼閱讀的速度,從而降低軟體維護的成本。

幾種開放原始碼的代碼美化工具的介紹: 
工具名稱 適用語言 簡介 安裝使用
indent  c indent幾乎成為代碼美化工具的代名詞。 indent是gcc附帶的一個工具,
indent [options] [input-files]
indent [options] [single-input-file] [-o output-file]
perltidy  perl
perltidy本身也是perl寫的。以前寫的一個使用簡介。 下載後直接運行perltidy指令碼
perltidy [ options ] file1 file2 file3 ...
(output goes to file1.tdy, file2.tdy, file3.tdy, ...)
perltidy [ options ] file1 -o outfile
perltidy [ options ] file1 -st >outfile
perltidy [ options ] <infile >outfile
astyle c c++ java (php) 一個速度很快的C/C++/Java原始碼美化工具。
astyle比indent好在有很多成套的的風格定義:ansi java linux...不必記住複雜的縮排具體選項。
下載原始碼解包後,make, 產生astyle可執行檔
astyle [options] < Original > Beautified
astyle [options] Foo.cpp Bar.cpp [...]
astyle --style=ansi *.cpp
我嘗試過用它來格式化PHP程式也很有效(當然是不合HTML代碼混在一起的純PHP代碼)。
pydent python pythius包含了2個工具:一個就是縮排整理
pydent: 代碼縮排工具
pystat: 代碼統計工具
下載原始碼解包後:
Run "python setup.py build"
Run "python setup.py install"
htmltidy html/xml HTML代碼的錯誤修正工具,可以協助你的HTML代碼更好的符合W3C規範,頁面中如果包含ASP PHP JSP等程式,HTMLTIDY都會盡量忽略。
HTMLTIDY也支援對XML的格式美化
使用選項:-xml
下載原始碼後 make 產生tidy可執行檔:tidy: file1 file2 ...
注意:對於含有中文的頁面要使用 -raw選項

tidy.exe -raw -imuq -wrap 132 -f %f.err %f 選項說明:
-raw: 不修改中文字元 (output values above 127 without conversion to entities)
-i     indend 預設HTML按2個空格縮排
-m     覆蓋原檔案
-u     強制所有HTML標記大寫(這個可以不加)
-wrap  頁面代碼寬度大於132行強制換行
-f %f.err 將錯誤輸出到“相應檔案名稱.err”檔案中

代碼的批量修改:
WIN32:
for /R %f in (*.java) do astyle --style=java --brackets=break-closing-headers %f
for /R %f in (*.jsp) do tidy -raw -imuq -wrap 132 -f %f.err %f

Linux:
find ./ -name *.java -exec astyle --style=java --brackets=break-closing-headers {} /;

HTMLTIDY的錯誤警告:有些無法解析的錯誤其實是代碼不規範造成的。

  1. JAVASCRIPT中的"<"

    比如
    for (i = 1; i<m; i++)
    需要改成
    for (i = 1; i < m; i++)
    ^ ^ "<"前後需要加空格,防止把<m當成HTML標記

  2. HTML 屬性中包含JSP標記:

    對於一般的JSP屬性輸出TIDY是可以認出來的

    比如: <input  type=text  size="9" name="alias" maxlength=20  value=<%=infoForm.getAlias()%> >                                                             
    但像這樣的代碼:
    <img border=0 src=/image/upload/content/<%=infoForm.getId()%><%=infoForm.getPhoto()%> width=120>
    由於屬性的開頭不是<%,因此會出現IMG沒有結尾錯誤

HTMLTIDY同時也支援XML的格式美化:
tidy -xml -imq web.xml
tidy -xml -imq build.xml

程式員應該是善於溝通的,代碼美化的意義在於體現了開發人員對他人的尊重,從而讓程式員之間更好的溝通。有統計表明一個縮排良好的代碼可以大大提高代碼閱讀的速度40%,另一個統計是軟體開發工作的70%以上是維護前人的代碼,因此代碼美化工具的使用也是降低軟體維護成本的一個途徑。

以上工具只是代碼格式縮排的美化,遵守完整的代碼規範可以參考以下文檔:

GNU Coding Standards
http://www.gnu.org/prep/standards_toc.html

Code Conventions for the Java(TM) Programming Language
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

PHP Coding Standard
http://utvikler.start.no/code/php_coding_standard.html

perlstyle
http://www.perldoc.com/perl5.6/pod/perlstyle.html

HTML XML XHTML CSS...
http://www.w3c.org/ 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.