Cruft

是一个行话，指的是任何剩余的、多余的和碍事的东西。它特别用于计算机软件中的缺陷、被取代的、无用的、多余的或功能失调的元素。

 历史 

大约在1958年，这个词被经常在麻省理工学院（MIT）的科技铁路模型俱乐部（TMRC）的学生们用在“垃圾”的意义上。在1959年版的俱乐部词典中，它被定义为“在你走进去打扫之前神奇地堆积在俱乐部房间的东西。换句话说，就是垃圾”。其作者Peter Samson后来解释说，这是指“残渣，需要扫除和扔掉的东西。字典中没有‘crufty’的定义，这个词我直到若干年后才听到”。“cruft”也可以指那些在麻省理工学院保持社会活动的校友。

这个词的起源并不确定，但它可能来自哈佛大学的Cruft实验室。它建于1915年，是一位名叫“Harriet Otis Cruft”的捐赠者的礼物，在第二次世界大战期间，它是哈佛物理系的雷达实验室。直到20世纪90年代初，在Cruft大厅的窗户前还可以看到堆放着未使用的技术设备。

《牛津英语词典》提供了“crufty”一词的词源，并引用了在牙买加的用法，该词的意思是粗糙、粗暴的外观或结痂，也许是作为“scruffy”的改进版本。

 软件 
FreeBSD手册中使用这个术语来指当软件被重新编译并产生新的可执行文件和数据文件时，在文件夹或目录中积累的剩余或被取代的目标代码。 如果新的可执行文件需要正常工作的话，这种cruft会导致BSD中的依赖性地狱。这个词也被用来描述计算机程序中不必要的、遗留的或只是写得不好的源代码，然后被无用地、甚至有害地编译成目标代码的情况。

cruft的积累可能会导致技术债务，从而使增加新功能或修改现有功能--甚至改善性能更加困难和耗时。

在互联网或网址（统一资源定位器或“URL”）的背景下，cruft指的是那些只与创建网站的人有关或有意义的字符，如提供页面的计算机系统的实施细节。URL cruft的例子包括副档名，如 .php 或 .html，以及内部组织细节，如 /public/ 或 /Users/john/work/drafts/。

 计算机硬件 

cruft也可以指未使用的和过时的计算机配件，通过升级、继承或简单的收购，无论是有意还是无意地收集。 然而，当IT系统管理员、技术人员和类似人员需要关键的替换部件时，这些积累的硬件往往有好处。一个类似于生产单位的未使用的机器或部件可以使故障单位得到近乎即时的恢复，而不是等待运来的替代品。

 参见 

 死码消除，由编译器自动去除不必要的代码
 代码重复
 特征蔓延
 面条式代码
 垃圾DNA
 痕迹器官

 参考资料 

 外部链接 
 In the Beginning...was the Command Line – Neal Stephenson的文章，其中包括对“cruft”概念的报道。
 Verity Stob's Index of Cruftidity  at Dr. Dobb's Journal

Category:反模式
Category:贬义词