海外社媒SNS代运营Tiktok代运营公司
Revive Old Posts

如果您从事软件开发,您将不​​得不在某个时候处理技术债务。 所以要回答标题中的问题……不,你无法避免它。 但是,您可以采取一些措施来最大程度地减少其影响并确保它不会失控。 至少太糟糕了。

什么是技术债?

有时被称为技术债务,本质上是随着时间的推移,由于代码不完善而产生的成本。 对源代码的更改和更新是有成本的,向开发团队添加新成员、添加新功能或修复错误和修补漏洞也是如此。

随着您的项目变大,代码库扩展,并且有更多的人在处理该代码,他们的声音和风格会在这里和那里发生冲突。 也许你有一个截止日期,一个不太理想的解决方案被修补到源代码中以按时完成。 也许您添加了一个您不完全理解的开源组件来处理功能而不是自己编码。 或者你可以在不同版本之间切换库(例如从 Backbone 到 React),但仍然需要支持人们在他们的项目中使用遗留代码库。

这些东西绝对不是 坏的. 不是靠自己。 也许根本就不是。 但是当加在一起时,他们产生的技术债务将不得不在未来的某个时候偿还。

在某些时候,可能需要替换(或分叉)该开源组件。 这将花费时间和金钱。 在遥远的将来,您需要从项目中删除所有 Backbone 代码并停止支持旧用户。 再次,时间和金钱。 你为满足最后期限而做的那个补丁? 好吧,它最终会被撤销,需要更永久的修复。 时间和金钱。 并且您的团队中会有新成员通过旧代码来完成所有这些工作,需要了解以前开发人员的代码和逻辑。 时间。 钱。

你懂了。

虽然技术债务是一个抽象术语,通常是比喻性的,但技术债务的成本是非常真实的。 偿还它具有货币价值,您可以在工作时间和工资单中跟踪您支付的利息。 您可以在所有软件开发的底线中看到它。

你能避免技术债务吗?

就像我之前说的……不是真的,不是。 如果您在代码发布后返回到代码中,您将在您编写的每个项目中累积技术债务。 但是,如果您分解技术债务的类型,您可以在您的项目中最小化甚至考虑它。 如果您事先考虑债务,这与获得汽车贷款或抵押贷款没有什么不同。 您查看成本、利息和收益,然后决定是否可以/想要支付。

海外社媒SNS代运营Tiktok代运营公司

让我们来看看我们上面讨论的一些例子,看看是否有办法避免、最小化或吸收成本。

考虑有目的的技术债务

当我们说有目的的技术债务时,我们的意思是您的团队做出的决定不属于您所从事的语言或项目类型的所谓最佳实践。 我们之前提到过,您可能有一个截止日期。 也许这个截止日期是艰难而快速的。 也许它被更改或转移的可能性为 0%。

这是您需要考虑贷款并承担技术债务的时候。

你真的有三个选择:

  • 推出未完成且有缺陷的软件,但您不会为代码的清晰度和逻辑做出让步
  • 拉取您无法完善的功能,但尽可能发布您拥有的编写好的功能
  • 制定开发决策,发布“足够好”的代码以使一切正常运行,但稍后可能需要再次解决

这里的第三个选项通常是人们选择的一个。 这将陷入技术债务。 这没有任何问题。 因为你决定这样做.

偿还有目的的债务贷款

确保在代码中记录选择走这条路线背后的决定。 记下您所做的与理想的解决方案。 并确保您在源代码中至少包含某种注释,以表明此债务解决方案的实施位置(如果您知道,还包括项目其他领域的受影响系统)。 如果您不采取这一步,那么添加到项目中(即使是在错误修复和补丁中,更不用说新功能或扩展的代码库)可能会因为在您期望一个完整的解决方案时找到一个拼凑的解决方案而被严重延迟。

同样,拼凑的解决方案可能非常好,永远不会给您带来任何实际问题。 但技术债务仍然存在,需要加以考虑。

考虑遗留代码技术债务

