OCaml 平台的指導原則

OCaml 平台由一套指導原則驅動,旨在服務社群並推進 OCaml 工具的發展。

(P1) 工具具有良好的預設值,但可自訂

OCaml 平台旨在降低新手入門的門檻。慣例優於配置 減少了開發人員需要做出的決策數量。透過盡可能少的步驟開始編碼,我們簡化了入門體驗。

在優先考慮易用性和開箱即用的體驗的同時,工具應該允許進階使用者進行自訂,理解專案的需求各不相同,並且平台應該足夠靈活以適應這些不同的需求。

(P2) 體驗是多功能的,但卻是無縫的

OCaml 平台旨在支援每個重要的開發工作流程。儘管這個目標導致了固有的複雜性,最終的使用者體驗應該是無縫的。

我們設想開發工作流程應盡可能自動化,創造一種中斷是例外的體驗。當完全自動化不切實際時,端到端的工作流程應盡可能減少使用者互動。

(P3) 工作流程簡單,但可擴展

OCaml 平台旨在提供出色的使用者體驗。其中一個關鍵部分是遵守 最小驚奇原則。工具的行為應符合大多數人的預期,並且使用者應能形成工作流程的簡單心智模型。

有狀態的工具本質上比無狀態的工具更複雜。在可能的情況下,工具應該是無狀態的,並使用「配置優於命令」,這表示用基於配置的方法取代狀態。

在優先考慮簡單性的同時,工作流程仍然應該可以擴展到大型程式碼庫。相同的工作流程應該可以用在單人開發人員的專案和工業 OCaml 程式碼庫中。效能對於可擴展性至關重要。隨著程式碼庫的增長,工具仍應保持其效能。

(P4) 工具快速發展,但不會破壞專案

OCaml 平台作為 OCaml 開發人員體驗的骨幹已經超過十年。它打算在未來幾十年繼續這樣做。 OCaml 平台被設計為一系列遵循生命週期的工具。此設計源於對強大的向後相容性和快速發展的靈活性的雙重需求的認知。

我們承認工具會隨著時間的推移而出現並被淘汰;因此,我們非常重視設計獨立於工具的中繼資料檔案,這些檔案將長期存在。這些檔案應該版本化,並且工具應該旨在支援盡可能多的版本。

當孵化的工具成熟、穩定且準備好被大規模採用時,它們才會被提升為「活躍」狀態,旨在培養健康的競爭環境,而不會冒著社群分裂的風險。但是,無論何時為了改進工具或用另一個工具替換工具而不可避免地發生中斷時,平台都應該為使用者提供平滑的遷移路徑。

(P5) 工具是獨立的,但卻是統一的

延續 P4,我們強調允許工具獨立發展的至關重要性:OCaml 平台存在並且將繼續作為一系列可以獨立使用的工具而存在。

然而,為了創造出色的使用者體驗,該平台提供了統一的體驗,並努力確保工具之間的跨相容性。

這種統一的體驗意味著存在一個單一的 CLI,作為平台工具的前端。在編輯器方面,意味著開發工作流程應該可以直接在編輯器內使用,而無需使用者求助於命令列。

在這種整合中,我們堅定地承諾確保工具保持其獨立性,並繼續透過其自己的 CLI 進行存取。

(P6) 平台是凝聚的,但卻是可擴展的

在努力實現統一體驗 (P5) 的同時,我們的目標是支援想要使用不屬於平台的工具的使用者。

想要在其工作流程中使用其他工具的使用者應該能夠這樣做,而不會感到自己是二等公民。

這可以透過外掛系統或保持足夠通用以支援不同工具的實作來實現。


版本 1.0.0 - 2023 年 8 月 21 日

OCaml 平台指導原則的第一個版本於 2023 年 8 月通過。您可以回顧討論

版本 1.0.1 — 2022 年 9 月 19 日

  • 更堅定地承諾保持平台工具的獨立性,並保留直接使用其 CLI 的可能性。

仍然需要幫助嗎?

協助改進我們的文件

所有 OCaml 文件都是開源的。看到錯誤或不清楚的地方嗎?提交提取請求。

OCaml

創新。社群。安全性。