Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 3 sur 5 PremièrePremière 12345 DernièreDernière
Affichage des résultats 61 à 90 sur 136
  1. #61
    Il me semble que les reconversions en SSII sont souvent financées via des contrats de professionnalisation. En tout cas, c'était le cas dans celle où j'étais il y a quelques années. Du coup, à voir quelles sont les conditions de ce contrat, pour savoir si tu peux directement rechercher ça. En tout cas, ça marchait très très bien pour les collègues qui en sortaient, même si au début ils ont du se battre pour faire autre chose que du SAP ou de la maintenance bas de gamme. Et une fois que tu as pris de l'XP et que le contrat pro est terminé, il faut changer pour obtenir un salaire décent.
    Citation Envoyé par Arteis Voir le message
    scie pieds sous terre

  2. #62
    J'ai fait mon entrée dans le monde de l'informatique par une formation de reconversion, dans mon cas je n'ai eu qu'une mission de dev hyper casse gueule et la mission suivante a été une mission de Business Analyst. J'ai depuis démissionné, je bosse toujours dans l'info mais dans une autre boite...

    Bref, ce n'est pas parce que tu rentres par une formation de reconversion que c'est garantie que tu seras dev... J'ai du bien bataillé pour avoir ma mission de dev et elle m'a dégouté du dev pour une série d'année.

    Désolé je suis pas le modèle idéal, mon message est plus pour te prévenir de ne pas trop "idéaliser" sur les SSII... On parle de marchand de viande... :x
    Citation Envoyé par Kazemaho Voir le message
    Ma cherie arrete pas de raler qu'elle en veut une plus grosse, plus moderne, plus plus plus et moi j'y comprends rien.

  3. #63
    Merci pour vos réponses !
    Je vais me poser un peu pour réfléchir à tout ça, il s'agirait de ne pas tout péter sur un coup de tête...
    Surtout que politiquement/socialement, les SSII c'est le genre de structure que j'exècre, donc autre gros travail sur moi-même que de subir ce modèle quelque temps.

  4. #64
    Bonjour à tous,

    Je me permet aussi de me greffer à ce topic pour parler de mon cas.
    Alors même si c'est pas à proprement parler une reconversion car j'ai les compétences de base, j'aimerais développer plus en avant mes compétences en programmation.
    Plus exactement, je suis ingénieur-docteur en traitement du signal et de l'image et j'ai fait beaucoup de Matlab et pas assez de C/C++. Et jamais de Python.

    C'est pourtant sur ces deux derniers langages que je veux m'autoformer. Car oui j'en suis tout à fait capable. Et après conseils demandé à un professionnel, faire un projet en mode "dev logiciel" (même avec une IHM) ça peut intéresser un recruteur.

    Mais quoi comme projet ? Là comme ça j'ai aucune idée.

    Du coup je me tourne vers vous : peut-être faire un projet proposé sur un site consacré à ça, acheter un magazine en rapport qui propose de réaliser tel ou tel truc...Evidemment, l'idéal serait de faire un truc plus difficile qu'un "Hello World" mais pas non plus un projet à 1 M€. Si même j'arrive à faire du traitement d'image ce serait super.
    Citation Envoyé par Julizn
    Sinon, moi j'en ai jamais utilisé. Le gingembre frais ça s'achète en petite quantité. Y'a des glucides partout, dans les systèmes communistes.

  5. #65
    Compiler suffisamment de data dans des péta-octets de données d'images pour pouvoir réaliser une représentation d'un trou noir

  6. #66
    Ca a l'air facile dis comme ça !

    PS : je viens de faire un Hello World en Python sous Ubuntu. Vous n'avez qu'à bien vous tenir maintenant §§
    Dernière modification par Aghora ; 13/04/2019 à 18h00.
    Citation Envoyé par Julizn
    Sinon, moi j'en ai jamais utilisé. Le gingembre frais ça s'achète en petite quantité. Y'a des glucides partout, dans les systèmes communistes.

  7. #67
    Hello les Canards,

    Je me rends compte que j'ai pas mis ce topic à jour depuis quelques temps !

    J'ai donc terminé ma formation de 5 mois à la Wild Code School, le bilan est mitigé et je pourrais développer si quelqu'un a besoin de plus d'info.
    En résumé la première partie (intégration, JS/Angular7) s'est plutôt bien passée mais la seconde partie (Java/Spring) a été catastrophique.

    Au niveau de mon stage j'ai finis par trouver dans une boite qui fait du marketing. (comm directe, solutions data etc.)
    Mon stage sera du 19 août au 29 novembre et voici le programme :

    -Migration d'une API d'interaction avec un prestataire :
    Création d'une nouvelle API
    Evolution de la librairie actuelle pour appeler la nouvelle API

    -Développement d'une API communiquant avec ERP + interface web de monitoring

    Analyse d'un code existant
    Analyse documentation technique API
    Documentation associée (Swagger) + guide de migration

    Langages & Framework : JAVA et Spring
    Je ne sais pas trop à quoi m'attendre et j'avoue que j'appréhende un peu...
    Battletag : Sariyah#2734 / ID PS5 : Oo_Sariyah_oO



  8. #68

  9. #69
    Je suis encore un jeunot dans le milieu mais les API + Java / Spring c'est du bon, tu devrais pas avoir de soucis pour trouver du taff derrière (si ça te plaît bien-sûr).


  10. #70
    Au niveau de l'ERP je ne sais pas du tout, je vais poser la question.
    Oui j'ai vu que c'était pas mal demandé comme compétences mais j'ai surtout peur de ne pas savoir gérer les tâches confiées pendant mon stage. Je me rends absolument pas compte ni de mes capacités, ni de leur niveau d'attente du coup ça me stress un peu.
    Battletag : Sariyah#2734 / ID PS5 : Oo_Sariyah_oO



  11. #71
    T'as un stage de 3 mois après une formation accélérée, ils s'attendent probablement pas à récupérer une seule ligne de code utilisable. Ne t'inquiètes pas.
    ༼ つ ◕_◕ ༽つ GIFF GAMBLER ༼ つ ◕_◕ ༽つ

  12. #72
    Bon, Shot est un peu direct, mais sur le fond il a pas tort si j'en crois ma propre expérience.

    Le dernier stagiaire que j'ai accompagné, en fin de 1ère année d'ingénieur en info, j'avais pour principal objectif de lui apprendre quelques concepts du métier au fil de ses 3 mois, surtout de bonnes habitudes de conception et de qualité, et si on récupérait du taf valable à la fin, c'était du bonus, vu que je pouvais faire son programme de stage en 2 semaines.
    Au final, son travail tourne depuis plus d'un an, et pour le maintenir et le faire évoluer depuis, il a fait du bon boulot. Donc son stage a été un succès total pour nous, mais ce n'était clairement pas attendu au départ.

    Si t'es en galère (et ça arrivera), et que tu n'as pas un collègue avec toi à questionner pour avancer, n'oublie pas qu'aucun développeur moderne ne peux travailler sans internet, Google et StackOverflow.
    Surtout sur ces technologies, qui sont plus que "largement répandues" mais "le standard d'un des langages les plus répandus dans l'informatique de gestion", tu trouveras des ressources à foison en cherchant ce que tu veux faire ou ton erreur sur Google.

    Ce que je conseille à mes stagiaires, c'est de se fixer une durée maximum où ils cherchent (pour de vrai) avant de demander la solution d'un problème. Si au bout de ce temps ils n'ont pas avancé, ils me demandent. Comme ça, ça fait un compromis entre le fait de chercher par eux même, ce qui selon moi est important pour l'apprentissage, et le fait qu'ils ne restent pas à déprimer sur le même truc trop longtemps.
    En gros, pour une bricole (configuration d'environnement, petite erreur), je conseille 1 heure, et pour un problème de développement ou de conception, une demi-journée.

    Et surtout, je te souhaite d'avoir un tuteur de stage et des collègues bienveillants et disponibles, au moins un peu chaque jour, pour t'aider. Ce sont eux qui vont t'apprendre la manière de bosser autant que ce que tu pourras faire par toi-même. Et bon courage !
    Citation Envoyé par Arteis Voir le message
    scie pieds sous terre

  13. #73
    Effectivement je trouve logique qu'on attende pas d'un stagiaire issu d'une formation courte de déplacer des montagnes.

    Si je ne me trompe pas, ils n'ont encore jamais eu de stagiaire et l'équipe de dev est très petite. 1 personne qui a une grosse expérience et en tant que dev et au sein de l'entreprise (20 ans+) qui sera mon tuteur et une autre personne qui fait du dev à plus ou moins 50% de son temps selon les périodes.
    Je mise un peu tout sur mon tuteur du coup et je crois que c'est surtout ça que j'appréhende et le fait que Java/Spring a été la partie vraiment bâclée par la Wild Code School.

    Malgré l'appréhension j'ai quand même hâte de commencer !

    Merci pour les conseils.
    Battletag : Sariyah#2734 / ID PS5 : Oo_Sariyah_oO



  14. #74
    Ne t'en fais pas pour Java/Spring. En plus du fait que Spring soit aujourd'hui un vaste écosystème, selon la version de Spring, commet ils l'utilisent (et surtout ce qu'ils ont compris), les bonnes pratiques, et ce que tu vas faire, il y a de grandes chances que ça ne corresponde pas à ta formation, ni à aucune autre. Aucun de mes stagiaires (bac+2 à dernière année de bac+5) n'était ne serait-ce que vaguement compétent dessus. Leurs cours à l'école ne vaut pas grand chose à mes yeux (d'un autre côté l'école n'est pas là pour enseigner des technos, mais plutôt apprendre à apprendre) -> tous ont réellement appris la techno au boulot. Une fois, un stagiaire d'un collègue était un peu doué/autonome sur Spring, mais il bossait sur des projets persos depuis quelques temps. Mais il n'a fait que gagner 1~2 semaines sur les autres stagiaires, c'tout.
    Le principal est que tu ait été sensibilité à l’algorithmique et que tu saches à peu près lire du Java. Le reste viendra en lisant le code existant, en écoutant les éventuels conseils de tes collègues, et en lisant les docs et tutos en ligne. Et puis n'hésite pas à poser des questions ici même, je pense que nous somme plusieurs à faire du Spring depuis des années, nous saurons donc t'aiguiller vers des solutions sympas.

    En tout cas, je plussoie les coincoins qui disent que Java/Spring est un combo gagnant (mais faut rester curieux, car il a aussi de sacrés défauts). Plein de boites de toute taille se basent sur ça pour leurs applis. C'est devenu un quasi standard de-facto.
    Je pense que ce qui ressortira de ton stage, ce sera de savoir si tu aimes le backend (type Java/Spring), le frontend (Angular & co), ou soyons fous, les deux. Je dis "soyons fous" car il y a une petite histoire derrière ça, et tu ne devras avoir aucun complexe si tu te dis que tu préfères uniquement l'un des deux :
    ->
    Il y a une dizaine d'année, Angular, Rect & co n'existaient pas. Il y avait du HTML et CSS avec du JS de base, un peu de JQuery, puis voilà. Ce n'était encore qu'une stack simpliste et accessible même aux devs backend. D'ailleurs ça avait un nom aujourd'hui quasiment disparu : "intégrateur web". Le backend, lui, était déjà un métier, de par sa maturité et la richesse de son écosystème.
    Puis sont venus Angular, React, EmberJS, des trucs comme Node, NPM, Grunt, Bower, Webpack, Typescript (tu le sens venir le mal de crane ? ^^), etc. Ces technos, utilisées sur le frontend, la richesse de cet écosystème et sa complexité tout récente ont créé un métier à part : dev frontend.
    Backend et frontend sont deux univers très riches et complexes, et franchement, il faut du temps pour en maîtriser un.
    C'est alors que les marketeux ont inventé un mouton à cinq pattes : le "dev fullstack" (attention, ça peut avoir plusieurs significations). Ici par fullstack on parle d'un gus qui maîtrise autant le frontend que le backend. C'est un mouton à cinq pâtes car très peu de personnes sont capables de cette prouesse, sinon surestiment leur niveau. Un jour un collègue a dit un truc que j'ai aimé : "un dev back qui fait du front, ça se voit" (l'inverse est biensûr vrai).
    Donc voilà, tout ça pour dire que si tu aimes Java/Sping à l'issue de ton stage, nickel. Si ça se passe comme en formation ou que tu trouves que c'est un excellent vomitif, ce n'est pas grave. Dans tous les cas n'hésites pas à être curieux et creuser tant le backend que le frontend, tu trouveras ta voie sans soucis.
    Dernière modification par gros_bidule ; 12/08/2019 à 18h17.

  15. #75
    Salut,

    J'ai volontairement laissé passer une dizaine de jours de stage avant de faire un premier retour.

    Mon intégration s'est bien passée, les gens sont sympa, je n'ai pas de pression à proprement parler puisque le projet sur lequel je suis n'a pas vraiment de deadline, il était en stand-by depuis un bon moment. Je suis seul à travailler dessus par contre. Mon tuteur est compréhensif mais aussi beaucoup pris et je suis du coup livré à moi même pour le moment. J'ai passé ces 10 jours à lire des tas de choses, à regarder des tutos, à noter des trucs. Ça commence à me faire peur car je me rends compte que malgré la note de cadrage, j'ai vraiment du mal à comprendre à quoi devra ressembler mon projet.

    Voici la note :
    Basculer tous nos appels webservices vers NP6 qui sont en place de la V7 vers la V8.
    Les WS de la V7 sont en mode soap, ceux de la V8 en mode rest. Les nouveaux Web services ont été revu complètement et on ne retrouve donc pas les méthodes équivalentes.

    Pour utiliser les webservices l’authentification se fait via une apikey qui n’est pas forcement activé pour l’ensemble de nos comptes.

    L’idée est de faire un webservice intermédiaire qui recevra les appels de nos applis équivalentes avec le moins de modifications possibles et d’appeler les nouveaux webservices V8.

    Les ressources :
    Documentation des Web Services V8 : http://np6.github.io/slate/#introductions
    Lien des Webservces V7 : http://ws.mperf.com/wsmpremote/wsmpremote.asmx
    D'abord j'ai demandé une clé pour l'authentification.
    Ensuite, j'ai initialisé un projet avec Spring Initializr, mis les dépendances okHttp3 etc et j'ai testé un appel pour voir. Dans une class main, j'ai testé ça :


    Evidemment je remplace le "YOUR KEY" par ma clé pour m'authentifier et j'ai ensuite filtré en mettant dans l'url /actions/ID.

    A la fin j'ai ajouté un
    System.out.println(response.body().string()); (juste pour voir si je ressors)
    et quand je run je ressors bien en chaîne de caractères avec les infos qui correspondent bien à l'iD de l'action choisie.

    Voilà ça "marche"... et pour le reste je suis complètement largué et ça m'inquiète vraiment. J'ai regardé et j'imagine que je vais devoir créer des packages controller, entities, services ? Je peine à comprendre comment tout ça va s'articuler. En fait, je n'ai aucune vision globale du projet et je me sens clairement pas à la hauteur. Je n'ai rien sur quoi m'appuyer, pas de parallèle à faire avec un projet déjà existant par exemple.

    Ça vous inspire quelque chose cette création de Web Service ? Dans quelle direction je peux creuser ?
    Dernière modification par Sariyah ; 28/08/2019 à 22h01.
    Battletag : Sariyah#2734 / ID PS5 : Oo_Sariyah_oO



  16. #76
    Citation Envoyé par Sariyah Voir le message
    Ça vous inspire quelque chose cette création de Web Service ? Dans quelle direction je peux creuser ?
    Pour moi, c'est le moment où tu devrais voir ton responsable et discuter de tout cela (ce que t'as cherché, trouvé, testé…). Et ensuite aborder (avec lui) tes questions, à savoir comment architecturer la solution. À mon sens tu ne peux (dois) pas faire ça seul, d'une part parce que c'est un stage, et d'autre part parce qu'il a probablement des infos supplémentaires à te fournir qui aideront à choisir une solution valide.

  17. #77
    On a prévu de faire un point lundi à 11h.
    Battletag : Sariyah#2734 / ID PS5 : Oo_Sariyah_oO



  18. #78
    C'est un bon début en tout cas, d'avoir fait ce petit hello world à partir de tes recherches ! Tu es sur la bonne voie.

    Pour avancer, tu peux tout d'abord te noter les différents WS v7 et v8, et essayer de voir si certains matchent facilement au niveau des informations contenues dans les réponses. Ceux là, ce seront les plus simples à faire correspondre.
    Ensuite, pour les autres, il te faut voir si tu peux les faire correspondre, ou pas, et donc quelles modifications seront nécessaires dans les applis qui doivent bouger le moins possible.

    Une fois que tu auras fait ça, tu auras au moins une vision de l'objectif à atteindre en terme de fonctionnalités.

    Ensuite pour le design du projet, de ce que je comprends, tu sais déjà que tu as:

    - la couche qui accepte les données en entrée, en provenance des applis existantes -> controller
    - la couche qui transforme, dans les 2 sens, les informations pour faire correspondre l'entrée avec les services V8 -> service
    - la couche qui va appeler les services V8 -> accès aux données
    - éventuellement une autre couche d'accès aux données pour gérer une sauvegarde dans une base de données si tu en as besoin

    Ca te donne déjà une base de conception.
    Je peux te dire qu'il te faudra faire attention à la manière de sécuriser l'APIKEY puisqu'elle donne accès aux webservices V8. Là dessus, ton tuteur pourra certainement t'aider pour avoir le bon niveau de sécurité en fonction des besoins.

    Hésite pas à faire des schémas, et à créer des dossiers, des coquilles vides, pour te faire une idée de ce à quoi le projet va ressembler et de là où il te faudra remplir par du code.
    Citation Envoyé par Arteis Voir le message
    scie pieds sous terre

  19. #79
    En fait le vrai maître de stage de Sariyah c'est Scie
    Citation Envoyé par poneyroux Voir le message
    Lupuss qui croit encore qu'il y a des conséquences à quoique ce soit aux US
    Edit : mon Dieu, il y a des conséquences ! Il a démissionné !

  20. #80
    C'est pas faux et merci aussi à tout ceux qui me conseillent.

    Le point d'aujourd'hui s'est bien passé et je reviendrai éditer ce post pour le détailler (et poser de nouvelles questions certainement )
    Battletag : Sariyah#2734 / ID PS5 : Oo_Sariyah_oO



  21. #81
    Hello,

    J'ai bien avancé et je m'apprête à poster ce week-end avec quelques questions vraiment importantes pour moi.

    En attendant je voudrais savoir une chose. Dans ce lien http://np6.github.io/slate/?json#actions, prenons l'exemple des Actions. Vous voyez la liste avec "Get All Actions", "Get a specific Campaign" etc. Pour chacune si je clique sur Body/Response (en haut à droite) vous voyez ce que j'obtiens. Par exemple pour "Get all Actions" j'obtiens :
    Code:
    [{
        "type": "mailCampaign",
        "id": "000AB1",
        "name": "Test Campaign",
        "creationDate": "2015-10-30T15:23:00Z",
        "informations": {
            "folder": 123,
            "category": 456,
            "state": 10
        },
        "settings": {
            "templating": {
                "version": "2"
            }
        },
        "scheduler": {
            "type": "asap",
            "startDate": "2015-10-30T15:23:00Z"
        },
        "monitor": {
            "lastSent": {
                "at": "2015-10-30T15:23:00Z"
            }
        }
    }, {
        "type": "mailMessage",
        "id": "000AB2",
        "name": "Test Message",
        "creationDate": "2015-10-30T15:23:00Z",
        "informations": {
            "folder": 910,
            "category": 111,
            "state": 50
        },
        "settings": {
            "templating": {
                "version": "4"
            }
        }
    }]
    Si vous deviez créer une seule entité "Action" (en regroupant toutes les responses/body de toute la liste) vous vous prendriez comment ? J'imagine qu'il y a une manière plus rapide et plus intelligente que de parcourir chaque body/response, de les confronter au fur et à mesure pour voir "ce que je dois ajouter" dans ma classe et à la fin générer tous les getters/setters ?
    Il y a peut être des outils pour ça ? Là c'est ultra chiant et long à faire et j'imagine mal quelqu'un d'expérimenté s'y prendre comme ça. Je me demande même si c'est une bonne chose que de tout regrouper... C'est quoi la bonne pratique ?

    Vous vous y prendriez comment svp ?

    Pour rappel, je suis en Java/Spring, pour le moment j'ai codé chaque méthode en utilisant forcément des controllers, des services et des entités.
    J'ai le sentiment (de débutant c'est vrai) qu'on utilise mal Spring et qu'on respecte pas grand chose du design pattern mais j'y reviendrai ce week-end.
    Battletag : Sariyah#2734 / ID PS5 : Oo_Sariyah_oO



  22. #82
    Il existe certainement des outils, mais généralement, je fais pourtant comme tu dis, je crée ma/mes classes à la main à partir du contenu du JSON.
    Pour être certain de ne rien oublier, cependant, tu dois ou devrais avoir à ta disposition un contrat d'interface qui indique précisément quels sont les champs qui peuvent se trouver en sortie, quels sont ceux qui sont optionnels, leur type et les valeurs possibles.
    Sinon tu ne pourras faire que de la divination, au risque d'oublier quelque chose...

    Par contre, une fois ta classe écrite, tu ne vas pas parser le JSON à la main bien sur pour instancier ton objet et affecter les valeurs aux attributs des classes, mais utiliser un parseur tel que Jackson par exemple.
    Citation Envoyé par Arteis Voir le message
    scie pieds sous terre

  23. #83
    Normalement tu récupères le schéma correspondant aux web services (WSDL pour le SOAP si t'as plus de 35 ans, WADL ou SWAGGER pour le JSON) et tu fais générer automatiquement les beans par un framework (perso je bosse surtout avec CXF).

    J'imagine qu'il doit exister aussi des outils pour générer un schema automatiquement à partir de requêtes JSON mais j'en connais pas personnellement.
    Attention, un Max_well peut en cacher un autre
    Equipe Highlander La Rache

  24. #84
    Pour la génération, il y a 2 écoles :
    - soit à la main (ce que je fais généralement), ce qui te permet de ne générer ton modèle objet avec seulement ce qui t’intéresse (propriétés et sous classes).
    - soit via un plugin maven (qui fonctionne bien, mais qui peut provoquer quelques surprises si tu fais du devops)

    Concernant la dé-sérialisation de la réponse, si tu passes par Spring et la classe RestTemplate, ça se fait tout seul via un getForObject.

  25. #85
    Merci pour vos réponses.

    J'ai continué à avancer à la main du coup et je vais pas tarder à terminer toutes mes méthodes. Je passe effectivement par Spring et la classe RestTemplate. Par curiosité je vais regarder getForObject demain.

    Je voulais poster ce week-end mais j'ai pas pu.. J'ai tout récupéré au boulot alors je vais le faire cette semaine avec une entité, un contrôleur et une méthode d'un des services. Dans l'ensemble ce que j'ai fais fonctionne mais je voudrais surtout savoir si c'est acceptable ou si c'est vraiment dégueulasse. (je vais m'appuyer dessus pour le passage diplôme)

    Après ça je devrais bientôt commencer la seconde partie du projet que je n'arrive même pas à imaginer encore.
    Battletag : Sariyah#2734 / ID PS5 : Oo_Sariyah_oO



  26. #86
    Salut,

    Comme prévu un petit post sur l'avancement de mon projet de stage : Créer un Web Service intermédiaire.

    Je m’apprête à terminer la première étape. Rapport à ce que disais scie précédemment je n’ai pas confronté les méthodes V7(soap) avec les méthodes V8(rest) pour voir lesquelles pourraient matcher.
    Mon tuteur a directement priorisé celles qui étaient à faire et celles que je pouvais laisser de côté.

    Je suis donc parti de la documentation ici : http://np6.github.io/slate/?java#segment (je pointe volontairement sur la partie segment que je vais prendre en exemple à chaque fois ci-dessous) et je devais me débrouiller pour faire fonctionner ces méthodes en Java / Spring.

    Concernant la partie Segment je devais toutes les faires sauf la dernière. Concrètement je devais faire des méthodes dont le but est :
    -Récupérer tous les segments
    -Récupérer un segment spécifique (par son identifiant)
    -Créer un segment
    -Mettre à jour un segment
    -Vider un segment (de ses cibles en fait)
    -Supprimer un segment

    Donc comme dit plus haut j’ai créé une entité Segment, un contrôleur et un service qui contient toutes mes méthodes.

    Ce que j’ai fait (avec l’aide de mon tuteur hein, selon ses idées et il sait à quoi ressemble mon code) fonctionne mais j’ai l’impression que :
    -C’est dégueulasse
    -Les annotations Spring sont mal utilisées voir pas utilisées pour certaines
    -C’est pas optimisé du tout
    -Il y avait moyen de faire quelque chose de bien plus propre si on prenait le temps de de se poser au lieu de tout me balancer à la va vite.
    = Lors de ma présentation orale pour le passage du diplôme, je vais me faire striker et on va me poser des questions auxquelles je serais incapable de répondre.
    J’ai fais des Gists, ce sera plus facile à lire pour ceux qui voudront bien jeter un œil.

    Le contrôleur :
    https://gist.github.com/Fabien-V/302...69196ae3653783

    Le service :
    https://gist.github.com/Fabien-V/fa6...96f128b8fe890c

    L’entité :
    https://gist.github.com/Fabien-V/71e...15da3456c08773
    L’entité au pire faite pas attention à l’utilisation de Lombok. C’est mon tuteur qui a voulu l’utiliser mais dans mon dossier je montrerai ça avec les getters et setters générés.

    J’ai pris l’exemple des Segments car je pense que je pourrais en parler facilement et que le but de ces requêtes est facile à comprendre.

    Cette manière de faire a été répétée pour toutes les parties. (Actions, Catégory, Field etc) avec donc à chaque fois la même logique : une entité, un contrôleur et un service qui contient toutes les méthodes associées.

    Vous en pensez quoi ? Surtout n’hésitez pas à me dire franchement si c’est sale ou s’il y a des choses qui n’ont aucun sens, qui choque ou qui feront vraiment tâche lors d'une présentation orale.
    Si vous avez des idées d’amélioration je suis évidemment preneur.
    Comme dit, je suis parti des idées de mon tuteur et je me demande si présenter les choses en l’état ce serait pas me tirer une balle dans le pied.
    Dernière modification par Sariyah ; 27/09/2019 à 14h03.
    Battletag : Sariyah#2734 / ID PS5 : Oo_Sariyah_oO



  27. #87
    Citation Envoyé par Sariyah Voir le message
    Ce que j’ai fait (avec l’aide de mon tuteur hein, selon ses idées et il sait à quoi ressemble mon code) fonctionne mais j’ai l’impression que :
    -C’est dégueulasse
    -Les annotations Spring sont mal utilisées voir pas utilisées pour certaines
    -C’est pas optimisé du tout
    -Il y avait moyen de faire quelque chose de bien plus propre si on prenait le temps de de se poser au lieu de tout me balancer à la va vite.
    Bienvenue dans le monde réél :D

    Franchement y'a rien qui me choque plus que ça, surtout pour un stage.
    Y'a bien des trucs à améliorer (factoriser le code identique, mettre dans un fichier de conf les valeurs, arrêter de faire du System.out et passer à une librairie de logging), mais dans l'ensemble ça correspond à ce qu'on demande à un stagiaire.
    Pi c'est bien Lombok, c'est plutôt un atout qu'un inconvenient, ça te fera ça de plus à discuter lors de la presentation
    Attention, un Max_well peut en cacher un autre
    Equipe Highlander La Rache

  28. #88
    Coin,

    pareil, c'est tout à fait honorable ! En plus c'est propre.

    Remarques :

    - comme Max_well, Lombok c'est bien. Ca facilite la vie : moins de code à taper et à lire, et surtout tu n'oublies pas de mettre à jour equals, hashcode, toString quand tu ajoutes/modifies/retires un champ de ton objet. Bref, ça peut éviter des drames.

    - SegmentController:createSegment -> tu peux prendre un Segment en RequestBody plutôt qu'un String. Spring MVC fera tout seul la transformation de/vers JSON. A moins que Segment ne soit caractérisé que par une String ?

    - Segment : pas besoin de @EntityScan. Cette annotation permet de dire où trouver des beans à charger, et on la déclare généralement dans l'Application.java (la classe annotée @SpringBootApplication) ou un bean de configuration. Aussi, saches que Spring Boot ajoute automatiquement un scan à partir du package où se trouve l'Application.java, donc si cette classe est dans le package p1.p2, alors tout ce qui se trouve dans p1.p2 et packages enfants sera automatiquement découvert, donc pas besoin du moindre @EntityScan. L'astuce est donc de mettre l'Application.java un cran au-dessus de tout (chez toi ça serait "com.example.demo").

    - Segment : n'oublies pas @EqualsAndHashcode, ou bien remplaces la plupart des annotations par @Data (regarde la doc de Lombok, c'est une annotation qui résume @Getter, @Setter, @EqualsAndHashCode, @NoArgsConstructor...).

    - si tu ne l'as déjà fait, je pense qu'il serait chouette de faire quelques tests d'intégration pour montrer que ton appli marche, et pour montrer que tu as pu tester facilement pendant ton dev. Disons des tests assez simples pour appeler tes APIs, tu peux le faire par exemple avec JUnit (tests) + RestAssured (lib de test qui facilite les appels d'API). Je parle de RestAssured plutôt que du mockMVC car ce dernier reste du Spring, avec pas mal de magie. RestAssured a le mérite d'être un outil qui t'offre un point de vue extérieur au projet, plus dans l'esprit du test d'intégration. Si besoin, je te passe un snipet ou un projet exemple pour débuter sans douleur.
    Si tu n'as pas le temps pour les tests, penses à préparer quelques appels CURL (ou équivalent, IntelliJ gère les appels avec des fichiers ".http", plutôt chouettes) pour appeler ton API et ainsi faire une démo.

    - je vais chipoter : fais tes commentaires de méthodes en /** blabla */ plutôt que /* blabla */. Cela crée une Javadoc. Si tu utilises un IDE (IntelliJ, NetBeans, Eclipse...), alors tapes juste "/**" puis Enter, ça va pré-générer ce qui va bien. Sans aller jusqu'à créer la javadoc HTML, tu pourras afficher la doc dans ton IDE au survol d'une de tes méthodes, ou avec un raccourcis (Ctrl+Espace, ou Ctrl+Q sous IntelliJ). Pratique.

  29. #89
    Les autres ont dit tout ce qui me venait à l'esprit, mais franchement c'est loin d'être dégueulasse surtout en étant quasiment seul sur le projet. Le code est structuré et pas du spaguetti, c'est lisible. Tu auras des choses à dire à la fin de ton stage !
    Citation Envoyé par Arteis Voir le message
    scie pieds sous terre

  30. #90
    Merci pour vos retours.

    Je suis un peu étonné que les méthodes soient ok et qu'absolument rien ne choque dans la manière de faire mais tant mieux.

    C'est noté pour Lombok, je vais l'intégrer à ma présentation. Je note aussi toutes les remarques et je vais faire les modifications/ajouts d'annotations. Je ne sais plus si Segment est caractérisé que par un String mais de mémoire sinon ça posait problème. Je regarde ça lundi.

    J'ai fais aucun test d'intégration. En fait pour être franc je ne connais pas du tout, pas plus que JUnit et RestAssured...
    Jusqu'à maintenant je testais mon API avec Postman. Je test toutes mes requêtes avec et comme l'authentification se fait via l'API Key, je regarde directement dans leur logiciel si ça a fait le taf. (pour create, update, empty, delete par exemple)

    En fait je l'ai pas précisé, mais dans leur logiciel, je suis sur un compte test que je suis seul à utiliser et où je peux tester mes trucs en V8 en direct "comme si" j'étais en prod. (en faisant gaffe de ne pas faire de connerie quand même car ça reste possible)
    Du coup est-ce pertinent de faire ces tests ou j'ai pas compris de quoi il s'agit ? En fait gros_bidule, je t'avoue que ça me branche bien d'en faire quand même pour voir ce que c'est, comment ça marche et pour les ajouter à ma présentation, histoire de.

    Merci pour l'info sur les commentaires, je suis sur IntelliJ, une version d'essai (3 mois) que j'ai demandé car au départ c'était prévu sur Eclipse mais j'ai voulu éviter. (à tord, à raison ?) Aussi concernant la doc, je sais qu'il est prévu qu'on utilise Swagger mais je m'y suis pas encore intéressé, juste lu quelques trucs.

    Ah oui j'oubliais. Comme dis, j'ai plein de contrôleurs pour chacune des parties (Actions, Segments, Category etc.) Est-ce intéressant de créer un genre de maître contrôleur au dessus ? Pour les gouverner tous , non pour y rassembler tout ce qui est en commun comme l'authentification etc ?
    Battletag : Sariyah#2734 / ID PS5 : Oo_Sariyah_oO



Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •