专栏首页腾讯NEXT学位金山银山,扛不住代码“屎山”……

金山银山,扛不住代码“屎山”……

在知乎里,有一个充满味道而且很有意思的提问,引发了无数专业人士的吐槽:

问题中提到了“祖传代码”,顾名思义就是前辈留下来的代码。

随着系统的不断更新迭代,代码逐渐耦合笨重,阅读和修改的体验越来越糟糕,久而久之,这堆代码嗅起来,就逐渐充满了不可名状的味道,因此也被程序员们起了一个亲切的名字,名为“屎山”。

几乎所有程序员,都遇到过奇形怪状的祖传代码,而且在更新迭代的过程中苦不堪言。小E的学弟就有过亲身经历:

有时候前辈也看不懂前辈的代码,只能惺惺相惜,一起膜拜大佬:

i = j + curRunTime;

//我尽力了 我真的搞不懂上面i和j与前后面代码的关系

//楼上我懂你 命名变量咋直接上英文字母

//我可去你的 那两个代表什么啊啊啊啊啊

甚至有小伙伴在祖传代码里面,发现了更神奇的八代单传代码和无字天书代码,并确切的认为,祖传就是等于无数修不完的bug。

▲ 改祖传代码的后果

因为祖传代码的“斑斑劣迹”,修改祖传代码成为了程序员们的永恒梦魇,更新架构的工程师,也被大家尊称为“明知山有屎,偏向屎山行”的大侠,并把他们的工作称为“屎上雕花”。

尽管我认识的程序员中100个中有99个都在吐槽祖传代码有多么的臭不可闻,但也有很多同行站出来,发出了不同的声音:

这位小伙伴虽然接手了祖传代码,但因为团队已经有优秀的代码风格,看着这一目了然的结构和注释,连写新代码都小心翼翼,就怕自己“狗尾续貂”。

有的小伙伴用自己亲身经历举例,并得出结论:只有屎堆出来的才是屎山。

通过上下两组小伙伴的对比,其实可以很明显的发现,没有发现“屎山”的公司,他们的祖传代码有如下特点:

1. 都有清晰的结构和注释

2. 有贯穿始终的代码风格

3. 有完整且细致的日志文档

正因为有这些特点,本来令人心生畏惧的祖传代码,瞬间变成了熠熠生辉的“金山”,也因为这些优秀的代码习惯,有良心的后来者也会产生英雄相惜之情,共同传承这份优秀的代码。

而反观那些被认为屎山的祖传代码,就没有这些代码习惯了,后来者大多无法判断某行代码做了什么,不改有bug,改了却更多的bug,最后也只能硬着头皮删删改改,往看不懂的代码里添加更看不懂的代码,让这座本来成功的屎山更加成功。

祖传的屎山代码已经不可更改,但英俊潇洒的你,依然想写那些被后辈疯狂责骂的代码吗?

还不快点养成优秀的代码习惯!用你一己之力,把屎山变成金山银山!

来腾讯课堂NEXT学院吧!

Web前端由小白到大师体验课,由腾讯专家亲自授课,带你完成各种实战项目,一步一步带你养成优秀的代码习惯,让你成为后辈心里的“金山大侠”,高手中的高高手!

快来添加我们的小助手,了解课程详情吧~

也可以点击下方原文链接,直接查看课程哦~

请扫码添加小助手咨询

也可直接查找微信号:TencentNext01

▲ NEXT学院 官方课程助教 ▲

你点的每个赞,我都认真当成了喜欢

本文分享自微信公众号 - 腾讯NEXT学院(Next_Academy),作者:小N

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《Node.js在CLI下的工程化体系实践》成都OSC源创会分享总结

    腾讯NEXT学位
  • JavaScript引擎分析

    ? 一.JavaScript简介 JavaScript是一种动态类型的脚本语言;在1995年时,由Netscape公司的Brendan Eich,在网景导航者...

    腾讯NEXT学位
  • 你被代码习惯坑了多少次?

    相传,江湖中,有三种程序员。 他们写代码的追求各不相同。 优秀程序员写代码追求让别人看懂,普通程序员追求让自己看懂,蛇皮程序员则追求让编译器能看懂。 半年以后...

    腾讯NEXT学位
  • 自下向上的编写容易阅读的代码(上)

    我在 关于极简编程的思考 中曾提到要编写可阅读的代码。因为代码是编写一次,阅读多次。 阅读者包括代码编写者,以及后来的维护人员。能让阅读代码更轻松,有利于增强项...

    java思维导图
  • 于码农而言什么样的代码才能叫做好代码?

    好的代码,就像是一辆配备了优秀音响和杯架的汽车,这辆车在行驶到最高速度的时候,你听不到噪音,也不用担心水会洒出来。在它出现故障的时候,任何一名修理工都可以使用最...

    纯洁的微笑
  • 程序员请改掉影响你升职加薪的36个坏习惯!

    IT行业的科技公司们一直苦苦追寻传说中以一当十的超级程序员,最新的研究表明确实存在这样一小撮效率奇高的“程序金刚”,但是一位普通程序猿如何能够蜕变成代码金刚呢?

    Java后端技术
  • 细节决定品质:不良的if/else使用习惯

    这个时候应当考虑提取成函数调用,以减少直接的if/else嵌套层次。同理,while/for也应当避免这种情况。

    一见
  • 从条件运算符说起,反思什么是好代码

    那什么样的代码才是优秀的代码呢?对于这个问题,我想每个人心中都会有自己的答案。今天我就来和你聊聊我的思考。

    架构师修炼
  • 高级Python工程师教你如何正确写代码

    我接手的第一样东西就是React UI。我们有一个主要组件,它容纳了其他所有组件。我喜欢在代码中加入一点幽默感,我想把它命名为GodComponent。在cod...

    小小科
  • Dead Code为什么能在代码库中永生?

    在一些遗留系统中,经常会看到大片大片灰掉的代码(被注释掉了),这种代码是死代码吗?如果要我下定义,我认为这些不是死代码,因为它们连代码都称不上,如何又能叫死代码...

    袁慎建@ThoughtWorks

扫码关注云+社区

领取腾讯云代金券