写点什么

优秀开发者应该避免的五个错误

  • 2021-07-06
  • 本文字数:2170 字

    阅读完需:约 7 分钟

优秀开发者应该避免的五个错误

本文最初发布于 Rafael Quintanilha 的个人博客,经原作者授权由 InfoQ 中文站翻译并分享。


伟大的数学家 Carl Jacobi 曾说过“反过来想,一定要反过来想”。在他看来,逆向分析问题有助于找到最佳解决方案。有鉴于此,伯克希尔·哈撒韦公司传奇合伙人查理·芒格在哈佛大学做了一场精彩的分享,主题是关于探讨“怎样才能不成功”。由此,这让我开始思考——有什么最简单的方法能让你成为一名糟糕的开发者?你接下来将要看到的这些原则很主观,不尽全面,也没什么顺序。不过,如果你遵循这些原则,那么我敢保证你会成为一名糟糕的开发者。


我之所以把它们称为“原则”,是因为我在本文不关心技术问题。记住,反向思考。简言之,知道不要做什么后就更容易搞清楚究竟要做什么了,而且更稳妥。因此,请留意下面这些原则,并决定自己想成为哪种开发人员。

从来不做自己的代码存在 Bug 的假设


虚荣,绝对是我最喜欢的原罪。——阿尔·帕西诺,《魔鬼代言人》


软件开发是为数不多让你有机会经常犯错的领域。如果错误的影响不大,那么待在这样的领域挺不错。


不过,别忘了,你可以成为公司最好的开发人员,只要相比之下,你比其他人犯的错少就行。但是,你所犯的错误的绝对数量可能还是不小,这在所难免。好消息是,这没什么问题——机器通信需要很高的准确性,1 万行的代码库,一句错误就可能出现严重的问题


但是,因为你自觉比其他开发者优秀,这可能是真的,所以你开始考虑,自己不会犯错。或者说,即使出了什么问题,也跟你没关系。


问题是,很多时候,你都有责任。你编写了糟糕的代码,在审核过程中忽略了它,或是在计划时没有预见到,没关系。人人都可能犯错。


不过,如果你从来都不认为自己会出问题,那么你就会把责任推到其他人或东西上——同事、你用的愚蠢的框架、过时的浏览器或者老旧的操作系统。任何东西都要承担责任,除了你。而且,如果你从来都不承认错误,那么你就会像被诅咒了一样,永远也不会进步。作为一名开发人员,不进步是非常致命的。

编写代码时不用脑子


真理只能通过思考来领悟。——托马斯·阿奎那


作为人类社会的一员,我们学到的第一件事就是要衡量自己行为所产生的后果。这同样适用于编程。毕竟,你的工作是通过代码为人们创造价值。如果你忘了这点,就成了官僚主义者。而要让官僚主义者成为一名优秀的开发者,这会相当困难。


如果你只是无脑的做事,那么跟机器有什么区别。


在不远的将来,你就可能被人替代(被更善于思考的人,或是被可以降低成本的机器)。务必要理解分配给你的任务。除非,你想成为一名糟糕的开发者。

缺乏判断力


掌控自己的命运,否则就会被别人掌控。——杰克·韦尔奇


一名优秀的开发人员,却无法清楚地报告他所面临的问题,这种情况我还没遇到过。这是因为计算机非常听话,它会按照自己收到的准确指令行事。如果你在调式代码时有很好的判断力,就可以自己发现问题。但是,如果你没有那样的判断力,那么在解决问题时,别人的帮助可能会更有效。


记住,机器非常蠢,你必须得告诉它应该怎么做。在工作中,你要给它们发很多很多指令。终有一天,你会发出错误的指令。如果你不能有效地查看代码,并识别出错误的指令,那么你将会是一名糟糕的开发者。

热衷于写更多的代码


没有它们的时候,我们才开始意识到,许多东西并非必要。我们用它们,不是因为我们需要,而是因为我们拥有。——塞内加


为应用程序有多少行代码而自豪,这种情况非常常见,尤其是在新手开发者中。事实上,这是一个强烈的信号,你要成为一名糟糕的开发者了。


对于机器而言,每行代码都是一条指令。指令的数量越多,犯错的可能性也越大。同时,这也意味着,你需要具备更多的知识才能更改代码的行为。代码越多就会越让人望而却步。没有人想读、让人碰都不敢碰的代码是糟糕的代码。


我前面提到过”否定之否定“,很简单,就是”越少越好“。原因如下:把事情搞砸的方法远比改进方法多得多。如果你不想惹麻烦,就要尽可能降低弄乱代码库的可能,反之,糟糕的开发者会想方设法加入更多内容。


请记住,最终每行代码都会被阅读、测试、更改、增加甚或删除。显然,你的工作与代码量是成正比的。如果有人在不必要的情况下增加自己的工作量,那么他/她就是一名糟糕的开发者。

为机器写代码而不是为人


让我害怕的是,我们的技术已经超越了我们的人性,这一点已经变得非常明显。——爱因斯坦


最后也是成为一名糟糕的开发者最有效的方式。在我看来,为机器写代码而不是为人,是最容易犯的错,代码没有注释,变量名不准确、不一致,忘了缩进,等等。


