Al unirse a un nuevo proyecto o leer un código de código abierto, debe haber notado que algunos proyectos están organizados de manera uniforme y bien estructurados, mientras que otros están desordenados y enredados. Si resumimos los factores que producen tal efecto sobre la base de código, nos encontramos con la noción de convención de código.

Vamos a descubrir:

  • ¿Qué son las convenciones de código?
  • ¿Cómo su adopción puede resultar en enormes beneficios para su proyecto?
  • ¿Qué es la salangana?
  • ¿Y qué estilos de código Swift elegir?

Definición de Convención de código Swift

La convención de código es un conjunto de cosas que hacer y no hacer que describen la organización de archivos, las prácticas de programación, los patrones de diseño, el enfoque arquitectónico, etc. Puede ser un conjunto formal de reglas que es seguido por un equipo, organización o individuo, o ser tan informal como un hábito de aplicar ciertas prácticas de codificación.

El estilo de código es un subconjunto de la convención de código que rige el formato de archivo, como sangría, posición de comas, llaves, mayúsculas, etc. En la comunidad Swift, la distinción entre los dos generalmente no se hace y se utiliza el término común estilo de código Swift o, a veces, guía de estilo Swift.

Así es como podrían verse las convenciones de codificación:

  • Nombre de archivo: un archivo que contiene un solo tipo debe tener el mismo nombre que el tipo.Límite de longitud de línea
  • : una sola línea de código no debe exceder los 160 caracteres.
  • Denominación: las variables son lowerCamelCase.

Por qué usar el estilo de código Swift

Todos los desarrolladores de Swift saben que el lenguaje tiene un enorme potencial, que a su vez puede aportar mucha complejidad, enredar el código y dificultar su lectura y mantenimiento. Por lo tanto, el objetivo principal del estilo de código Swift es reducir esta complejidad describiendo buenas y malas prácticas de escritura de código Swift.

¿Por qué es tan importante hacer que el código sea más fácil de leer?

Según Robert C. Martin, el tiempo que pasamos leyendo el código es más de 10 veces más que escribiéndolo. Además, estamos leyendo constantemente el código existente para escribir el nuevo.

Otra investigación de Hechos y Falacias de la Ingeniería de Software afirma que el 40% -80% del costo total del programa se destina al mantenimiento.

Resumamos los beneficios que proporciona la guía de estilo Swift:

  • Ayuda a entender la estructura del proyecto.
  • Mejora la legibilidad del código.
  • Facilita el mantenimiento.
  • Acelera la incorporación de nuevos miembros del equipo.
  • Da la posibilidad de dominar las mejores prácticas de programación.
  • Se convierte en una herramienta de comunicación entre programadores de la comunidad.

Debido a un impacto tan grande, las convenciones de codificación generalmente son adoptadas por organizaciones de TI e incluso comunidades de programación enteras.

Diseñar un estilo de código desde cero es una tarea no trivial y requiere esfuerzos consolidados. Afortunadamente, como desarrolladores de Swift, no tenemos que reinventar la rueda y podemos utilizar múltiples guías de estilo de Swift existentes.

Exploremos los estilos de codificación Swift más destacados con más detalle.

Explorar estilos de código Swift

La definición de buen estilo de código es subjetiva y mi recomendación personal es elaborar varios estilos y darles forma de acuerdo con las necesidades de su proyecto. La siguiente lista está aquí para ayudar.

1. Swift.org

Esta guía es un estándar de forma predeterminada en la comunidad Swift. Consolida el conjunto mínimo absoluto de reglas que todo desarrollador de Swift debe entender y seguir.

La guía se centra en los aspectos fundamentales del diseño de API de Swift, que siguen todos los marcos de trabajo del sistema. No solo hará que su código se vea orgánico junto con las API del sistema, sino que también hará que sea más fácil leer y comprender los marcos de trabajo de Cocoa.

Por sí solo, Swift.org el estilo de código no es suficiente para proporcionar un conjunto completo de reglas, pero es una gran adición a las otras guías que se enumeran a continuación.

Enlace: Swift.org estilo de código

2. Google

Normalmente no te encuentras con «Google» y «Swift» en una oración, pero no esta vez. Sin duda, Google entiende la importancia de las convenciones de código y crea convenciones para todos los principales proyectos de código abierto, como se indica en las Guías de estilo de Google. Supongo que deberíamos agradecer a TensorFlow esta guía rápida.

Este estilo de código Rápido impresiona por su exhaustividad. Cubre tantos aspectos que simplemente enumerarlos aquí haría que este artículo fuera el doble de largo.

Lo que es realmente valioso de esta guía es que cada punto está bien fundado al enumerar buenas prácticas de programación que a menudo son fundamentales para todos los idiomas. La sección de Prácticas de programación, que recomiendo leer si está buscando una guía Rápida o no, realmente brilla en este aspecto.

