您的位置:首页 > 编程语言

程序代码美化工具的使用

2006-12-08 23:40 453 查看
使用一致的代码美化工具(Pretty print program)的主要原因是使程序的结构和编码样式标准化,这样代码易于阅读和理解。

使用好的编码约定可以使源代码明白、易读、准确,更加直观且与其他语言约定保持一致。一个缩进良好的代码可以大大提高代码阅读的速度,从而降低软件维护的成本。

几种开放源代码的代码美化工具的介绍:
工具名称适用语言简介安装使用
indentcindent几乎成为代码美化工具的代名词。indent是gcc附带的一个工具,
indent [options] [input-files]
indent [options] [single-input-file] [-o output-file]
perltidyperl
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
astylec 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代码)。
pydentpythonpythius包含了2个工具:一个就是缩进整理
pydent: 代码缩进工具
pystat: 代码统计工具
下载源代码解包后:
Run "python setup.py build"
Run "python setup.py install"
htmltidyhtml/xmlHTML代码的纠错工具,可以帮助你的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的错误警告:有些无法解析的错误其实是代码不规范造成的。

JAVASCRIPT中的"<"

比如
for (i = 1; i<m; i++)
需要改成
for (i = 1; i < m; i++)
^ ^ "<"前后需要加空格,防止把<m当成HTML标记

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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: