RFC-0000:RFC 範本

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

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 線路格式。您會如何更新線格格式的文件?請想像您向他人說明功能時,能詳細說明功能的實作方式。

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

缺點、替代方案和未知事項

實施這項提案的成本為何?

還有哪些策略可以解決同樣的問題?

接受這項提案前,還有哪些問題需要解決,或細節需要再討論?隨著提案內容的變化,您對這項問題的答案也可能會有所調整。

既有技術與參考資料

閱讀這份提案時,是否有任何背景資料可能有所幫助?舉例來說,其他作業系統是否解決了這個提案要解決的問題?