35 votes

Pourquoi l'indentation dans les lignes vides est-elle mauvaise?

Tous les projets FOSS que je connais ont des règles contre les espaces blancs dans le code. Mais je pense qu'il est très naturel de continuer l'indentation actuelle sur la ligne suivante:

 int main()
{
....int a = 42;
....
....return a;
}
 

Mais git par exemple jette des avertissements quand même. Ma question est donc la suivante: pourquoi les onglets à l' intérieur de l'indentation actuelle sont-ils mauvais?

Je ne cherche pas de réponses du genre "c'est toujours comme ça". Supposons que l'indentation soit faite de manière cohérente dans l'ensemble du projet en question.

47voto

sarnold Points 62720

C'est probablement parce que la fusion des patchs avec les inutiles espace est plus difficile qu'elle ne devrait l'être.

diff(1) et patch(1) traiter les espaces et les tabulations comme le contenu important. (Demandez à n'importe quel Makefile ou .py le fichier source -- ils sont importants!) Et si votre "ligne vide" dispose de quatre espaces, et ma "ligne vide" a huit espaces sur elle, toute tentative d'action correctifs entre nous va échouer pour de très pour des raisons insignifiantes.

Accordé, si vous avez de gros changement de l'indentation d'un bloc de code, vous aurez à aller à un peu de travail pour faire les patchs s'appliquent de toute façon. Mais essayer de fusionner les pannes sur les lignes qui look blanc est douloureux. (J'ai gâché trop de ma vie à faire juste cela. Oui, vim listchars peut aider, mais la lecture de code avec listchars sur tous les temps est aussi ennuyeux.)

Donc, les gens adoptent pas de fuite d'espaces. Il ne pourrait pas vraiment le sens de s'inquiéter d'une douzaine de perdu octets, ici ou là, à partir d'un point de vue de mémoire, mais il a vraiment fait de la fusion des patchs plus facile. Nous pourrions tout aussi bien uniformiser sur l'ajout de fuite espace, exactement comme vous l'avez suggéré, et être tout aussi heureux, mais nous pourrions aussi bien de normaliser l'approche est aussi sobre que possible.

4voto

Dustin Points 35205

Cela peut également être impoli pour les utilisateurs de vi qui sont habitués à utiliser la navigation par paragraphe pour naviguer dans le code. Parfois, je fais cela quand vi et c'est assez surprenant quand je saute plusieurs fonctions parce que des caractères invisibles disaient que cela faisait en fait partie du paragraphe précédent.

3voto

Már Örlygsson Points 6861

Je pense que cela revient à "pas d'octets de surprise cachés redondants dans votre code plz".

Comme @sarnold le fait remarquer, des octets surprises redondants compliquent inutilement les correctifs et les diffs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X