Udostępnij przez


Przewodnik stylu języka F#

W poniższych artykułach opisano wskazówki dotyczące formatowania kodu języka F# i wskazówek dotyczących tematów dotyczących funkcji języka oraz sposobu ich użycia.

Te wskazówki zostały sformułowane na podstawie użycia języka F# w dużych bazach kodu z zróżnicowaną grupą programistów. Te wskazówki zwykle prowadzą do pomyślnego korzystania z języka F# i minimalizuje frustracje, gdy wymagania dotyczące programów zmieniają się w czasie.

Pięć zasad dobrego kodu języka F#

Należy pamiętać o następujących zasadach podczas pisania kodu języka F#, zwłaszcza w systemach, które zmieniają się w czasie. Każda część wskazówek w dalszych artykułach wynika z tych pięciu punktów.

  1. Dobry kod F# jest zwięzły, ekspresyjny i komponowalny

    Język F# ma wiele funkcji, które umożliwiają wyrażanie akcji w mniejszej liczbie wierszy kodu i ponowne używanie funkcji ogólnych. Podstawowa biblioteka języka F# zawiera również wiele przydatnych typów i funkcji do pracy z typowymi kolekcjami danych. Kompozycja własnych funkcji i tych w bibliotece podstawowej języka F# (lub innych bibliotek) jest częścią rutynowego idiomatycznego programowania w języku F#. Ogólnie rzecz biorąc, jeśli możesz wyrazić rozwiązanie problemu w mniejszej liczbie wierszy kodu, inni deweloperzy (lub ty sam w przyszłości) to docenią. Zdecydowanie zaleca się również użycie biblioteki, takiej jak FSharp.Core czy ogromne biblioteki .NET, na których działa F#, lub pakietu innej firmy na NuGet, gdy konieczne jest wykonanie zadania nietrywialnego.

  2. Dobry kod F# jest współdziałalny

    Interoperacyjność może przyjmować wiele form, w tym korzystanie z kodu w różnych językach. Granice kodu, z którymi współdziałają inne osoby wywołujące, mają krytyczne znaczenie, nawet jeśli osoby wywołujące znajdują się również w języku F#. Podczas pisania języka F# zawsze należy myśleć o tym, jak inny kod będzie wywoływać kod, który piszesz, w tym jeśli to zrobi z innego języka, takiego jak C#. Wytyczne dotyczące projektowania składników języka F# szczegółowo opisują współdziałanie.

  3. Dobry kod języka F# korzysta z programowania obiektów, a nie orientacji obiektu

    Język F# ma pełną obsługę programowania z obiektami na platformie .NET, w tym klas, interfejsów, modyfikatorów dostępu, klas abstrakcyjnych itd. W przypadku bardziej skomplikowanego kodu funkcjonalnego, takiego jak funkcje, które muszą być świadome kontekstu, obiekty mogą łatwo hermetyzować informacje kontekstowe w sposób, którego funkcje nie mogą. Funkcje, takie jak parametry opcjonalne i staranne użycie przeciążenia , mogą ułatwić korzystanie z tej funkcji dla osób wywołujących.

  4. Dobry kod F# działa dobrze bez uwidaczniania mutacji

    Nie jest tajemnicą, że aby napisać kod o wysokiej wydajności, musisz użyć mutacji. W ten sposób komputery działają w końcu. Taki kod jest często podatny na błędy i trudny do poprawnego zrobienia. Unikaj ujawniania mutacji osobom wywołującym. Zamiast tego utwórz interfejs funkcjonalny, który ukrywa implementację opartą na mutacji , gdy wydajność jest krytyczna.

  5. Dobry kod w F# dobrze współpracuje z narzędziami

    Narzędzia są nieocenione do pracy w dużych bazach kodu i można napisać kod języka F#, aby można było go efektywniej używać za pomocą narzędzi języka F#. Jednym z przykładów jest upewnienie się, że nie przesadzasz z bezcelowym stylem programowania, dzięki czemu wartości pośrednie można sprawdzić za pomocą debugera. Innym przykładem jest użycie komentarzy dokumentacji XML opisujących konstrukcje, tak aby podpowiedzi w edytorach mogły wyświetlać te komentarze w miejscu wywołania. Zawsze zastanów się, jak kod będzie odczytywany, nawigowany, debugowany i manipulowany przez innych programistów przy użyciu ich narzędzi.

Dalsze kroki

Wytyczne dotyczące formatowania kodu języka F# zawierają wskazówki dotyczące formatowania kodu, dzięki czemu można łatwo je odczytać.

Konwencje kodowania języka F# zawierają wskazówki dotyczące idiomów programowania języka F#, które pomogą w długoterminowej konserwacji większych baz kodu F#.

Wskazówki dotyczące projektowania składników języka F# zawierają wskazówki dotyczące tworzenia składników języka F#, takich jak biblioteki.