Je travaille actuellement dans un endroit qui cherche à forcer les développeurs à utiliser un formateur de code automatisé lors de l'enregistrement du contrôle de version. Je cherche des avis de développeurs sur les avantages et les inconvénients de faire cela ... comment vous pensez que cela aiderait ou gênerait les développeurs. Mon cas spécifique concerne Java / JSP, mais je pense que la question pourrait s'appliquer à n'importe quel langage.
java
formatting
coding-standards
Nerdfest
la source
la source
Réponses:
Je pense qu'il est très important de le faire. Voici pourquoi:
Si vous le faites, je recommanderais à tout le monde d'archiver tout le code, puis une personne effectue un reformatage sur toute la base de code, puis l'archive à nouveau afin qu'il y ait un ensemble de modifications "géant" pour le formatage (que tout le monde peut ignorer), mais après cela, tous les diffs sont de véritables diffs de code.
Si vous le faites petit à petit, vous mélangerez de vrais changements de code avec des changements de formatage et les choses deviendront inutilement désordonnées dans le pays de changement.
la source
Je vais jeter ma propre réponse ici car les gens semblent seulement ajouter des avantages. Ce que je considère comme des inconvénients sont:
En termes simples, un ensemble de conventions non automatisées définit des exigences minimales de style / lisibilité, où les conventions automatisées fixent un minimum et un maximum.
Je me souviens avoir regardé VB (version 5 peut-être) et trouvé l'une des choses les plus ennuyeuses à ce sujet, c'était qu'il reformaterait de force mon code et supprimerait des choses au-delà de sa mise en forme de base.
la source
Je trouve que la mise en forme forcée du code est excellente. Il permet à un développeur de parcourir l'intégralité du corpus de code sans que ses yeux ne rebondissent partout. La mise en place de cette norme aide également les développeurs novices à rompre avec les mauvaises habitudes.
la source
Le principal inconvénient est de perdre le formatage personnalisé là où cela compte vraiment.
Imaginez un contrôle de santé mentale typique if () qui échouera si l'une des conditions spécifiques est présente mais non remplie ...
Ceci est lisible grâce à une indentation raisonnable suivant la structure logique des conditions.
Maintenant, votre outil automatisé n'a aucune idée de la séparation logique des différentes conditions en lignes connexes. Il ne voit aucune raison pour laquelle chaque groupe de 3-4 conditions sur une ligne et divise la condition suivante en deux. Ou il le divisera, une expression de comparaison par ligne. Cela peut même sembler plus joli à l'écran, mais la logique sera perdue.
la source
J'ai ajouté une réponse avec des inconvénients, et je vais également apporter ce que je considère comme un gros avantage.
Lorsque vous utilisez un reformatage de code automatisé lors de la validation, cela ouvre en fait la possibilité de variations de préférences personnelles sans l'effet habituel d'infliger vos préférences aux autres. Vous pouvez avoir votre code au format IDE selon une norme commune lors de la validation, mais vous l'afficher dans votre format préféré sans affecter les autres.
Pour moi, c'est presque le Saint Graal du codage basé sur les conventions ... vous obtenez les avantages d'un format de code commun, tout en permettant aux préférences personnelles d'être prises en charge sans conflits.
la source
Cela dépend de vos besoins, mais certaines contraintes sont très utiles, par exemple, chaque if () doit être suivi d'accolades, car il est assez facile d'obtenir une telle erreur si vous refactorisez.
Considérez ce cas:
Si vous voulez maintenant ajouter une journalisation au cas if, vous pourriez accidentellement écrire:
Et soudain, votre méthode revient toujours
foo
.Edit: ce n'est pas sur la mise en forme automatique mais plutôt sur la vérification du style. Désolé si cette réponse était également hors sujet. :)
la source
Cela aide grandement à uniformiser le code dans l'entreprise, et grâce à cela, vous produisez généralement une structure plus facilement compréhensible et beaucoup plus facile à maintenir pour votre produit.
la source
Eh bien, les avantages sont les mêmes que tout formatter de code, comme la standardisation du code, sémantique entre les développeurs, etc. Les seuls inconvénients possibles que je vois est le manque d'un oeil humain après la mise en forme, d'ajouter quelques exceptions, etc.
Donc , je suppose qu'il vaut mieux considérer un formateur IDE au lieu d'un formateur de temps d'enregistrement.
la source
D'après mon expérience, c'est une bonne chose. Sans celui-ci, les comparaisons de code montrent souvent un désordre de formatage des espaces blancs et peuvent masquer les modifications de code réelles. D'après mon expérience, jouer avec le formatage de quelqu'un n'est pas le péché qu'il est censé être, en particulier avec les avantages potentiels de la cohérence au sein de l'équipe.
la source