RFC-0000:RFC 範本

RFC-0000:RFC 範本
狀態Template
領域
  • 一般
說明

RFC 範本。

問題
更小鳥
作者
審查人員

問題陳述

這個提案能解決什麼問題?這個提案沒有嘗試解決哪些問題?

摘要

一則說明提案變更的段落。

相關人員

誰有權規範這份 RFC?(本節為選用,但建議提供)。

講師:

FEC 委任的人員透過 RFC 程序來破壞這個 RFC。

審查者:

列出選票 (+1 或 -1) 的人在 FEC 決定是否接受或拒絕時,會將該選民納入考量。在適用情況下,也會列出他們預期著重的區域,例如「FIDL」或「security」。在某些情況下,本節一開始可能會留空,且利害關係人在初始社交化後完成探索。一般來說,「評論者」應列在審查人員的 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 線路格式。如何更新傳輸格式的說明文件?請設想一下,向使用者詳細介紹您的功能,讓他們可以實作。

你提議的功能有哪些重要範例或用途?

缺點、替代項目和未知

採行此提案需要多少費用?

還有哪些策略或許能解決相同的問題?

還有哪些問題需要解決,或需反覆解決,才能接受此提案?隨著提案內容不斷推陳出新,您的答案可能會更臻完善。

優先藝術與參考資料

閱讀這份提案時,是否有任何可能有幫助的背景素材?舉例來說,其他作業系統是否能夠處理相同提案的問題?