要记住,机器只理解机器代码。其他非 0 非 1 的东西都是为了让人更容易理解代码。如果你不注意这一点,就会给人带来麻烦。要想成为一名糟糕的开发者,这可谓是一种完美的方式。


想一想,什么样的文章让你感到愉快。通常是简明、清晰、直接、有意义、前后一致的。无法理解作者的用意,叙述没有意义,写得很差或者格式很奇怪,你不会喜欢读这样的文章。同样,代码没有意义,需要付出巨大的努力才能掌握,也是打击读者积极性的绝佳方式。一个让读者灰心的作者是一名糟糕的作者,一个让读者灰心的开发者也无疑是一名糟糕的开发者。

写在最后


如果你想要成为一名糟糕的开发者,那么我希望上述原则对你有帮助。但是,如果你改变主意,想要成为一名优秀的开发者,那么你现在也已经知道应该避免什么。


原文链接:


https://rafaelquintanilha.com/how-to-become-a-bad-developer

2021-07-06 14:361733
用户头像

发布了 865 篇内容, 共 606.2 次阅读, 收获喜欢 1616 次。

关注

评论

发布
暂无评论
发现更多内容

阿里云ODPS十五周年重磅升级发布:为AI而生的数据平台

阿里云大数据AI技术

人工智能 云计算 大数据 数据处理 ODPS

[鸿蒙征文] HarmonyOS NEXT 语音播报 Demo:零门槛上手,小白也能秒启动

三掌柜

鸿蒙 HarmonyOS HarmonyOS NEXT 实践分享

暑期出境游还是鸿蒙5好用,轻松搞定流量、导航和翻译

最新动态

训练效率提升100%!阿里云后训练全栈解决方案发布实录

阿里云大数据AI技术

人工智能 云计算 大数据 强化学习 大模型

数字健康行业需要部署堡垒机的几种情形简单分析

行云管家

网络安全 数据安全 数字健康

CPU 负载高,到底应不应该告警?

巴辉特

最佳实践 监控告警 运维监控

畅连啦!华为开发者空间云开发环境惊喜上线

华为云开发者联盟

Meta的AI之路,为何节节败退?

脑极体

AI

2025年远程桌面软件深度评测:ToDesk、向日葵、TeamViewer全方位对比分析

小喵子

远程办公 向日葵 ToDesk TeamViewer

Playwright | ​​调试神器实战:Trace Viewer 录屏分析 + AI 辅助定位修复​

测试人

深度拆解UI智能设计:如何用D2C设计稿转代码,实现产设研一体化

职场工具箱

AI 产品经理 产品设计 ui设计 设计稿转代码

他来了!她来了!CodeBuddy IDE 首发!首批限时内测开启,速来尝鲜!

六月的雨在InfoQ

CodeBuddyIDE AIIDE

信用引擎驱动  新租赁带动消费新浪潮——中国新租赁行业洞察2025

易观分析

想在苹果Mac电脑上玩《原神》并不难,关键是选对方法。

阿拉灯神丁

原神 CrossOver Mac下载 如何在Mac上运行win游戏 mac虚拟机软件

Playwright | 异步加载克星:自动等待vs智能等待策略深度解析​

测试人

一文带你简单了解云安全管理平台-行云管家

行云管家

云计算 云服务 云管理

AI助力烟草专卖人才管理升级:构建智能化人员画像与队伍考评系统

中烟创新

腾讯云通过信通院云计算系统智能化可观测性能力最高等级认证

科技热闻

代码智能化在互联网大厂的规模化落地实践

思码逸研发效能

人工智能 研发效能 智能代码 研发效能管理 AI 编程

AI大模型的调用性能优化

北京木奇移动技术有限公司

AI大模型 软件外包公司 AI英语学习

Playwright自动化测试 | 第二阶段:核心技能与调试 ​​交互操作大全

测试人

华为何刚:深耕基础软件开源 使能千行万业创新

最新动态

MyEMS能源管理系统后台配置-组合设备管理

开源能源管理系统

开源 能源管理系统

中小企业会议成本高?可以试试这款私有化视频会议软件

BeeWorks

即时通讯 IM 私有化部署

私有化部署且支持局域网使用的IM即时通讯软件

BeeWorks

即时通讯 IM 私有化部署

“方寸之间见乾坤:英特尔双卡工作站的空间折叠魔术

科技热闻

AI大模型接口调用流程优化

北京木奇移动技术有限公司

AI大模型 AI教育 软件外包公司

MyEMS能源管理系统后台配置-设备管理

开源能源管理系统

开源 能源管理系统

QT客户端开发框架及特点

北京木奇移动技术有限公司

软件外包公司 QT开发 QT客户端开发

CST直角反射器 --- A求解器, 距离分辨率,ICZT与逆傅里叶IFT

思茂信息

仿真软件 电磁仿真 CST Studio Suite

打造可落地的“指标 + AI”应用架构,支撑智能问数与分析能力

袋鼠云数栈

指标 指标管理 智能分析 智能数据分析 智能问数

优秀开发者应该避免的五个错误_语言 & 开发_Rafael Quintanilha_InfoQ精选文章