代码有到期日期
代码有到期日期

编码如何死亡

代码出生,成长,成熟,衰减然后死亡。它可能被视为生物,就像我花园里的郁金香一样。转换图像到代码是可怕的:Little拼写错误出现,代码消失,常量改变其值随时间的值(代码通货膨胀?),没有意义增长的代码的一部分代码。这样,可以很明显,代码有一个到期日。

由于没有人使用FTP进行开发,并且使用严重的VCS,因此这种幻觉倾向于保持他们所在的:幻觉。代码没有’T自身改变,它就像它写的那样。然而,它将达到其到期日期,突然释放一堆错误。如何改变行为,同时不改变自己?

上下文变化

 

自代码没有’T自身改变,这意味着它的上下文正在发生变化。代码依赖的一切都在改变,日复一日,小一点。 “唯一不变的是改变”的旧希腊哲学家赫拉克利斯说。思考一下关于使您宝贵的代码成为可能的依赖项的瞬间:

  • 图书馆
  • 构架
  • PHP本身
  • 数据库,每隔一块架构及其布局
  • OS.
  • 它运行的硬件

他们每个人都需要注意他们的发展。它们对代码产生影响:可能正在调整,修复,更改,调整或普通重写,以便跟上他们的演变。这是代码模具的那一点,或者,简单地破坏和腐烂。

新的介绍可能会替换,部分或完全,以前的一些代码。这个上一级代码通常被称为‘old’。旧代码往往会说出,直到它修剪或重构,因为担心其他东西取决于它。这里的理由是没有人注意到无用的代码,而丢失的代码将壮观地死亡,并且在一个字中,痛苦地死亡。

过期代码

让’s审查各种代码到期案例:

  • 常量:它们定义为define()或const,但它们永远不会被调用。
  • 变量:它们在代码的某些时间点写,但稍后永远不会阅读。原型是常用的变量,但它也适用于仅写入的变量。请注意,只读变量将产生错误:他们不产生错误’t die peacefully.
  • 功能:定义,但它们永远不会被称为。这也适用于关闭。在实践中,函数在特殊库文件中使用一系列其他函数定义,并作为整体包括在内。是时候清洁该文件了。
  • 类:定义了它们,但它们永远不会实例化(具有新的),静态调用(对于常量,属性或方法)或扩展(带扩展)。类型提示和instanceof使用赢得了’保持一堂课,因为这些指令只检查存在:事实上,他们宁愿成为更多死人代码的标志。
  • 例外:例外情况的特例:它们永远不会抛出或扩展。
  • 接口:定义了它们,但它们永远不会在insionsof或typehint指令中使用。这几乎与课程相反。
  • 特质:死亡特征永远不会使用’d or extended. “Use’d“在此意思,结合了‘use’关键字,在一个类里。
  • 文件:不包括(直接或通过自动加载),而不是直接调用(index.php)。使用overaid使用单级单文件约定时,文件的死亡现已链接到类的死亡:见上文。

可能死亡的最后一件是代码片段:未命名的指令组,不再有道理。代码可以在休息,返回或骰子之后无法访问,除非它是结构定义(类,函数等)或标签。这也适用于基于上面代码的所有条件:if($ x instanceof \ deadclass)。

查找过期的代码是一个简单但费力的任务,因为它意味着搜索代码中的所有内容以及失败的定义。另一个冗长的部分是试图弄清楚该功能仍然有用。

CN.  中文:代码死亡