已弃用
“已弃用”是软件开发中用于表示某项功能正在逐步淘汰并被替代的术语。编程语言或软件应用中的已弃用功能可能仍然可以运行,但不再受到支持或改进。大多数已弃用功能最终都会被完全移除。程序或编程语言的开发者通常会提前几个月或几年宣布某项功能已弃用,以便软件开发者有时间实现替代功能。
处于积极开发中的编程语言和软件应用,偶尔会用全新的替代功能取代旧函数和其他功能。例如,在PHP中,用于将数字格式化为货币字符串的 money_format() 函数已被弃用,取而代之的是功能更强大的 NumberFormatter 类,该类可以用多种方式格式化数字,包括将其格式化为货币。旧的 money_format() 函数在 PHP 7.4 宣布弃用后仍继续运行,让 PHP 开发者有时间提前更新其源代码,以便在 PHP 8 中将其完全移除。
标记为已弃用并不总是意味着某项功能一定会被移除,尤其是在使用时间较长的程序或语言中。即使有更好的实现方式,或者原始方法会导致系统不稳定,已弃用的函数也可能为了向后兼容而继续保留,从而让旧软件无需彻底改造就能继续运行。例如,JavaScript 的 escape() 函数由于对Unicode字符的支持较差而被弃用,但大多数Web 浏览器仍然提供该函数,以便运行旧的 JavaScript 代码。
软件和编程语言中的功能可能因以下几种原因而被弃用:
- 引入了一个执行相同功能但性能更好或复杂性更低的替代功能,使已弃用的功能变得过时。
- 与程序或语言当前状态不一致的旧功能可能会被弃用,改用重新设计的版本。这些功能可能使用过时的语法或命名约定,容易让新程序员感到困惑,因此会被弃用,并替换为更符合现代标准的版本。
- 存在设计缺陷的功能例如安全漏洞或(内存泄漏)可能会被弃用,以阻止人们继续使用。
- 为降低系统复杂性,冗余功能可能会被弃用并移除。
- 程序或语言的计划变更会导致现有功能失效,因此该功能会提前被标记为已弃用,以鼓励开发者使用不会受到影响的替代方案。
NOTE:程序或编程语言的开发者会在文档和发行说明中宣布功能弃用。编程语言中的已弃用功能还会在软件开发者尝试使用它们时,触发该语言集成开发环境(IDE)中的警告消息。
测试你的知识