Delen via


F#-stijlgids

In de volgende artikelen worden richtlijnen beschreven voor het opmaken van F#-code en actuele richtlijnen voor functies van de taal en hoe ze moeten worden gebruikt.

Deze richtlijnen zijn geformuleerd op basis van het gebruik van F# in grote codebases met een diverse groep programmeurs. Deze richtlijnen leiden over het algemeen tot een succesvol gebruik van F# en minimaliseren frustraties wanneer de vereisten voor programma's na verloop van tijd veranderen.

Vijf principes van goede F#-code

Houd rekening met de volgende principes wanneer u F#-code schrijft, met name in systemen die na verloop van tijd veranderen. Elk stukje richtlijnen in verdere artikelen komt voort uit deze vijf punten.

  1. Goede F#-code is beknopt, expressief en composeerbaar

    F# heeft veel functies waarmee u acties kunt uitdrukken in minder regels code en algemene functionaliteit opnieuw kunt gebruiken. De F#-kernbibliotheek bevat ook veel nuttige typen en functies voor het werken met algemene verzamelingen gegevens. Samenstelling van uw eigen functies en die in de F#-kernbibliotheek (of andere bibliotheken) maakt deel uit van routine idiomatische F#-programmering. Als u in het algemeen een oplossing voor een probleem kunt uitdrukken in minder regels code, zullen andere ontwikkelaars (of uw toekomstige zelf) appreciatief zijn. Het wordt ook ten zeerste aanbevolen om een bibliotheek zoals FSharp.Core, de grote .NET-bibliotheken waarop F# wordt uitgevoerd, of een pakket van derden in NuGet te gebruiken wanneer u een niet-triviale taak moet uitvoeren.

  2. Goede F#-code is interoperabel

    Interoperation kan meerdere vormen aannemen, waaronder het gebruiken van code in verschillende talen. De grenzen van uw code waarmee andere oproepers samenwerken, zijn cruciale onderdelen om juist te maken, zelfs als de oproepers ook in F# zijn geschreven. Bij het schrijven van F# moet u altijd nadenken over hoe andere code de code aanroept die u schrijft, ook als ze dit doen vanuit een andere taal, zoals C#. In de ontwerprichtlijnen voor F#-onderdelen wordt interoperabiliteit gedetailleerd beschreven.

  3. Goede F#-code maakt gebruik van objectprogrammering, niet van objectstand

    F# biedt volledige ondersteuning voor programmeren met objecten in .NET, waaronder klassen, interfaces, toegangsaanpassingen, abstracte klassen enzovoort. Voor complexere functionele code, zoals functies die contextbewust moeten zijn, kunnen objecten eenvoudig contextuele informatie inkapselen op manieren die functies niet kunnen. Functies zoals optionele parameters en zorgvuldig gebruik van overbelasting kunnen het verbruik van deze functionaliteit eenvoudiger maken voor bellers.

  4. Goede F#-code presteert goed zonder mutatie bloot te stellen

    Het is geen geheim dat je om hoogwaardige code te schrijven, mutatie moet gebruiken. Het is hoe computers werken. Dergelijke code is vaak foutgevoelig en moeilijk om goed te komen. Vermijd het blootstellen van mutatie aan bellers. Bouw in plaats daarvan een functionele interface die een op mutatie gebaseerde implementatie verbergt wanneer prestaties essentieel zijn.

  5. Goede F#-code kan worden gebruikt

    Hulpprogramma's zijn waardevol voor het werken in grote codebases en u kunt F#-code schrijven, zodat deze effectiever kan worden gebruikt met F#-taalprogramma's. Een voorbeeld is ervoor zorgen dat je het niet overdrijft met een point-free programmeerstijl, zodat tussenliggende waarden kunnen worden geïnspecteerd met een debugger. Een ander voorbeeld is het gebruik van XML-documentatiecommentaar dat constructies beschrijft, zodat tooltips in editors deze opmerkingen op de aanroepplaats kunnen weergeven. Denk altijd na over hoe uw code wordt gelezen, genavigeerd, opgespoord en gemanipuleerd door andere programmeurs met hun hulpprogramma's.

Volgende stappen

De richtlijnen voor F#-codeopmaak bieden richtlijnen voor het opmaken van code, zodat deze gemakkelijk te lezen is.

De F#-coderingsconventies bieden richtlijnen voor F#-programmeeridiomen die het langetermijnonderhoud van grotere F#-codebases helpen.

De ontwerprichtlijnen voor F#-onderdelen bieden richtlijnen voor het ontwerpen van F#-onderdelen, zoals bibliotheken.