1

大家有没有发现,大部分语言代码基本都是空 4 格的,只有前端项目空 2 格。

 2 years ago
source link: https://www.v2ex.com/t/802579
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
大家有没有发现,大部分语言代码基本都是空 4 格的,只有前端项目空 2 格。

V2EX  ›  程序员

大家有没有发现,大部分语言代码基本都是空 4 格的,只有前端项目空 2 格。

  a379395979 · 4 小时 28 分钟前 · 2147 次点击

用过多种语言,只有前端是这样的,至少 github 上的大部分项目都这样。挺凌乱的

48 条回复    2021-09-17 20:49:25 +08:00

play78

play78   4 小时 26 分钟前

python: ?

infun

infun   4 小时 26 分钟前

@play78 Python 也是推荐用 4 个

shpkng

shpkng   4 小时 26 分钟前   ❤️ 6

前端为什么会和语言并列

ila

ila   4 小时 22 分钟前 via Android   ❤️ 16

@shpkng 开战鬼才🌝

yulon

yulon   4 小时 21 分钟前

JS 回调多

InDom

InDom   4 小时 20 分钟前   ❤️ 3

“回调地狱” 空 4 格可就没地方写代码了 /逃

a379395979

a379395979   4 小时 19 分钟前

@shpkng 指 js css html 都这样 😭

StephenHe

StephenHe   4 小时 19 分钟前

可以自己设置吧,以前自己搭项目,后来慢慢的脚手架空几格就是几格

Leviathann

Leviathann   4 小时 19 分钟前 via iPhone

因为 html 的原因吧
天然嵌套深度比较大
但现在普遍一个 attribute 一行,4 空格缩进也问题不大

atpking

atpking   4 小时 17 分钟前   ❤️ 2

ruby ?

zhengsidao

zhengsidao   4 小时 16 分钟前

@shpkng 哈哈哈哈哈哈哈哈哈

murmur

murmur   4 小时 16 分钟前

前端我们也是空 4 个格,毕竟后端是 java,还是以 java 为准

Biwood

Biwood   4 小时 15 分钟前

go 项目还都是用 tab 缩径呢,能用一个字符搞定的事情为什么要用 2 个或者 4 个?(没有要引战的意思,就是说明一下语言风格的多样性)

Trim21

Trim21   4 小时 14 分钟前

用 tab 的语言想显示几个空格就显示几个...

a379395979

a379395979   4 小时 12 分钟前

@StephenHe
@murmur 现在 vue 和 react 项目都是脚手架生成的,我想自己设置 4 格的话,就会导致项目里一半文件是 2 格一半是 4 格。。

suzic

suzic   4 小时 9 分钟前 via Android

想用几格用几格,初始化后的项目不符合审美的话可以用 eslint 格式化一下

peterswan

peterswan   4 小时 5 分钟前

感觉是个引战帖,两个都用,但是我感觉两个空格更爽啊,代码更加紧凑,主要写 java 的,前端也写一些

wuwukai007

wuwukai007   4 小时 4 分钟前

众所周知,python 可以用 2,3,4,5 做空格

CodeCodeStudy

CodeCodeStudy   4 小时 2 分钟前   ❤️ 2

主要是 html 嵌套太多,如果空 4 格的话,横向滚动条会非常长,如果用 soft wrap 的话更惨,早期 js 都写在 html 文件里,所以也跟着是空两格

Vegetable

Vegetable   3 小时 55 分钟前

真有语言规定空格数量了?大部分语言都是不要求空格数量的,哪怕是 python,只要统一,几个空格都行

Baymaxbowen

Baymaxbowen   3 小时 54 分钟前

我觉得又要开始了

wu67

wu67   3 小时 51 分钟前

其实前几年还是有呼声用 4 格的.

但是 16 17 年开始, 前端 3 大框架混战, 都是用的两空格(或者说是 react 用的那套方案,具体忘记叫什么名了)作为默认规范, 又随着培训班以及各类教程文的推广, 渐渐的广大前端码农就接受了两格.

但其实我还是非常反感的, 我更倾向于 4 格, 奈何各种格式化等玩意限制, 而且还有项目历史因素、代码整体风格、团队风格等等若干限制, 现在估计已经不可能回得去 4 格了, 除非再又一种强大的框架横空出世占据大量的开发场景, 才有可能把风格推回去 4 格.

dbpe

dbpe   3 小时 49 分钟前   ❤️ 1

Java-Google-Style 也是个两个空格,我还挺喜欢

dabaoziwy

dabaoziwy   3 小时 45 分钟前

🎣贴吗,不同技术非要争个高低贵贱之分真的好吗

stimw

stimw   3 小时 41 分钟前 via Android

感觉马上掀起 tab 和空格大战。

吐槽一下 gofmt 强制 tab

Twinkle

Twinkle   3 小时 37 分钟前

前端看到的开源项目确实大部分都是 2 空格,其他语言不了解。不过随手看了下 v8,是 2 空格(

感觉不乱啊,同事合作的时候统一就好。个人项目随便你怎么玩

PiersSoCool

PiersSoCool   3 小时 27 分钟前

摊牌了,php 是世界上最好的语言

IsaacYoung

IsaacYoung   3 小时 25 分钟前

FireFoxAhri

FireFoxAhri   3 小时 25 分钟前

scala 了解一下

abc635073826

abc635073826   3 小时 16 分钟前

笑了家人们

libook

libook   2 小时 59 分钟前

缩进除了部分语言里有语义功能外,很多语言里是作用于可读性的,也就是人读代码的时候是否能够直观理解层级关系。

其实在编程语言之前,自然语言就已经在用这种策略了,比如中文的首行缩进习惯(虽然现在用得越来越少了)。

那么大多情况下,四个空格的缩进长度是可以满足这个需求的,三个较短,五个太长,(或者单纯是程序员偏好偶数),很长时间下来就形成了共识。

前端 JS 和 CSS 用四空格缩进的话也是没有问题的,但是涉及到 HTML 可能就会有问题了。
HTML 有两个特点:
1. 标签经常会嵌套很多层;
2. 会在标签内包含属性,所以经常会写很长。

当然可以让属性换行,但即便这么做也还是难以解决问题,而且迫于另一个习惯的约束,即每行不超过 80 或 120 个字符,使得折行情况增多,于是可读性方面的主要矛盾就变成了缓解折行问题,将缩进的优先级降低,少缩几个字符,到两字符缩进基本上是没法再缩的程度了,而对于嵌套层数越多的情况,两空格缩进带来的收益也更明显。

所以我个人认为,对于每行大概率会写很长、嵌套层数较多的语言,用两空格缩进是一种权衡之策,否则还是优先选择四格。

YsHaNg

YsHaNg   2 小时 53 分钟前

花括号不空格异端路过

villivateur

villivateur   2 小时 51 分钟前

其实内核风格建议空 8 个空格

Kilerd

Kilerd   1 小时 53 分钟前 via iPhone

很诡异,那些天天说 space 比 tab 好用的 space 党却能忍受 go 的 tab indent 。

skiy

skiy   1 小时 52 分钟前

vi 默认空 8 格。

Zepp

Zepp   1 小时 35 分钟前

old-school C 一般用 tab,不少 terminal 和编辑器默认显示为 8 格

byzf

byzf   1 小时 34 分钟前

早期前端没有 async,嵌套长。

yaml 也是推荐嵌套两格。

gogolang

gogolang   1 小时 33 分钟前

对的,我后端语言通常是 4 个空格,前端 2 个。
前端 4 个反而会不舒服。

xbtu

xbtu   1 小时 32 分钟前

4 个空格比较常见吧。2 和 4 只是一个习惯问题,没必要太纠结。

retrocode

retrocode   1 小时 26 分钟前

前端 4 空格 tag 标签会死人的

damao2250

damao2250   1 小时 24 分钟前

我觉得 2 个空格比 4 个空格好看,仅此而已

loryyang

loryyang   1 小时 13 分钟前

因为前端的缩进太多了,后端会严格控制缩进,多的话就拆函数了。前端的 tag,又没啥好办法

Vesper

Vesper   1 小时 8 分钟前

寡人所有語言一律 8 空格

TomVista

TomVista   54 分钟前

control shift f,缩进无所谓

agagega

agagega   27 分钟前 via iPhone

我写 Cpp 也习惯 2 格了

关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2389 人在线   最高记录 5497   ·  

创意工作者们的社区

World is powered by solitude

VERSION: 3.9.8.5 · 23ms · UTC 13:16 · PVG 21:16 · LAX 06:16 · JFK 09:16
♥ Do have faith in what you're doing.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK