[JAVA] Formattage code source : tab ou espace pour indenter ?

Formattage code source : tab ou espace pour indenter ? [JAVA] - Java - Programmation

Marsh Posté le 10-09-2003 à 10:48:50    

Quels sont les avantages de chacun ? Qu'utilisez-vous et pourquoi ?


---------------
http://runnerstats.net
Reply

Marsh Posté le 10-09-2003 à 10:48:50   

Reply

Marsh Posté le 10-09-2003 à 10:53:43    

noldor a écrit :

Quels sont les avantages de chacun ? Qu'utilisez-vous et pourquoi ?


Indentation automatique d'emacs...:o
Tu codes avec quoi?

Reply

Marsh Posté le 10-09-2003 à 10:54:30    

Ca dépend de la facon dont le logiciel gère les tabulations (+ ou - grandes)
 
J'essaye de mettre 4 espaces a chaque fois (mais je ne respècte pas tout le temps la règle.
 
Voila les règles conseillées par Sun :
http://java.sun.com/docs/codeconv/index.html


Message édité par yo c spi le 10-09-2003 à 10:55:11
Reply

Marsh Posté le 10-09-2003 à 10:55:11    

skeye a écrit :


Indentation automatique d'emacs...:o
Tu codes avec quoi?

Eclipse


---------------
http://runnerstats.net
Reply

Marsh Posté le 10-09-2003 à 10:58:23    

perso je mets des tabs. comme ca, ceux qui veulent 2, 3 ou 4 espaces d'indentation ont juste à changer l'affichage d'une tab ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-09-2003 à 11:00:16    

Je m'en fout un peu, mais quand on en choisit un, on s'y tient. Le mix espace/tab est catastrophique quand on change d'éditeurs.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 10-09-2003 à 11:01:59    

kadreg a écrit :

Je m'en fout un peu, mais quand on en choisit un, on s'y tient. Le mix espace/tab est catastrophique quand on change d'éditeurs.


 :jap: [:totoz]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-09-2003 à 11:03:43    

benou a écrit :

perso je mets des tabs. comme ca, ceux qui veulent 2, 3 ou 4 espaces d'indentation ont juste à changer l'affichage d'une tab ...  


+1, y compris la possibilité de pouvoir transformer, si nécessaire, les tab en espace, ce qui n'est pas le cas dans l'autre sens.

Reply

Marsh Posté le 10-09-2003 à 11:19:18    

