Guida di stile di F#
Gli articoli seguenti descrivono le linee guida per la formattazione del codice F# e le linee guida per le funzionalità del linguaggio e come devono essere usate.
Queste linee guida sono state formulate in base all'uso di F# in codebase di grandi dimensioni con un gruppo eterogeneo di programmatori. Queste linee guida in genere portano a un uso corretto di F# e riducono al minimo le frustrazioni quando i requisiti per i programmi cambiano nel tempo.
Cinque principi di codice F# valido
Tenere presenti i principi seguenti ogni volta che si scrive codice F#, in particolare nei sistemi che cambieranno nel tempo. Tutte le linee guida in altri articoli derivano da questi cinque punti.
Il codice F# è conciso, espressivo e componibile
F# include molte funzionalità che consentono di esprimere azioni in meno righe di codice e riutilizzare le funzionalità generiche. La libreria principale di F# contiene anche molti tipi e funzioni utili per l'uso di raccolte di dati comuni. La composizione di funzioni personalizzate e di quelle nella libreria principale F# (o in altre librerie) fa parte della programmazione F# idiomatica di routine. Come regola generale, se è possibile esprimere una soluzione a un problema in meno righe di codice, gli altri sviluppatori (o il proprio autore futuro) saranno valutativi. È anche consigliabile usare una libreria come FSharp.Core, le vaste librerie .NET in cui viene eseguito F# o un pacchetto di terze parti in NuGet quando è necessario eseguire un'attività non semplice.
Un codice F# valido è interoperativi
L'interoperabilità può assumere più forme, incluso l'utilizzo di codice in linguaggi diversi. I limiti del codice con cui altri chiamanti interagisce sono parti critiche per ottenere il giusto, anche se i chiamanti sono anche in F#. Quando si scrive F#, è sempre necessario pensare a come verrà chiamato altro codice nel codice che si sta scrivendo, anche se lo fanno da un altro linguaggio come C#. Le linee guida per la progettazione di componenti F# descrivono in dettaglio l'interoperabilità.
Un buon codice F# usa la programmazione di oggetti, non l'orientamento degli oggetti
F# include il supporto completo per la programmazione con oggetti in .NET, tra cui classi, interfacce, modificatori di accesso, classiastratte e così via. Per codice funzionale più complesso, ad esempio funzioni che devono essere in grado di riconoscere il contesto, gli oggetti possono incapsulare facilmente le informazioni contestuali in modi non possibili per le funzioni. Funzionalità come i parametri facoltativi e l'uso attento dell'overload possono semplificare l'utilizzo di questa funzionalità per i chiamanti.
Buone prestazioni del codice F# senza esporre la cambiamento
Non è un segreto che per scrivere codice ad alte prestazioni, è necessario usare la cambiamento. È così che funzionano i computer, dopo tutto. Questo codice è spesso eroso e difficile da trovare. Evitare di esporre la cambiamento ai chiamanti. Compilare invece un'interfaccia funzionale che nasconde un'implementazione basata sulla sostituzione quando le prestazioni sono critiche.
Un codice F# efficace è toolable
Gli strumenti sono molto utili per lavorare in codebase di grandi dimensioni ed è possibile scrivere codice F# in modo che possa essere usato in modo più efficace con gli strumenti del linguaggio F#. Un esempio è assicurarsi di non esagerare con uno stile di programmazione senza punti, in modo che i valori intermedi possano essere controllati con un debugger. Un altro esempio è l'uso di commenti di documentazione XML che descrivono costrutti in modo che le descrizioni comando negli editor possano visualizzare tali commenti nel sito di chiamata. È sempre necessario pensare a come il codice verrà letto, esplorato, debug e modificato da altri programmatori con i relativi strumenti.
Passaggi successivi
Le linee guida per la formattazione del codice F# forniscono indicazioni su come formattare il codice in modo che sia facile da leggere.
Le convenzioni di scrittura del codice F# forniscono indicazioni per idiomi di programmazione F# che consentono la manutenzione a lungo termine di codebase F# di dimensioni maggiori.
Le linee guida per la progettazione di componenti F# forniscono indicazioni per la creazione di componenti F#, ad esempio le librerie.