Divi WordPress Theme

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

什么是技术债务?

有时称为技术债务,从本质上讲是您拥有不完善代码会随着时间的流逝而付出的成本。 对源代码进行更改和更新需要一定的成本,向开发团队添加新成员,添加新功能或修复错误和修补漏洞也需要付出一定的代价。

随着您的项目规模的扩大,代码库的扩展,以及越来越多的人使用该代码,他们的声音和样式将在这里和那里发生冲突。 也许您有最后期限,并且将不理想的解决方案修补到源代码中以按时完成。 也许您添加了一个您不完全了解的开源组件来处理功能,而不是自己编写功能。 或者,您可以在版本之间切换库(例如,从Backbone到React),但仍然需要使用项目的旧代码库来支持人们。

这些东西绝对都不是 坏的。 不靠自己。 也许一点也不。 但是,加在一起,它们产生的技术债务将不得不在将来的某个时候偿还。

在某个时候,可能需要替换(或分叉)该开源组件。 这将花费时间和金钱。 在遥远的将来,您需要从项目中删除所有Backbone代码,并停止支持旧版用户。 再次,时间和金钱。 您是在截止日期之前完成的补丁? 好吧,它最终将被撤销,需要更永久的修复。 时间和金钱。 您将拥有团队中的新成员,他们需要使用旧代码来完成所有这些工作,因此需要了解以前的开发人员的代码和逻辑。 时间。 钱。

你懂了。

尽管技术债务是一个抽象术语,通常是隐喻的,但技术债务的成本却是非常现实的。 偿还它具有货币价值,您可以在工作时间和工资单中跟踪您为此支付的利息。 您可以在所有软件开发的最底端看到它。

您可以避免技术债务吗?

就像我之前说过的…不是,不是。 如果您在代码发布后重新使用它,那么您将在所编写的每个项目中增加技术债务。 但是,如果分解技术债务的类型,则可以在项目中最小化甚至解决该问题。 如果您事先考虑债务,那与申请汽车贷款或抵押无异。 您查看成本,利息和收益,然后决定是否可以/愿意支付。

让我们看一下上面讨论的一些示例,看看是否有一种避免,最小化或吸收成本的方法。

考虑有目的的技术债务

当我们说有目的的技术债务时,我们的意思是您的团队做出的决定不属于您所从事项目的语言或项目类型的所谓最佳实践。 前面我们提到过,您可能有一个截止日期。 也许最后期限是艰难而快速的。 也许它有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核心具有一套编码标准,这些标准将使插件,主题和Core贡献保持内联,以便以后其他任何人都不会遇到任何问题。 Airbnb拥有React的样式指南,该指南已被采纳为整个行业的非官方标准。 甚至是内部样式指南和标准也使您的开发人员不能走得太远,因为除非提交者付之东流,否则不会合并这些类型的提交。

包起来

技术债务是一个非常现实的问题。 如果您知道如何管理它,它也是非常真实的资源。 通过能够决定何时承担技术债务以及如何偿还债务,您的开发可以比其他方式更快,更顺利地进行。 并且在不可避免的情况下,我们希望我们已经为您提供了一些战略构想,您可以实施这些战略以减轻其影响。

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

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


【免费外贸推广营销视频培训教程】
https://school.yooopaaa.com

WordPress著名Avada主题官方优惠
https://1.envato.market/xxPav

WordPress可视化建站Elementor插件
https://elementor.com/?ref=19904

WordPress外贸独立站DIVI主题官方优惠
https://www.elegantthemes.com/affiliates/idevaffiliate.php?id=59787

亚马逊选品工具Jungle Scout官方优惠
https://junglescout.grsm.io/jieqiu1568

独立站SEO优化工具Semrush免费7天试用
https://shareasale.com/r.cfm?b=1577772&u=2541755&m=97231&urllink=&afftrack=