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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  170  171  172  ..  327  328  329  330  331  332
Auteur Sujet :

BlaBlaTech@JAVA [ELITE, viendez les boobs]

n°1495007
masklinn
í dag viðrar vel til loftárása
Posté le 21-12-2006 à 19:45:51  profilanswer
 

Reprise du message précédent :

the real moins moins a écrit :

* aSdf : String representant un format utilisable par SimpleDateFormat


putain ça a un sens en plus :ouch:


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
mood
Publicité
Posté le 21-12-2006 à 19:45:51  profilanswer
 

n°1495037
the real m​oins moins
Posté le 21-12-2006 à 20:41:52  profilanswer
 

merde, non: c'est une SimpleDateFormat[]

n°1495363
the real m​oins moins
Posté le 22-12-2006 à 14:58:57  profilanswer
 

un petit screenshot d'une code inspection ...
http://img296.imageshack.us/img296/7626/picture54lw8.png
 
.. bon, c'est deja pas top, mais vu le nombre d'horreur dans ce projet, ça va encore (je précise pour les mauvaises qu'il ne s'agit pas du produit sur lequel je bosse :O)
 
 
 
... sauf que là j'ai lancé l'inspection sur une seule classe [:el g]

n°1495364
nraynaud
lol
Posté le 22-12-2006 à 14:59:30  profilanswer
 

[:pingouino]

n°1495366
Chaos Inte​stinal
Posté le 22-12-2006 à 14:59:44  profilanswer
 

the real moins moins a écrit :

... sauf que là j'ai lancé l'inspection sur une seule classe [:el g]


 
[:ingridc]

n°1495367
the real m​oins moins
Posté le 22-12-2006 à 15:02:32  profilanswer
 

