Est-il correct de reformater le code d'un autre développeur tout en modifiant / ajoutant à un module?

13

Tout en développant dans une atmosphère de groupe et en ajoutant ou modifiant des fonctionnalités dans une base de code. Est-il considéré comme offensant ou impoli de reformater le code des développeurs précédents pour le mettre aux normes de codage actuelles? Je comprends que les normes ont changé et continueront probablement de changer, mais est-ce que vous seriez offensés si quelqu'un venait et modifiait la mise en forme de votre code?

Pour être clair, je ne parle pas de changer de logique, juste de jouer avec les tabulations et les espaces et autres.

EDIT: Je ne fais pas seulement cela pour des normes de codage, cela m'aide à lire leur code et à le mettre à jour afin que je puisse comprendre pleinement la logique qui a été mise en œuvre avant de commencer à modifier des applications critiques.

wfoster
la source
6
Activez le "formatage à l'enregistrement" automatique pour tout le monde. Tout le monde utilise les mêmes paramètres convenus. Après un certain temps, tout le code est normalisé.
1
Il peut y avoir un point où cela va trop loin. J'avais un collègue qui a reformaté tout ce qui a ajouté des sauts de ligne non nécessaires ou même pertinents en ce qui me concerne. Personnellement, sauf s'il est illisible ou si le code est devenu ma responsabilité principale, je laisse le formatage à moins que j'apporte d'autres modifications.
SoylentGray
1
Si vous codez en c #, restez sur StyleCop. Si dans d'autres langues, essayez de choisir un bon outil impartial.
Job
5
Est-ce "je change de formatage ... parce que je pense que cela devrait avoir un aspect différent" ... ou est-ce "je change de formatage ... trop conforme aux normes " ... des questions énormément différentes
WernerCD
1
@Thorbjorn Je ne considérerais pas une branche qui corrige le formatage dans chaque fichier, 1 fichier par commit, tuant l'historique. Cependant, le corriger pendant le même commit est tout simplement mauvais. (Je suppose qu'ils pourraient utiliser quelque chose comme git addpour valider des parties de manière sélective, mais je suppose que la plupart des gens utilisent l'équivalent de svn commitou git commit -a)
alternative

Réponses:

19

Je pense que c'est OK tant que les normes sont convenues. Une note de prudence cependant; sachez que le fichier peut être modifié par d'autres en même temps. Si vous rendez leur fusion plus difficile simplement parce que vous changez de format, vous ne serez pas très populaire.

Jeremy Mullin
la source
10
La première phrase ici est importante. Assurez-vous que vous suivez réellement les normes convenues et ne faites pas seulement des changements parce que vous les aimez.
Thomas Owens
5

Oui, le code doit appartenir au projet. La mise à niveau du code contribuera à réduire le déficit technique du projet. Si vous le modifiez, vous en êtes actuellement responsable. Pour un code plus ancien, le développeur d'origine peut ne plus être sur le projet ou a de nouvelles fonctions.

Lorsque vous effectuez ce type de modification, il est bon d'exécuter les tests de vérification après votre reformatage. S'ils réussissent, archivez le code avant d'effectuer vos modifications de fonctionnalités.

EDIT: Dans le contexte de cette question, un reformatage à la norme est approprié. En l'absence de normes, je recommanderais de plaider pour des normes et de ne pas reformater jusqu'à ce qu'il y ait des normes pour le format. Le reformatage selon les goûts / normes personnels ne doit pas se faire avec du code appartenant au projet.

BillThor
la source
2
+1 pour "archiver le code avant de faire vos changements de fonctionnalités"
bdoughan
1
+1 à nouveau pour "archiver les modifications de mise en forme avant d'effectuer vos modifications de fonctionnalités" et "il est bon d'exécuter les tests de vérification après votre reformatage". Idéalement, nous devrions exécuter des tests de vérification avant chaque enregistrement.
leed25d
En fait, que vous reformatiez avant ou après les changements n'a pas vraiment d'importance. Ce qui importe, c'est que les correctifs esthétiques soient séparés des correctifs fonctionnels -> si un correctif esthétique a modifié la fonctionnalité, il n'était pas prévu et peut être considéré comme un bogue; il rend les correctifs fonctionnels plus faciles à examiner (car plus petits).
Matthieu M.
@Matthiew M: Vrai, mais dans la plupart des cas, ils seront effectués en premier pour améliorer la maintenabilité avant la maintenance. Peu de développeurs ont le temps de le faire après coup. De plus, si le code doit être mis à niveau pour passer des tests d'enregistrement automatisés, il doit d'abord être reformaté pour maintenir la séparation des correctifs esthétiques et fonctionnels.
BillThor
3

