Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Swiftlint

zezzi
August 17, 2018

 Swiftlint

Linting for iOS

zezzi

August 17, 2018
Tweet

More Decks by zezzi

Other Decks in Programming

Transcript

  1. TEXT QUÉ ES SWIFTLINT? Una herramienta para hacer cumplir el

    estilo Swift y las convenciones, basadas libremente en la Guía de estilos de Swift de GitHub.
  2. TEXT CLEAN CODE ▸ El estilo de código no es

    importante! ▸ Debates sobre estilo ▸ Estilo VS Funcionalidad
  3. TEXT RAZONES PARA USAR SWIFTLINT ▸ Consistencia de Código dentro

    del proyecto. ▸ Consistencia de Código entre proyectos. ▸ Ayudar a los principiantes a evitar malas prácticas. ▸ Evitar debates filosóficos sobre cuestiones de estilo. ▸ Decisiones sobre estilo entre el equipo.
  4. TEXT REGLAS ▸ 75 Reglas ▸ 16 opt-in ▸ 19

    Correctable ▸ 19 Settings configurabas
  5. TEXT REGLAS OPT-IN ▸ Pueden generar falsos positivos (Empty Count)

    ▸ Una regla que no se aplique de forma general (ej: force_unwrapping, missing _docs)
  6. TEXT REGLAS DE ESTILO ▸ Attributes: Regla sobre dónde colocar

    atributos como @objc, @testable ▸ Syntactic Sugar: Uso de syntactic sugar por ejemplo: [Int] vs Array<Int> ▸ Trailing Comma: Evitar comas al final del arreglo [1,2,] ▸ Implicit Getter: Propiedades de solo lectura deben evitar el uso de los keywords get
  7. TEXT REGLAS DE CONVENCIÓN ▸ Parámetros Vacíos: () -> vs

    Void -> ▸ Void Return: -> Void vs -> () ▸ Comma Spacing: Sin espacio antes pero con espacio después ▸ Type Name/Variable Name
  8. TEXT CODE SMELLS ▸ Force try ▸ Force Unwrapping ▸

    Force Cast ▸ Function Parameter: Encapsular. ▸ Cyclomatic Complexity: Demasiados paths en una función ▸ Nesting: Piramide de DOOM
  9. TEXT BUG AVOIDING RULES ▸ Empty Count: isEmpty vs count

    to 0 ▸ Weak delegates: Evita reference cycles ▸ Private Unit Tests ▸ Private outlets ▸ Valid IBInspectable
  10. ESTRATEGIAS DE USO ▸ Incremental ▸ El escéptico ▸ El

    complecionista ▸ El Comandante en jefe ▸ El vagabundo ▸ El Francotirador
  11. EL INCREMENTAL ▸ Empezar con varias de las reglas desactivadas

    ▸ Empezar con cosas pequeñas ▸ Bueno para equipos grandes o proyectos
  12. EL ESCÉPTICO ▸ No creen en los linters ▸ Solo

    habilitar las más confiables y reglas obvias
  13. EL COMPLECIONISTA ▸ Habilitar todas las reglas ▸ Arruina todo

    el Código para que las reglas se cumplan. ▸ Solo por que una regla exista no significa que se deba usar en todos
  14. EL COMANDANTE EN JEFE ▸ Usa alguno de los comandos

    en diferentes partes del Código. Balance entre desactivar y activar reglas
  15. El Vagabundo Ocasionalmente revisa las reglas que están activadas en

    el código Es una buena estrategia si no quieres toda la carga de estar haciendo linting de todo.
  16. El Francotirador Solo Habilita algunas reglas conforme las vaya necesitando.

    No se preocupa por tantas reglas en cuanto al estilo. Escribe código de una forma consistente