另一种常见的技术债务是 WordPress 目前正在积累的技术债务。 WordPress 可以在 PHP 5.x 上运行。 然而,最新的更新会告诉用户它必须至少是 PHP 5.6。 到 2019 年底,WP Core 将需要 PHP 7.x。 但是,通过将需求推高,必须更新许多旧代码。 因为在插件、主题和 Core 本身中仍然有 PHP 5.x 代码。

更不用说新的块编辑器了。 它是用 JavaScript 编写的。 反应,具体。 这与 PHP 无关。 事实上,WordPress 核心的大部分内容都被一点一点地重写为 JavaScript。 但所有这些 JS 也必须与 PHP 相得益彰。 采用新技术很棒,需要采用新的版本控制要求。 但这样做,你支付利息 不可避免 您因该软件存在一段时间而产生的技术债务。

偿还遗留代码的债务

这有点困难,因为没有很好的方法来做到这一点。 您可以选择核选项并在新的语言/框架/版本中从头开始完全重写(看看我们在 Divi 2 和 Divi 3.0 之间做了什么,从 Backbone.js 到 React)。 然而,这仍然不能完全解决债务问题,因为仍然有人在使用旧库。 在某些时候,您将不得不放弃对遗留代码库的支持。 这有点像偿还贷款。 直到你不得不拿出下一个。

如果这不是一个选项(或对您来说最好的主意),您可以确保您不依赖于特定于语言或版本的功能。 前端开发人员必须一直处理这个问题,因为有些浏览器支持全新功能很快,而其他浏览器(Microsoft Edge/IE,咳咳)可能永远不会采用它。 您可以通过坚持基础知识来为您的项目提供未来证明,这反过来会使升级或重构时需要解决的更改数量少于其他情况。

随着时间的推移考虑多个开发人员

这是一种技术债务,随着时间的推移,大型团队往往比小型开发团队更糟糕。 尽管即使是小孩子也需要担心。 你看,每个软件工程师写代码的方式都不一样。 很少有两个开发人员使用完全相同的代码解决相同的问题。 它们可能执行相同的功能,最终结果可能相同,但代码将以作者的声音编写(就像您可以在这里分辨谁写了帖子,例如 Jason、Nathan、Donjetë 和我都有不同的风格)。 代码也不例外。

记住这一点,逻辑有时也会有不同的声音。 一个开发人员的想法非常清楚,另一位开发人员会查看并且不知道为什么代码会这样做。 当无法再咨询原作者时,这个问题就变得真正有问题了。 由此产生的技术债务可能是灾难性的。 但是有办法处理它。

偿还旧开发人员的技术债务

最简单的方法是聘请最好的开发人员,永远不要让他们离开你的公司。 曾经。

由于这种情况不会在 100% 左右发生,因此偿还这笔债务可能比您想象的要容易一些。 首先,确保你训练你的开发团队评论他们的代码。 并且要好好评论。 每当他们做出一个甚至可能被其他人远程认为模棱两可的决定时,让他们记下他们为什么这样做以及该功能是如何工作的。

此外,请确保您团队中的每个开发人员都遵守风格指南或一套标准。 WordPress 核心有一套编码标准,可以将插件、主题和核心贡献保持内联,以便以后来的任何人都不会遇到问题。 Airbnb 有一份 React 风格指南,该指南已被采纳为全行业的非官方标准。 即使是内部风格指南和标准也能防止你的开发人员自己走得太远,因为除非它们符合要求,否则不会合并这些类型的提交。

包起来

技术债务是一个非常现实的问题。 如果您知道如何管理它,它也是一个非常真实的资源。 通过决定何时承担技术债务以及如何偿还债务,您的开发可以比其他方式更快、更顺利。 在那些不可避免地要承担这种负担的时候,我们希望我们已经为您提供了一些策略想法,您可以实施这些想法以减少其影响。

您如何处理项目和开发团队中的技术债务?

文章特色图片由 Andrey Suslov/shutterstock.com 提供

海外社媒SNS代运营Tiktok代运营公司
Revive Old Posts