Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2899 connectés 

  FORUM HardWare.fr
  Programmation
  Java

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°511525
noldor
Rockn'roll
Posté le 10-09-2003 à 10:48:50  profilanswer
 

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


---------------
http://runnerstats.net
mood
Publicité
Posté le 10-09-2003 à 10:48:50  profilanswer
 

n°511527
skeye
Posté le 10-09-2003 à 10:53:43  profilanswer
 

noldor a écrit :

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


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

n°511528
yo c spi
Yo !
Posté le 10-09-2003 à 10:54:30  profilanswer
 

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
n°511529
noldor
Rockn'roll
Posté le 10-09-2003 à 10:55:11  profilanswer
 

skeye a écrit :


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

Eclipse


---------------
http://runnerstats.net
n°511531
benou
Posté le 10-09-2003 à 10:58:23  profilanswer
 

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
n°511535
kadreg
profil: Utilisateur
Posté le 10-09-2003 à 11:00:16  profilanswer
 

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 !
n°511537
benou
Posté le 10-09-2003 à 11:01:59  profilanswer
 

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
n°511538
gizmo
Posté le 10-09-2003 à 11:03:43  profilanswer
 

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.

n°511543
the real m​oins moins
Posté le 10-09-2003 à 11:19:18  profilanswer
 

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 ?
n°511550
Kristoph
Posté le 10-09-2003 à 11:22:24  profilanswer
 

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

mood
Publicité
Posté le 10-09-2003 à 11:22:24  profilanswer
 

n°511841
BifaceMcLe​OD
The HighGlandeur
Posté le 10-09-2003 à 16:24:30  profilanswer
 

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
n°511861
benou
Posté le 10-09-2003 à 17:03:29  profilanswer
 

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
n°511914
gizmo
Posté le 10-09-2003 à 18:29:37  profilanswer
 


 
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.

n°511916
the real m​oins moins
Posté le 10-09-2003 à 18:37:08  profilanswer
 

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 ?
n°511927
gizmo
Posté le 10-09-2003 à 18:47:50  profilanswer
 

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...

n°511941
the real m​oins moins
Posté le 10-09-2003 à 19:16:43  profilanswer
 

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 ?
n°512208
darklord
You're welcome
Posté le 11-09-2003 à 09:37:54  profilanswer
 

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
n°512344
BifaceMcLe​OD
The HighGlandeur
Posté le 11-09-2003 à 12:37:32  profilanswer
 

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
n°512468
benou
Posté le 11-09-2003 à 14:56:00  profilanswer
 

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
n°512472
the real m​oins moins
Posté le 11-09-2003 à 14:58:28  profilanswer
 

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 ?
n°512481
Kristoph
Posté le 11-09-2003 à 15:02:30  profilanswer
 

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
n°512531
benou
Posté le 11-09-2003 à 15:31:27  profilanswer
 

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
n°512550
Kristoph
Posté le 11-09-2003 à 15:41:25  profilanswer
 

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
n°512567
Cherrytree
cn=?
Posté le 11-09-2003 à 15:47:59  profilanswer
 

espaces.


---------------
Le site de ma maman
n°512622
drasche
Posté le 11-09-2003 à 16:31:22  profilanswer
 

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.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

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

 

Sujets relatifs
recherche agent d'alerte open sourceles interfaces graphiques en java
[Java-XML] Arret de lecture d'un fichier XML avec un parser SAXTemplate, code simple qui ne marche pas
[java] Récupération de données sur une base SAM MicosoftMétriques JAVA et JSP
Votre bout de code le mieux faitMon code..
Plus de sujets relatifs à : [JAVA] Formattage code source : tab ou espace pour indenter ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR