Pourquoi avez-vous besoin de renifleurs de code pour le développement Web?
L'optimisation du code est comparable à la phase d'édition d'une écriture. Vous devrez peut-être d’abord intégrer vos idées dans le code, mais votre code doit être optimisé avec des outils tels que renifleurs de code produire le meilleur produit possible.
La détection de code est un terme qui décrit vérification du code de conformité aux normes réglementaires. Ces réglementations peuvent spécifier le nombre d'espaces à utiliser pour l'indentation, le placement d'accolades ou la manière de nommer les variables. Les normes ne sont pas essentielles pour créer une application Web, mais les normes sont importantes pour la cohérence interne et la maintenance du code.
C’est là que le sniffing de code est utile pour tous les développeurs, qu’il s’agisse de backend à backend. J'aimerais examiner le processus de détection de code et offrir des utilitaires permettant d'analyser les normes de code.
Qu'est-ce que le code reniflant?
L'action de détection de code est généralement automatisée pour gagner du temps et réduire les erreurs. Les renifleurs de code vérifier les codes source pour la conformité aux normes fixé par des équipes de développement internes ou des organismes de réglementation.
La détection de code est similaire à la lecture de code, mais plus pédante. Linting principalement vérifie les erreurs et les erreurs de syntaxe tout en reniflant cherche des problèmes dans la façon dont le code est écrit. Un fichier PHP peut toujours fonctionner correctement, mais échouera à un test de détection de code si un nom de variable ne respecte pas les normes (c.-à-d.. $ maVariable contre $ ma_variable).
Une terminologie similaire est l'odeur de code qui vérifie les défauts de conception dans le code qui peut conduire à de plus gros bugs. Cela peut concerner des normes de code mais inclut également architectures de niveau supérieur pour l'écriture de code homogène.
Tous ces domaines méritent d'être couverts et sont pertinents pour la détection de code. N'oubliez pas que renifler du code ne trouvera pas toujours des bogues d'exécution puisque sa priorité est maintenir le strict respect des normes.
A présent, vous vous demandez peut-être si les normes importent? La vérité est que cela compte, mais davantage pour l'optimisation et le nettoyage de projet. De nombreux développeurs conviennent que les normes sont essentielles à la programmation et au développement Web, en particulier pour les grands projets d'équipe..
Voici une citation du développeur Paul Jones expliquant pourquoi les normes de code sont utiles.
“L’intérêt d’une norme de style de codage n’est pas de dire qu’un style est objectivement meilleur qu’un autre… Il s’agit plutôt de définir des attentes connues quant à l’allure du code..”
Si vous construisez vous-même une petite application Web, il ne vaut peut-être pas la peine de passer du temps sur les normes WCAG 2.0 ou PSR-2. Mais considérons les centaines de développeurs travaillant sur le code source d'Adobe Photoshop. Ce serait chaotique si chaque personne écrivait son propre style et le combinait.
Bien que les équipes se fient beaucoup aux normes, ces règles peuvent néanmoins être utiles aux développeurs isolés. Vous pouvez trouver des normes de code pour tout, du CSS à WordPress, il n'y a donc aucune excuse pour ne pas essayer de voir si la qualité de votre code s'améliore.
La valeur des normes du code
Les normes vont naturellement garder votre code propre et organisé. Les développeurs savent exactement comment écrire du code et comment suivre le travail des autres.
Les normes de code aident également le développement open source en offrant des règles à suivre par les autres. Les fichiers peuvent être ramassés par n'importe qui des mois ou des années plus tard, tout en restant faciles à lire.
Un style de codage strict est une bonne idée même si vous choisissez de composer votre propre. Cela prend beaucoup d’efforts, mais à mesure que les projets se développent, ce type de documentation est inestimable.
Voici quelques normes de codage à prendre en compte couvrant toute la gamme des différents langages Web..
- Normes de codage PEAR (PHP)
- Normes Google pour HTML / CSS
- Normes Google pour JavaScript
- Style de codage Django (Python)
- Guide de style Rails (Ruby)
- WCAG 2.0 (UX)
Meilleures ressources de détection de code
Il est maintenant possible de trouver des renifleurs de code gratuits pour tout, du HTML / CSS aux langages de base tels que PHP et SQL. Vous n’avez peut-être pas besoin d’utiliser ces renifleurs ou de vous conformer aux normes de toutes les langues, mais cela vaut la peine d’étudier les possibilités de voir ce qui pourrait améliorer vos performances..
Renifleurs de code frontaux
Bien que HTML ne soit pas avoir besoin un code renifleur qui n'a pas empêché Squiz d'en construire un. Il est complètement open source et hébergé sur GitHub avec les options pour copier / coller du code dans le navigateur ou pour enregistrer un bookmarklet à exécuter sur des pages Web individuelles..
Ce renifleur vérifie les normes d'accessibilité A, AA et AAA des trois niveaux de WCAG, ainsi que les directives de l'article 508 qui s'appliquent principalement aux sites Web gouvernementaux..
Les développeurs CSS pourraient aimer ce renifleur de code CSS gratuit, également à code source ouvert, hébergé par le gestionnaire de paquets Node..
Les utilisateurs de jQuery devraient consulter JSCodeSniffer construit par Dmitry Sheiko. Il s'agit d'une autre application Web gratuite hébergée sur GitHub qui est conforme au guide de style de code de jQuery..
Sinon, vous pouvez essayer de lintiner votre code JS avec JavaScript Lint ou JS Lint. Ces outils vérifient les erreurs de syntaxe plutôt que les normes de code, mais ils sont également très utiles pour l'optimisation du code frontal.
Pour mémoire, il est également possible de vérifier les normes JS / CSS directement avec PHP_CodeSniffer.
Le code renifleur PHP
PHP_CodeSniffer est un outil indispensable dans votre toolbelt si vous souhaitez vous conformer aux normes du code PHP. Le paquet contient quelques Scripts PHP analysant la conformité du code PHP, JS et CSS avec votre choix de documentation de style de code.
Le créateur de PHP_CodeSniffer, Greg Sherwood, a écrit une histoire merveilleuse sur la façon dont l'idée est née et quels problèmes elle tente de résoudre (mérite d'être lue si vous avez le temps).
En résumé, Greg travaillait avec une équipe apprenant le JavaScript intégré dans une application PHP. Leur objectif était de structurer le JS de manière à suivre les normes de code de PHP afin de faciliter la vie. C'est ainsi que PHP_CodeSniffer est né.
C’est génial pour les développeurs PHP car la langue est très souple avec les exigences de style obligatoires. Les frameworks tels que Laravel sont plus stricts, mais les développeurs peuvent (et devraient) configurer leurs propres normes de code sans s'appuyer sur un framework tiers..
Différentes normes telles que PSR-0, PSR-1 et PSR-2 sont toutes populaires et sont fournies avec la bibliothèque de détection de code PHP..
Mais vous pouvez trouver de nombreuses autres normes de code préconfigurées pour les CMS PHP, telles que WordPress, Magento et Drupal. Les développeurs sur le noyau de Drupal ont même publié un module officiel de renifleur de code appelé Coder..
PHP est sans aucun doute le langage le plus simple à optimiser avec des renifleurs de code. Si vous cherchez une liste des standards de code PHP Découvrez cette entrée GitHub.
Autres renifleurs de code backend
Les développeurs de backend travaillent avec une variété de langages autres que PHP, et leur nombre augmente chaque année. Avec d’autres langues, nous avons également des bibliothèques de détection de code alternatives, telles que code-sniffer pour Python..
Il est possible de vérifier d'autres scripts en ligne ou d'utiliser des outils tels que PyLint. Mais ceci est une autre méthodologie qui nécessite de la patience pour intégrer votre flux de développement..
Les développeurs Ruby ont également une série de choix en matière de linting et analyse de code. Les meilleurs d'entre eux sont toujours gratuits et à code source ouvert, comme Ruby Lint, un analyseur de code statique conçu pour le code Ruby moderne..
Je n'ai pas encore trouvé de renifleur de code Node.js dédié, mais j'espère qu'un projet émergera avec le temps. Il existe des renifleurs de code JS qui prennent en charge les normes de nœud, mais il s’agit toujours d’un nouveau langage de base et nécessite du temps pour se développer..
Enfin, nous avons la syntaxe SQL utilisée pour les bases de données. Ce code peut être plus compliqué car il est difficile de trouver des normes de syntaxe bien supportées pour le code source SQL. Mais j'ai trouvé une application web de mise en forme SQL qui devrait s'avérer extrêmement utile lors de l'optimisation des requêtes de base de données..
Emballer
Le meilleur endroit pour commencer à détecter le code consiste à utiliser une seule langue et un seul standard. HTML / CSS est un endroit facile à utiliser pour les développeurs front-end alors que PHP est souvent le choix préféré des développeurs back-end (en particulier les développeurs WordPress)..
Et si vous voulez en savoir plus, consultez ces articles sur le reniflement du code, les peluches et l'analyse automatisée du code pour l'optimisation..
- Pourquoi avez-vous besoin de normes de codage?
- Code Smells de Jeff Atwood
- PHP Code Sniffer: Installation et configuration
- Introduction à CodeSniffer (Partie 1)
- Vitrine GitHub: des linters de code propres