• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kensoz
V2EX  ›  程序员

各位的编辑器公司有统一的设定要求吗?

  •  
  •   kensoz · Jun 15, 2021 · 6342 views
    This topic created in 1968 days ago, the information mentioned may be changed or developed.

    比如换行自动触发 tab,tab 为 4 个空格,

    亦或者是团队统一使用 vs code 统一 eslint 规则等等。

    如果没有以上的要求,查看 git 差分或 review 代码的时候怎么解决 tab 长度不一样,eslint 规则不统一的问题?

    28 replies  •  2021-06-21 18:53:13 +08:00
    shakukansp
    shakukansp
    Jun 15, 2021
    1
    prettier . --write
    LokiSharp
    LokiSharp
    Jun 15, 2021 via iPhone❤️3
    2
    CI 跑一遍 lint 不符合规则的拒绝合并
    bthulu
    bthulu
    Jun 15, 2021
    3
    没有的, 一团乱麻, 自己格式化
    ericls
    ericls
    Jun 15, 2021 via iPhone
    4
    CI 的责任
    nevin47
    nevin47
    Jun 15, 2021
    5
    这种 CodingStyle 的问题都是人工规定+review+CI
    ericls
    ericls
    Jun 15, 2021 via iPhone
    6
    @nevin47 不要人工干预代码 style 会浪费大量时间 。如果 review 里面出现了代码风格问题 只能说明 pre-commit 没设置好 或者 CI 美设置好
    nevin47
    nevin47
    Jun 15, 2021
    7
    @ericls #6 大部分还是要靠 CI,但是有些 CI 不是特别好设置,例如十六进制的数据,一般 CI 都会放行,需要人工判定一下是否是 magic number 的滥用,或者是本身临时使用 /特定含义数字
    ericls
    ericls
    Jun 15, 2021 via iPhone
    8
    @nevin47 这种的确 我们一般会有注释去皮 disable linter. Review 的时候重点关注这种例外
    Vegetable
    Vegetable
    Jun 15, 2021
    9
    前端好办啊,eslint+prettier+husky,比如这个项目

    https://github.com/anncwb/vue-vben-admin

    常见的语言都有解决方案,极端的 GO 直接内置了 fmt,松散的比如 java 大家一般都是用 ide 格式化,其实也有流行的 formatter,不太好用是真的。

    保证在 commit 之前触发一次格式化就 ok 了。
    kensoz
    kensoz
    OP
    Jun 15, 2021
    10
    @Vegetable 感谢回复。像 java 用 ide 格式化的话,那就事前需要统一 ide 和 ide 设置吧
    ericls
    ericls
    Jun 15, 2021 via iPhone❤️1
    11
    @kensoz 不同的 ide 也可以用 .editorconfig 或者在 pre-commit 的 hook 里面做 lint
    Vegetable
    Vegetable
    Jun 15, 2021❤️1
    12
    @kensoz java 大家选择 idea 的概率太高,以至于五六个人的团队大家默认都选了 idea,愉快的避免了这个问题
    Vegetable
    Vegetable
    Jun 15, 2021
    13
    @kensoz IDE 的格式化规则也是可以配置的,但是的的确确会出现不同 IDE 对同一套规则格式化的结果不同的情况。所以这方面对于团队 leader 活着相应负责人来说,还是有点工作量的。
    lance86
    lance86
    Jun 15, 2021
    14
    @Vegetable 楼上提到的 同一份 .editorconfig 也会不同 ide 不同么? idea 应该自带支持的
    chiu
    chiu
    Jun 15, 2021
    15
    目前公司范围的没有,各个 team 有各自的 < Code Style Guide >, 但没有编辑器设定统一这种程度,因为使用什么编辑器也不是统一的。
    nightwitch
    nightwitch
    Jun 15, 2021
    16
    项目根目录放一个.clang-format,没有 format 就提 pull request 的 CI 会直接拒绝。
    其他语言大抵也有类似的格式化工具
    lrvy
    lrvy
    Jun 15, 2021
    17
    主要用 Golang, 提交前一把梭 `go mod tidy && goimports -l -w . && gofmt -s -w . `
    yolee599
    yolee599
    Jun 15, 2021 via Android
    18
    tab 统一格式化为 4 个空格,否则拒绝提交
    Rache1
    Rache1
    Jun 15, 2021
    19
    EditorConfig
    dayeye2006199
    dayeye2006199
    Jun 15, 2021
    20
    这个一般由 linter 和 formatter 处理。编辑器不管这事儿
    Ymk1
    Ymk1
    Jun 15, 2021
    21
    一个人负责一个项目 根本没这个烦恼 你写成粑粑也没人管。只要能跑
    edk24
    edk24
    Jun 15, 2021
    22
    EditorConfig

    各种编辑器都支持,有的需要安装插件。
    tomkliyes
    tomkliyes
    Jun 15, 2021❤️1
    23
    在本地用统一的 formater 格式化之后才能提交 MR,提交 MR 会触发 CI 进行静态检查,不通过不允许合并。全部按照统一的格式来。至于编辑器本身不作要求,不过公司买了 JB 的正版授权,不用白不用,老司机还写了配置手册,不用自己花时间慢慢配置了
    z740713651
    z740713651
    Jun 15, 2021
    24
    python 已经开始推统一 使用 [black]( https://github.com/psf/black) 格式化和 flake8 检查了
    CICD 做一下检查就好了
    pkookp8
    pkookp8
    Jun 15, 2021 via Android
    25
    一开始有要求,后来不懂的人太多,慢慢就不要求了
    于是我就看到了 tab 空格混用,crlf 和 lf 混用,末尾莫名其妙多空格的代码,
    yjxjn
    yjxjn
    Jun 15, 2021
    26
    有,Eclipse 里面必须导入项目规定配置,而且我们项目 Eclipse,开箱即用~
    qiutian00
    qiutian00
    Jun 16, 2021
    27
    使用 commit hook, commit 时候 formate the code
    echoechoin
    echoechoin
    Jun 21, 2021
    28
    笑死 公司用 python
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4448 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 05:46 · PVG 13:46 · LAX 21:46 · JFK 00:46
    ♥ Do have faith in what you're doing.