Quora 上看到一篇不错的文章,原文为 What are the characteristics of a bad software engineer?

以下为笔者翻译的版本,在 Quora 的授权条款下,译文采创用 CC 4.0 姓名标示授权,转载请注名原文出处及译者姓名。原作保留收回授权的权利。

以我个人的经验,糟糕的程式设计师具有以下这些特质:

  1. Stack Overflow 机器人:这种人遇到问题时,会灵活地使用 Google 搜寻,并采用所找到的第一个结果(按:好的答案通常在 Stack Overflow 上)。

    问题不在于从 Stack Overflow 上抄答案回来用,因为 Stack Overflow 上面的资料确实比多数官方手册来的丰富与完整。所以请不要误会我的意思,上网找答案就算不是最棒的途径也属上上策。问题在于不加理解就机械化地采用网路上的答案,甚至也不管适不适用于自己的问题。许多人居然会觉得论坛上的说法比他们眼前的程式码更可靠。

  2. 我不是测试人员:我不需要测试自己的程式码,那是测试人员的工作。

    我不认为这种态度在这个敏捷开发方法成熟的时代已经式微。还是有一些原因造成他们不愿改变习惯去测试自己的程式码。其中一部分来自于对设定测试环境没有兴趣,另一部分是对测试这门学问没有通盘的认识。(还有一部分是开发人员社群对测试人员存有不便明说的轻蔑。)

  3. 讨厌手册:有些人好像认为手册必须要押韵,而他们没有那种文学素养,所以那自然不会是他们的工作。

    一点浅见:这是活跃的程式计画的头号敌人。好的程式不是那种酷炫功能多如繁星的,而是那种具备一些多数人需要的好功能且程式码持续被许多开发人员阅读、修改和更新的。这类不喜欢技术交流和精确、详尽的手册的开发人员,是公司迈向成功的最大阻力。

  4. 程式码很丑:我的程式码可以跑,但是:
    • 我喜欢为变数取名叫 x、flag、str、arr 等等。
    • 我绝大多数的程式码都集中在一个很长很长的函式裡。
    • 没有缩排。
    • 没有一致的风格和规则。
    • 到处都是全域变数。

    这一项是最令我困扰的。也不是说程式写得不好啦,这裡面还是有可能会有超猛的程式码。但我打个比方,如果一串钻石项鍊挂在像酷斯拉那麽大的超巨型噁心怪虫的尸体上被埋葬于地底,就再也不会有人找到它了。就算被找到,也不会有人想要清理它甚或戴上它。

  5. 短线投机客:他会不断地写出程式给你,但是不会尝试深入瞭解问题,对程式应用领域的背景知识也全无兴趣。

    给他一些工作,他就算加班也会使命必达地交给你一个会动的程式。但也仅止于此。有时候开发人员具备一些自私的心态,促使他不只关心截止日期,也想从处理的事物中学到东西是很重要的。

  6. 切割达人:

    「那不是我做的。」

    「这看起来真糟糕。」

    「不是我的问题。」

    「这不是我修改的程式码造成的问题,而是用到我的程式码的人没写对。」

    「我超讨厌这个(一天要讲十遍)。」

    「这我修不好,请去把写这程式的人找来亲自处理。」当初写出错误的人已经离职了,不知道什麽时候会轮到你?

  7. 夜郎自大:「我的方法」或「这才是王道」是他们的座右铭。

    但他说来说去都是在比较他的想法和你的想法,而不是这个案子的规格。不然就是拿你的解法和他的解法做比较,随之而来的就是彼此间的争论。有时候他们会一直不断挑剔你的程式码,因为就算你的程式码会动、通过测试、看起来也很工整,仍旧令他们感到不舒服。这种人是开发效率的瓶颈,而且通常抗压性很差。他们对团队其实没什麽帮助,虽然他们很可能是资深的开发人员。

  8. 固步自封:例如当 Java 的程式设计师听到必须要用 Python 来写一支程式,马上就会石化给你看。

    有些人对于学习新事物感到很痛苦,有些人则很怕写东西进资料库。他们会用尽一切方法来避免离开自己的舒适圈,此外有些迷信也使得他们不敢碰某些特定领域的东西。以我自己的经验来说,这种现象在新手中是很常见没错,但一个好的开发人员即便在他们不熟悉的领域也乐于探索。

  9. 粗心:忘记备份、同一个案子的程式码有很多版本分别放在不同的资料夹、在产品版本的程式中印出开发用的除错讯息等等。

    这是另一个常见的新手现象,在他的经验值提高后就会有所改善。

  10. 懒惰的假高手:他们对能够透过一些特殊的技巧让程式运作感到自豪,会用一些神奇的方法来解决看起来很複杂的问题。

    不过根据我的经验,这些招式十有八九都只是化妆术。那些怪招都嘛很烂,因为不知道什麽时候会爆炸,而且之后在修複、重构上花的时间会比现在一次做好还要多。

余下全文(1/3)

本文最初发表在murmuring-on-the-air.github.io,文章内容属作者个人观点,不代表本站立场。

分享这篇文章:

请关注我们:

发表评论

电子邮件地址不会被公开。 必填项已用*标注