F# 樣式指南

下列文章描述格式化 F# 程式碼的指導,以及語言功能的主題指導,以及其使用方式。

此指導是根據各種程式設計人員群組在大型程式碼基底中使用 F# 所制定。 本指導通常可導致成功使用 F#,並將程式需求隨著時間變更時的挫折降到最低。

良好 F# 程式碼的五個原則

撰寫 F# 程式碼時,請記住下列原則,特別是在會隨著時間變更的系統中。 進一步文章中的每個指導都來自這五點。

  1. 良好的 F# 程式碼簡潔、易懂且可組合

    F# 有許多功能,可讓您以較少的程式碼行表達動作,並重複使用泛型功能。 F# 核心程式庫也包含許多實用的型別和函式,可用來處理常見的資料集合。 您自己的函式和 F# 核心程式庫 (或其他程式庫) 中的函式組合是例行慣用的 F# 程式設計的一部分。 一般規則是,如果您可以以較少的程式碼行來表達問題的解決方案,其他開發人員 (或未來的自己) 將感謝您。 此外,當您需要執行非重要的工作時,強烈建議您使用 FSharp.Core 之類的程式庫、F# 執行所在的龐大 .NET 程式庫,或 NuGet 上的第三方套件。

  2. 良好的 F# 程式碼可互通

    互通性可以採用多種形式,包括使用不同的語言取用程式碼。 您的程式碼的界限 (其他呼叫端與其交互操作) 是要正確設定的重要部分,即使呼叫端也位於 F# 中也一樣。 撰寫 F# 時,您應該一律考量其他程式碼如何呼叫您要撰寫的程式碼,包括是否從 C# 之類的其他語言呼叫。 F# 元件設計指導方針會會詳細描述互通性。

  3. 良好的 F# 程式碼會利用物件程式設計,而非物件導向

    F# 已完整支援在 .NET 中使用物件進行程式設計,包括類別介面存取修飾詞抽象類別等。 對於更複雜的函式程式碼,例如必須是內容感知的函式,物件可以輕鬆地以函式無法執行的方式封裝內容資訊。 選用參數之類的功能和謹慎使用多載,可讓呼叫端更輕鬆地使用這項功能。

  4. 良好的 F# 程式碼能順利執行,而不需要公開變異

    撰寫高效能程式碼並無祕密,您必須使用變異。 畢竟這是電腦的運作方式。 這類程式碼往往容易出錯且難以做好。 避免對呼叫端公開變異。 相反地,在效能很重要時建置會隱藏變異型實作的功能介面

  5. 良好的 F# 程式碼是可工具化的

    工具對於在大型程式碼基底中作業十分有用,而您可以撰寫 F# 程式碼,使其可以更有效率地搭配 F# 語言工具使用。 其中一個範例是確定您不會使用無點樣式的程式設計來使其過度執行,以便使用偵錯工具檢查中繼值。 另一個範例是使用 XML 文件註解來描述建構,讓編輯器中的工具提示可以在呼叫端網站上顯示這些註解。 請一律考量您的程式碼將如何讀取、瀏覽、偵錯,以及由其他程式設計人員使用其工具進行操作。

下一步

F# 程式碼格式設定指導提供如何格式化程式碼,使其便於閱讀的指導。

F# 編碼慣例提供 F# 程式設計慣用語的指導,可協助長期維護較大的 F# 程式碼基底。

F# 元件設計指導提供撰寫 F# 元件 (例如程式庫) 的指導。