接口废弃的简单介绍
接口废弃是软件开发中常见的概念,主要用于标记某些功能、API、类、方法或配置等在未来版本中可能会被移除。
接口废弃的主要目的是为了逐步淘汰旧的功能,同时为用户提供迁移路径,避免直接删除功能对现有用户造成重大影响。
不同的编程语言和框架,声明接口废弃的方式不同,但基本上都采用deprecated的废弃声明,例如javadoc、java等。
/*
* @deprecated 该方法已废弃,请使用xxx替代。
*/
public void oldMethod() {
}
资源协作接口废弃关键字deprecated
在资源协作接口中,废弃关键字deprecated可以使用在接口、方法和属性场景。
{
"bmc.kepler.xxx": {
"deprecated": true, # 接口废弃
"properties": {
"Prop1": {
"deprecated": true # 属性废弃
}
},
"methods": {
"Method1": {
"deprecated": true # 方法废弃
}
}
}
}
属性废弃应用示例:
{
"bmc.kepler.Systems.Processor.CPU": {
"properties": {
"ProcessorID": {
"baseType": "U32",
"readOnly": true,
"deprecated": true,
"description": "处理器标识数据,按照SMBIOS规范定义,处理器标识数据长度为8字节,此属性位宽不足,因此已被弃用,改用此接口下的ProcessorIDString属性"
}
}
}
}
资源协作接口废弃规范
1. 资源协作接口的接口废弃、方法废弃和属性废弃,必须在资源协作接口配置deprecated废弃关键字。
2. 资源协作接口的接口废弃、方法废弃和属性废弃,必须考虑兼容性,特定场景下禁止删除。
2.1. 资源协作接口属性涉及持久化场景时,禁止删除废弃接口和废弃属性。
如果组件对资源协作接口的属性实现了持久化能力,则仅支持废弃,不可删除,否则可能导致持久化兼容性问题:新版本的持久化模型,回退到旧版本后会出现数据模型不一致问题,导致组件启动异常。
3. 资源协作接口的接口废弃、方法废弃和属性废弃,必须提供废弃原因,必要的情况下须提供替代功能。
4. 资源协作接口废弃注意事项
4.1. 目前资源协作接口仅提供了废弃关键字标记,尚未提供完整的废弃处理流程,包括资源协作接口的生命周期管理、版本控制等,不具备删除废弃接口、方法和属性的条件。
资源协作接口废弃检查规则
组件模型代码生成检查项
-
- 组件模型service.json依赖废弃属性:构建告警提示
WARN:在servcie.json中配置了已废弃的依赖性,interface: bmc.kepler.xxx, item: xxx
-
- 组件模型service.json依赖废弃接口:构建告警提示
WARN:在servcie.json中配置了已废弃的依赖性,interface: bmc.kepler.xxx
-
- 组件模型model.json实现废弃接口:构建告警提示
WARN:在model.json中类xxx配置了已废弃的资源协作接口bmc.kepler.xxx
-
- 组件模型model.json实现废弃属性:构建告警提示
WARN:在model.json中类xxx接口bmc.kepler.xxx的属性xxx已废弃
-
- 组件模型model.json实现废弃方法:构建告警提示
WARN:在model.json中类xxx接口bmc.kepler.xxx的方法xxx已废弃