我的观点
关于代码缩进,先说下我的偏好,我喜欢 tab,原因有以下两点:
- 风格灵活多变。缩进距离可依个人喜爱随意更改,你用 2 格缩进也好,4 格也罢,甚至是 8 格也行。这都仅会影响使用者自己的编辑器显示效果,而不会影响到其他人的显示效果。
- 占用空间小。无论缩进展示的有多宽或者多窄,一个 tab 缩进始终只占用一个字符的大小。
大家的观点
现在大家普遍都喜欢用 space 缩进,因为觉得这样缩进距离是可控的,在每个机器上展示的效果都是一模一样。
但是我觉得在所有机器上展示效果一模一样未必是好事,因为这样做就把这个缩进定死了,没办法通过简单有效的方法再更改了。我们每个人的审美和喜爱都不一样,就只针对于 space 应该用 2 个空格还是 4 个空格就有很多不一样的声音。有的人认为 2 个空格太小气了,密密麻麻地看着难受;也有人认为 4 个空格太浪费空间了,代码叠个两三层就飞出去了。
所以,和 tab 缩进相反,space 缩进有以下特点和争议:
- 所有机器缩进大小一致,但与此同时也限制死了缩进距离,没办法再更改了。
- 每个人审美不同,2 空格 4 空格争论不休。
- 太占用文件大小空间了,整个文件下来有 1/4 左右地空间被缩进所占去。
拿 Vue.js 未压缩版的代码文件距离,以下是各种缩进风格的对比图:
space 缩进
space 2 格缩进 文件大小:334KB space 4 格缩进 文件大小:395KBtab 缩进
tab 2 格缩进 tab 4 格缩进 文件大小:303KB(因为 tab 缩进文件大小不受缩进距离效果影响,始终只占 1 个字符,故放一张文件大小的图片就够了)
最后
针对该 Vue.js 文件,最后进行如下数据的对比,
tab 缩进在不影响每个人使用感受的情况下:
- 比 space 2 空格缩进节省了 9.3% 的文件大小 —— (334KB - 303) / 334KB
- 比 space 4 空格缩进节省了 23.29% 的文件大小 —— (395KB - 303) / 334KB