Lorsque vous rejoignez un nouveau projet ou lisez un code open source, vous devez avoir remarqué que certains projets sont uniformément organisés et bien structurés, tandis que d’autres sont désordonnés et emmêlés? Si nous résumons les facteurs qui produisent un tel effet sur la base du code, nous rencontrons la notion de convention de code.

Découvrons:

  • Que sont les conventions de code ?
  • Comment leur adoption peut-elle générer d’énormes avantages pour votre projet?
  • Qu’est-ce que SwiftLint ?
  • Et quels styles de code Swift choisir?

Définition de la Convention de code Swift

La convention de code est un ensemble de choses à faire et à ne pas faire qui décrivent l’organisation des fichiers, les pratiques de programmation, les modèles de conception, l’approche architecturale, etc. Il peut s’agir d’un ensemble formel de règles suivies par une équipe, une organisation ou un individu, ou être aussi informel qu’une habitude d’appliquer certaines pratiques de codage.

Le style de code est un sous-ensemble de la convention de code qui régit le formatage des fichiers, tels que l’indentation, la position des virgules, les accolades, la majuscule, etc. Dans la communauté Swift, la distinction entre les deux n’est généralement pas faite et le terme commun style de code Swift ou parfois guide de style Swift est utilisé.

Voici à quoi pourraient ressembler les conventions de codage:

  • Dénomination de fichier : un fichier qui contient un seul type doit avoir le même nom que le type.
  • Limite de longueur de ligne : une seule ligne de code ne doit pas dépasser 160 caractères.
  • Dénomination : les variables sont lowerCamelCase.

Pourquoi utiliser le style de code Swift

Chaque développeur Swift sait que le langage a un potentiel énorme, qui à son tour peut apporter beaucoup de complexité, rendre le code emmêlé et difficile à lire et à maintenir. Par conséquent, l’objectif principal du style de code Swift est de réduire cette complexité en décrivant les bonnes et les mauvaises pratiques d’écriture de code Swift.

Pourquoi rendre le code plus facile à lire est-il si important?

Selon Robert C. Martin, le temps que nous passons à lire le code est plus de 10 fois plus que de l’écrire. De plus, nous lisons constamment le code existant afin d’écrire le nouveau.

Une autre recherche basée sur des faits et des erreurs du génie logiciel indique que 40% à 80% du coût total du programme est consacré à la maintenance.

Résumons les avantages du guide de style Swift:

  • Aide à comprendre la structure du projet.
  • Améliore la lisibilité du code.
  • Facilite la maintenance.
  • Accélère l’intégration des nouveaux membres de l’équipe.
  • Donne la possibilité de maîtriser les meilleures pratiques de programmation.
  • Devient un outil de communication entre les programmeurs de la communauté.

En raison d’un impact aussi important, les conventions de codage sont généralement adoptées par les organisations informatiques et même des communautés de programmation entières.

Concevoir un style de code à partir de zéro est une tâche non triviale et nécessite des efforts consolidés. Heureusement, en tant que développeurs Swift, nous n’avons pas à réinventer la roue et pouvons utiliser plusieurs guides de style Swift existants.

Explorons plus en détail les styles de codage Swift les plus importants.

Explorer les styles de code Swift

La définition d’un bon style de code est subjective et ma recommandation personnelle est d’élaborer plusieurs styles et de les façonner en fonction des besoins de votre projet. La liste ci-dessous est là pour vous aider.

1. Swift.org

Ce guide est un standard par défaut dans la communauté Swift. Il consolide l’ensemble minimal absolu de règles que chaque développeur Swift doit comprendre et suivre.

Le guide se concentre sur les aspects fondamentaux de la conception d’API Swift, qui sont suivis par tous les frameworks système. Non seulement cela rendra votre code organique en conjonction avec les API système, mais facilitera également la lecture et la compréhension des frameworks Cocoa.

Seul, Swift.org le style de code ne suffit pas pour fournir un ensemble complet de règles, mais il constitue un excellent ajout aux autres guides énumérés ci-dessous.

Lien: Swift.org style de code

2. Google

Vous ne rencontrez normalement pas « Google » et « Swift » en une phrase, mais pas cette fois. Google comprend sans aucun doute l’importance des conventions de code et crée des conventions pour tous les grands projets open-source, comme indiqué dans les guides de style de Google. Je suppose que nous devrions remercier TensorFlow pour ce guide rapide.

Ce style de code Rapide impressionne par son exhaustivité. Il couvre tellement d’aspects que le simple fait de les énumérer ici rendrait cet article deux fois plus long.

Ce qui est vraiment précieux dans ce guide, c’est que chaque point est bien fondé en énumérant les bonnes pratiques de programmation qui sont souvent fondamentales pour tous les langages. La section Pratiques de programmation, que je recommande fortement de lire, que vous recherchiez ou non un guide Rapide, brille vraiment dans cet aspect.

