V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kensoz
V2EX  ›  程序员

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

  •  
  •   kensoz · 2021-06-15 10:40:52 +08:00 · 4898 次点击
    这是一个创建于 1040 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    28 条回复    2021-06-21 18:53:13 +08:00
    shakukansp
        1
    shakukansp  
       2021-06-15 10:45:31 +08:00
    prettier . --write
    LokiSharp
        2
    LokiSharp  
       2021-06-15 10:48:55 +08:00 via iPhone   ❤️ 3
    CI 跑一遍 lint 不符合规则的拒绝合并
    bthulu
        3
    bthulu  
       2021-06-15 10:51:05 +08:00
    没有的, 一团乱麻, 自己格式化
    ericls
        4
    ericls  
       2021-06-15 10:53:22 +08:00 via iPhone
    CI 的责任
    nevin47
        5
    nevin47  
       2021-06-15 11:02:33 +08:00
    这种 CodingStyle 的问题都是人工规定+review+CI
    ericls
        6
    ericls  
       2021-06-15 11:10:15 +08:00 via iPhone
    @nevin47 不要人工干预代码 style 会浪费大量时间 。如果 review 里面出现了代码风格问题 只能说明 pre-commit 没设置好 或者 CI 美设置好
    nevin47
        7
    nevin47  
       2021-06-15 11:15:10 +08:00
    @ericls #6 大部分还是要靠 CI,但是有些 CI 不是特别好设置,例如十六进制的数据,一般 CI 都会放行,需要人工判定一下是否是 magic number 的滥用,或者是本身临时使用 /特定含义数字
    ericls
        8
    ericls  
       2021-06-15 11:20:53 +08:00 via iPhone
    @nevin47 这种的确 我们一般会有注释去皮 disable linter. Review 的时候重点关注这种例外
    Vegetable
        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 了。
    kensoz
        10
    kensoz  
    OP
       2021-06-15 11:42:40 +08:00
    @Vegetable 感谢回复。像 java 用 ide 格式化的话,那就事前需要统一 ide 和 ide 设置吧
    ericls
        11
    ericls  
       2021-06-15 11:44:12 +08:00 via iPhone   ❤️ 1
    @kensoz 不同的 ide 也可以用 .editorconfig 或者在 pre-commit 的 hook 里面做 lint
    Vegetable
        12
    Vegetable  
       2021-06-15 11:46:25 +08:00   ❤️ 1
    @kensoz java 大家选择 idea 的概率太高,以至于五六个人的团队大家默认都选了 idea,愉快的避免了这个问题
    Vegetable
        13
    Vegetable  
       2021-06-15 11:52:23 +08:00
    @kensoz IDE 的格式化规则也是可以配置的,但是的的确确会出现不同 IDE 对同一套规则格式化的结果不同的情况。所以这方面对于团队 leader 活着相应负责人来说,还是有点工作量的。
    lance86
        14
    lance86  
       2021-06-15 12:00:21 +08:00
    @Vegetable 楼上提到的 同一份 .editorconfig 也会不同 ide 不同么? idea 应该自带支持的
    chiu
        15
    chiu  
       2021-06-15 12:10:42 +08:00
    目前公司范围的没有,各个 team 有各自的 < Code Style Guide >, 但没有编辑器设定统一这种程度,因为使用什么编辑器也不是统一的。
    nightwitch
        16
    nightwitch  
       2021-06-15 12:23:39 +08:00
    项目根目录放一个.clang-format,没有 format 就提 pull request 的 CI 会直接拒绝。
    其他语言大抵也有类似的格式化工具
    lrvy
        17
    lrvy  
       2021-06-15 12:30:21 +08:00
    主要用 Golang, 提交前一把梭 `go mod tidy && goimports -l -w . && gofmt -s -w . `
    yolee599
        18
    yolee599  
       2021-06-15 12:36:54 +08:00 via Android
    tab 统一格式化为 4 个空格,否则拒绝提交
    Rache1
        19
    Rache1  
       2021-06-15 12:37:33 +08:00
    EditorConfig
    dayeye2006199
        20
    dayeye2006199  
       2021-06-15 12:51:03 +08:00
    这个一般由 linter 和 formatter 处理。编辑器不管这事儿
    laragh
        21
    laragh  
       2021-06-15 14:37:01 +08:00
    一个人负责一个项目 根本没这个烦恼 你写成粑粑也没人管。只要能跑
    edk24
        22
    edk24  
       2021-06-15 16:38:05 +08:00
    EditorConfig

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