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

 



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

BlaBlaTech@JAVA [ELITE, viendez les boobs]

n°2325022
basketor63
Posté le 29-11-2018 à 16:29:36  profilanswer
 

Reprise du message précédent :
Les problèmes de lisibilité viennent plus de l'écriture fonctionnelle que des streams je trouve.
Par exemple la tentation de vouloir mettre une fonction -> et puis se rendre que merde il faut catcher une checked exception.
Pas le temps de faire plus propre et hop t'as un truc merdique.

mood
Publicité
Posté le 29-11-2018 à 16:29:36  profilanswer
 

n°2325216
poulpeleac​h
Octopus paradisi
Posté le 01-12-2018 à 09:34:06  profilanswer
 

Ah oui exact ça aussi c'est un gros travers.  
En reprenant le cas du nouveau module développé en Java8 par les 2 gars de mon équipe,  
il se trouve qu'ils étaient aussi des grands fans du "no if" .  
Résultat, dans certains cas des bouts de code imbitable pour éviter de mettre un if ou catcher des exceptions,  
et surtout des tas de cas où il aurait fallu logger de toute évidence une erreur si une donnée avait été nulle (plutot que s'en sortir avec un orElse), et où ils ne l'ont pas fait.  


---------------
Et j'en oublie à qui j'en veux vraiment, Je garde le meilleur des sentiments
n°2325227
basketor63
Posté le 01-12-2018 à 13:23:31  profilanswer
 

Je découvre les Spliterators.

 

Depuis 1 an que je peux utiliser les Streams, je trouvais qu'il leur manquait un truc.
Et en fait c'était ça. :D
Les streams paraissaient alors surtout être un sorte de changement de syntaxe qui parfois complique pour rien et ne remplace pas avantageusement une boucle for.

 

A un moment j'avais même voulu implémenter l'interface Stream pour me rendre compte que c'était beaucoup trop compliqué, mais en fait Spliterator est justement là pour ça :D

 

On peut par exemple créer un Stream<String> à partir d'un Scanner, qui lui n'implémente pas Stream.

 

Je me demande pourquoi ils n'ont pas implémenté Stream dans Scanner directement par exemple par contre, mais il y a une solution avec Spliterator.


Message édité par basketor63 le 01-12-2018 à 13:32:25
n°2327660
BGentle
Posté le 15-01-2019 à 13:05:51  profilanswer
 

:hello:  
 
Je vois des annonces avec ce type de "pré-requis": ability to write tested, production grade Java 8 code
 
Qu'est-ce qu'ils entendent par "production grade" ? Conforme aux "normes" Sonar ?
 [:gratgrat]  

n°2327669
LeRiton
skishop-lelex.com
Posté le 15-01-2019 à 14:46:12  profilanswer
 

BGentle a écrit :

:hello:  
 
Je vois des annonces avec ce type de "pré-requis": ability to write tested, production grade Java 8 code
 
Qu'est-ce qu'ils entendent par "production grade" ? Conforme aux "normes" Sonar ?
 [:gratgrat]  


 
Si t'es dans une COGIP c'est Sonar ou de manière générale que ça plaise au +1, si t'as un peu plus de bol c'est Craft ou Clean Code.
Dans les deux cas c'est rapidement subjectif, au minimum débattable.


---------------
SkiShop Lélex, location de ski, snowboard, snowscoot & VTT sur le domaine Mijoux / Lélex (Jura)
n°2327700
poulpeleac​h
Octopus paradisi
Posté le 15-01-2019 à 20:46:17  profilanswer
 

Oui puis alors Sonar sur Java8, ca mesure plus grand chose... cf. la discussion un peu avant sur le topic.
Peut etre que justement l'annonce veut que tu sois conscient de ça, et que les TUs fassent une vraie couverture fonctionnelle et pas seulement une couverture en vert sur Sonar.


Message édité par poulpeleach le 15-01-2019 à 20:47:21

---------------
Et j'en oublie à qui j'en veux vraiment, Je garde le meilleur des sentiments
n°2327823
basketor63
Posté le 18-01-2019 à 01:12:48  profilanswer
 

BGentle a écrit :

:hello:  
 
Je vois des annonces avec ce type de "pré-requis": ability to write tested, production grade Java 8 code
 
Qu'est-ce qu'ils entendent par "production grade" ? Conforme aux "normes" Sonar ?
 [:gratgrat]  


 
Ça veut dire du code qui est mis en production.
Donc n'importe quel code en fait, du meilleur au plus merdique :lol:

n°2330775
LeRiton
skishop-lelex.com
Posté le 22-03-2019 à 20:05:36  profilanswer
 

Utilisateurs de Spring Boot, vous connaissez un scaffolder pour une API REST ? Un truc un peu à la Rails.
J'ai rien vu de probant / maintenu, je pense vraiment qu'il y a de quoi faire un truc sympa (bonus points si ça génère la couche DTO plutôt que du mapping d'entités, et que ça génère aussi les migrations Liquibase).


---------------
SkiShop Lélex, location de ski, snowboard, snowscoot & VTT sur le domaine Mijoux / Lélex (Jura)
n°2331133
LeRiton
skishop-lelex.com
Posté le 01-04-2019 à 16:27:05  profilanswer
 

Pas trop d'animation ici, je demande quand même au cas où : comment vous gérez la partie DTO, particulièrement les conversions avec les objets du métier ?
Selon les projets, on fait à la mano ou avec ModelMapper, mais je ne trouve rien que me satisfasse pleinement, en particulier sur les opérations en écriture (conversion DTO => métier ou modèle de persistance).
 
Discussion ouverte [:romf]


---------------
SkiShop Lélex, location de ski, snowboard, snowscoot & VTT sur le domaine Mijoux / Lélex (Jura)
n°2331135
fiscalisat​or
choose deep state TM
Posté le 01-04-2019 à 16:29:57  profilanswer
 

Je fais du dozer. Tu n'aimes pas dozer ? c'est très bien dozer.
 
Ensuite j'ai pas mal de DTO qui n'en sont pas, en fait, des beans juste pour certains affichages, j'utilise jooq par exemple, et j'injecte directement ces beans là avec jooq, ces beans sont forcément "read only" et non couplé avec la couche persistance.


---------------
Présidence Fillon : générique de début
mood
Publicité
Posté le 01-04-2019 à 16:29:57  profilanswer
 

n°2331157
basketor63
Posté le 01-04-2019 à 21:26:42  profilanswer
 

C'est à fuire Dozer, je te conseille d'en sortir le plus vite possible.

 

Le problème c'est que Dozer ne permet pas de voir à la compilation si ça va mapper ou pas, donc tu te tapes des runtime exception hyper chiantes à débugger.

 

Il vaut mieux préfer MapStruct par exemple, qui va fonctionner un peu comme Lombok et faire apparaitre les problèmes de mapping à la compilation.

 

Ca vaut même mieux de tout coder à la main plutot qu'utiliser Dozer ...


Message édité par basketor63 le 01-04-2019 à 21:27:16
n°2331207
LeRiton
skishop-lelex.com
Posté le 02-04-2019 à 16:14:47  profilanswer
 

fiscalisator a écrit :

Je fais du dozer. Tu n'aimes pas dozer ? c'est très bien dozer.


Non je connaissais pas.
J'ai regardé vite fait (ça mérite peut-être plus), j'ai vu que les mappings customs étaient réalisés via XML, je me suis arrêté là. J'imagine que ça explique en partie la remarque de basketor, c'est du déclaratif donc tu es découplé de la codebase.
 
Pour ce qui est de Selma / MapStruct / ModelMapper, peu de différences pour ce que j'en fais. Après réflexion, je pense que mes griefs sont plutôt architecturaux (la manière dont on utilise les DTO chez nous) plutôt que contre une librairie donnée.
Le sens entité => DTO est toujours fluide, l'inverse c'est une usine à gaz la plupart du temps, surtout pour des DTO qui mappent un petit nombre de champ d'une entité, et surtout dans le cas d'un update. Et les relations aussi, c'est moche.


---------------
SkiShop Lélex, location de ski, snowboard, snowscoot & VTT sur le domaine Mijoux / Lélex (Jura)
n°2331211
fiscalisat​or
choose deep state TM
Posté le 02-04-2019 à 16:18:34  profilanswer
 

Dozer vit bien sans le XML, d'ailleurs pour ma part j'ai peu de config xml
par contre il est vrai que je fais peu de dozer en dehors des sentiers battus, dans le sens où c'est quasimment que DTO <-> Persistance Bean qui partagent une même interface.  
Donc dozer me simplifie la vie justement le jour où j'ai un problème de mapping.  
 
Il est vrai que je génère à la mano ces petits beans extraits d'autres le plus souvent depuis la base ou depuis une queue de message ... là je fais tout simplement pas de mapping


Message édité par fiscalisator le 02-04-2019 à 16:18:50

---------------
Présidence Fillon : générique de début
n°2331511
basketor63
Posté le 05-04-2019 à 21:12:08  profilanswer
 

LeRiton a écrit :

Non je connaissais pas.
J'ai regardé vite fait (ça mérite peut-être plus), j'ai vu que les mappings customs étaient réalisés via XML, je me suis arrêté là. J'imagine que ça explique en partie la remarque de basketor, c'est du déclaratif donc tu es découplé de la codebase.


 
Sur le projet il était utilisé sans xml, donc du mapping automatique.
 
Le problème c'est la navigabilité dans le code, et la maintenance.
Car tu ne sais pas quels objets sont mappés avec lesquels, quels objets sont dépendants les uns des autres.
Si tu fais un refactor sur un champ en le renommant, ça n'est pas propagé au reste du code, et tu créés de la régression, donc tu perds une bonne fonctionnalité des IDEs.
 

n°2331895
chris282
id steam/psn : chris282_fr
Posté le 14-04-2019 à 23:29:12  profilanswer
 

Hello
j'aimerai partager avec vous mon projet (100% fonctionnel) de sound spectrum en java https://github.com/chris282/Java-SoundSpectrum

 

Le même projet qui démarre, en Javascript/Angular/Three.js (contribution needed) https://github.com/chris282/JS-SoundSpectrum

 

démo : https://www.youtube.com/watch?v=VxYBAFk8pIk


Message édité par chris282 le 14-04-2019 à 23:29:39
n°2351841
bn_a_lunet​tes
Posté le 16-04-2020 à 09:40:32  profilanswer
 

hello ici  :hello:  
après 12 ans de dev (entre autres) sur graphtalk (une implémentation objet de prolog pour le domaine assurance), j'ai négocié en interne pour une réorientation technique.
j'ai subi une formation spring cet été, et je fais du java (et je commence angular en parallèle) depuis.
la majorité des projets de la boîte sont en java 8, on profite du confinement pour faire une montée de version java (c'est le lead dev qui s'en charge) et pas mal de refactoring et de mise à niveau de la couverture des TU (c'est moi qui m'occupe de ça) en me basant sur les reco sonar ...
 
j'ai tendance à m'arracher les cheveux sur certains dev fait par un collègue qui malgré ces 10 ans d'xp n'a pas compris l'intérêt des streams, et pour qui une complexité syntaxique est un détail tant que ça fonctionne ...
 
je n'avais pas retouché à java et son écosystème depuis mon stage de fin d'études, spring est vraiment énorme, perso, moi je trouve ... je découvre tous les jours des trucs vraiment pratiques au quotidien, pour le moment, c'est cool :D
 
bref, je vais ptet déchanter d'ici un an ou deux, mais pour le moment, j'aime bien


---------------
quand le pouce passe, tout passe (Drax le 19/05/2012)
n°2351851
basketor63
Posté le 16-04-2020 à 11:16:51  profilanswer
 

bn_a_lunettes a écrit :

j'ai tendance à m'arracher les cheveux sur certains dev fait par un collègue qui malgré ces 10 ans d'xp n'a pas compris l'intérêt des streams, et pour qui une complexité syntaxique est un détail tant que ça fonctionne ...

 

C'est toujours très compliqué de travailler avec des gens qui ont la tête dure.

 

Tu peux essayer de pousser pour que l'équipe mette en place des outils comme sonar, jenkins, git, les pull requests, le code review, les meetings techniques.

 

Message cité 1 fois
Message édité par basketor63 le 16-04-2020 à 11:18:54
n°2351872
bn_a_lunet​tes
Posté le 16-04-2020 à 14:07:10  profilanswer
 

basketor63 a écrit :


 
C'est toujours très compliqué de travailler avec des gens qui ont la tête dure.
 
Tu peux essayer de pousser pour que l'équipe mette en place des outils comme sonar, jenkins, git, les pull requests, le code review, les meetings techniques.
 


ces outils sont déjà en place, c'est pour ça que je fais du refactoring en ce moment :jap:
on est 4 dont le responsable d'équipe pour produire tout ce que nous demande les marketeux, et pour la veille si possible.  
Et donc si fonctionnement, c'est bon, ça monte en prod ... on profite d'avoir de l'avance qu'on a cumulé par rapport aux autres équipes qui n'arrivent pas à s'organiser en télétravail pour faire ce qui est repoussé depuis des années ...


---------------
quand le pouce passe, tout passe (Drax le 19/05/2012)
n°2351883
basketor63
Posté le 16-04-2020 à 16:24:01  profilanswer
 

Le code qui "marche" on le paye toujours très cher derrière.
 
Que ça soit pas audible pour un marketeux c'est  compréhensible mais ils n'ont pas a le savoir a la limite et ça peut se régler en sous marin.
Mais qu'un dev le conteste, ça c'est la pire race d'informaticiens :o

n°2353455
ynorsa
Posté le 08-05-2020 à 09:20:36  profilanswer
 

bn_a_lunettes a écrit :


j'ai tendance à m'arracher les cheveux sur certains dev fait par un collègue qui malgré ces 10 ans d'xp n'a pas compris l'intérêt des streams, et pour qui une complexité syntaxique est un détail tant que ça fonctionne ...


 
Euh, et par "complexité syntaxique", tu veux dire une boucle for ?  :heink:  
Moi c'est ceux qui pensent que l'utilisation des "facilités syntaxiques" est indispensable qui me défrisent  :ange:

n°2353813
poulpeleac​h
Octopus paradisi
Posté le 15-05-2020 à 11:37:49  profilanswer
 

bn_a_lunettes a écrit :

hello ici  :hello:  
après 12 ans de dev (entre autres) sur graphtalk (une implémentation objet de prolog pour le domaine assurance), j'ai négocié en interne pour une réorientation technique.
j'ai subi une formation spring cet été, et je fais du java (et je commence angular en parallèle) depuis.
la majorité des projets de la boîte sont en java 8, on profite du confinement pour faire une montée de version java (c'est le lead dev qui s'en charge) et pas mal de refactoring et de mise à niveau de la couverture des TU (c'est moi qui m'occupe de ça) en me basant sur les reco sonar ...
 
j'ai tendance à m'arracher les cheveux sur certains dev fait par un collègue qui malgré ces 10 ans d'xp n'a pas compris l'intérêt des streams, et pour qui une complexité syntaxique est un détail tant que ça fonctionne ...
 
je n'avais pas retouché à java et son écosystème depuis mon stage de fin d'études, spring est vraiment énorme, perso, moi je trouve ... je découvre tous les jours des trucs vraiment pratiques au quotidien, pour le moment, c'est cool :D
 
bref, je vais ptet déchanter d'ici un an ou deux, mais pour le moment, j'aime bien


 
Hello par contre si le collegue se met au stream, faire extremement attention en relecture, car Sonar sur les stream laisse quasiment tout passer et ne voit pas la non couverture.  


---------------
Et j'en oublie à qui j'en veux vraiment, Je garde le meilleur des sentiments
n°2354130
gelatine_v​elue
Posté le 21-05-2020 à 09:57:29  profilanswer
 

ynorsa a écrit :


 
Euh, et par "complexité syntaxique", tu veux dire une boucle for ?  :heink:  
Moi c'est ceux qui pensent que l'utilisation des "facilités syntaxiques" est indispensable qui me défrisent  :ange:


 
Un forEach stream n'est pas equivalent a une boucle for, car le scope auquel le code a acces dans le stream n'est pas le meme, et il n'y a pas plein de points de sorties potentiels, entre autres.


---------------
Vends des trucs sur Bdx
n°2354198
basketor63
Posté le 22-05-2020 à 11:23:07  profilanswer
 

Personne ne dit le contraire.

n°2356286
poulpeleac​h
Octopus paradisi
Posté le 17-06-2020 à 15:21:49  profilanswer
 

J'ai un bug, je comprends pas, je dois louper un truc?  

 

J'ai un objet de données  Data ,  qui a en attributs notamment plusieurs List d'autres objets :

 
Citation :

 

public class Data  {

 

 private String id;

 

 private List<Complement> complements;
  private List<Offre> offres;
 
  public List<Complement> getComplements() {
    if (complements == null) {
      complements = new ArrayList<>();
    }
    return complements;
  }

 

   public void setComplements(List<Complement> complements) {
    this.complements = complements;
  }

 

 public List<Offre> getOffres() {
    if (offres == null) {
      offres = new ArrayList<>();
    }
    return offres;
  }

 

 public void setOffres(List<Offre> offres) {
    this.offres = offres;
  }
 
 
}

 


 

Dans mon exemple, les classes Offre et Complement n'ont que des String en attribut.

 

J'ai un traitement où dans des cas d'erreurs, je stocke sous forme de fichier cet objet à l'aider XMLEncoder :

 
Citation :


  private void writeDataToFile(Data data, File fichier) throws IOException {
    if (fichier.createNewFile()) {
      FileOutputStream outputStream = new FileOutputStream(fichier);
      XMLEncoder encoder = new XMLEncoder(outputStream);
      encoder.writeObject(data);
      encoder.close();
    } else {
      throw new IOException("Unable to create new file " + fichier.getAbsolutePath());
    }
  }

 


Et là surprise, dans le fichier obtenu, ma liste d'offres est là mais pas la liste de complements.

 

Bon, maintenant je vous mets la construction de l'objet :

 
Citation :


Data data = new Data();
List<Offre> offres = computeOffres();
data.setOffres(offres );
List<Complement> complements= computeComplement();
data.getComplements.addAll(complements);

 

Les 2 méthodes computeOffres() et computeComplement() renvoient une ArrayList.
On voit bien que la manière dont les offres et complements sont introduits dans l'objet data sont différentes, mais au final, ca devrait ne faire aucune différence, et si je fais ensuite un getOffres() ou getComplements() , ca renvoie bien ce que j'ai prévu .  

 

Si je change en  :

Citation :


Data data = new Data();
List<Offre> offres = computeOffres();
data.setOffres(offres );
List<Complement> complements= computeComplement();
data.setComplements(complements);

 

Magie, mes complements sont bien dans le fichier obtenu!

 

Si vous avez une explication?


Message édité par poulpeleach le 17-06-2020 à 15:23:50

---------------
Et j'en oublie à qui j'en veux vraiment, Je garde le meilleur des sentiments
n°2356296
poulpeleac​h
Octopus paradisi
Posté le 17-06-2020 à 16:00:24  profilanswer
 

Bon et évidemment, j'ai trouvé peu après : ce qui a vraiment résolu le bug est l'ajout du setter sur complements, qui n y était pas avant que je corrige.
Si j ai ce setter, ca marche très bien meme avec la première version.

 

On ne peut pas dire que ca saute aux yeux en lisant la doc de XMLEncoder, même si on peut le comprendre ( XMLEncoder s'efforce de vérifier que le fichier obtenu donnera un objet identique à l initial en utilisant XMLDecoder, donc si y a pas de setter ... )


Message édité par poulpeleach le 17-06-2020 à 16:03:48

---------------
Et j'en oublie à qui j'en veux vraiment, Je garde le meilleur des sentiments
n°2358962
_tchip_
profil d'aile
Posté le 30-07-2020 à 23:14:37  profilanswer
 

petite question pour JSP.

 

JSTL permet d'écrire des fonctions dans un langage pseudo HTML pour pas avoir à mélanger JAVA/HTML

 

Est ce qu'il existe une solution inverse qui consisterai écrire en full java pour pas avoir à écrire en HTML ?

 

En fait mon prof a développé une librairie qui va dans ce sens, on instancie des class DIV, P, TABLE, etc avec des attributs qui vont correspondre aux différentes propriétés.

 

Mais comme il me parait parfois bancal dans ses solutions je me demande si d'autres n'y ont pas déjà pensé avant et mieux :o


Message édité par _tchip_ le 30-07-2020 à 23:15:24
n°2358971
fiscalisat​or
choose deep state TM
Posté le 31-07-2020 à 09:17:38  profilanswer
 

Vaadin (ça peut s'insérer dans un portlet donc à voir ce que ton archi actuelle peut supporter)


Message édité par fiscalisator le 31-07-2020 à 09:18:26

---------------
Présidence Fillon : générique de début
n°2358972
_tchip_
profil d'aile
Posté le 31-07-2020 à 09:22:13  profilanswer
 

parfait

n°2359118
basketor63
Posté le 01-08-2020 à 13:10:36  profilanswer
 

Tout dépend ce qui est demandé ou pas, et ce que tu veux ou pas.

 

Vaadin permet de développer des gui web avec une syntaxe java et concepts similaires à au client lourd en Swing.

 

Les technologies dominantes front actuelle c'est Angular JS, avec un backend Java.

 


Message édité par basketor63 le 01-08-2020 à 13:15:49
n°2359119
EowynCarte​r
Posté le 01-08-2020 à 13:16:37  profilanswer
 

Le gros problème c'est que maîtrise pas le code html généré, donc si tu veux faire un truc un peut précis.

n°2359120
basketor63
Posté le 01-08-2020 à 13:28:07  profilanswer
 

De plus Vaadin c'est que pour Java, alors qu'avec Angular tu fais un back dans la techno que tu veux.

 

Aussi tu ne peux pas prévisualiser le rendu du html dans un IDE, et faire des ajustements rapides.
Quelqu'un qui parcours les fichiers html comprendra rapidement à quoi ça correspond.
En Vaadin ça sera comme parcourir du code Swing.
De plus les applis Swing écrites correctement c'est rare, il y a souvent des erreurs dans la façon de concevoir les gui avec une très mauvaise compréhension du MVC, et c'est pareil en Vaadin.

 

Autre problème avec Vaadin c'est le manque de modularité.
Ca sera bien plus compliqué voir impossible d'intégrer une table avec des tris spécifiques.
On dépend alors de plugin de la communauté vaadin, qui sera bien moins large que Angular.


Message édité par basketor63 le 01-08-2020 à 13:33:14
n°2359160
_tchip_
profil d'aile
Posté le 02-08-2020 à 01:43:36  profilanswer
 

ok merci pur ces précisions.

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  327  328  329  330  331  332
Page Suivante

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-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR