Skip to content

Latest commit

 

History

History
63 lines (32 loc) · 7.03 KB

90-today-code-written-prevent-failure-problem.md

File metadata and controls

63 lines (32 loc) · 7.03 KB

90% 的今天的代码是为了防止失败而编写的,这是一种问题

原文:www.kdnuggets.com/2022/07/90-today-code-written-prevent-failure-problem.html

90% 的今天的代码是为了防止失败而编写的,这是一种问题

图片来源:cottonbro

没有数据科学家或工程师愿意知道他们的代码失败了。例如,你的数据可能格式错误。数据库可能宕机。或者,运行代码的计算机可能出现故障。有无数的失败原因可能导致你的代码未能实现其预定目标。尝试预测和防御这些失败是今天工程师面临的持续的艰难挑战。但如果我们只是改变我们的视角和框架,去说**“失败会发生——这没关系。”**,情况就不会如此。

积极工程与消极工程

为实现预期结果而编写的高效代码可以被归类为积极工程。公司雇佣工程师的目的是编写积极的代码,构建解决方案以满足业务关键和分析目标。相反,消极工程是为了对抗预期的失败并确保积极代码实际运行而编写的防御性代码。

尝试预测可能出现的各种问题使得编写消极代码既费时又令人沮丧,工程师报告说,他们通常将 90%的时间花在消极或防御性问题上。不幸的是,这段时间会影响整体生产力和主要目标,只剩下 10% 的时间用于工程师被雇佣来构建的积极解决方案。

工程师可能认为这种防御性的方法对他们的积极代码的成功是必要的,并且有助于减少失败的风险。但作为一个在风险管理领域工作了整个职业生涯的人,我可以说,有效的风险缓解并不试图预测和对冲所有可能的结果。相反,人们应当建立一个具有足够具体工具的框架,以应对手头的任务,同时又足够通用以处理未知问题。这就是关于建立一个消极工程框架,让用户可以与失败共处,而不是对抗失败。

积极工程的保险

我将消极工程框架比作家庭保险。购买家庭保险不会阻止你的房子着火或被淹,但它可以显著减少财务负担。同样,实现消极工程框架不会阻止失败的发生,但可以减少识别和修复问题所需的时间、麻烦和人才。

有效的框架包括适当的仪表化、可观察性和代码编排。作为你正面代码的保险,它不仅让你安排进程运行,还能知道该进程是否失败,从而确保解决方案的结果。失败的代码可能需要简单的重试,或工程师快速修改代码以缓解失败情况。问题可能是——并且通常是——看似微不足道的问题,但如果不加以检查,可能会引发蝴蝶效应。例如,关键任务分析管道的失败可能导致公司从错误的数据中做出战略决策。

需要注意的是,负面工程框架不仅仅是能够捕获错误信息。用户需要明确成功执行正面代码的预期。例如,如果计算机上运行的一个进程突然崩溃,机器可能甚至没有机会发送失败的错误信息。但是,通过创建一种逻辑,使框架能够推断出在预期未能实现时进程失败,工程师可以获得防御性见解,并对任何偏离设定目标的情况采取行动——即使面对意外情况。

任务成功失败

事实是,无论你写多少负面代码或尝试实施多少保障措施,失败都是工程师生活中不可避免的一部分。此外,失败的催化剂可能超出你的控制范围。以一家高增长初创公司的数据团队为例,这支由五名工程师组成的团队在管理分析堆栈时,其整个基础设施完全失败,导致报告中充满错误。

从他们破损的仪表盘开始倒推,团队发现几乎在每一层堆栈中都有一个又一个错误。团队最终发现这是因为每个阶段将其失败传递给后续阶段,导致每一步的失败链反应。在经过三天的调查工作后,团队揭示了失败的根源:问题竟然如此简单——附加在 SaaS 供应商上的信用卡已过期。由于供应商的 API 集成在团队管道的早期阶段,账单错误造成了一连串的失败,直至终端用户仪表盘。

一旦他们找到了问题,团队幸运地解决了它。他们只需要了解根本原因,解决方案就很简单。防御性、消极的代码无法阻止这种失败——因为催化剂是外部的——但一个保险框架可以减轻其影响。一个好的工作流程工具可以识别根本故障,并防止下游任务的执行,预期如果这些任务继续执行,将只会导致一系列失败。这种可见性将帮助五人团队将三天的调查时间缩短到几分钟,并大幅提高生产力。

生产力提升可能是消极工程框架的最大好处,工程师接受失败的发生,并拥有减轻其影响的工具。与其花费 90%的时间去防止失败,他们可以更多地投入到编写积极的代码中,从而推动业务成果。即使将消极代码的时间减少到 80%,也意味着将积极工程时间从 10%提升到 20%——有效地使生产力时间翻倍。这仅仅是心态转变带来的非凡收益。工程师因此可以自信地确保他们的积极代码按照设计运行,并管理未知及其带来的所有风险。

Jeremiah LowinPrefect 的创始人兼首席执行官。


我们的三大课程推荐

1. 谷歌网络安全证书 - 快速进入网络安全职业。

2. 谷歌数据分析专业证书 - 提升你的数据分析技能

3. 谷歌 IT 支持专业证书 - 支持你的组织 IT 需求


更多相关内容