使用AStyle提升我们的代码可读性
首先声明下:“代码整洁之道”这个名字是借用一本书名,并不是自己所想,此文章并不是讲“怎样写代码让代码更加整洁”,而是利用网络工具AStyle让我们在各个IDE或者编辑文档中的代码缩进以及逻辑更加清晰,进入正题:
一.代码不整洁的原因
一份好的代码不仅仅会让我们看起来比较愉悦,没那么抵触,还有一个关键的作用是为
了我们后续维护起来方便,不至于为了一个简单的逻辑看的头晕目眩,比如
if(x==1){
if(y==1){
if(j==1){}
else{}}}
这只是一个阶段的例子,当然我们不会这样写代码,但是一旦遇到这种缩进错乱的看起来是比较复杂。去年的时候我就发现我们的代码各个缩进都会不同,在source insight打开的时候会觉得很别扭,浑身不舒服(当然有点夸张,哈哈),但是真的会感觉很别扭,但是后来想了想,也不能怪别人,大概是因为每个人来维护用的代码编辑工具(EX:IDE不同,编辑器不同导致的Tab缩进的space个数不同导致),另外还有的人写代码喜欢直接敲space,如我们有的代码
这种模样虽然误伤大雅,但是有的逻辑问题一旦缩进有问题,看起来会比较伤脑筋,之前有想法去把我们的代码整理,但是每个file的line太多,手动确实有点工作量太大,并且最重要的是相对于付出来生活,意义就显得微乎其微.
所以我猜想啦,大概我们的代码缩进不太整洁的原因如下:
1. IDE不同,TAB键默认的space个数不同,sourceinsight我这边是4个space,比如在linux 编辑器里我默认是两个space键,我的keil是默认两个space,所以一旦你在一个地方把框架打好,在另外一个环境下再去编辑code,就会有这种缩进问题
2. 编程习惯问题,相信很多人注意过这个问题,所以他自己的代码不管在哪个平台下都会去敲space(2 or 4个),但是一旦别人拿来维护,又导致错乱掉
3. If else习惯问题,有的人喜欢写成这样
If(…){
..}
Else{
…}
可能有的人喜欢写成这样
If(…)
{…}
Else
{…}
几种方式都无所谓,但是一旦风格不同,可能也是看起来比较别扭吧
其他while ,do while,for逻辑类似原理,这就应声了我有想办法去改变这种现状的想法,AStyle这个工具恰巧迎合了我这个想法,所以后续来介绍下这个工具怎样用
二.AStyle工具的用途
Astyle 的全称是Artistic Style,某种程度是目前最好用的代码整理工具,很多所谓的代码整理工具其实都是拿这个东东改进,开发的,并且这个工具是opensource code的
在window直接用工具即可,在linux可以直接build source code,然后拿来用
支持C, C++, C#, and Java等语言,并且能嵌入到大部分主流的IDE中,我目前自己试验过VS2010(其他VS版本肯定是可用的,只不过我电脑只有这一个版本),Source insight,
Keil。附件为AStyle的window版本
三.配置方法
1. Source insight配置方法
1) 首先把AStyle放在一个path下,我这边是放在E:\software\Astyle\AStyle.exe
2) 点击options-> custom commands,点击add,配置如下,其中Run部分填写:
E:\software\Astyle\AStyle.exe --style=ansi %f
然后点击key设置快捷键
点击menu设置配置到那个menu下
3) 设定成功会在view中生成
4) 效果图对比,按下alt+space,自己就整理了,包括我们代码缩进他都会整理,
但是此工具仅仅后优化你当前选中的文件,而且不管你修改多少,都会选择整个文件浏览一遍,所以最好整个写完,再用这个工具整理一次
2. VS2010配置方法
其实IDE的配置都是大同小异,只不过参数可能会有所不同,没研究过具体参数代表什么意思,但是在VS2010上通过“工具-》外部工具”
配置方法如下:但是我没有配置快捷键,因为VS2010里面工具太多,我没有找到这个工具快捷键的配置地方,不过我也不太用VS,就懒得找了
同样附带运行效果图效果图:
3. Keil配置方法
啊~~~这个就是我当初寻找这个工具的第二个原因啊
Keil的tab是2个space,本来很整齐的代码,放在source_insight里面太难看了
这个我比较常用,所以我同时也设置了快捷键
在keil menu中,找到“tool->customize tools menu”
设置成这样
然后再”view->configuration”选择key,我是定义成ctrl+b,按下快捷键是管用
同样用上述代码测试,效果如下:
所以这个工具会大大提高我们代码的整洁度,方便后续查看,维护,看看看code有个好心情
最后一句话总结下这个工具:神器啊~~~