为什么我保留错误的个人日志

2020-12-05 06:26:34

在创建软件时,您会犯错误。有时它们会很大,有时它们会很小,但是如果您花一些时间记录它们,则可以随时向他们学习。

在担任软件工程师10年以上之后,我意识到它并没有改变。您可能会开发出一些技术来防止某些事情发生,但是其他一些事情会出现,但永远不会结束。

为了从这些错误中学习并在将来避免它们,您可以开发一个错误日志。我们将在这里看到这是什么以及它如何工作,但我保证会有所帮助。

我最近在Buffer公司介绍了这个想法,在这里我已经工作了将近5年了,我认为在这里公开分享也很不错。

有时,您可能只专注于开发新功能或仅修复错误,但是如果您正在构建软件,则这些是您工作中最大的部分。

我认为我们将重点放在如何更有效地开发新功能上:使用最新的框架,文本编辑器或IDE,新的编程范例等,当我们再次构建新的东西时,我们尝试应用已经拥有的东西。学习和改进。

另一方面,当我们修复错误时,我们倾向于尽快完成修复,然后继续进行其他操作,几乎就像一开始就没有发生。很少有人会花时间尝试学习新的调试技术,而不是学习最新的框架。

如果我们花更多的时间思考这些错误,向他们学习并理解错误的根源,我们将可以改善很多。 我已经开始记录这些错误,仅记录了我是唯一一位执行此操作的工程师,以便我可以完全理解上下文并反思我个人所做的事情。 有很多不同的方法可以做到这一点,但是我认为拥有一个地方可以收集所有这些信息,并在将来搜索参考和模式是很酷的。 我不知道该术语是否已经存在,但我称其为“错误日志”。 ♂️♂ 错误日志是您以前引入的错误的集合,每个错误的不同部分均包含以下内容: 引入错误的上下文以及您要实现的目标(修复另一个错误,添加新功能等)。 错误发生的原因。 生产中的错误使您意识到存在错误。 您随后学到的教训。 您在此过程中学到的知识摘要。

这些部分对我有用,但是如果您要启动错误日志,请随时根据您的需求进行调整。

#上下文在处理此JIRA故障单____时,尝试跟踪后端的操作时,我合并了pull请求,但在特定环境下生产失败。 -链接到票证:....-链接到拉取请求:....#错误发生的原因在一个环境中未设置环境变量,这会导致生产错误。 #我如何解决它。我通过执行X和Y创建了新的环境变量。使用环境变量时,请确保在部署之前所有环境中都可用。

如您所见,它并不是正式的东西,而是给您的,所以请随意使用最有意义的格式和语气。

与此相关的一个不错的方面是,如果我看到这成为一种模式,例如,如果我在明年左右引入了多个此类错误,那么我可以寻求一个更好的解决方案。例如,一个解析器比较环境。新的拉取请求中使用的变量与生产中的变量一起使用。

我已经成为Notion的忠实拥护者,并且在其中添加了它,以便其他团队成员可以看到它,但是它可以在任何地方使用,任何记笔记应用程序甚至带有某些markdown文件的Github存储库都可以使用。

我意识到的是,通过一句话总结我引入的错误以及为什么我可以轻松地反映和学习该课程。我已采取了另一项措施,以免将来忘记它,因此我使用了Anki,这是一种不时查看卡片的解决方案,可帮助您了解卡片中的内容。

我以前将其用于其他目的,但为此创建了一个新集合。我要做的是创建一张卡片,正面是我引入错误时所面对的情况,背面是所汲取的教训。例如,在这里是:

前面--------当我在代码中使用环境变量时该怎么办?后面--------通过在适当的环境中设置X / Y来检查X / Y。 这将加强我的学习,并且将来我会更容易记住它。 它还可以包含一些代码示例,以便您将情况与将来要修改的新代码相关联。 我是Anki的忠实拥护者,它是如何帮助您提高工程师水平的,所以我会尽快写一篇有关它的文章。 我要做的另一件事是在填写新条目之前,我可以尝试在日志中搜索类似内容。 有时候,这有助于我理解我是否倾向于犯同样的错误。 我希望这对您有用! 您有什么想法或反馈吗? 在Twitter上告诉我! 😉