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

虽然它可能是一顿美味的意大利晚餐,但您最不想听到的关于代码库的事情之一是 意大利面. 您的代码像一盘意大利面一样纠缠不清的想法令人恐惧,但对于许多开发人员来说,这个想法是如此抽象,以至于他们无法完全掌握它(或了解如何避免或修复它)。 这就是为什么在这篇文章中,我们想深入探讨意大利面代码究竟是什么,向您展示一些避免它的最佳实践,以及(当它发生时)如何处理它。

https://www.youtube.com/watch?v=DD3_DdatwCM

订阅我们的 YouTube 频道

什么是意大利面代码?

意大利面条式代码是一场噩梦,就是这样。 就像我们上面说的,俚语得名是因为,就像一团巨大的意大利面,如果你拉上一条(一段代码),它最终会缠绕在另一条线和另一条线中,直到它或全部缠结的碎片断裂。

例如,想想 CSS 中的 !important 属性。 它非常强大,让设计师可以覆盖继承的样式并控制任何特定元素,而无需重新编码整个样式表。 但是,当他们(或未来的开发人员和设计师)需要调整其他内容时,他们可能会添加另一个 !重要的 标签覆盖前一个。 等等。 但是,如果您要返回并删除或更改该堆栈中的任何一个,页面上的任意数量的样式都可能会中断。

这是我们试图避免的。

避免意大利面代码的最佳实践

1. 制定编码标准

防止意大利面条式代码的第一种方法是在您的组织或项目中创建和编码标准。 编码标准使像 WordPress 这样的项目成为可能。 数以千计的开发人员已经在 WP Core 上工作,但 WordPress 编码标准已经使他们都在相同的指导方针下工作,并以相同的方式在相同的参数内执行任务。

编码标准只是您强制执行的规则。 他们让每个人的代码都以相同的模式工作,以便于发现和修复错误,并且未来的开发人员(甚至您或您当前的团队)可以尽可能有效地确切知道每一行代码的作用。 如果 Susan 的代码未通过其测试,则不会进入。如果 Janine 的代码没有要运行的测试,则拉取请求将被拒绝。 也许 Daniel 在他最近的拉取请求中没有使用 div。 在事情分开之前不要合并。

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

此外,一些受意大利面条式代码困扰的原始代码库是没有功能逻辑的旧语言。 代码不是基于函数的,因此,各种逻辑针对代码中的特定行。 对于小型项目,导航还不错。 当您开始扩展项目时,直接引用特定文件和代码行可能会阻碍该开发。 文件可能会丢失,行可能会被删除或编号错误。 调试它以找出哪条意大利面条被拉出可能需要数百人小时。 拥有编码标准可以防止这种混乱经常发生。

因此,通过制定标准,您已经非常有效地降低了拥有意大利面条式代码存储库的机会。 如果您想了解更多关于一般编码标准的信息,GeeksforGeeks 有一个很好的指南。

2. 遵循风格指南

除了编码标准之外,遵循风格指南也可以防止您的代码变得过于混乱。 虽然理论上听起来很相似,但两者却大不相同。 编码标准是您的开发人员遵循的可执行规则,以保持代码高效运行。 这些可能会因项目而异,也可能因组织内的团队而异。

然而,风格指南通常是逐个语言编写的,提供了一系列使代码可读和实用的最佳实践。 例如,Airbnb 为 React.js 创建了最好的风格指南之一。 如果您不是 React 开发人员,那么这几乎意味着什么。 但是对于 React 开发人员来说,查看这一点可以为您的代码的结构和编写方式提供真正的帮助,以便未来的开发人员尽可能地对其进行排序。

与一般编码标准相比,风格指南不一定是可执行的规则。 他们建议使代码更加统一,从而使代码更易于阅读。 这可以防止意大利面条式代码,因为您在任何给定时间都准确地知道您在拉什么线。

3. 注释你的代码

代码注释可能是防止您的存储库被意大利面条式代码填满的最简单方法。 当你写一些东西时,创建一个关于它的作用的评论。 如果它是一个复杂的函数或片段,请解释逻辑的作用以及它为什么重要。

但是,您会遇到一些依赖代码注释来防止混乱的问题。 首先是它为项目增加了很多额外的时间。 当您急于赶上最后期限或确保某个功能正常工作时,并不总是首先想到要写出详细说明。 如果您开始评论并在项目中期失败,或者下一个开发人员不会继续? 那是一大盘意大利面。

其他人对评论他们的代码的想法感到不知所措——或者如果他们以前没有做过,那么学习评论他们的代码——因为他们开发的数量庞大。 这是完全有效的。 但是,即使您偶尔对重要的(甚至不稳定的)台词或片段发表评论,您也会为某人(可能是您自己)省去过去拉扯它并试图弄清楚它的作用的麻烦。

包起来

意大利面代码是一场噩梦,我再说一遍。 花费无数个小时试图找出在巨大的存储库中更改了哪一行代码是作为开发人员最糟糕的部分之一。 调试很好(ish)。 调试并且不知道从哪里开始或什至远程导致问题的原因不是。 但是,如果您的团队制定了编码标准,遵循了语言风格指南,并且甚至有一个较小的代码评论政策,那么您的意大利面条数字盘就很有可能比其他情况要少得多。

您如何防止意大利面条式代码?

文章特色图片由 Donnay Style/shutterstock.com 提供

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