宁河网站建设:什么是技术债务,你能避免吗?

2019.07.02 宁河网站建设

183

什么是技术债务?

技术债务,有时被称为,本质上是你付出的代价,随着时间的推移,有不完善的代码。对源代码的更改和更新是有代价的,向dev团队添加一个新成员、添加一个新特性或修复bug和修补漏洞也是有代价的。

随着您的项目变得更大,代码库扩展,更多的人使用该代码,他们的声音和样式会在这里和那里发生冲突。也许你有一个最后期限,一个不太理想的解决方案被修补到源代码中,以便按时完成。也许您添加了一个开源组件,但您并不完全理解如何处理某个特性,而不是自己编写代码。或者,您可以在不同版本之间切换库(例如,从主干切换到响应),但仍然需要支持那些在项目中使用遗留代码库的人员。

当然,这些东西都不是坏的..不是靠他们自己。也许一点也不。但是,加在一起,他们承担的技术债务将不得不在将来的某个时候偿还。

在某种程度上,该开源组件可能需要替换(或分叉)。这将耗费时间和金钱。在遥远的将来,您将需要从项目中删除所有的骨干代码,并停止支持遗留用户。又是时间和金钱。你在最后期限前做的那个补丁?嗯,它最终会被取消,需要一个更永久的解决办法。时间和金钱。您将拥有团队中的新成员,他们需要了解以前开发人员的代码和逻辑,通过旧代码来完成所有这些工作。时间到了。钱。

你明白了。

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

你能避免技术债务吗?

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

让我们看看上面讨论过的一些例子,看看是否有办法避免、最小化或吸收成本。宁河网站建设

考虑有目的技术债务

当我们说有目的技术债务时,我们的意思是,您的团队已经做出了一些您知道不属于您所从事的项目的语言或类型的所谓最佳实践的决策。我们早些时候提到过,你可能有最后期限。也许最后期限是艰难而迅速的。也许有0%的机会被改变或转移。

这是当你需要考虑拿出一笔贷款,并进入技术债务。

在这里你真的有三个选择:

  • 推出未完成且有缺陷的软件,但在代码清晰性和逻辑性方面没有做出任何让步。
  • 拉出你无法完成的功能,但是发布你所拥有的,这是尽可能好写的。
  • 做出开发决策,生成“足够好”的代码,使所有的代码都能运行,但可能需要在以后再进行处理。

这里的第三个选择通常是人们所选择的。这是技术债务。这没什么不对的。因为你做了决定.

偿还有目的债务贷款

确保在代码中记录了选择这条路线的决定。记下你所做的事情与理想的解决方案是什么。确保你至少包括了某种源代码中的评注指示在何处实施了该债务承担解决方案(如果您知道,还会影响到项目其他领域的系统)。如果不采取这一步骤,添加到项目中(即使是在bug修复和修补程序中,更不用说新特性或扩展代码库)可能会在您期望完整的解决方案时找到一个拼凑的解决方案,从而严重延迟。

同样,这种拼凑的解决方案可能是非常好的,永远不会给你带来任何真正的问题。但技术债务仍然存在,需要核算。

考虑遗产法典技术债务

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

更别提新的块编辑器了。它是用JavaScript编写的。反应特别是。这与PHP无关。事实上,很多WordPress Core正在被改写成JavaScript,一点地被重写。但是,所有这些JS都必须称赞并与PHP友好相处。采用新技术是很好的,采用新的版本控制需求是必要的。但这样做,你就得付利息无可避免技术债务,您从该软件已经存在了一段时间。

偿还遗产法典的债务

这个有点难,因为没有很好的方法。您可以选择核选项,在新的语言/框架/版本中从头开始进行彻底重写(看看我们在Divi 2和Divi3.0之间所做的工作,从Backbone.js到Reaction)。然而,这仍然不能完全解决债务问题,因为仍然有人在使用旧库。在某个时候,您将不得不放弃对遗留代码库的支持。就像偿还贷款一样。直到你不得不干掉下一个。宁河网站建设

如果这不是一个选项(或者对您来说是最好的主意),您可以确保不依赖于特定于语言或版本的特性。前端开发人员必须时刻处理这个问题,因为一些浏览器支持全新的功能,而另一些浏览器(MicrosoftEdge/IE)可能永远不会采用它。您可以通过坚持基本原则来验证您的项目,这将反过来使升级或重构时需要解决的更改数量减少。

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

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

记住这一点,逻辑有时也会有不同的声音。一个开发人员的想法是非常清楚的,另一个开发人员将查看并不知道为什么代码会做它所做的事情。当原来的作者不再可供参考时,这个问题就真正成了问题。由此产生的技术债务可能是灾难性的。但还是有办法处理的。

偿还老德沃斯的技术债务

最简单的方法是雇用最好的开发人员,不要让他们离开你的公司。永远不会。

由于这种情况不会在100%左右发生,偿还债务可能比你想象的要容易一些。首先,确保培训开发团队对他们的代码进行注释。好好评论一下..每当他们做出一个甚至可能被其他人认为模棱两可的决定时,让他们说明他们为什么这么做,以及这个函数是如何工作的。宁河网站建设

此外,确保团队中的每个开发人员都遵守样式指南或标准集。这个WordPress Core有一套编码标准这将使插件、主题和核心贡献保持一致,这样以后其他人就不会有问题了。Airbnb有一个风格指南作为一个全行业的非官方标准已经被采纳。即使是内部风格指南和标准,也不会让您的开发人员自己走得太远,因为这些类型的提交将不会被合并,除非它们不够格。


联系电话 400-6065-301

留言