华人澳洲中文论坛

热图推荐

    CTO:这屎同样的代码是谁写的?…哦,是我本人

    [复制链接]

    2022-8-19 06:47:00 31 0

    零碎出 Bug 了,CTO 拉着开发一同反省遗留代码库,试图手动修复。
    在阅历了无尽的熬煎当前,他们都解体了。
    “这屎同样的代码究竟是哪一个哈麻皮写的?”CTO 收回了震耳欲聋的灵魂拷问。
    没人做声,起初 CTO 排查了一下 git blame 发现,这坨代码是他本人提交的。
    这样的天堂笑话在研发的职业生涯里真实是过于常见,以致于衍生出了各种版本,好比:
    当我写下这行代码时,只要上帝和我知道它是啥意思。当初,只要上帝知道了。


    从另外一个角度抽离出来看这个问题,这往往代表着:此时此刻的这位研发,比起彼时彼刻的阿谁研发,变强(秃)了许多。正如我还在使用 QQ 空间的阿谁时期写过的一条说说:
    所谓的生长就是,当你回看已经你写过的那些说说,会发现过后的阿谁本人怕不是个SB?古代软件开发讲求团队协作,人员活动的来去自在带来了遗留代码库的保护问题。有的时分,代码写得跟屎同样,但就是能运转。有的时分,代码写得很丑陋,但就是跑不动。还有的时分,代码写得没故障,但也没用,最初是靠 bug 运转起来的。



    大少数时分,咱们都倡议,假如不是新参加的名目 owner,只是做一些小功用的迭代或保护,那末代码能跑的时分就尽可能不要动。尤为是新人,正所谓老手一优化,零碎就会炸,区分只在于何时。



    得多研发退职业生涯早期,老是会有一种纯正的工程师“原教旨主义”精力,代码寻求极致的洁净:严格的 lint 规定、命名模式、文件构造、不反复代码理论……尤为是在看到共事、名目前 owner 乃至 CTO 写的代码,老是喜爱跳出来杠一下:
    这里为啥不合错误齐?我奶奶写的代码都比你强我以前看过一篇文章,作者有次把共事提交的可运转的代码给重写了,理由是反复代码过量,通过他重写后的代码量级增加了一半,反复代码彻底隐没,他称心如意地提交了 master 分支,而后去睡了。醒来当前老板给他打电话,让他做回滚,他很不睬解,却只能容许。多年当前回忆这段故事,他才发现老板是对的。
    理由是:
    一,没有跟共事沟通探讨,就间接做了重写。这既没有真正体会代码作者的原意,也破坏了团队合作的信赖根底,负面影响很大。二,洁净的代码在繁杂的业务环境下,未必能完成原有代码的功用。增加的是代码行数,就义的多是灵敏性,反而不好看。他最初学会的一个情理是,在思考甚么是洁净的代码,甚么是坏代码的时分,想得更深一点,是看重代码的优雅、标致,忍耐不了芜杂的形态,仍是更应该关注工程完成的后果?
    写出洁净的代码不是终纵目标,它只是处置零碎繁杂性的一种尝试办法,仅此罢了。
    回到屎同样代码的这个故事,Reddit 上的探讨其实十分热闹,我简略摘抄几条给大家看看:
    我掉到这样的坑里太屡次了,致使当初的我只有看到屎同样的代码,都会先说这确定是我写的,没他人了。经过读我本人写过的代码,我才真正明确:写代码远比读代码容易了解。所以我再也不像个大明确同样 coding,而是开始思考如何让跟我同样的大明确们能读懂我写的代码。代码写成这样,一定有这样的缘故的。假如你打算对遗留代码入手,试着先去了解一下上下文。一启齿他人是二傻的,往往本人先是大傻。那末明天的研发小故事咱们就聊到这了,回忆你本人的 Coding 生涯,有无哪些值得称道的大明确时辰能够分享一二吗?
    我是 IT 之眼,下期再见

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    中级会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题40

    帖子51

    积分240

    图文推荐