Après avoir lu et compris ce guide, vous vous trouverez un meilleur programmeur en général et ajouterez un tas d’astuces rapides dans votre poche.

Lien: Style de code Swift Google

3. Ray Wenderlich

L’équipe derrière raywenderlich.com est bien connu dans la communauté iOS et n’a pas besoin d’introduction spéciale. Comme le font les articles de Ray, le guide est écrit de manière claire et compréhensible et convient particulièrement aux nouveaux arrivants rapides

Ce guide atteint sans aucun doute les objectifs déclarés d’être clair, cohérent et bref. Chaque règle est suivie d’une explication complète, d’un raisonnement et d’un ensemble d’exemples avec les choses à faire et à ne pas faire.

Ce que j’aime dans ce guide, c’est qu’il va au-delà de la syntaxe rapide et du formatage du code et explique les bonnes pratiques de programmation, telles que l’évitement du code inutilisé, explique la différence entre les types de valeur et de référence, les concepts d’initialisation paresseuse, de contrôle d’accès, de retours précoces et bien plus encore.

Au moment où j’écris cet article, il compte déjà 137 pull requests fermés, ce qui démontre que le guide est fortement soutenu par la communauté.

Lien: Style de code swift Ray Wenderlich

4. LinkedIn

LinkedIn fait un excellent travail dans le sourcing ouvert de ses composants internes et ceux de Swift ne font pas exception. Leur guide de style Swift existe depuis plus de 3 ans et intègre de nombreuses améliorations de la communauté open source et de l’équipe LinkedIn.

Le guide Swift de LinkedIn est bref, concis et bien structuré. De courtes explications théoriques sont souvent fournies pour mieux comprendre le raisonnement derrière certaines règles. Les exemples sont toujours explicites et démontrent clairement le point.

Le guide se concentre principalement sur le formatage du code et je recommande fortement de l’utiliser en combinaison avec d’autres styles de code Swift de cette liste.

Lien : Style de code Swift LinkedIn

5. Airbnb

L’équipe Airbnb est bien connue pour sa précieuse contribution à la communauté iOS. Au moment où j’écris cet article, le guide de style Swift d’Airbnb n’a que 1 semaine, ce qui en fait le plus récent de cette liste.

Dès le début, le guide définit le bon contexte en expliquant pourquoi vous avez besoin d’un style de code et je suis complètement d’accord avec chaque point.

Le guide est un plaisir à lire: il est bien structuré et les règles sont expliquées avec précision. Là où cela a du sens, chaque point est accompagné d’exemples de choses à faire et à ne pas faire et de contexte théorique. Presque chaque règle est rendue lintable avec SwiftLint – un outil d’analyse statique qui sera discuté quelques paragraphes ci-dessous.

J’aime particulièrement la section Modèles où Airbnb donne des conseils pratiques rapides que je recommande fortement de vérifier. Par exemple, il prescrit d’utiliser des valeurs immuables au lieu de mutables et fournit des conseils sur la définition des énumérations. Mon préféré est la gestion des conditions inattendues où l’utilisation des assertions, des conditions préalables et des erreurs fatales est expliquée en détail.

Le guide fournit même des paramètres de l’éditeur Xcode pour satisfaire les règles de la section de formatage qui peuvent être facilement appliquées à un script.

Lien: Guide de style Airbnb Swift

Code Swift Linter SwiftLint

Nous sommes tous des humains et, délibérément ou non, nous faisons tous des erreurs. Ainsi, il ne suffit pas de documenter ou de s’entendre verbalement sur les conventions de codage Swift. Pour minimiser le nombre d’erreurs, les règles doivent être appliquées par un outil automatisé, connu sous le nom de linter.

Linter est un analyseur de code statique qui détecte les erreurs de programmation, les bogues, les erreurs de formatage et les constructions potentiellement nuisibles.

SwiftLint est l’analyseur de code Swift le plus utilisé qui peut être configuré en fonction de règles personnalisées. Si vous ne l’utilisez pas déjà, je vous recommande fortement de vérifier SwiftLint et de commencer à l’utiliser dans vos projets Swift dès que possible.

La chose la plus importante à comprendre à propos de SwiftLint est qu’il n’impose pas un « vrai style unique », mais aide à être cohérent au sein d’un projet.

Résumé

Les conventions de code uniformes contribuent beaucoup à la productivité de la programmation et nous voulons toujours être aussi productifs que possible.

La liste des styles de codage Swift les plus remarquables est une excellente source de bonnes pratiques Swift et un point de départ pour élaborer votre propre ensemble de conventions.

Un bon style de code Swift est subjectif et doit être pris en compte par vous et votre équipe. Une fois approuvé et documenté, ce style devient une norme et doit être cohérent dans tout le projet pour améliorer la lisibilité, ce qui présente de nombreux avantages.

SwiftLint est un outil largement adopté dans la communauté Swift qui aide à appliquer les conventions de codage. Cela aide à éviter les erreurs humaines tôt et peut être un ajout précieux à la pile d’outils de votre projet.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.