Je pense que c'est toujours une bonne pratique de refactoriser le code lorsque vous modifiez / ajoutez un fichier particulier. Cela inclut la mise à jour du style du code pour refléter les conventions de dénomination appropriées pour les variables / méthodes et les styles de codage.

Wayne Molina
la source
Le PO a posé des questions sur le reformatage et non sur le refactoring.
quant_dev
Je sais; J'ai dit que je considère que cela inclut également le reformatage :)
Wayne Molina
2

Je fais ça tout le temps. L'ancien code devrait respecter les mêmes normes que le nouveau code et si vous ne le corrigez pas pendant que vous travaillez dessus, personne ne le fera. Je pense que cela compte selon la règle du scoutisme.

RKitty
la source
2

Je pense que c'est une bonne pratique et une partie nécessaire de la maintenance du code.

Je recommanderais de vérifier les modifications de formatage dans une validation du système de contrôle de version et les modifications fonctionnelles dans une validation distincte pour vous aider ainsi que les autres à comprendre ce qui s'est passé.

semaj
la source
1
+1 pour les validations distinctes. Essayer de comprendre quelles modifications de code ont été apportées dans une validation lorsque le code a été reformaté en même temps est un PITA. Vos outils de diff sont inutiles si chaque ligne du fichier a changé.
Dave Kirby
2

Je n'y verrais aucun problème et je l'apprécierais probablement ... tant que les changements ne sont pas "religieux". Veuillez ne pas parcourir toutes mes classes et déplacer les accolades à la première ligne de la méthode. Si la mise en forme est une chose de type légitime "différents traits pour différentes personnes", alors c'est un peu ennuyeux quand quelqu'un entre et impose un format au code que vous éditez le plus fréquemment. Cependant, si vous devenez l'éditeur principal de ce module particulier, apportez les modifications de format que vous jugez appropriées.

Morgan Herlocker
la source
1

Oui. Veuillez "corriger" le code comme bon vous semble. Tout comme le disent les programmeurs pragmatiques dans leur livre The Pragmatic Programmer , pas de fenêtres cassées. Si le code n'est pas à la hauteur, je le considère comme une fenêtre cassée.

mpenrow
la source
1

Il existe différents référentiels qui effectueront automatiquement un reformatage lors de l'enregistrement, ainsi que de petites choses comme changer le couplage CR / LF lors de l'obtention en fonction de la plate-forme obtenant la source.

Il y a un énorme inconvénient à faire vos propres reformatages dans la mesure où vos deltas d'archivage seront obscurcis par des tonnes de reformatage et s'il y a un problème de régression, il devient plus difficile de trouver les blocs de code incriminés.

Vous pourriez suggérer à votre chef de file que puisque la base de code est ancienne, elle devrait être importée du froid et reformatée aux normes actuelles en une seule fois, conduisant à un nouvel avenir brillant pour le code partout.

Patrick Hughes
la source
1

Puisque vous parlez d'un problème purement de "mise en forme" (ce qui signifie que nous ne corrigeons pas les bogues mais que nous le rendions joli à votre propre norme), je pense que cela dépend si la personne d'origine maintient toujours le code ou non.

Si l'initiateur travaille toujours sur le projet - c'est impoli. Ce qui pourrait "vous sembler" droit n'est pas ce qui "vous semblera" droit à eux et modifier le code pour des raisons de formatage n'est pas poli. Cela peut également perdre beaucoup de temps.

Je travaillais sur un projet une fois avec un développeur TRÈS possessif. Au fil des ans, j'ai développé une manière très méthodique de formater mon code qui me semble facile à lire, moins sujet aux erreurs implicites et à l'auto-documentation. Ce gars, en revanche, préférait utiliser toutes les fonctionnalités implicites avec de longues lignes qui s'étalaient sur 300 caractères, donc vous deviez avoir un moniteur de 30 "pour le lire car il pensait que le nombre de lignes était plus important que la lisibilité. Il a passé une demi-journée soufflant à travers mon code en le changeant à sa "norme préférée" ... alors que je développais encore en parallèle! Je suis venu le lendemain matin pour trouver deux jours de travail formaté dans son désordre. C'était grossier et une perte de temps.

Maintenant, si le développeur est parti et que vous avez un "meilleur style", allez-y.

Jordan Parmer
la source
0

Formatez toujours automatiquement le code si votre IDE peut le faire.

  • Empêche les modifications de formatage manuelles d'encombrer l'historique de vos versions à long terme
  • Le profil du formateur doit être convenu entre tous les développeurs (choisissez la valeur par défaut? -)
  • Faites du formatage du code et de l'organisation des importations une habitude lors de l'enregistrement d'un fichier

Par exemple, dans eclipse, vous pouvez d'abord exécuter le formateur et organiser les importations pour l'ensemble de la base de code. Pensez ensuite à ctrl + alt + f avant d'enregistrer.

jkj
la source