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 線路格式。您會如何更新線格格式的文件?請想像您向他人說明功能時,能詳細說明功能的實作方式。
你提出的功能有哪些重要的用途或用例?
缺點、替代方案和未知事項
實施這項提案的成本為何?
還有哪些策略可以解決同樣的問題?
接受這項提案前,還有哪些問題需要解決,或細節需要再討論?隨著提案內容的變化,您對這項問題的答案也可能會有所調整。
既有技術與參考資料
閱讀這份提案時,是否有任何背景資料可能有所幫助?舉例來說,其他作業系統是否解決了這個提案要解決的問題?