Notre équipe a récemment hérité de code qui est extrêmement désorganisé. p>
En conséquence, mon chef d'équipe a décidé de faire respecter une stratégie de formation automatique du code avant d'enregistrer un fichier. Nous avons même trouvé une option dans Eclipse (l'IDE de notre choix) qui forme automatiquement le code avant chaque action de sauvegarde. P>
Personnellement, je suis contre cela parce que je pense que le codage approprié empêche le code désordonné (la plupart du temps) alors que la formation automatique ne signifie pas codage approprié. P>
Quelles sont vos opinions? P>
12 Réponses :
format automatique du code hérité juste une fois, puis continuez sans formatage automatique. P>
Essentiellement, pas une si mauvaise idée, mais je ne suis pas mon chef d'équipe, et il souhaite continuer avec le formatage automatique pour toujours ...
Oui, je pense que l'utilisation du format automatique autrement serait une bonne idée d'obtenir le codebase sous contrôle, puis de continuer sans cela, de sorte que le jugement humain puisse prendre le relais.
Je ne suis pas d'accord avec vous. Pour moi, la mise en forme, même si ce n'est qu'un moyen de "présenter" le code source, est également un indicateur de qualité de code important.
L'utilisation du formatage automatique présente plusieurs avantages. Il homogène le format entre tous les développeurs de l'équipe. Cela vous évitera des problèmes avec la manipulation SCM: par exemple, la fusion de deux fichiers qui ont peu de changements réels, mais beaucoup de différences de formatage sont un cauchemar! P>
Cela peut également vous montrer des erreurs. Par exemple: p> sera reformaté: p> montrant que la deuxième ligne est dernier, mais non le moindre, un code bien formaté (non seulement pour Java) est plus facile à lire! p> p> si code>. p>
Mais puis-je ne pas appliquer une politique moins rigide en termes humains et ne pas être aussi stricte qu'un ordinateur?
La question est la suivante: y a-t-il des avantages de briser le style de formatage? Sinon, pourquoi ne pas utiliser un formateur automatique?
La lisibilité est parfois orientée contextuelle ...
Je suis tout à fait en désaccord, de l'expérience amère. J'ai vu plusieurs très grandes bases de code sont formatées de manière experte pourtant résoudre les problèmes de manière très compliquée.
(Pour qualifier les commentaires précédents, je faisais référence au point "Indicateur de la qualité du code" au début de la poste)
Votre réponse ne concerne pas le formatage automatique mais le formatage en général. Il existe d'autres options pour homogénéiser le format. Le plug-in Checkstyle ferait l'erreur dans votre exemple encore plus frappant car cela crée un avertissement au lieu de simplement reformater.
Je suis d'accord, la checkstyle et le formatage (auto) ne sont pas exclusifs! Ils doivent être utilisés en même temps!
Dans mon avis, le formatage du code cohérent améliore la lisibilité. Il n'est clairement pas substitut à un bon code, mais d'autre part, la construction la plus brillante qui est formatée de manière polyvalente ne peut pas non plus être appelée bonne code. p>
Le problème avec le format automatique pour moi est principalement qu'il perturbe le système de versement. Une conversion ponctuelle de formatage - sans autre changement - peut cependant bien améliorer le flux de travail. P>
Nous utilisons réellement une formation automatique dans Eclipse et que cela rend souvent mon code moins lisible, par exemple en insérant dans de nombreuses pauses de ligne. Et comme nous avons migré vers une nouvelle version Eclipse, le format n'était pas le même bien que nous utilisions les mêmes paramètres. C'est un énorme inconvénient en combinaison avec un système de contrôle de version. Je préfère le plugin de checkstyle pour obtenir un style de code cohérent. P>
Mais comme dit, j'utiliserais une autoformatère une fois lorsque vous refactez un fichier. P>
Le formateur Eclipse peut être configuré en haut degré ...
@Christian: Vous utilisez ensuite une version d'éclipse plus ancienne ou un paramètre de surveillance. Eclipse Formats ici avec des espaces depuis des âges. Si je me souviens bien, il y a 3 emplacements où vous avez défini pour utiliser des espaces au lieu d'onglets. Bonne chance.
Le même problème que je peux penser avec l'activation automatique de la mise en forme automatique dans Eclipse, c'est que si vous utilisez le contrôle de la source (vous utilisez le contrôle de la source, non?), le diffs sera massif et il sera peut-être difficile de déchiffrer Qu'est-ce qu'un changement de code réel par rapport à un changement de format. p>
Cela étant dit, le code bien formaté est essentiel pour écrire un logiciel solide. P>
Nous utilisons le contrôle de la source et nous aurions pu vouloir vérifier dans tous les fichiers après le format automatique sans autre changement humain.
Un formatage cohérent du code aide vraiment avec diffusion et tel lors de la soumission de code. P>
J'ai configuré mes scripts de contrôle source au format automatique au "style house" lors de la poussée et du format automatique sur mon style préféré lors de la tirage, donc tout le monde est heureux. P>
Je vous recommande de considérer la même chose. P>
dépend de ce que vous entendez par "désorganisé". Parlons-nous des incohérences stylistiques, ou la structure de classe est-elle un hodge-podge inintelligible? Je suppose que le premier si vous y répondez via une formatrice automatique. P>
"codage approprié" ne signifie pas nécessairement "cohérent entre les développeurs". Si j'avais mon éditeur défini sur des onglets rigoureux de quatre espaces et que vous avez le choix sur les onglets logiciels à trois espaces, le code que nous travaillons tous les deux va ressembler à un cul. (Et notre responsable de projet devrait probablement vous planter à la fois à la fois à la tête et laissez-nous savoir quelle standard nous devrions utiliser.) P>
Le formateur automatique est un peu une solution de force brute et est à peu près garantie de transformer occasionnellement quelque chose d'inhabituel mais parfaitement lisible dans un gâchis. Si le code est vraiment autant d'un gâchis, c'est un point de départ raisonnable. Mais une fois que vous avez automatiquement formaté la majeure partie du code préensitant du code préexistant, vous ferez mieux d'établir les conventions de style préféré de l'équipe et de procéder à partir de là. P>
La seule règle dont vous avez besoin pour cette situation est "Conservez le style de fichiers que vous modifiez" non "Tout le monde de l'équipe doit utiliser style x"
Je pense que le format de votre code est important. Les exemples fournis mettent en évidence le potentiel d'erreurs idiotes comme celui-là pour se glisser, bien que je voudrais utiliser l'exemple pour discuter de toujours en utilisant les accolades! P>
Je trouve que vous devez travailler plus fort pour comprendre le code lorsque vous envisagez des fichiers source qui ont une variété de formatage différente. Les modèles de code réguliers facilitent la compréhension de la sémantique car les déclarations sont toutes "au bon endroit". P>
Je ne suis pas sûr de ce qui était signifié par "codage approprié" car il semble un peu ambigu de ce qui constitue "approprié". Il existe des constructions linguistiques qui ne doivent probablement jamais être utilisées dans des circonstances normales et des anti-motifs d'ingénierie logicielle qui doivent être évités. Si ces choses sont ce que l'on entend par codage approprié, alors que ces choses sont importantes, mais elles ne réfléchissent pas au formatage du document de fichier source. P>
Il existe des outils pour forcer le formatage de code dans un fichier source en effectuant des violations des défaillances de la construction de formatage. Au début, j'étais sceptique de tels outils car ils semblent un peu draconien, mais j'ai constaté que la structure de l'uniforme du code une véritable productivité augmente. P>
P.s. Dernière déclaration complètement anecdotique car je n'ai aucune mesure pour le sauvegarder. P>
Le code de formatage est extrêmement important: p>
Tout ce que vous avez dit est vrai - mais je pense que cela ne nécessite pas de formatage automatique ...
Ce n'est pas une obligation d'utiliser un formateur, mais il est beaucoup plus facile d'utiliser un format automatique que de formater à la main.
Je suis avec votre chef d'équipe sur celui-ci et j'ai deux suggestions pour vous: P>
enregistrer chaque fichier une fois que le seul
Le changement est le formatage avec un
commettre un message qui reflète que
C'était tout ce qui a changé, puis em> va
retour et faire votre code actuel
changements. Cela vous sauvera beaucoup
de temps quand vous avez besoin de diff
changements. Le format révision sera
avoir presque toutes les lignes de code
changé, donc ce sera pratiquement
impossible de trouver un vrai changement sur
la même révision. P> li>
d'accord sur une norme de codage et
Personnalisez l'outil Auto-Format d'Eclipse
suivre cette norme. p> li>
ol>
I, comme une équipe de développement, je suis contre le formatage automatique. Étant donné que le code lisible est important, il est important que les développeurs responsables puissent formater leur code à leur guise. Les formateurs automatiques peuvent ruiner soigneusement des commentaires conçus, ils se débarrasseront des lignes vierges supplémentaires insérées pour plus de clarté, etc. p>
Nous utilisons des plugins tels que CheckStyle avec un jeu de règles standard qui doit être adhéré à, vérifié dans le code ne devrait avoir aucun avertissement de checkstyle. Si un code non structuré vient, le formateur Eclipse peut faire le premier nettoyage et la vérification de la vérification et les amis indiquent les problèmes laissés à résoudre. P>
Dans votre carrière, vous devrez suivre les normes de chaque entreprise. Cela signifie qu'une grande partie du temps que vous ne pouvez pas être d'accord avec la politique. p>
En ce qui concerne l'utilisation d'une norme d'entreprise pour la mise en forme automatique est non professionnelle et finalement mauvais pour la façon dont votre patron et votre plus haute mesure vous aperçus comme ils penseront que vous n'êtes pas un joueur d'équipe. Vous vous habituerez à ce que le formatage standard est peu importe à quel point il provient de ce que vous souhaitez et un jour lorsque vous êtes le gestionnaire, vous pouvez choisir comment le formatage sera effectué. En attendant, ce n'est pas votre appel (vous ne possédez pas la base de code, la société fait) et vous devez faire ce que vous avez demandé de faire. P>
Si vous avez des exemples valides de la manière dont l'autoformat rend le code plus difficile à lire, vous pouvez les partager avec votre patron, mais honnêtement, c'est un combat que vous êtes peu susceptible de gagner et cela vous permet d'essayer de tenter. p>
Merci pour l'avertissement - mais mon chef d'équipe et moi sommes en bons termes. Je pensais juste que c'est un dilemme intéressant et souhaitait entendre quelle expérience avait enseigné aux autres, en dehors de la société que je travaille.
Peut-être que vous pourriez nous fournir des exemples de code que vous ne voudriez pas voir automatiquement ...
Je suis désolé, je ne peux pas depuis son tout exclusion et au cœur de la logique commerciale de notre produit :(