Vos petites manies de développeurs

Les petites choses dont vous ne vous pouvez vous passez lorsque vous vous trouvez dans un éditeur de texte, un gestionnaire de versions...

a marqué ce sujet comme résolu.

Indentation à 2 espaces […] aucune tabulation,

Je comprends pas trop trop ça, mais j'suis certain que y'a une bonne raison que quelqu'un pourra m'expliquer.

La plupart des IDE (et éditeurs de texte) modernes proposent de choisir la taille des tabulations. Du coup, pourquoi ne pas fixer, chez toi, la taille des tab à 2 et identer avec des tabs. Si quelqu'un d'autre lit ton code et qu'il préfère une taille de 3, ça va fonctionner nickel avec son éditeur de texte sans rien changer, non ?

+6 -0

Oui Javier, on est d'accord. Et ça me fait penser que plus haut y avait quelqu'un qui disait : "indentation à 2 (ou 3, je sais plus) espaces, pas de tabulations, comme ça mon code s'affiche pareil chez tout le monde". Oui mais non, si moi je les veux de 4 espaces mes indentations, mon IDE me met des tabulations à 4 espaces…

+0 -0

C'est aussi une forte question d'habitude. A titre perso je fait principalement du Python et le standard de facto c'est "tabulation avec 4 espaces". Et c'est devenu une habitude que du coup j'utilise pour les autres technos que j'utilise.

OK. Merci pour vos réponses.

C'est juste un truc que j'ai vu dans un projet open source : "indentez avec deux espaces svp" et je me demandais pourquoi.

J'ai l'impression que (dans leur cas) c'est parce qu'il font des revues sur les pull request depuis GitHub directement. Et dans l'UI de GitHub les tabs prennent vraiment beaucoup de place. Du coup je pense que (pour eux) ça joue aussi.

+0 -0

Perso je milite clairement pour les tabs parce que ça permet de rendre l'indentation paramétrable par l'utilisateur sans changer le code. Chez moi c'est 4 ou 8 espaces de large, certains préfèrent 2, le tab fait tout.

Stranger

Avant, j'étais comme toi, mais ça, c'était avant.

Tu fais comment quand tu dois couper une ligne parce qu'elle est trop longue ?

  1. Tu utilises des espaces ? Dans ce cas là, tu as un mix des deux, qui est très chiant à gérer (selon moi).
  2. Tu utilises des tabulations ? Dans ce cas là, ceux qui n'ont pas la même taille de tab auront une vision différente du code.

Exemple de 1

Source. L'article vaut la lecture, d'ailleurs. (Les liens ne marchent pas dans la légende d'une image.)

Tu fais comment quand tu dois couper une ligne parce qu'elle est trop longue ?

Pourquoi couper une ligne ? Il suffit de demander à son éditeur de texte/IDE de faire un retour à la ligne automatique. Ainsi, pas de problème de ligne longues, l’indentation est respectée, et, comme avec les tabulations, chacun à ses coupures de ligne à la limite qui lui convient.

+1 -1

Je suis totalement contre ce genre de coupure mais dans le cas exceptionnel où ça arrive, j'utilise des espaces, oui. De façon plus régulière, j'aligne souvent les noms de variables de classe entre eux, j'ai donc un tab devant le type et des espaces après pour aligner.

Stranger

Moi aussi, d'ailleurs je cherchais un moyen pour "résoudre" ce "problème", et je suis tombé sur PSR (je fais principalement du PHP, pas de pierres svp :) ), qui recommandé d'utiliser des espaces, donc je me suis dit : je vais être un mouton, c'est pratique des fois, et je suis resté avec les espaces.

Il n'y a aucun conflit là-dedans pour moi, mon IDE ne me fait aucun problème là-dessus.

Stranger

Sublime Text et l'auto-indent m'embêtaient particulièrement.

Pourquoi couper une ligne ? Il suffit de demander à son éditeur de texte/IDE de faire un retour à la ligne automatique. Ainsi, pas de problème de ligne longues, l’indentation est respectée, et, comme avec les tabulations, chacun à ses coupures de ligne à la limite qui lui convient.

Gabbro

Je trouve que ça coupe le flow d'un code source, d'avoir une ligne qui en prend deux et des éléments non alignées (oui, souvent, quand c'est trop long, c'est une liste).

Au niveau de l'indentation, je suis d'accord avec le fait que les tabulations sont sur le papier (et dans beaucoup de cas) mieux les espaces pour que chacun choisisse la taille qu'il veut.

En revanche, il y a des cas (genre en haskell) où une grande partie de l'"indentation" est plus de l'alignement.

Par exemple :

1
2
3
4
5
6
7
8
bar :: Foo -> Bar Foo
bar foo = do
  foo' <- egg foo
  let spam  = foobar + foo'
      spam' = spam*spam + spam
  bar spam'
  where foofoo = foo*foo
        foobar = foofoo + 3

Là, au niveau du do c'est de l'indentation, mais pour le let et le where c'est de l'alignement (et pas la même). Du coup, ça devient quand même plus simple de tout faire à l'espace.

Après, l'affichage du code d'autre personnes, ça se gère aussi à coup de gg=G.

[…]

Tu fais comment quand tu dois couper une ligne parce qu'elle est trop longue ?

  1. Tu utilises des espaces ? Dans ce cas là, tu as un mix des deux, qui est très chiant à gérer (selon moi).

[…]

__forever

J'aimerais bien savoir pourquoi, selon toi, c'est chiant à gérer ?

J'utilise des tabs pour indenter et des espaces pour aligner depuis un moment maintenant et je n'ai jamais eu aucun problème avec ça

Dans mon cas, j'utilise toujours les espaces par habitude, et parce que ça m'énerve beaucoup d'ouvrir un code et d'avoir un mix tabulation/espaces qui détruit complètement la lecture, mais pour les cas où j'ai besoin de sauter une ligne, je le fais de façon cohérente :

1
2
3
4
void func(
    obj arg1,
    obj arg2,
)...

Ca m'est même arrivé de prendre certaines conventions parce que c'est pratique pour commenter, et c'est pas vraiment possible en tabulations :

1
2
3
4
5
6
void func(
    obj arg1
  , obj arg2
  , obj arg3
//  , obj arg4
)...

Maintenant, je ne vois clairement pas le pourquoi du débat tabulation/espace, et puis les tabulations ça fait des codes froids et fermés.

+0 -4

Maintenant, je ne vois clairement pas le pourquoi du débat tabulation/espace, et puis les tabulations ça fait des codes froids et fermés.

unidan

Pourquoi les tabs font des codes froids et fermés ?

C'est tout le contraire, en utilisant des espaces tu obliges tout le monde à lire ton code avec l'indentation que tu as choisi.

En utilisant des tabs, tu permets à tout le monde de choisir sa taille d'indentation préférée pour lire ton code.

EDIT: J'ai créé un sujet uniquement pour parler de ça, c'est mieux que de pourrir celui-là qui n'avait pas vraiment ce but à la base.

L'indentation par espace a le mérite d'être consistente partout sans réglages ; la valeur de 2 est souvent liée à des programmeurs qui indentent à mort.

Stranger

Si un code est trop indenté, j'aurais tendance à dire que le problème est ailleurs que dans un tab vs espace, c'est un bon indice quant à la nécessité d'un refactoring

Je trouve ça assez maladroit de citer Linus Torvalds. Déjà parce que le bonhomme est assez peu ouvert au dialogue, et que tout ce qu'il dit l'est toujours comme une vérité absolue et évidente (pas besoin de justification). Ensuite parce qu'il s'agit du cas particulier du noyau Linux, principalement écrit en C. D'autres langages peuvent avoir plus de niveaux d'indentation et rester lisibles et propres, et il peut y avoir des tas d'exceptions à cette règle.

EDIT : même en C c'est un peu abusé. Pour moi, 3 niveaux d'indentation c'est fonction-boucle-condition… Et je ne parle même pas de Java, cet horrible langage.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte