| 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 教程的风格为该功能编写或更改教程?假设您要向刚接触 Fuchsia 的人介绍您的功能。
您会如何编写参考文档?例如,假设您的提案扩展了 FIDL 有线格式。您会如何更新有线格式的文档?想象一下,您要向某人详细说明您的功能,以便对方能够实现该功能。
您提议的功能有哪些重要的示例或使用情形?
缺点、替代方案和未知因素
实施此提案的费用是多少?
还有哪些策略可以解决相同的问题?
在接受此提案之前,还需要解决哪些问题或迭代哪些细节?随着提案的不断完善,您对此问题的回答也可能会发生变化。
在先技术和参考资料
有没有什么背景资料可能有助于理解此提案?例如,其他操作系统是否解决了此提案要解决的相同问题?