没错,这是一篇火药文。网上流传的各种编程规范几乎青一色都是说用空格代替Tab,其理由几乎都是“这是唯一能保证在所有环境下获得一致展现的方法”。
那我想问一句,你们到底能要多少种环境要看代码???
1、用Windows自带的记事本?那我只能说,你继续装,看你什么时候才能完成得了任务。
2、连接到Linux服务器上使用VI或者VIM?我也只能说只有改服务器的配置文件的时候才会这样做吧,而且如果是配置文件比较复杂也是下载下来用Notepad++改清晰很多好伐,比如Aapche的配置文件在Notepad++选择shell语言的配色规则,那一大段一大段绿的注释立刻就可以一眼跳过了,能比在SSH上看的一堆黑白文字好一万倍吧。
3、开发机是Linux或者MAC?我只能说,你黑客你随意、你公司壕你随意,但是这个都用了装个集成IDE有那么难吗,想调成多少就多少啦,还要看系统文本编辑器里丑丑的一个Tab八个空格吗?
4、IDE很多难以统一?网页开发的Notepad++、Sublime、Dreamweaver、PHPStorm、HBuilder,微软的VC++6.0、VS20xx,嵌入式开发的Keil C51、Keil MDK,还有一批Eclipse外观的各种IDE(Eclipse、ZendStudio等),我都用过,但还没见过一个默认不是一个Tab四个空格的。
5、代码贴到网上对齐有问题?这个我还没遇到过,如果有,那么只能说那个网站跟不上时代,别人网站都行你却不行你说是不是网站的问题。
所以,综上所述,需要用空格来确保所有环境统一展示 是一个伪需求!
细数空格带来的不便
1、代码对不齐。在HTML代码中,非常多重的嵌套缩进是常有的事,但你试想看看,同一个文件里大部分缩4空格、但有的缩3空格,有的个别甚至缩2空格,这是怎么样一种乱象。或者同一个项目里,有的HTML是用4个空格,有的HTML是用2个空格。不用怀疑,很多老代码都有这样的现象。即使是一个人开发的都会,一段时间觉得4个空格比较标准,一段时间又觉得HTML一行那么长,用2个空格节省位置。空格缩进的不严谨就这样无形地把代码带入了混乱。
2、鼠标不好点和方向键不好用。比如你要修改某个地方,鼠标只是点左了一个点点,然后就光标就去了前面的空格的位置,而不是真正代码开始的地方,然后你又得多点一下或者按个右方向键。手不太熟练的偏差大一点的还要点很多下或者按几下方向键才行。还有在按上下方向键时,有时候又会去到了一些不理想的空格位。
3、在使用TortoiseSVN的文件对比工具时,太多的点点点,而不是一连四格的横线箭头。在文件左边一片片的点点,尤其在CSS文件中前面缩进空格的点十分容易与CSS的class选择器混淆,影响视觉。
4、代码文件变大了,这个问题主要体现在网页文件上,以UTF8编码来算,一个Tab是3个字节而对应的四个空格是12个字节,所以每一个本来用Tab的地方都会多出9个字节来,可能一个文件上看不出来有多大差别,但是有千千万万个用户浏览呢?会白白增加了多少网络带宽?即使是有GNU压缩,但是在大访问量的网站也会有较明显的改变。