优秀开发者的 9 个编码秘诀
编写语法现在很便宜。很多工具会为你生成它。
区分优秀开发者的是判断力。而判断力存在于没有人写下的习惯中。
这些习惯大多来自让某人付出糟糕一周代价的错误。
你通过发布错误和看着资深开发者用一行代码修复你花了一天时间的问题来学习它们。
这里有九个。现在就学习它们,少留几个伤疤。
1. 最好的代码是你删除的代码
编写比你认为需要的更少的代码。
你添加的每一行,你都终身拥有。它可能会坏,需要测试,以后会有人阅读。
更多的代码给错误更多藏身之处。更少的代码意味着更少的维护和解释。
你发送的最好的拉取请求删除的比添加的多。
这就是改变我想法的原因。我认识的最好的工程师曾经在一个 PR 中删除了两千行代码。
他删除了我们为从未到达的流量构建的缓存层。
三个旧错误随之消失。没有人想念它们。
2. 当它坏掉时,首先怀疑你自己的代码
某样东西坏了,你的直觉说是框架做的。你的直觉是错的。
在指责任何其他人的代码之前,检查你写了什么。
这些工具每天为数百万人运行。你的新代码一小时前才第一次运行。
所以从你改变的东西开始。你会更快地找到错误,而且看起来更聪明。
让我省去你一个下午的时间。我曾经发誓一个大型库有内存泄漏。
我甚至开始写错误报告。泄漏是我的。
我订阅了一个事件但从未清理它。库没问题。
3. 从不失败的测试什么都没测试
绿色测试感觉安全。这种感觉会让人受伤。
一个从未失败的测试可能什么都没检查。
如果通过的测试在代码坏掉时不能失败,那它就毫无意义。
所以故意破坏代码,看着测试变红,然后修复它。
一个队友在支付功能上学会了这一点。他的整个测试套件都是绿色的,所以他发布了。
一个测试检查了错误的字段。无论代码做什么,它都通过了。
一个真正的错误径直通过。现在他在信任每个测试之前都会先破坏它一次。
4. 为下一个阅读你代码的人而写
计算机运行你喂给它的任何混乱。下一个人必须理解它。
那个人就是你。未来的你,忘记了这一切是如何工作的。
你阅读这段代码的时间远多于你编写它的时间。所以让自己轻松点。
聪明的代码写起来感觉很棒,读起来却很痛苦。每次都选择清晰。
我重新打开了一个我一年前写的一行代码。我读不懂自己的代码。
它把三个步骤压缩成一个我不再记得的技巧。
我把它重写成四行普通代码。下一个读者,又是我,很高兴。
5. 没有什么比临时修复更永久的了
你即将添加的那个快速 hack 会比你在这个公司待得更久。
没有人会回来清理它。下一个人会在它上面构建。
一旦其他代码依赖于你的快捷方式,删除它本身就变成了一个项目。
所以编写临时修复时要像它必须存活五年一样,因为它会的。
一个团队硬编码了一个客户 ID 来访问演示。他们留下了一个 TODO 以后处理。
四年后,三个服务读取该 ID。移除它花费了一个完整的冲刺。
演示持续了一个小时。hack 比编写它的两个人中的两个活得更久。
6. 拿到你的估算,然后翻倍
无论你即将给出什么估算,都翻倍。
你想象的是干净的路径。工作是干净路径周围的一切。
测试、边缘情况、审查、会议、在预发布环境中坏掉的东西。
你的第一个数字假设什么都不会出错。总会出错。
一个朋友为一个简单的 CSV 导入报价两天。样本文件看起来很干净。
然后真正的文件出现了。三种日期格式,缺少列,一行表情符号。
两周后才发布。那条干净的路径只占工作的十分之一。
7. 一小时后求助,而不是一天后
卡了一个小时没有进展?求助。不要让它变成一天。
独自在那之后继续只会保护你的自尊,别无其他。
你团队中的资深开发者以前见过你的错误。一个问题可以节省你几个小时。
及早求助是一种技能。它显示的是判断力,而不是弱点。
我团队中的一个初级开发者因为一个损坏的设置浪费了一整天。他不想看起来很迷茫。
他最后还是问了。一位资深开发者在一分钟内找到了一个缺失的环境变量。
一天的自尊让我们损失了一天的工作。那个问题本来只需要两分钟。
8. 如果它能用,就别碰它
看到那个每个人都避免的丑陋函数了吗?别管它。
它看起来不对,因为它存活过了你还没遇到的每个边缘情况。
每个奇怪的分支都是某人已经修复过的错误。那团混乱是记忆。
如果你必须碰它,改一个小部分并在生产环境中观察它。
一个同事发现了一个充满奇怪特殊情况的日期解析器。他花了一个下午清理它。
两天后,来自一个地区的订单停止了同步。每个分支都守护着一个真正的错误。
他花了一周时间把它们加回来,一次一个愤怒的工单。
9. 永远不要在周五发布
永远不要在你计划离开之前推送有风险的更改。周五是经典的陷阱。
假期、长周末或休假前也是一样。
部署需要有人盯着。Bug 在上线后几分钟就会出现,而不是几天。
发布然后走开,混乱会落在留下的人身上。通常,没有人。
在一天和一周的早些时候发布,这样人们可以帮忙。
我认识的一个团队在周五晚些时候推送了一个安全的配置更改。所有图表都保持绿色。
一小时后,支付服务开始超时。大多数人已经退出了。
他们在周日之前修复了它。早上部署会在办公桌前就发现它。
还有一件事
这些都不会出现在课程中。你一次一个伤疤地赢得它。
或者你从已经付出代价的人那里获取它。这就是这个列表的意义。
选择那个读起来刺痛的秘诀。明天从那里开始。
原文链接:9 Hidden Coding Secrets Only Great Developers Know
汇智网翻译整理,转载请标明出处