平台可更新性最佳实践

建议:使用 FIDL 类型和协议来定义可以单独更新的任何两项内容之间的接口。在适用时,请利用 Fuchsia API 演变指南FIDL 评分准则

不建议:避免使用 FIDL 以外的语言来定义独立更新非常重要的接口。其中包括:纯文本、JSON 和协议缓冲区。

在查看替代方案时,问问自己可以通过哪些方式实现可更新性。

  • 数据是否有架构?
  • 在提供向后/向前兼容性的同时,架构能否随时间而更改?如何实现?
  • 对架构做出的哪些更改会保留/破坏 API/ABI?在进行重大更改之前,您如何知道?
  • 传输格式是否稳定?

建议:设计要在平台外部使用的平台 API 和 ABI 时要小心。在设计时确保可更新性,设法强制客户端使用预期接口,且不要提供规避接口的方法。

不建议:避免向客户公开非合同约定的实现细节。常见错误包括:公开范围广泛的 capability 或命名空间,以及通过组件标识符(例如 fuchsia-pkg:// 网址)和诊断选择器泄露实现详情。