espaces only. par coup de 4 (ou 2 dans les docs xml :o)
à la limite un tab en mode standard (l'équivalent de 8 espaces), mais ça chie dans la colle pour les diffs et autres cvsview
(surtout quand un connard à décidé d'utiliser un éditeur qui transforme automatiquement les tabs en espaces. et inversement d'ailleurs)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 10-09-2003 à 11:22:24    

gizmo a écrit :


+1, y compris la possibilité de pouvoir transformer, si nécessaire, les tab en espace, ce qui n'est pas le cas dans l'autre sens.


 
Bah si, on peut le faire dans l'autre sens. Avec vim par exemple.
 
PS : ne venez jamais coder du python avec moi svp :D

Reply

Marsh Posté le 10-09-2003 à 11:22:24   

Reply

Marsh Posté le 10-09-2003 à 16:24:30    

benou a écrit :

perso je mets des tabs. comme ca, ceux qui veulent 2, 3 ou 4 espaces d'indentation ont juste à changer l'affichage d'une tab ...  


Si tu veux une indentation toujours correcte avec des tabulations réglables, c'est super galère, il faut mélanger les tabs et les espaces finement. Exemple, si tu utilises des tabs :

Code :
  1. if (première-condition-qui-prend-une-ligne  &&
  2.     seconde--condition-qui-prend-une-ligne) {


devient

Code :
  1. if (première-condition-qui-prend-une-ligne  &&
  2.   seconde--condition-qui-prend-une-ligne) {


lorsque quelqu'un raccourcit la taille de tes tabs, ou alors :

Code :
  1. if (première-condition-qui-prend-une-ligne  &&
  2.         seconde--condition-qui-prend-une-ligne) {


pour quelqu'un qui les rallonge.
 
Sans compter que tu trouveras toujours des logiciels pour lesquels les tabs font toujours et quoi qu'il arrive 8 caractères, donc si tu utilises une indentation de 4 espaces par des tabs, le programme devient difficilement lissible dans ces programmes-là.
 
Moralité, à part pour les fichiers XML ou XSL, j'utilise exclusivement des espaces.
 
De toute façon, le gain d'espace sur disque à utiliser des tabs (raison originelle de l'utilisation des tabs en programmation) est aujourd'hui infime, vus les disques durs dont on dispose à l'heure actuelle. Et la plupart des éditeurs modernes, d'une part, permettent de faire voyager le caret à l'intérieur des tabs comme s'il s'agissait d'espaces, et d'autre part, rendent l'indentation aussi facile avec des espaces qu'avec des tabs (à moins d'utiliser sed, évidemment...  :sarcastic: )


Message édité par BifaceMcLeOD le 10-09-2003 à 16:25:49
Reply

Marsh Posté le 10-09-2003 à 17:03:29    

BifaceMcLeOD a écrit :


Code :
  1. if (première-condition-qui-prend-une-ligne  &&
  2.     seconde--condition-qui-prend-une-ligne) {


 


 :non:  

Code :
  1. if (première-condition-qui-prend-une-ligne
  2.     && seconde--condition-qui-prend-une-ligne) {


 
edit : cf : http://java.sun.com/docs/codeconv/ [...] .doc3.html en bas


Message édité par benou le 10-09-2003 à 17:31:23

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-09-2003 à 18:29:37    


 
De toute façon, quand t'as un IDE digne de ce nom, tu ne fais pas comme dans un seul de tes exemples. Tu tapes toute ta condition sur une seule ligne et ensuite, tu demande à l'éditeur de tout remettre en forme à la fin. Tu perds pas ce temps à compter des espaces à la con.

Reply

Marsh Posté le 10-09-2003 à 18:37:08    

gizmo a écrit :


 
De toute façon, quand t'as un IDE digne de ce nom, tu ne fais pas comme dans un seul de tes exemples. Tu tapes toute ta condition sur une seule ligne et ensuite, tu demande à l'éditeur de tout remettre en forme à la fin. Tu perds pas ce temps à compter des espaces à la con.

:heink:  
d'une part, l'ide digne de ce nom fera le retour ligne au bon endroit; d'autre part, j'aime bien que mon code soit lisible au fur et a mesure que je le tape


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 10-09-2003 à 18:47:50    

il es lisible, même si tu tapes tout sur une seule ligne. Bon évidemment, si tu travailles sur un 12", c'est vrai que ca devient rude, mais bon...

Reply

Marsh Posté le 10-09-2003 à 19:16:43    

gizmo a écrit :

il es lisible, même si tu tapes tout sur une seule ligne. Bon évidemment, si tu travailles sur un 12", c'est vrai que ca devient rude, mais bon...

meme sur un 19" full screen je trouverais ça plus lisible sur 2 lignes que sur une ligne qui prend toute la largeur.
de plus, dans mon ide digne de ce nom, sur la gauche j'ai mon arbo classes/fichiers, sur la droite mes tasks ant, etc :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 11-09-2003 à 09:37:54    

the real moins moins a écrit :

meme sur un 19" full screen je trouverais ça plus lisible sur 2 lignes que sur une ligne qui prend toute la largeur.
de plus, dans mon ide digne de ce nom, sur la gauche j'ai mon arbo classes/fichiers, sur la droite mes tasks ant, etc :o


 
sur le mien aussi [:cupra]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 11-09-2003 à 12:37:32    

gizmo a écrit :


 
De toute façon, quand t'as un IDE digne de ce nom, tu ne fais pas comme dans un seul de tes exemples. Tu tapes toute ta condition sur une seule ligne et ensuite, tu demande à l'éditeur de tout remettre en forme à la fin. Tu perds pas ce temps à compter des espaces à la con.


Je n'ai jamais compté un seul espace de ma vie, et je n'ai pas l'intention de commencer. Mais on voit bien que tu n'as jamais bossé dans des environnements hétérogènes. Quand on écrit un fichier et qu'on le retrouve une demi-heure plus tard complètement illisible dans un second environnement parce que le second environnement a une interprétation légèrement différente des tabs, ça agace ; et au bout de 10 fois, ça énerve grave et on se résoud à utiliser le dénominateur commun. En l'occurence, il n'y en a qu'un (en horizontal) : le caractère d'espacement. On tape sur "Tab" et l'IDE insère tous les espaces qu'il faut pour aligner sur la ligne précédente ou incrémenter/décrementer le niveau d'indentation par rapport à celle-ci.
 
Et puis comme the real--, je préfère que mon programme soit lisible dès le moment où je le tape, ne serait-ce que parce que je relis sans cesse le code que je viens d'écrire (ça évite beaucoup de bugs...). Et dans mes programmes, les identificateurs sont suffisamment significatifs et les problématiques suffisamment complexes pour que mes exemples que soient significatifs.
 
benou> La convention de code que tu donnes a un énorme défaut dans le cas qui nous intéresse : elle ralentit largement la lecture verticale du code.
 
Si tu fais bien attention à l'exemple que j'ai donné, il y avait une symétrie volontaire entre les 2 longues sous-conditions. Avoir à combiner 2 sous-conditions légèrement différents dans la même condition est un cas courant en programmation de haut niveau, et en particulier en Java. Or pouvoir les aligner met en évidence qu'elle sont proches et met aussi en évidence ce qu'elle ont de différent.
Du coup, pour lire toute la condition, il te suffit d'en lire la première moitié, et un seul coup d'oeil supplémentaire te permet de comprendre la seconde sans avoir à la lire.
 
Ce que la convention de présentation du code que tu donnes masque complètement.
Or la lecture verticale est un moyen très efficace de comprendre rapidement un morceau de code, et une présentation du code efficace est celle qui permet une lecture verticale du code rapide tant en ne loupant rien des subtilités de ce code.


Message édité par BifaceMcLeOD le 11-09-2003 à 12:39:11
Reply

Marsh Posté le 11-09-2003 à 14:56:00    

BifaceMcLeOD a écrit :


benou> La convention de code que tu donnes a un énorme défaut dans le cas qui nous intéresse : elle ralentit largement la lecture verticale du code.
 
Si tu fais bien attention à l'exemple que j'ai donné, il y avait une symétrie volontaire entre les 2 longues sous-conditions. Avoir à combiner 2 sous-conditions légèrement différents dans la même condition est un cas courant en programmation de haut niveau, et en particulier en Java. Or pouvoir les aligner met en évidence qu'elle sont proches et met aussi en évidence ce qu'elle ont de différent.
Du coup, pour lire toute la condition, il te suffit d'en lire la première moitié, et un seul coup d'oeil supplémentaire te permet de comprendre la seconde sans avoir à la lire.
 
Ce que la convention de présentation du code que tu donnes masque complètement.
Or la lecture verticale est un moyen très efficace de comprendre rapidement un morceau de code, et une présentation du code efficace est celle qui permet une lecture verticale du code rapide tant en ne loupant rien des subtilités de ce code.


Ca c'est ce que tu penses !
 
moi ce que je pense c'est que dans ce genre de conditions, le plus important c'est les opérateurs et que donc, les reléguer en fin de ligne est très lors du déchifrage.
 
Et puis je dirais presque que là n'est pas la question : y a autant d'habitude de codage que de développeur. Elles ont chacune leurs avantage et inconvénients, le tout n'étant d'ailleur qu'une question d'habitude la plupart du temps. Bref, y a pas 36 façon pour faire du code facilement lisible par TOUT le monde, il tosu écrire de la même façon. Alors plutot que de choisir la méthode de Mr Tartempion, je préfère choisir celle fournie avec le langage que j'utilise.
 
Je dirais preqsue que c'est pas une question de choix personnel... Tu veux faire du code facilement reprenable, maintenable, etc ... bha tu suis la convention standardisée, qu'elle te plaise ou non.


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 11-09-2003 à 14:58:28    

benou a écrit :


Ca c'est ce que tu penses !
 
moi ce que je pense c'est que dans ce genre de conditions, le plus important c'est les opérateurs et que donc, les reléguer en fin de ligne est très lors du déchifrage.
 
Et puis je dirais presque que là n'est pas la question : y a autant d'habitude de codage que de développeur. Elles ont chacune leurs avantage et inconvénients, le tout n'étant d'ailleur qu'une question d'habitude la plupart du temps. Bref, y a pas 36 façon pour faire du code facilement lisible par TOUT le monde, il tosu écrire de la même façon. Alors plutot que de choisir la méthode de Mr Tartempion, je préfère choisir celle fournie avec le langage que j'utilise.
 
Je dirais preqsue que c'est pas une question de choix personnel... Tu veux faire du code facilement reprenable, maintenable, etc ... bha tu suis la convention standardisée, qu'elle te plaise ou non.

y'a plein de projets opensource (sur jakarta notamment) qui utilise explicitement la convention C-style pour les { } [:spamafote]  
(que j'aime pas du tout mais ça c'est une autre histoire)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 11-09-2003 à 15:02:30    

Vous battez pas. Et comme ça, ça vous iras ?
 

Code :
  1. if (première-condition-qui-prend-une-ligne
  2. &&  seconde--condition-qui-prend-une-ligne)
  3.   {


Code :
  1. if   (première-condition-qui-prend-une-ligne
  2.    && seconde--condition-qui-prend-une-ligne)
  3.   {


 
 
?
 
Edit : ce forum ajoute des espaces on ne sait trop ou :/


Message édité par Kristoph le 11-09-2003 à 15:04:38
Reply

Marsh Posté le 11-09-2003 à 15:31:27    

Kristoph a écrit :

Edit : ce forum ajoute des espaces on ne sait trop ou :/


ouais :/ j'ai pas encore trouvé la logique du machin :/
 
mais nan, tes notations je les aime pas trop  :sweat:  
 


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 11-09-2003 à 15:41:25    

benou a écrit :


ouais :/ j'ai pas encore trouvé la logique du machin :/
 
mais nan, tes notations je les aime pas trop  :sweat:  
 
 


 
Ouais, je suis pas très satisfait moi même. En fait, ça passe mieux en Pascal.
 

Code :
  1. if  test1
  2. and test2 then
  3.   begin
  4.   end


 
Edit : encore des espaces fantomes ...


Message édité par Kristoph le 11-09-2003 à 15:42:16
Reply

Marsh Posté le 11-09-2003 à 15:47:59    

espaces.


---------------
Le site de ma maman
Reply

Marsh Posté le 11-09-2003 à 16:31:22    

Au boulot, espaces (l'IDE VB ne me laisse pas le choix)
A la maison (PHP, C, ...), je prends les tabs.
 
Et dans le fond, à choisir exclusivement l'un ou l'autre, je prendrais espaces.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed