比如换行自动触发 tab,tab 为 4 个空格,
亦或者是团队统一使用 vs code 统一 eslint 规则等等。
如果没有以上的要求,查看 git 差分或 review 代码的时候怎么解决 tab 长度不一样,eslint 规则不统一的问题?
1
shakukansp 2021-06-15 10:45:31 +08:00
prettier . --write
|
2
LokiSharp 2021-06-15 10:48:55 +08:00 via iPhone 3
CI 跑一遍 lint 不符合规则的拒绝合并
|
3
bthulu 2021-06-15 10:51:05 +08:00
没有的, 一团乱麻, 自己格式化
|
4
ericls 2021-06-15 10:53:22 +08:00 via iPhone
CI 的责任
|
5
nevin47 2021-06-15 11:02:33 +08:00
这种 CodingStyle 的问题都是人工规定+review+CI
|
6
ericls 2021-06-15 11:10:15 +08:00 via iPhone
@nevin47 不要人工干预代码 style 会浪费大量时间 。如果 review 里面出现了代码风格问题 只能说明 pre-commit 没设置好 或者 CI 美设置好
|
7
nevin47 2021-06-15 11:15:10 +08:00
@ericls #6 大部分还是要靠 CI,但是有些 CI 不是特别好设置,例如十六进制的数据,一般 CI 都会放行,需要人工判定一下是否是 magic number 的滥用,或者是本身临时使用 /特定含义数字
|
8
ericls 2021-06-15 11:20:53 +08:00 via iPhone
@nevin47 这种的确 我们一般会有注释去皮 disable linter. Review 的时候重点关注这种例外
|
9
Vegetable 2021-06-15 11:37:56 +08:00
前端好办啊,eslint+prettier+husky,比如这个项目
https://github.com/anncwb/vue-vben-admin 常见的语言都有解决方案,极端的 GO 直接内置了 fmt,松散的比如 java 大家一般都是用 ide 格式化,其实也有流行的 formatter,不太好用是真的。 保证在 commit 之前触发一次格式化就 ok 了。 |
11
ericls 2021-06-15 11:44:12 +08:00 via iPhone 1
@kensoz 不同的 ide 也可以用 .editorconfig 或者在 pre-commit 的 hook 里面做 lint
|
12
Vegetable 2021-06-15 11:46:25 +08:00 1
@kensoz java 大家选择 idea 的概率太高,以至于五六个人的团队大家默认都选了 idea,愉快的避免了这个问题
|
13
Vegetable 2021-06-15 11:52:23 +08:00
@kensoz IDE 的格式化规则也是可以配置的,但是的的确确会出现不同 IDE 对同一套规则格式化的结果不同的情况。所以这方面对于团队 leader 活着相应负责人来说,还是有点工作量的。
|
15
chiu 2021-06-15 12:10:42 +08:00
目前公司范围的没有,各个 team 有各自的 < Code Style Guide >, 但没有编辑器设定统一这种程度,因为使用什么编辑器也不是统一的。
|
16
nightwitch 2021-06-15 12:23:39 +08:00
项目根目录放一个.clang-format,没有 format 就提 pull request 的 CI 会直接拒绝。
其他语言大抵也有类似的格式化工具 |
17
lrvy 2021-06-15 12:30:21 +08:00
主要用 Golang, 提交前一把梭 `go mod tidy && goimports -l -w . && gofmt -s -w . `
|
18
yolee599 2021-06-15 12:36:54 +08:00 via Android
tab 统一格式化为 4 个空格,否则拒绝提交
|
19
Rache1 2021-06-15 12:37:33 +08:00
EditorConfig
|
20
dayeye2006199 2021-06-15 12:51:03 +08:00
这个一般由 linter 和 formatter 处理。编辑器不管这事儿
|
21
laragh 2021-06-15 14:37:01 +08:00
一个人负责一个项目 根本没这个烦恼 你写成粑粑也没人管。只要能跑
|
22
edk24 2021-06-15 16:38:05 +08:00
EditorConfig
各种编辑器都支持,有的需要安装插件。 |
23
tomkliyes 2021-06-15 17:46:34 +08:00 1
在本地用统一的 formater 格式化之后才能提交 MR,提交 MR 会触发 CI 进行静态检查,不通过不允许合并。全部按照统一的格式来。至于编辑器本身不作要求,不过公司买了 JB 的正版授权,不用白不用,老司机还写了配置手册,不用自己花时间慢慢配置了
|
24
z740713651 2021-06-15 18:17:16 +08:00
python 已经开始推统一 使用 [black]( https://github.com/psf/black) 格式化和 flake8 检查了
CICD 做一下检查就好了 |
25
pkookp8 2021-06-15 18:22:28 +08:00 via Android
一开始有要求,后来不懂的人太多,慢慢就不要求了
于是我就看到了 tab 空格混用,crlf 和 lf 混用,末尾莫名其妙多空格的代码, |
26
yjxjn 2021-06-15 21:02:53 +08:00
有,Eclipse 里面必须导入项目规定配置,而且我们项目 Eclipse,开箱即用~
|
27
qiutian00 2021-06-16 18:36:32 +08:00
使用 commit hook, commit 时候 formate the code
|
28
echoechoin 2021-06-21 18:53:13 +08:00
笑死 公司用 python
|