在克服我们自己的心理缺陷的同时编写代码的4个技巧
如果要在现在的一块蛋糕或一个月后的一整块蛋糕之间做出选择,我们可能会选择第一个。这种心理偏见被称为“时间偏好”或“延迟折扣”。
我们都见过这样一个很好的例子,孩子们试图通过不吃棉花糖来坚持下去,希望得到更大的回报:
图>
在编写代码时,我们经常面临同样的问题,必须在不良实践的短期优势和由此产生的长期成本之间做出选择。
另见: 物联网和编码——最流行的编程语言是什么?
为了帮助摆脱对低效棉花糖的迷恋,这里有 4 个示例,说明我们何时以及如何克服偏见以实现长期收益。
1.为您自己的利益编写单元测试
我们都读过、学习过并听说过它。测试是一个很好的例子,我知道我应该为了长期利益而做一些事情,但在我现在试图完成工作时却妨碍了我。
这里有一些想法可以帮助平衡这个等式:
- 测试确保在您更改内容时不会出现任何中断 .这意味着您可以更改代码并当场知道一切是否正常。这让您可以更自由地工作,即使是现在也是如此。
- 测试有助于确定某事何时“足够好”。 测试定义了一段代码“工作”意味着什么。这实际上可以让您花费更少 花时间优化你并不真正需要优化的东西。
- 测试有助于编写可重用的代码 .你可以用更小的模块化部件组合更大的东西。慢慢地,您正在构建一个令人印象深刻的可重复使用的构建块库,随时可以在您的命令下使用。
此外,请为您编写的测试感到自豪。查看挂在代码上的所有绿色指示器。知道你的实践和道德是优秀的。这没有什么可耻的。
2.使代码在您工作时可重复使用
编写可重用的代码具有许多长期优势以及一些直接优势。只要有可能,请设计您的代码以供重用。然后,将其发布/导出到开源。
您不必花费数小时发布软件包。相反,您可以将这些小组件导出到 Bit。这是 Ran Mizrahi 的一篇博文,解释了为什么以及如何在几秒钟内导出小组件。
您可以非常快速地创建一个可重用的 React 或 Angular 组件库或一个不错的实用函数范围。
工作量很小,Bit 的社区中心 Web 视图可让您快速查看组件的文档、测试、下载等,让您对现在可供全世界使用的工作立即感到满意。您还可以与您的团队或社区分享。
3.不要复制粘贴。只是不要。
一个经典的例子。复制粘贴现在可以更快地完成工作,但重复会使我们的代码库在明天更难维护,从而造成不断增长的技术债务。
每一个小的改变都必须在多个地方进行,而且往往只有在滚动到生产时才会发现问题。
我们能做什么?好吧,不要复制粘贴代码!只是不要。相反,查找/创建/共享可重用组件。 Sindre Sorhus 发布了 1,000 多个小包。包很硬,1000个很多。
我们可以使用 Bit 使这个过程变得简单(在几秒钟内导出组件)并设定一个可实现的目标,例如使 100 个组件可重用。您会发现 100 个左右可能足以显着减少重复次数,而且很快您就会发现重复使用比重复快得多。
4.记录您的代码,讲述一个故事
良好的文档意味着如果我明天被野狼吃掉,其他人将能够取代我。毫无疑问,这很重要,但不是我现在最关心的问题。我宁愿完成工作,也不愿担心“未来的我”或那些会跟随我的人。如果我能及时处理,我以后会担心它们。这种(非常人性化的)优先排序会导致文档中的空白和草率。
但是,我可以接受另一种观点,以确保我不会忽视我的文档。
代码本身及其文档都是我所讲述的逻辑故事的表示。通过写下代码的每一部分,添加它接收的参数、返回值、添加一些示例等,我还可以很好地了解我正在编写的代码的故事情节。我了解它是如何作为大局的一部分运作的。
好的文档表明您完全了解自己在做什么以及如何做。如果故事没有意义,最好通过文档而不是通过代码本身找到。
归根结底,我们的意志力是一种有限的资源。每天每时每刻都强迫自己与自己的心理作斗争,这是一场艰苦的战斗。然而,接受良好的实践是一种惯例,并且立即给予我们这样做的奖励可以帮助我们在一天结束时获得更多。
毕竟,一次一个棉花糖真的不够。
物联网技术