RFC-0000:RFC 模板

RFC-0000:RFC 模板
状态模板
区域
  • 常规
说明

RFC 模板。

问题
Gerrit 更改
作者
审核人

问题陈述

此提案解决了什么问题?此提案未尝试解决哪些问题?

摘要

一段描述所提议更改的说明。

利益相关方

哪些人对此 RFC 的接受与否有利益相关?(此部分为可选部分,但建议填写。)

教员

由 FEC 任命的负责引导此 RFC 完成 RFC 流程的人员。

审核者

列出 FEC 在决定是否接受此 RFC 时会考虑其投票结果 (+1 或 -1) 的人员。在适用的情况下,还应列出他们预计要重点关注的领域,例如“FIDL”或“安全”。在某些情况下,此部分可能最初会留空,并在完成初步的宣传活动后完成利益相关方发现。一般来说,“审核者”应列在 Gerrit 的“审核者”行中,而“咨询者”应抄送。请务必控制好审核员的数量,使其在可管理的范围内,但确切数量取决于相关 RFC 的范围。

已咨询

列出应审核 RFC 但无需获得其批准的人员。

社交

此部分可用于说明在进入 RFC 流程的“迭代”阶段之前,设计是如何进行共享的。例如:“此 RFC 已通过组件框架团队的设计审核。”

要求

对于此 RFC 解决的问题,可能的解决方案受到哪些限制?

设计

这是方案的技术详细版本。

区域提示:FIDL,请替换为相关区域

提案的一个重要概要信息是,您的提案会修改 FIDL 的哪一部分。至少应包括:

  • FIDL 源语言
  • FIDL 线格式
  • 一流的语言绑定(C、C++、Dart、Go、Rust)
  • FIDL 样式指南和 API 评分标准
  • FIDL 调整流程

您的提案应涵盖所有相关领域。例如,如果您的提案向 FIDL 语言添加了新类型,则还需要讨论该功能的样式指南以及如何在绑定中实现该功能。

实现

您将如何实现此设计?该更改能否通过单个 Gerrit 更改完成,还是需要进行复杂的第三方依赖项迁移?您是否计划将实施分为多个阶段?每个阶段存在哪些依赖项?

性能

此提案对效果有何影响?我们应创建哪些基准来评估提案?评估实施情况?我们应持续监控哪些基准?

工效学设计

区域提示:FIDL,请替换为相关区域

您的更改是否使 FIDL 更易于使用和理解?它是否让绑定更易于使用?如果没有,复杂性有何理由?

同时关注最终用户 API 和理解该概念所需的认知努力。

向后兼容性

区域提示:FIDL,请替换为相关区域

向后兼容性有两种类型:FIDL 文件源兼容性和 ABI 或线格格式兼容性。本部分应同时适用于这两种情况。随着时间的推移,进行不向后兼容的更改将变得更加困难。

如果您要引入新的数据类型或语言功能,请考虑您希望用户对 FIDL 定义进行哪些更改,以便生成的代码不会对用户造成破坏。如果您的功能对生成的语言绑定施加了任何新的源代码兼容性限制,请在此处列出这些限制。

安全注意事项

此提案对安全性有何影响?提案是否需要接受安全审核?

一个很好的起点是考虑系统可能会如何遇到不可信的输入,以及这些输入可能会如何被用于操纵系统。然后,考虑已知类别的漏洞可能如何应用于系统,以及可以使用哪些工具和技术来避免这些漏洞。

隐私注意事项

此提案对隐私保护有何影响?该提案是否需要隐私权审核?

一个不错的起点是考虑系统可能会如何收集、存储或处理用户数据。然后,考虑此类数据的生命周期以及可能采用的任何数据保护技术。

测试

您将如何测试您的功能?典型的测试策略包括单元测试、集成测试和端到端测试。我们现有的测试框架和基础架构是否足以支持这些测试,还是此提案需要在这些方面进行额外投资?

如果您的系统定义了由其他人实现的合约,这些人将如何测试他们是否已正确实现该合约?例如,不妨考虑为此创建一个一致性测试套件。

区域提示:FIDL,请替换为相关区域

您的功能将如何接受测试?例如,您需要为 fidlc 还是 C++ 绑定编写新测试?

如果更改会影响编码或解码,请计划更新一致性测试套件。

我们将如何测试新功能的使用情况?如果您添加了语言功能,将如何在每种语言的绑定中对其进行测试?

文档

我们是否需要创建或更新任何文档来介绍此功能?例如,我们需要在项目路线图中添加或移除条目吗?我们需要更改架构文档吗?最终开发者是否会从与此提案相关的文档中受益?

请勿将 RFC 本身用作功能文档。 文档需要保持最新状态,RFC 一经接受便不应更改。

区域提示:FIDL,请替换为相关区域

可能需要处理多种类型的文档。

您会如何按照各种 FIDL 教程的风格编写或修改此功能的教程?假设您要向刚开始接触 Fuchsia 的用户介绍您的功能。

如何编写参考文档?例如,假设您的提案扩展了 FIDL 线格格式。您如何更新线格格式的文档?想象一下,您向某人详细说明您的功能,以便对方能够实现该功能。

您提议的功能有哪些重要的示例或用例?

缺点、替代方案和未知情况

实施此方案的费用是多少?

还有哪些策略可以解决同一问题?

为了接受此提案,还需要解决哪些问题或迭代哪些细节?随着提案的演变,您对此问题的回答可能会随之变化。

在先技术和参考文档

在阅读此提案时,是否有任何背景资料可能对您有所帮助?例如,其他操作系统是否解决了此提案要解决的问题?