RFC-0000:RFC 模板 | |
---|---|
状态 | 模板 |
领域 |
|
说明 | RFC 模板。 |
问题 |
|
Gerrit 更改 |
|
作者 |
|
审核人 |
|
问题陈述
此建议可解决什么问题?此方案无意解决哪些问题?
摘要
逐段说明所提议的更改。
利益相关方
谁能决定此 RFC 是否被接受?(此部分为可选内容,但我们建议您。)
教员:
由 FEC 指定的人员,负责通过 RFC 流程照管此 RFC。
审核者:
列出用户在决定是接受还是拒绝此 RFC 时,FEC 会将投票(+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 教程的风格编写或更改此功能的教程?不妨想象一下,向刚接触紫红色的人解释您的功能。
您如何撰写参考文档?例如,假设您的方案扩展了 FIDL 传输格式。如何更新传输格式的文档?假设您要充分详细地介绍您的功能,让他们能够实现您的功能。
您提议的功能有哪些重要示例或使用场景?
缺点、替代方案和问题
实施该方案的费用是多少?
还有哪些策略可以解决同样的问题?
若要接受此提案,仍需解决哪些问题或改进哪些细节?您对此问题的回答可能会随着提案的推进而发生变化。
现有艺术和参考资料
在阅读此提案时,是否有任何背景资料可能会有帮助?例如,其他操作系统是否可以解决此提案解决的相同问题?