关于代码提交的思考

作者: Lol刀妹 | 来源:发表于2018-09-19 23:22 被阅读229次

    今天晨会的时候就代码提交展开了一场讨论。

    关于代码提交,从工作之初到现在我一共经历了三个阶段。

    一阶commit

    第一个阶段,想起了就提交一次,有时候可能每天都会提交,有时候没想起可能一两个星期才提交一次。这么久才提交一次代码难免被部门老大批评,为了不成为批判对象,我洗心革面,于是进入第二个阶段。

    二阶commit

    第二阶段的我,每天下班的时候提交一次代码,不仅部门老大再也没有说过我,我自己也觉得特别充实:每天都提交那么多代码,感觉自己棒棒哒。但慢慢的我发现这也存在一些问题:

    1.如果那天做的模块很复杂,到下班都没有完成,commit会是这样的:

    git commit -m '商品详情页完成60%'
    

    2.如果当天完成了几个小功能模块,commit会是这样的:

    git commit -m '菜单栏封装完成、侧滑栏封装完成、弹窗封装完成'
    

    3.如果当天做了两个模块,一个完成一个未完成,commit是这样的:

    git commit -m '部门销售模块完成,门店销售模块完成40%'
    

    这种commit虽然比一两个星期才提交一次代码的commit好很多,但它依旧谈不上好。要么不具体,如商品详情页完成60%;要么冗杂,如菜单栏封装完成、侧滑栏封装完成、弹窗封装完成。由于我对自己的要求比较高,于是乎,自然而然的进阶到了第三个阶段。

    三阶commit

    第三阶段的我完全领悟commit之真谛,反手就是一个优雅commit!其宗旨就是:只要完成一个小功能或者小模块就提交一次(也包括临时完成一个产品需求或者改了一个bug)。比如说:

    1.你完成了toast的封装:

    git commit -m 'toast封装完成'
    

    2.你正在开发,产品那边叫你修改一个图片尺寸(这个时候你或许需要git stash),你改完后也可以提交一次(即使只改了一行代码):

    git commit -m '调整商品详情页的商品图大小'
    

    3.线上发现bug,立即修复并提交:

    git commit -m '修复xxxbug'
    

    这样做的好处有:

    1. 方便自己核查自己的代码。
    2. 方便队友code review,就一个小功能,三言两语就能阐述清楚,代码量也小,队友能更好的把控审核重点。
    3. 方便自己复查以前提交的代码。
    4. 版本回滚,造成的损失相对较小。

    对部门规定的思考

    我们部门的规定是:提交代码,不能超过两天。

    我个人认为这个规定有一定意义,又不是很有意义。

    很显然,这个规定要求我们提交代码不能拖太久,因为一旦拖久了代码量大了会给code review带来很大的难度,想象一下一次性审核几千行代码会是怎样一种体验。

    但是,仅仅不超过两天是不够的,有的人一天就能写上千行代码,code review的时候压力也不小,如果他完成模块不止一个,那commit就会是:

    git commit -m '首页侧滑栏完成,详情页菜单栏完成,商品列表完成30%'
    

    这种commit就显得很杂乱。

    如果改成:

    git commit -m '首页侧滑栏完成'
    git commit -m '详情页菜单栏完成'
    

    拆分一下,code review的时候会轻松很多,commit内容也更清晰。

    综上我认为部门的这个规定只是告诉了我们不能怎么做,但是没有告诉我们应该怎么做。这只是一个针对新手、避免新手明显犯错的强制规定。具体该怎么做,看上面写的三阶commit或者直接看下面的总结。

    总结

    就一句:完成一个小任务就提交一次代码

    相关文章

      网友评论

      • Mikebanana:你让我提交代码的时候 每次都 git commit -m " sss"的人怎么活
        Lol刀妹:@Mikebanana 养成习惯就好了
      • 因幡白兔:我们现在多人协作也遇到提交信息混乱的问题……
        Lol刀妹:多人协作,更需要重视commit
      • CepheusSun:快师傅,班长叫你交作业了:heavy_exclamation_mark:
        Lol刀妹:叫班长再给我一天时间😭

      本文标题:关于代码提交的思考

      本文链接:https://www.haomeiwen.com/subject/pmgbnftx.html