Même en ayant bien suivi ce débat et lu tous les avis, je reste campé au mien : PEP-08, donc 4 espaces et 80 colonnes.
C'est spartiate et arbitraire, certes, mais à l'usage, je me rends compte qu'en imposant ça, tous les devs qui interviennent sur le projet sur lequel je travaille ont fini par prendre le même style de nommage de variables que moi (à savoir des variables locales de 3-4 lettres la plupart du temps, style hdr
pour un header, ffd
au lieu de folder_file_descriptor
), plus personne ne commite du premier coup des chaînes du style doc.root.child('stuff').data.decode('utf-8')
(le genre de ligne qui est de toute façon amené à péter un beau jour, parce que doc
n'est pas initialisé et n'a pas de noeud root
, ou parce que root
n'a pas d'enfant nommé stuff
, ou parce que ce nœud est potentiellement vide… Sachant que je bosse sur un projet sur lequel on doit de toute manière adopter un style de programmation très défensif), et on peut coder en ouvrant 2 ou 3 fichiers côte à côte sans jamais pourrir l'affichage en forçant l'éditeur à wrapper les lignes.
Par extension, plus on utilise de lignes courtes et atomiques dès le départ, plus lisibles sont les diffs quand on modifie juste un détail.
Alors pour le coup, ouais, je remercie la PEP-08 d'imposer strictement le style de présentation du code et je me félicite que les commits qui ne la respectent pas soient automatiquement rejetés par notre tool de code review, parce que même après un gros rush de 2 semaines de correction de bugs dans l'urgence, notre code base est aussi propre et lisible qu'au départ, donc plus facile à appréhender pour le nouveau qui arrive sur le projet.
En somme, je tenais juste à faire remarquer que quelle que soit la coding-style qui est utilisée à la base dans un projet, il est important que tous les développeurs qui bossent sur ce projet l'adoptent et la respectent pour que cela reste, à tout prix, uniforme, parce que les conséquences de ces choix dépassent largement les seules considérations esthétiques.
PS : Et aussi parce que les commits de réindentation du type qui a décidé d'adopter une coding-style différente et qui a fait un gg=G
sur le fichier avant de fixer un bug donné, c'est un des moyens les plus sûrs de se prendre un coup de machette, chez moi.
PPS : Pas parce que je suis violent. Juste parce que ça pourrit complètement les diffs et l'historique du repo.