Después de leer y comprender esta guía, se encontrará con un mejor programador en general, además de agregar un montón de trucos rápidos en su bolsillo.

Enlace: Estilo de código Swift de Google

3. Ray Wenderlich

El equipo detrás raywenderlich.com es bien conocido en la comunidad de iOS y no necesita una introducción especial. Al igual que los artículos de Ray, la guía está escrita de una manera clara y comprensible y es especialmente adecuada para recién llegados rápidos

Esta guía sin duda alcanza los objetivos declarados de ser clara, consistente y breve. A cada regla le sigue una explicación completa, un razonamiento y un conjunto de ejemplos con lo que se debe y lo que no se debe hacer.

Lo que me encanta de esta guía es que va más allá de la sintaxis rápida y el formato de código y explica buenas prácticas de programación, como evitar el código no utilizado, explica la diferencia entre los tipos de valor y de referencia, los conceptos de inicialización perezosa, control de acceso, devoluciones tempranas y mucho más.

En el momento en que escribo este artículo, ya tiene 137 solicitudes de extracción cerradas, lo que demuestra que la guía está fuertemente respaldada por la comunidad.

Enlace: Ray Wenderlich Estilo de código Swift

4. LinkedIn

LinkedIn hace un gran trabajo en open sourcing sus componentes internos y los de Swift no son una excepción. Su guía de estilo Swift ha existido durante más de 3 años e incorporó muchas mejoras tanto de la comunidad de código abierto como del equipo de LinkedIn.

La guía Swift de LinkedIn es breve, concisa y bien estructurada. A menudo se proporcionan explicaciones teóricas breves para comprender mejor el razonamiento detrás de ciertas reglas. Los ejemplos siempre se explican por sí mismos y demuestran claramente el punto.

La guía se centra principalmente en el formato de código y recomiendo encarecidamente usarla en combinación con otros estilos de código Swift de esta lista.

Enlace: Estilo de código Swift de LinkedIn

5. Airbnb

El equipo de Airbnb es conocido por su valiosa contribución a la comunidad de iOS. En el momento en que escribo este artículo, la Guía de estilo Swift de Airbnb tiene solo 1 semana de antigüedad, lo que la convierte en la más fresca de esta lista.

Desde el principio, la guía establece el contexto correcto al explicar por qué necesita un estilo de código y estoy completamente de acuerdo con cada punto.

La guía es un placer de leer: está bien estructurada y las reglas se explican con precisión. Cuando tiene sentido, cada punto se acompaña con ejemplos de lo que se debe y lo que no y contexto teórico. Casi todas las reglas se pueden enlazar con SwiftLint, una herramienta de análisis estático que se discutirá en algunos párrafos a continuación.

Me gusta especialmente la sección de patrones, donde Airbnb ofrece consejos prácticos y rápidos que recomiendo consultar. Por ejemplo, prescribe el uso de valores inmutables en lugar de mutables y proporciona consejos sobre la definición de enumeraciones. Mi favorito es el manejo de condiciones inesperadas donde el uso de afirmaciones, precondiciones y errores fatales se explica con gran detalle.

La guía incluso proporciona ajustes de editor de Xcode para satisfacer las reglas de la sección de formato que se pueden aplicar fácilmente como medio de un script.

Enlace: Guía de estilo Swift de Airbnb

Código Swift Linter SwiftLint

Todos somos humanos y deliberadamente o no, todos cometemos errores. Por lo tanto, no es suficiente documentar o acordar verbalmente las convenciones de codificación Swift. Para minimizar el número de errores, las reglas deben ser aplicadas por una herramienta automatizada, conocida como linter.

Linter es un analizador de código estático que encuentra errores de programación, errores, errores de formato y construcciones potencialmente dañinas.

SwiftLint es el analizador de código Swift más utilizado que se puede configurar en función de reglas personalizadas. Si aún no lo está utilizando, le recomiendo encarecidamente que compruebe SwiftLint y comience a usarlo en sus proyectos Swift lo antes posible.

Lo más importante que hay que entender de SwiftLint es que no impone un «estilo único verdadero», sino que ayuda a ser consistente dentro de un proyecto.

Resumen

Las convenciones de código uniformes contribuyen mucho a la productividad de la programación y siempre queremos ser lo más productivos posible.

La lista con los estilos de codificación Swift más notables es una gran fuente de prácticas recomendadas de Swift y un punto de partida para elaborar su propio conjunto de convenciones.

El buen estilo de código Swift es subjetivo y debe dejarse en tu consideración y la de tu equipo. Una vez aprobado y documentado, dicho estilo se convierte en un estándar y debe ser consistente en todo el proyecto para mejorar la legibilidad, lo que resulta en numerosos beneficios.

SwiftLint es una herramienta ampliamente adoptada en la comunidad Swift que ayuda a hacer cumplir las convenciones de codificación. Ayuda a evitar errores humanos tempranamente y puede ser una adición valiosa a la pila de herramientas de su proyecto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.