(et c'est 19x un catch (Exception) bien sur [:el g])

n°1495368
the real m​oins moins
Posté le 22-12-2006 à 15:02:59  profilanswer
 

(ha y'en a 21 en fait, les 2 autres ne font que logger)

n°1495369
Chaos Inte​stinal
Posté le 22-12-2006 à 15:05:01  profilanswer
 

the real moins moins a écrit :

(et c'est 19x un catch (Exception) bien sur [:el g])


 
[:ddr555]
 

the real moins moins a écrit :

(ha y'en a 21 en fait, les 2 autres ne font que logger)


 
[:rofl]

n°1495587
gizmo
Posté le 23-12-2006 à 09:44:10  profilanswer
 

the real moins moins a écrit :

(et c'est 19x un catch (Exception) bien sur [:el g])


Te plainds pas. Moi au boulot, on me force a faire ca:

Code :
  1. try {
  2.    ...
  3. } catch (Exception e) {
  4.    throw new NotreException("Une erreur technique s'est produite", e);
  5. }


 
Tout ca pour que le client voit "NotreException" dans sa webapp qui plante plutot que la veritable exception [:kiki]
 
Et évidemment, j'ai essayé de faire comprendre que, outre la débilité du truc, quand le client allait tomber dessus, ca allait pas l'aider ni la hotline (vu que la stacktrace n'est pas affichée), il ont rien voulu entendre [:itm]

n°1495617
masklinn
í dag viðrar vel til loftárása
Posté le 23-12-2006 à 11:31:26  profilanswer
 

gizmo a écrit :

Te plainds pas. Moi au boulot, on me force a faire ca:

Code :
  1. try {
  2.    ...
  3. } catch (Exception e) {
  4.    throw new NotreException("Une erreur technique s'est produite", e);
  5. }


 
Tout ca pour que le client voit "NotreException" dans sa webapp qui plante plutot que la veritable exception [:kiki]
 
Et évidemment, j'ai essayé de faire comprendre que, outre la débilité du truc, quand le client allait tomber dessus, ca allait pas l'aider ni la hotline (vu que la stacktrace n'est pas affichée), il ont rien voulu entendre [:itm]


Ils se sont pas dit que ça pourrait être malin soit de logger l'erreur soit d'afficher un vrai message d'erreur utile plutôt qu'une exception p00rrie [:petrus dei]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
mood
Publicité
Posté le 23-12-2006 à 11:31:26  profilanswer
 

n°1495621
benou
Posté le 23-12-2006 à 12:04:20  profilanswer
 

au pire, tu logues la vrai exception dans un fichier à côté [:petrus75]
(hop, ni vu ni connu ...)

n°1495622
benou
Posté le 23-12-2006 à 12:05:57  profilanswer
 

j'espère au moins que ces catchs sont assez haut dans la pile d'execution, sinon  c'est la un désastre ce truc ...
 
PS : laisse moi deviner : NotreException hérite de RuntimeException ? [:petrus75]

n°1495658
gizmo
Posté le 23-12-2006 à 14:36:54  profilanswer
 

benou a écrit :

j'espère au moins que ces catchs sont assez haut dans la pile d'execution, sinon  c'est la un désastre ce truc ...
 
PS : laisse moi deviner : NotreException hérite de RuntimeException ? [:petrus75]


 
Ca herite d'exception, (ils ont sans doute pas osé mettre le Runtime). Et non, ca ne se fait pas au plus haut dans la pile. Ils demandent de le faire des l'appel a des API tierces. :sweat:

n°1495671
the real m​oins moins
Posté le 23-12-2006 à 16:04:17  profilanswer
 

je vois pas le problème ...

n°1495673
benou
Posté le 23-12-2006 à 16:37:19  profilanswer
 

gizmo a écrit :

Ca herite d'exception, (ils ont sans doute pas osé mettre le Runtime). Et non, ca ne se fait pas au plus haut dans la pile. Ils demandent de le faire des l'appel a des API tierces. :sweat:


tu dois avoir des throws NotreException à chacune de tes méthodes  [:fing fang fung]

Message cité 2 fois
Message édité par benou le 23-12-2006 à 16:37:26
n°1495674
gizmo
Posté le 23-12-2006 à 16:39:25  profilanswer
 

benou a écrit :

tu dois avoir des throws NotreException à chacune de tes méthodes  [:fing fang fung]


 
quasiment, oui.

n°1495675
benou
Posté le 23-12-2006 à 16:41:17  profilanswer
 

the real moins moins a écrit :

je vois pas le problème ...


 

benou a écrit :

tu dois avoir des throws NotreException à chacune de tes méthodes  [:fing fang fung]


 

gizmo a écrit :

quasiment, oui.


 
voilà

n°1495912
the real m​oins moins
Posté le 25-12-2006 à 16:54:50  profilanswer
 

utilisateurs d'intellij, est-ce que chez vous aussi les refactorings et autre code styles *dans des jsp* sont extremement lents? c'est pê depuis la v6 ?

 


... suis en train de nettoyer un vieux projet un peu pourri, et c'est assez pénible pour l'instant :sweat:


Message édité par the real moins moins le 25-12-2006 à 16:55:10
n°1495995
souk
Tourist
Posté le 26-12-2006 à 10:21:01  profilanswer
 

je sais pas, je fais pas de JSP, mais dans les release notes de la 6.0.2 y a ca comme bug fix : "JSP Editing was painfully slow" (ou du moins un truc s'en rapprochant :o ) donc si j'etais toi, j'upgraderais [:dawa]

n°1496135
the real m​oins moins
Posté le 26-12-2006 à 20:48:58  profilanswer
 

mais j'AI upgradé [:sisicaivrai]

n°1497422
charly007
Posté le 30-12-2006 à 22:38:36  profilanswer
 

Salut,
 
J'ai une question qui, je le pense, ne mérite pas un topic, alors je me permets de la poser ici.
C'est, à mon avis, un problème d'ordre conceptuel.
 
Je développe un petit framework de lecture de fichiers plats, ligne par ligne. Chaque ligne est composée de plusieurs champs.
 
Entre autres choses, l'utilisateur du framework devra instancier un objet Field représentant un champ d'un enregistrement.
 
Voici un extrait de la classe Field :
 

Code :
  1. public class Field {
  2.     /**
  3.      * Position de début du champ.
  4.      */
  5.     protected int start;
  6.     /**
  7.      * Position de fin du champ.
  8.      */
  9.     protected int end;
  10.     public Field(int start, int end) {
  11.         this.start = start;
  12.         this.end = end;
  13.     }
  14.     public int getEnd() {
  15.         return end;
  16.     }
  17.     public int getStart() {
  18.         return start;
  19.     }
  20. }


 
Comme vous pouvez le constater, le constructeur accepte la position de début du champ (indice du premier caractère sur la ligne), et la position de fin (indice du dernier caractère sur la ligne).
Tout ceci fonctionne.
 
Maintenant, l'utilisateur préfèrerait peut-être définir ses champs à l'aide de la position de début du champ et de la longueur du champ, au lieu de la position de fin.
Seulement voilà, le constructeur nécessaire aurait la même signature que l'autre, ce qui est impossible.
 
Comme solution j'avais en magasin :
 - Ajouter un paramètre au constructeur permettant d'indiquer le "mode" de construction de l'objet.
 - Créer une sorte de "Façade" possédant des méthodes nommées différemment en fonction du "mode" de construction de l'objet. Ces méthodes seraient appelées par l'utilisateur, au lieu du constructeur de l'objet Field.
 
La seconde solution me plait déjà plus que la première.
Peut-être qu'il s'agit aussi d'une mauvaise conception.
 
J'aimerais avoir votre avis sur ce sujet.
 
Merci.


Message édité par charly007 le 31-12-2006 à 00:11:41
n°1497454
gizmo
Posté le 31-12-2006 à 01:35:05  profilanswer
 

Ni l'une, ni l'autre. Deux factory method avec des noms explicites et un constructeur privé.

n°1497517
charly007
Posté le 31-12-2006 à 12:51:05  profilanswer
 

gizmo a écrit :

Ni l'une, ni l'autre. Deux factory method avec des noms explicites et un constructeur privé.


Quelque chose dans ce style ? :

Code :
  1. public class Field {
  2.     int start;
  3.     int end;
  4.     private Field() {
  5.     }
  6.     private Field(int start, int end) {
  7.         this.start = start;
  8.         this.end = end;
  9.     }
  10.     public static Field createFieldByIndexAndIndex(int start, int end) {
  11.         Field f = new Field(start, end);
  12.         return f;
  13.     }
  14.     public static Field createFieldByIndexAndLength(int start, int length) {
  15.         Field f = new Field(start, start + length);
  16.         return f;
  17.     }
  18. }


Ca m'oblige à déclarer static les méthodes de création.
 
Ou plutôt dans ce style ? :

Code :
  1. public class FieldFactory {
  2.     public FieldFactory() {
  3.     }
  4.    
  5.     public Field createFieldByIndexAndIndex(int start, int end) {
  6.         Field f = new Field(start, end);
  7.         return f;
  8.     }
  9.     public Field createFieldByIndexAndLength(int start, int length) {
  10.         Field f = new Field(start, start + length);
  11.         return f;
  12.     }
  13. }
  14. public class Field {
  15.     int start;
  16.     int end;
  17.     private Field() {
  18.     }
  19.     protected Field(int start, int end) {
  20.         this.start = start;
  21.         this.end = end;
  22.     }
  23. }


Message édité par charly007 le 31-12-2006 à 12:56:06
n°1497533
gizmo
Posté le 31-12-2006 à 13:31:15  profilanswer
 

Plutôt dans le style de la première, en n'oubliant pas de virer le constructeur vide qui n'est jamais utilisé.

n°1497575
charly007
Posté le 31-12-2006 à 17:13:56  profilanswer
 

gizmo a écrit :

Plutôt dans le style de la première, en n'oubliant pas de virer le constructeur vide qui n'est jamais utilisé.


Ok merci, mais la seconde solution me paraît plus propre, je vais réfléchir.
 
Pour ce qui est du constructeur vide, je l'ai rendu inaccessible en le déclarant private. Corrigez-moi si je me trompe.
 
Merci  :jap:


Message édité par charly007 le 31-12-2006 à 17:14:56
n°1497577
nraynaud
lol
Posté le 31-12-2006 à 17:18:50  profilanswer
 

non il est inutile, comme tu as un autre constructeur à côté, le système ne te créera pas de constructeur plublique par défaut, tu peux donc retirer le constructeur privé.

n°1497585
charly007
Posté le 31-12-2006 à 17:58:13  profilanswer
 

Ok, merci.

n°1498423
nraynaud
lol
Posté le 03-01-2007 à 19:36:43  profilanswer
 

Code :
  1. public class OclParser {
  2.     public Expression parseExpression(String expression) throws CompilationException {
  3.         NewOclParser parser = new NewOclParser(new StringReader(expression));
  4.         try {
  5.             return parser.parseExpression();
  6.         } catch (ParseException e) {
  7.             throw new CompilationException(ErrorType.PARSE_ERROR, e.getMessage(), e);
  8.         }
  9.     }
  10.     public Statement parseStatement(String expression) throws CompilationException {
  11.        NewOclParser parser = new NewOclParser(new StringReader(expression));
  12.         try {
  13.             return parser.parseStatement();
  14.         } catch (ParseException e) {
  15.             throw new CompilationException(ErrorType.PARSE_ERROR, e.getMessage(), e);
  16.         }
  17.     }
  18. }
 


factorisons le code commun dans ces 2 méthodes en restant bien typé ...

 


Code :
  1. public class OclParser {
  2.     public Expression parseExpression(String expression) throws CompilationException {
  3.         return parse(expression, PARSE_EXPRESSION_ACTION);
  4.     }
  5.     public Statement parseStatement(String expression) throws CompilationException {
  6.         return parse(expression, PARSE_STATEMENT_ACTION);
  7.     }
  8.     private static <T> T parse(final String expression, final ParseAction<T> action) throws CompilationException {
  9.         NewOclParser parser = new NewOclParser(new StringReader(expression));
  10.         try {
  11.             return action.parse(parser);
  12.         } catch (ParseException e) {
  13.             throw new CompilationException(ErrorType.PARSE_ERROR, e.getMessage(), e);
  14.         }
  15.     }
  16.     public interface ParseAction<T> {
  17.         T parse(NewOclParser parser) throws CompilationException, ParseException;
  18.     }
  19.    
  20.     private static final ParseAction<Statement> PARSE_STATEMENT_ACTION = new ParseAction<Statement>() {
  21.         public Statement parse(final NewOclParser parser) throws CompilationException, ParseException {
  22.             return parser.parseStatement();
  23.         }
  24.     };
  25.     private static final ParseAction<Expression> PARSE_EXPRESSION_ACTION = new ParseAction<Expression>() {
  26.         public Expression parse(final NewOclParser parser) throws CompilationException, ParseException {
  27.             return parser.parseExpression();
  28.         }
  29.     };
  30. }


[:dawak]


Message édité par nraynaud le 03-01-2007 à 19:37:31
n°1498543
the real m​oins moins
Posté le 04-01-2007 à 00:41:05  profilanswer
 

tout ça pour transformer une ParseException en CompilationException, Jean-Louis ?

n°1498576
nraynaud
lol
Posté le 04-01-2007 à 09:20:07  profilanswer
 

y'a les 2, la création du NewParser et le try catch.

n°1498577
TBone
Qui vivum verrum; vroom vroom.
Posté le 04-01-2007 à 09:28:21  profilanswer
 

il y avait vraiment un souci dans le premier code ?
 
car si il n'y a pas de souci, passer de 19 lignes simples à 34 complexes, c'est pas ce que j'appelle de la factorisation... mais l'exercice est joli et très instructif (pour moi en tout cas) :)


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
n°1498670
the real m​oins moins
Posté le 04-01-2007 à 12:40:44  profilanswer
 

euh, d'ailleurs, ca aurait pas été plus economique d'avoir une interface MachinParser .parse() et deux impl, pour expr et stmt?

n°1498702
nraynaud
lol
Posté le 04-01-2007 à 13:09:00  profilanswer
 

et le parse() renverrait un résultat de quel type ?

n°1498704
nraynaud
lol
Posté le 04-01-2007 à 13:10:03  profilanswer
 

TBone a écrit :

il y avait vraiment un souci dans le premier code ?
 
car si il n'y a pas de souci, passer de 19 lignes simples à 34 complexes, c'est pas ce que j'appelle de la factorisation... mais l'exercice est joli et très instructif (pour moi en tout cas) :)


j'ai viré le second pour remettre le premier, c'était un exercice de style.
 
J'ai aussi montré ce post à 2 collègues pour qu'ils se familiarisent un peu plus avec les generics.

n°1498719
the real m​oins moins
Posté le 04-01-2007 à 13:28:24  profilanswer
 

nraynaud a écrit :

et le parse() renverrait un résultat de quel type ?


<T> [:dawak]

n°1498720
nraynaud
lol
Posté le 04-01-2007 à 13:30:27  profilanswer
 

j'ai pas compris, tu parles de génériciser tout OclParser ?
 
J'ai besoin (côté utilisation) d'avoir un objet qui expose les 2 méthodes simplement.

n°1498723
the real m​oins moins
Posté le 04-01-2007 à 13:32:50  profilanswer
 

non mais je sais pas hein, j'ai pas reflechi, j'ai lancé l'idée dans le vide

n°1498835
stiffler
Lâche mon profil putain ! :o
Posté le 04-01-2007 à 14:15:02  profilanswer
 

test: java c'est lent

n°1498836
stiffler
Lâche mon profil putain ! :o
Posté le 04-01-2007 à 14:15:06  profilanswer
 

test: java c'est lent

n°1498837
stiffler
Lâche mon profil putain ! :o
Posté le 04-01-2007 à 14:15:10  profilanswer
 

test: java c'est lent

n°1498857
brisssou
8-/
Posté le 04-01-2007 à 14:20:36  profilanswer
 

vendredi c'est demain :o


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  170  171  172  ..  327  328  329  330  331  332

Aller à :
Ajouter une réponse
 

Sujets relatifs
[java]Ouvrir un fichier dans la fenetre principaleformation pour developpeurs Java
crontab : programme java[JAVA] Aide pour packager un jar
[java] copie de fichier et progressbarinstallation java
[JAVA]Comment insérer un texte dans un fichier audio?[JAVA] Intégrer ANT : API ou ligne de commande ?
[Java][Bouley]Serializable : mauvaise instanciation des champs[JAVA : JNI] Pb a l'execution avec library
Plus de sujets relatifs à : BlaBlaTech@JAVA [ELITE, viendez les boobs]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)