Compartir vía


Guía de estilo de F#

En los artículos siguientes se describen las directrices para dar formato al código F# y a las instrucciones temáticas sobre las características del lenguaje y cómo se deben usar.

Esta guía se ha formulado en función del uso de F# en grandes bases de código con un grupo diverso de programadores. Esta guía generalmente conduce al uso correcto de F# y minimiza las frustraciones cuando los requisitos de los programas cambian con el tiempo.

Cinco principios de buen código de F#

Tenga en cuenta los siguientes principios en cualquier momento en que escriba código de F#, especialmente en sistemas que cambiarán con el tiempo. Cada parte de las instrucciones de otros artículos se deriva de estos cinco puntos.

  1. El buen código de F# es conciso, expresivo y componible

    F# tiene muchas características que permiten expresar acciones en menos líneas de código y reutilizar la funcionalidad genérica. La biblioteca principal de F# también contiene muchos tipos y funciones útiles para trabajar con colecciones comunes de datos. La composición de tus propias funciones y las de la biblioteca principal de F# (u otras bibliotecas) es una parte habitual de la programación idiomática en F#. Como regla general, si puede expresar una solución a un problema en menos líneas de código, otros desarrolladores (o su propio futuro) serán apreciativos. También se recomienda encarecidamente usar una biblioteca como FSharp.Core, las grandes bibliotecas de .NET en las que se ejecuta F# o un paquete de terceros en NuGet cuando necesite realizar una tarea notrivial.

  2. El código de F# correcto es interoperable

    La interoperación puede adoptar varias formas, incluido el consumo de código en diferentes lenguajes. Los límites del código con el que interoperan otros llamadores son elementos críticos para entenderlo, incluso si los llamadores también están en F#. Al escribir F#, siempre debe pensar en cómo llamará otro código al código que está escribiendo, incluido si lo hacen desde otro lenguaje como C#. Las directrices de diseño de componentes de F# describen con detalle la interoperabilidad.

  3. El código de F# correcto usa la programación de objetos, no la orientación de objetos

    F# tiene compatibilidad completa con la programación con objetos en .NET, incluidas clases, interfaces, modificadores de acceso, clases abstractas, etc. Para un código funcional más complicado, como las funciones que deben ser conscientes del contexto, los objetos pueden encapsular fácilmente información contextual de maneras que las funciones no pueden. Características como los parámetros opcionales y el uso cuidadoso de la sobrecarga pueden facilitar el consumo de esta funcionalidad para los usuarios que llaman.

  4. El buen código de F# funciona bien sin exponer la mutación

    No es un secreto que para escribir código de alto rendimiento, debe usar mutación. Es cómo funcionan los equipos, después de todo. Este código suele ser propenso a errores y es difícil de obtener correctamente. Evite exponer la mutación a los autores de llamadas. En su lugar, cree una interfaz funcional que oculte una implementación basada en mutaciones cuando el rendimiento sea crítico.

  5. El buen código de F# es útil

    Las herramientas son valiosas para trabajar en grandes bases de código y puede escribir código de F# de forma que se pueda usar de forma más eficaz con herramientas de lenguaje F#. Un ejemplo es asegurarse de no exagerar con un estilo de programación sin puntos, para que los valores intermedios se puedan inspeccionar con un depurador. Otro ejemplo es usar comentarios de documentación XML que describan construcciones de modo que la información sobre herramientas de los editores pueda mostrar esos comentarios en el sitio de llamada. Siempre piense en cómo otros programadores, con sus herramientas, leerán, navegarán, depurarán y manipularán su código.

Pasos siguientes

Las directrices de formato de código de F# proporcionan instrucciones sobre cómo dar formato al código para que sea fácil de leer.

Las convenciones de codificación de F# proporcionan instrucciones para expresiones de programación de F# que ayudarán al mantenimiento a largo plazo de bases de código de F# más grandes.

Las directrices de diseño de componentes de F# proporcionan instrucciones para crear componentes de F#, como bibliotecas.