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

如果一个程序员提交的代码连格式化对齐都不做,敲代码是怀着怎样的心情....

  •  
  •   abbenyyy · 162 天前 · 4447 次点击
    这是一个创建于 162 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没错,我说的就是我的同事,我也不要求你有多牛逼,提交的代码不能有任何警告,我只是要求提交代码前按一下快捷键格式化对齐代码,每次都说 okok,然后依然我行我素。

    重点是有时候这个同事可能没空,我要修改他的代码,一堆没对齐代码附加一大堆警告,作为一个强迫症看得想死。

    提交的代码连格式化对齐都不做,到底是什么让他走上码农的道路...

    58 回复  |  直到 2019-06-12 18:05:28 +08:00
        1
    HuHui   162 天前 via Android   ♥ 1
    可以强制格式化的
        2
    cstj0505   162 天前   ♥ 1
    1.可能他不知道怎么做。
    2.如果他不知道,告诉他,现在不管他以前知不知道,他现在知道了
    3.他既然知道了,你就可以要求他做一下,反正也不难
        3
    d553296416   162 天前   ♥ 1
    比起写的代码各种内存泄露影响程序稳定性而言,,这种可有可无的事情我能忍,反正最后可以用工具一键格式化
        4
    merin96   162 天前   ♥ 1
    1.和气地告诉他 IDE 自动格式化多么好用,在哪儿设置, 什么不知道?我来帮你搞
    2.严肃地告诉他我有强迫症你不格式化每次拉代码我都很难受以致于无法工作
    3.git 钩子设置一些静态检查工具,不过不让合

    难度一次上升
        5
    qinyusen   162 天前
    git 强制格式化提交。。。
        6
    amwyyyy   162 天前
    我也不能忍,我有强迫症,代码必须对齐、不能有警告。
        7
    passerbytiny   162 天前
    论软件过程管理或者软件质量管理的重要性。
        8
    hydrionz   162 天前
    每次拉下来新代码,直接先格式化以后提交.....次数多了你们领导也会恨那个不格式化代码就提交的人....
        9
    cedoo22   162 天前
    IDEA: Ctrl+Alt+L Eclipse: Ctrl+Alt+F Git: 格式化提交
        10
    chendy   162 天前   ♥ 1
    如果他用的 idea 的话…直接让他把提交框上的”格式化”打钩就行了
        11
    Caballarii   162 天前   ♥ 11
    这哥们需要去写两笔 python
        12
    chmaple   162 天前   ♥ 2
    如果是 IDEA,并且用自带 GIT 工具提交的话,可以大家都导入一份同样的格式化配置文件,然后提交 commint and push 的时候勾选上自动格式化的选项
    话说格式化是必须的,而且规则要一致,不然两个人改了同一个类,提交或者有冲突的时候会疯。
        13
    abbenyyy   162 天前
    @chmaple 学到了,我待会帮同事勾选自动格式化
        14
    classyk   162 天前
    自己格式化一下再看也很容易,如果自己觉得难,那也就不要怪别人觉得难啦
        15
    la2la   162 天前
        16
    msg7086   162 天前 via Android
    我初中写代码的时候就被教导说格式要正确。从此养成良好的习惯。
        17
    galikeoy   162 天前   ♥ 1
    @msg7086 #16 你初中就开始写代码了

        18
    msg7086   162 天前 via Android
    @galikeoy 和我一起写代码的人不少是小学,我是班里年纪最大的人。
        19
    shingle   162 天前 via Android
    想到了我的前同事,写 go 语言都不格式化代码的。。。配个 goftm 又不是什么麻烦事
        20
    metrue   162 天前
    PR review 的时候 request change 就好了,不 approve 烂代码。
        21
    galikeoy   162 天前
    @msg7086 #18 请问您今年贵庚
        22
    jasonyang9   162 天前
    Python:???
        23
    Greendays   162 天前
    联动这歌帖子,估计楼主同事在里头支招呢 233
    https://www.v2ex.com/t/572728#reply28
        24
    Takamine   162 天前
    格式化,不是...一键格式化吗。
    而且格式化的配置文件大家不应该要求是统一的吗。
        25
    hstdt   162 天前 via iPhone
    使用 lint 工具辅助代码质量控制,要是能和绩效挂钩的话,就更容易让他写好代码了。
        26
    skylancer   162 天前   ♥ 1
    @galikeoy 初中折腾并不觉得稀奇... 感觉是不是有点大惊小怪了兄弟
        27
    mamahaha   162 天前
    我想大多数创造代码的人都会打草稿,做几行就会进行一下输出测试,这个时候考滤的是逻辑,代码块测试通过了才会考虑格式。
    如果代码是 copy 来的,大段大段的不用测试,就像整理代码一样,这样的一上来就会把格式做到位吧。
        28
    EminemW   162 天前 via iPhone
    你可以告诉他怎么快速格式化,他可能不会,,
        29
    linvaux   162 天前 via Android
    幸亏这哥们儿不是写了 js 的
        30
    csdefault1997   162 天前
    文件保存就自动格式化 vscode 有这个设置
        31
    galikeoy   162 天前
    @skylancer #26 只是惊讶
        32
    galikeoy   162 天前
    @linvaux #29 不然又给前端招黑 hahahaha
        33
    akira   162 天前
    @linvaux 幸亏不是写 py 的
        34
    kaedea   162 天前 via Android
    最近刚回在做代码格式规范的工作,说一下感受。

    这个问题看上去简单,要做到强制还真的难:
    1. 历史代码一大堆格式问题,全部修改不现实
    2. 每个 ide 自带的格式化标准都不太一样
    3. 代码风格每个人见解都有出入,很难完全统一

    其实主要原因还是团队整体技术氛围,我之前呆过的团队,工程师文化比较好,大家普遍对代码质量有追求,所以风格统一上容易达成一致,新来的人代码写得搓也会在 rv 环节被纠正过来。

    现在呆的团队代码风格就有点野了,历史包袱太重,大家普遍各顾个的,突然间要求别人要换成另一种写法,大概率会被白眼...

    最终的方案是:
    1. 合入检查只做修改、新增代码的格式规范
    2. 代码规范只强制做结构上(空格、缩进)和命名上的要求单单这样就已经检查出不少问题
    3. 通过 EditorConfig 统一项目的基本配置
    4. 引导开发多使用 ide 的自动补全功能,已经提交代码前自觉格式化代码

    但是我还是觉得之前团队的状态才是根本的解决方案啊,无奈。
        35
    Vincex   162 天前
    可以用 githook 提交时自动格式化
        36
    kaedea   162 天前 via Android
    @kaedea
    除了这个代码规范,类似的还有 git log 规范和 git merge /rebase 基本用法规范的问题,也真是难控制,通过 git hook 做强制检查容易,要引导别人按到新的流程去做事才是最难的。

    个人觉得一个团队的整体工程师文化水平,从以上三点就能看出个大概了。

    现在的感觉就是,要培养用户的习惯真的很难啊。
        37
    loading   162 天前 via Android
    我提交 c 语言 pr 时我的空格都要按坏了……用工具又会因为里面用到的宏啊什么的对齐得乱七八糟。

    我越来越喜欢 go 了。
        38
    FakeLeung   162 天前
    怎么可以不经意的让我同事看到这篇?
        39
    msg7086   162 天前
    @galikeoy 老了老了)
        40
    msg7086   162 天前
    @kaedea git merge rebase 规范这个实在是太难了。
    太多的程序员不会用 git,只知道无脑 commit/merge/branch。
        41
    Meltdown   162 天前 via Android
    我遇到的情况是公司没有统一规定代码风格,然后有些人可能用了 IDE 的自动格式化,有些文件明明明大家都没做什么修改,这些 IDE 造成的格式修改却老是被提交来提交去,随便一个提交就搞成了几千行
        42
    ginjedoad   162 天前
    golang 从来不需要对齐,直接保存对齐了....
        43
    SingeeKing   162 天前
    配个 git pre-commit hook
        44
    chen2019   162 天前
    ide 直接格式化就行了 管他对不对齐
        45
    zhuzhibin   162 天前 via iPhone
    代码规范意识很重要 团队里可以定义一套代码规范 大家都要遵循这么一套规范 就没那么多鸟事了
        46
    lincanbin   162 天前 via Android
    你需要做的是加 ci,ci 里跑 lint 做格式检查,格式出问题系统自动发邮件给他然后通报全组。
        47
    hastyfish   162 天前 via Android
    vim gg=G
        48
    dangyuluo   162 天前
    CI 是干什么的?你管他对齐对不齐?
        49
    elfive   162 天前 via iPhone
    @galikeoy 我初中就开始参加计算机奥林匹克竞赛了……
        50
    FrankHB   162 天前
    KPI 掌嘴。
        51
    FrankHB   162 天前
    @chen2019 污染 commit history 可能引起更严重的强迫症。
    (我最烦的是 autocrlf 之类一时半会儿还未必马上能发现的……)
        52
    nanxiaobei   162 天前
    上 Prettier 完事
        53
    russian   162 天前
    @linvaux 哈哈哈。我以前维护一个 nodejs 工程,接受一个人的活,然后这个人根本不知道什么叫 async,后调函数一直硬刚,最多好像嵌套了 7,8 个括号
        54
    galikeoy   162 天前
    @elfive #49 好吧,见识太少,小时候条件 环境太差,并没有经历这些
        55
    MonoLogueChi   162 天前 via Android
    @hydrionz 你去改他的代码,格式化,可能会造成冲突
        56
    magicdawn   161 天前 via iPhone
    嗯知道 node 的话用这个

    npm i -g yo generator-magicdawn
    yo magicdawn:add-config


    会添加 husky prettier lint-staged
        57
    HangoX   161 天前
    我在 ci 上加了逻辑,格式不过不让合并,然后共享自动化格式的配置文件。问题解决了
        58
    buhi   161 天前
    1. 有这么多时间折腾代码哪里应该有一个空格, 哪里应该换行, 花同样的时间在其他地方不是更好吗?
    2. 这个格式化本来就没有一个四海皆准的规范, 都是见仁见智, 举两个例子比如函数体的左大括号应不应该换行, 缩进应该用 tab 还是空格. 假如你定了一个标准, 然后强制同事去遵守, 然后因为跟同事的习惯不符影响了开发效率, 会不会有一种钦定的意思?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1945 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 33ms · UTC 00:13 · PVG 08:13 · LAX 16:13 · JFK 19:13
    ♥ Do have faith in what you're doing.