V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MoriartyCy
V2EX  ›  职场话题

如何与代码风格很差(个人觉得)的同事共事?

  •  1
     
  •   MoriartyCy · 2021-06-11 11:10:12 +08:00 · 4947 次点击
    这是一个创建于 1267 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近跟公司里的一位老同事一起开发,同事工作了很多年了,在公司也是待人随和,很多人很喜欢他,并且他还经常主动担较多的工作量。前几天跟他一起做一个新项目,本来以为会是一个愉快的过程,结果上来看到代码就傻眼了:

    1. 不写任何注释;
    2. 不写常量,不写枚举,全都是魔鬼数字魔鬼字符;
    3. if 套娃;
    4. 方法套方法,一行代码三四个方法套娃,能占两个屏幕,300 多个字符;
    5. 喜欢不同接口很多逻辑都写一个方法里面(一个接口只提供一个对外的方法,这个方法常常能有十几个参数),再通过 if 区分不同逻辑,其名曰:工厂模式;

    可能我有些强迫症,code review 的时候看他的代码极其痛苦。跟这位同事也提过两次,他就笑着说改一改改一改,到最后也没改。

    所以说你们在工作中遇到这种代码风格很差的同事一般如何相处呢?

    42 条回复    2021-06-23 00:00:47 +08:00
    x86
        1
    x86  
       2021-06-11 11:12:46 +08:00
    一看就是新手,老手一看就走了
    jjwjiang
        2
    jjwjiang  
       2021-06-11 11:15:07 +08:00
    不出 bug,性能没问题就不管

    提前沟通好,需要修改他的部分只能由他自己改,让我改因为我看的费劲还容易改错
    Asuka0947
        3
    Asuka0947  
       2021-06-11 11:17:07 +08:00
    他还经常主动担较多的工作量,这样的同事我也想有;如果说他的代码风格严重影响了你的工作效率,那就和他说说呗,不行就只能写一行问一行,他不嫌烦就好,不是很影响你的话我觉得可以不管,毕竟他的工资不是你发,你的工资不是他发,反正我是秉承能跑就行的原则,代码差有时候是一个甩锅的好借口。
    kop1989
        4
    kop1989  
       2021-06-11 11:17:37 +08:00
    其实很简单,问自己一个问题:“你俩有利益冲突么?”
    如果没有,与你何干?
    如果有的话,趁早解决。
    jay4497
        5
    jay4497  
       2021-06-11 11:25:41 +08:00
    打不过就加入 doge;
    plainboiledwater
        6
    plainboiledwater  
       2021-06-11 11:32:46 +08:00   ❤️ 1
    和他约定好模块的接口,输入输出定清楚,然后如果有性能要求的话,定好 benchmark,剩下里面的实现就是他的黑盒,只要逻辑 OK 以及性能 OK,怎么实现都行。
    就像和你合租的人只要公共空间保持整洁,他卧室满地猫毛全是灰衣服搭在空调上也不影响你对不对?
    Rwing
        7
    Rwing  
       2021-06-11 11:34:29 +08:00
    Sonar 走起啊,不符合规范不让 merge
    joyhub2140
        8
    joyhub2140  
       2021-06-11 11:55:12 +08:00
    我的建议是不管。。。

    那些代码你就别管了,摆正心态,就当在一坨屎上面加上自己拉的,反而我建议你学一下那家伙的处事之道。。。

    以后等自己做主程的时候再讲究吧。
    rioshikelong121
        9
    rioshikelong121  
       2021-06-11 11:57:58 +08:00
    向老同事学习
    YadongZhang
        10
    YadongZhang  
       2021-06-11 12:03:45 +08:00 via Android
    我们组就我代码风格差,而且动不动改动就超过 10 个文件
    renmu123
        11
    renmu123  
       2021-06-11 12:06:46 +08:00 via Android
    他差归他差,不要动他的代码就就可以了
    futou
        12
    futou  
       2021-06-11 12:10:25 +08:00   ❤️ 3
    如果公司有统一风格,那么锅在你同事身上。如果公司没统一,那和你同事没任何关系。

    ps. 一直认为代码有优劣,但是代码风格没有优劣。毕竟代码本质是给机器看的,而不是给人看的。只不过由于多人协作,不可避免的有他人参与,就出现了对风格优劣的评价。
    qiaobeier
        13
    qiaobeier  
       2021-06-11 12:50:25 +08:00
    用些风格检查工具呗
    addenvex
        14
    addenvex  
       2021-06-11 12:52:55 +08:00
    我也遇到过、我能改的、直接帮她改掉、不能改的、也没办法
    ZhaoHuiLiu
        15
    ZhaoHuiLiu  
       2021-06-11 13:05:34 +08:00 via Android
    你这还算好的了,如果你负责一个研发项目。你说需要人手,公司给你一个啥都不会的人,你要是赶他走就成了光棍司令,教他东西嘛又教不会,怎么办呢?本人中专学历,公司除了给的工资可观,就没任何优势。既然自己强,为何不多些包容,你要调用他的代码,你根据自己习惯封装一层不就好了。不要逃避也不要当光棍司令,好好工作。
    buffzty
        16
    buffzty  
       2021-06-11 13:13:00 +08:00
    不写注释不算代码风格差吧 方法名 变量名就是注释 能望文生义的代码再写注释就是冗余
    BingoXuan
        17
    BingoXuan  
       2021-06-11 13:16:42 +08:00 via Android
    我也想一个 API 一个功能,奈何甲方就喜欢一个 API 干 n 多事
    tongqe
        18
    tongqe  
       2021-06-11 13:35:26 +08:00 via Android
    有啥问题,你刚毕业?
    nbin2008
        19
    nbin2008  
       2021-06-11 14:56:42 +08:00
    改掉自己的强迫症
    simonlu9
        20
    simonlu9  
       2021-06-11 15:02:40 +08:00
    之前待过公司是先产品评审,评审的时候开发也吧每个接口的伪代码写上去,大家看合不合理 ,这样之后开发也就是安卓这份标准来开发,前期可能浪费挺多时间,但是可以避免你上面说的那种情况
    3dwelcome
        21
    3dwelcome  
       2021-06-11 15:10:03 +08:00   ❤️ 1
    @ZhaoHuiLiu "公司给你一个啥都不会的人,你要是赶他走就成了光棍司令,教他东西嘛又教不会,怎么办呢?"

    还是光棍司令好,你为了向下兼容,势必会降低自己代码水准,来适配同事水平。

    时间一长,最后你会发现自己也变菜了。
    dfkjgklfdjg
        22
    dfkjgklfdjg  
       2021-06-11 15:27:51 +08:00
    Code Review 不是一起看?你自己审查代码来处理合并的话,打回去让他重改,打回去两次他就知道了,首先就是要有一个标准,如果只是按照你的喜好肯定不合适,取一个公司的标准就好了,然后大家就按照这个标准来。

    if 套娃这个没办法,毕竟每个人都有自己的 coding 习惯。
    ZhaoHuiLiu
        23
    ZhaoHuiLiu  
       2021-06-11 16:33:37 +08:00 via Android
    @3dwelcome 哥们,你可能工作没多久,觉得在公司只要写代码,就天下太平了什么事都没有。不会有人找你帮忙,不会有人要你和客户沟通,不会有任何人打扰你造飞机造火箭。哥们适合当敢死队一员,为后方部队开辟道路。可惜小弟怕死,想有个肉盾挡子弹,哪怕是个人傻子也行,只要子弹打不打我,我就万事无忧。
    justforlook44444
        24
    justforlook44444  
       2021-06-11 16:37:28 +08:00
    他的代码差跟你有什么关系呢,个人负责自己的代码;
    如果是需要协作,制作一个 coding style 规范,可参考 huawei,谷歌的。
    Navee
        25
    Navee  
       2021-06-11 16:45:06 +08:00
    入参出参控制好,细节你管不了的,林子大了什么鸟都有,除非你说了算
    3dwelcome
        26
    3dwelcome  
       2021-06-11 16:52:19 +08:00
    @ZhaoHuiLiu 问题是同事烂代码以后出问题了,还是你这个项目负责人的锅啊。

    两个人水平差很多,你带一下他可以,共事就只能自找麻烦。
    windyCity1
        27
    windyCity1  
       2021-06-11 17:07:33 +08:00
    我可能就是同事眼中“代码风格很差”。。。。

    入职以来一直在改变自己的编码习惯。。。。。
    windyCity1
        28
    windyCity1  
       2021-06-11 17:08:18 +08:00
    @windyCity1 #27 每次 code Review 后都要花一些时间改自己一些代码。。。。。
    ZhaoHuiLiu
        29
    ZhaoHuiLiu  
       2021-06-11 17:19:49 +08:00 via Android
    @3dwelcome 你要这样想就没办法,本来别人就是骡子专门背锅的,你驴子吃草好好的,非要主动当骡子使,一起背锅又何必。工作只是为了赚钱,出问题了肯定会开会找问题,问题出在谁身上,那就找谁就是了。编程这玩意就是要有足够的应付力,免疫一切毒害和迫害,不要因为一只毒蛤蟆挡了路,就绕道而行走远路。多去看看开拓思维书籍吧,写程序和写书又有何区别
    3dwelcome
        30
    3dwelcome  
       2021-06-11 17:26:40 +08:00
    @ZhaoHuiLiu 说到底,我还是没办法接受,糟糕的代码进来污染我的项目库。

    因为代码我是需要长期维护的,don't touch my code,这是原则问题。

    当然如果同事写的模块有足够的边界,相互调调 API,那也没什么。可是你改我代码,我改你代码,绝对不能忍。
    ZhaoHuiLiu
        31
    ZhaoHuiLiu  
       2021-06-11 17:31:39 +08:00 via Android
    @3dwelcome 你要是真牛 b,承包这个项目不就行了,要求公司给你多少钱个月。我能一个人完成就一个人完成,不能完成部分外包出去让别人实现,别人完成了自己重构成符合自己项目风格的代码。这样妥妥的当个包工头不好吗?我就怕你大事干不了,小事又爱插手,倒头来钱少事多,活受罪。。。
    openmm
        32
    openmm  
       2021-06-11 17:37:31 +08:00
    代码风格显而易见的差 这么多人还建议不要去提 美曰其名处世之道 等你自己和这种人合作你就知道多痛苦了 提出来也是为他好 好的代码利己利他 真就说了几次也不听 那没办法了 只能受着了
    ZhaoHuiLiu
        33
    ZhaoHuiLiu  
       2021-06-11 17:43:12 +08:00 via Android
    @openmm 你最好不要去管别人代码风格,毫无意义,只要别人代码能跑那就行,自己干好自己的,维护这东西本身毫无价值,代码好坏看重构次数,说白了就是不断提炼才能出精华。多学学处世之道,和百毒不侵之术,应付一切问题,尽量用嘴不用手,不要三言两语不合就动手很蠢的。
    liuidetmks
        34
    liuidetmks  
       2021-06-11 17:44:38 +08:00 via iPhone
    @buffzty 望文生义 好像不是这么用的哈哈,具体该用什么成语,我也不知道
    3dwelcome
        35
    3dwelcome  
       2021-06-11 17:46:05 +08:00
    @ZhaoHuiLiu 这和牛不牛 B 没关系,项目会随着时间推移越来越复杂,代码变多后,我需要的是对代码的掌控力。

    不想因为查一个 BUG 而加班,在糟糕的代码里翻大半天,绝对是一件很痛苦的事。

    所以我就希望切断污染的源头。和同事合作开发可以,各管各的模块,别动我的代码。
    openmm
        36
    openmm  
       2021-06-11 17:51:29 +08:00
    @ZhaoHuiLiu 到时候系统出问题 由你自己去改、去调试那部分代码的时候看你还扯处世之道
    ZhaoHuiLiu
        37
    ZhaoHuiLiu  
       2021-06-11 18:02:22 +08:00 via Android
    @openmm 无论前端还是后端都有负责人,你又不是负责人,如果是负责人的话,又不要整天写代码,只要改代码和审核代码就行。就算是工厂流水线,每条流水线都有一两个小组长,小组长拿流水线工人多一点的工资不用工作,谁要上厕所了就顶一下,基本流水线上什么活都会干。我最讨厌的人就是大事干不了,小事爱插手的人。
    KouShuiYu
        38
    KouShuiYu  
       2021-06-11 18:11:36 +08:00
    添加强制检查代码风格的钩子,不合格不许 commit
    miloooz
        39
    miloooz  
       2021-06-12 11:50:19 +08:00
    代码写出来是需要后人维护的,还是希望同事能够改过来,这也是对同事的提升不是。还是看团队氛围、同事性格,如果我看这个人顺眼,我会和他一起推进规范化,标准化,如果是看的不爽的,应该还是会和楼上的老哥们说的一样避不做声。等遇到老哥们说的钉之后,再如老哥们说的做也行。
    zgl263885
        40
    zgl263885  
       2021-06-14 12:10:00 +08:00 via iPhone
    从 python 之禅里面的一句话来评判的话,你这个同事要么是菜,要么是坏:
    代码可读性很重要。
    Chieh
        41
    Chieh  
       2021-06-15 22:32:20 +08:00
    看描述血压上来了,我也遇到过这种人,后来我就懒得管了,把自己的那块写好
    Xavier08
        42
    Xavier08  
       2021-06-23 00:00:47 +08:00
    我也想问,怎么写才算一个好的代码风格,需要常看开源还是学习设计模式?我是前端的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2277 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:55 · PVG 08:55 · LAX 16:55 · JFK 19:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.