编写可回收代码

我们编写的绝大多数代码旨在用于单一目的,一旦用于此目的,它再也看不到光明了。 然而,这是浪费你宝贵的时间,当完全可以编写代码时,它可以被回收并用于许多不同的目的。

挑战在于编写可回收代码与编写可能被称为“丢弃”代码的内容完全不同。 使用后一种代码,如果你没有完美地编写这些指令,你真的只需要关心其他人如何解释你的代码指令。 但是,当您编写可回收代码时,您需要以非常具体的方式执行此操作,并且您确实需要考虑包括您自己在内的任何人如何理解您在将来的某些时候编写的代码。

以这种方式执行操作比普通编码花费更多的时间和精力,但是它具有以下优点:您永远不必编写两次相同的精确函数。 如上所述,您需要以某种方式执行所有操作,以确保您的代码可以再次用于其他目的。

值得一提的是,可回收代码不一定与插件相同。 当您创建插件时,您正在开发一些代码,任何人都可以将其整合到他们的网站中,并通过更改一些参数轻松地从中生成一些效果。

可回收代码在某种意义上是不同的,因为它不一定是静态的,并且不一定用于在您自己的组织之外进行分发。 无论如何,确保使用正确的过程至关重要,如下所述。

1。 成为组织的主人

当您创建代码的目的是以后可以重用它时,如果您找不到它将对您没有多大帮助。 您需要在命名,存储和分类代码文件方面做得非常好。

2。 请注意什么是“特定于应用程序”以及什么是“通用”

几乎总会有一些特定于您的特定应用程序的代码,并且不能以任何其他方式使用。 在创建每个代码块时,您应该决定它是特定于应用程序还是通用代码。 最终你想创造比后者更多的后者,并且有一个很好的方法可以做到这一点,我将在步骤3中描述。

3。 将代码与值分开

当您想以新方式使用代码时,硬编码变量值可能会出现问题。 更好的方法是将初始变量值存储在CSV文件中,然后在应用程序启动时加载这些值。 此方法还允许您轻松更改初始变量值,而不会篡改原始代码文件。

4。 尽量不要硬编码任何绝对不必要的值

这基本上意味着您不应该对任何值进行硬编码,只有一个例外,即将加载的文件的名称,其中包含所有软编码值。 该文件应始终可以相对于应用程序的根路径访问,或者如果将文件移动到其他操作系统,则可能会出现问题。

5。 避免在文件名中放置空格

仅仅因为你可以在文件名中放置空格并不意味着你应该这样做。 如果将文件移动到其他操作系统或文件系统,则可能会给您带来问题。 例如,如果将文件从ext4移动到FAT,您可能会发现遇到问题。 有趣的是,Windows操作系统将显示其中包含非法字符的文件的名称,但不允许您访问这些文件,即使您只想重命名它们。

5。 详细评论一切

在编写代码时,您确切知道它将要执行的操作。 但允许几年过去,你很可能会忘记你的意图。 当你使用别人的代码时也是如此,因为除非他们提供了冗长的评论,否则你将不得不花费宝贵的时间来分析和解释他们所写的内容。

6。 避免创建依赖项

大多数可重用代码方案中最大的缺陷之一是,您最终可能会遇到大量的文件依赖关系。 发生这种情况是因为人们以特定的方式编写代码块并按特定顺序包含它们而不记录原因。 然后在你知道它之前,你最终得到了一个Left-Pad场景,当你的应用程序所依赖的一些代码由于某种原因而变成AWOL时,每个人都会感到恐慌。

你可以通过确保每一块代码都可以很容易地换掉另一块代码,像疯了一样记录,当然还要备份每个块的副本来避免这种崩溃。

文档应包括文件的内容,文件的内容以及在加载文件的特定位置加载文件的原因。 这消除了潜在的依赖性问题,因为可以重新创建任何代码部分,因为它的目的是已知的。

7。 真正整齐地格式化所有代码

显然,总是这样做是个好主意,但在编写可重用代码时执行此操作尤为重要。 您还应该保持一致的编码风格,而不是改变它。 例如,如果您倾向于在camelCase中以大写和变量名称编写常量名称,则应该使用绝对一致性来执行此操作。

8。 每一块代码都有特定的目的

你的任务是了解目的是什么。 您必须避免每个块允许多个目的。 因此,例如,如果您有一大堆代码加载到初始变量值中,除此之外不应该执行任何其他操作。 您的下一代代码应该是处理下一个必需的操作。 这个规则有多严格? 好吧,除了调用所有其他函数之外,你的主函数不应该做任何事情。

写出好的可回收物品要比他们尝试之前想象的要好得多。 无论您最初的意图是什么,您都可能会发现,您编写的80%代码最终将成为特定于应用程序而非通用代码。 大多数人都对可循环使用的代码赞不绝口,而实际上并不知道他们将来如何实际使用它,最终结果是他们为自己创造了更多的工作,这与目标相反。 希望这篇文章能帮助你避免这种命运。

标题图片由...提供 DKNG

波格丹兰萨

Bogdan是Inspired Mag的创始成员,在此期间积累了近6年的经验。 在业余时间,他喜欢学习古典音乐和探索视觉艺术。 他也非常着迷于修复工具。 他已拥有5。