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