[{"data":1,"prerenderedAt":45},["ShallowReactive",2],{"course-clean-code-et-bonnes-pratiques":3,"highlight-java-// Avant : une métho":44},{"id":4,"name":5,"slug":6,"location":7,"targetAudienceFormatMarkdown":8,"prerequisitesFormatMarkdown":9,"objectivesFormatMarkdown":10,"descriptionFormatMarkdown":11,"teachingMethodsFormatMarkdown":12,"teachingResourcesFormatMarkdown":13,"evaluationMethodsFormatMarkdown":14,"accessibilityFormatMarkdown":15,"accessMethodsFormatMarkdown":16,"minimumParticipants":7,"maximumParticipants":7,"duration":17,"reference":18,"trainerType":7,"updated_at":19,"created_at":20,"price":21,"organizationMode":22,"theme":25,"code":29,"tags":34,"metadata":35},"/api/courses/0b51da1e-b298-11f1-a993-d8ca06000363","Clean code et bonnes pratiques","clean-code-et-bonnes-pratiques",null,"Développeurs, responsables techniques, relecteurs de code.","Pratique régulière du développement dans un langage objet.","Écrire un code lisible, testable et maintenable (SOLID, refactoring, revue de code).","--day1--\n\n## Lisibilité du code\n\n-   Coût de la maintenance et lecture du code ; nommage ; taille et responsabilité des fonctions ; commentaires utiles et commentaires inutiles ; premiers refactorings guidés.\n\n--break--\n\n## Structurer et découpler\n\n-   Principes SOLID en pratique ; injection de dépendances ; réduction du couplage ; code smells fréquents et corrections associées.\n\n--day2--\n\n## Tests et refactoring\n\n-   Tests unitaires comme filet de sécurité ; refactoring pas à pas sur code legacy ; tests caractérisation ; TDD : principe et démonstration.\n\n--break--\n\n## Qualité au quotidien\n\n-   Revue de code efficace ; conventions d'équipe ; analyse statique et dette technique (SonarQube) ; intégration dans la chaîne CI ; plan d'action d'équipe.","Présentiel, distanciel, hybride","Les supports pédagogiques sont remis aux stagiaires sous format numérique et/ou papier selon les modalités de la formation.\n\nIls comprennent des supports de cours, des présentations, des fiches pratiques, des études de cas, des exercices applicatifs ainsi que des QCM d’entraînement selon la formation. (adapté au choix du formateur)\n\nLes formations s’appuient sur des moyens techniques adaptés : ordinateurs, logiciels professionnels, connexion internet, écran ou vidéoprojecteur, ainsi que des outils collaboratifs et de visioconférence pour les formations à distance.\n\nL’ensemble des supports pédagogiques est accessible pendant et après la formation afin de favoriser l’appropriation et la mise en pratique des compétences acquises.","En amont de la formation, un recueil des besoins permet de récolter des informations sur le stagiaire et ses attentes. L’évaluation se fait en cours de formation, par des études de cas ou des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation et/ou un examen.\n\nUn suivi de qualité est effectué grâce à nos sessions en groupe restreint (entre 2 et 9 participants maximum). Le stagiaire émargera par demi-journée et recevra une attestation de formation.","Nous informons l’ensemble de nos clients et stagiaires que nous sommes dans la capacité d’adapter les sessions selon les handicaps et les situations spécifiques. Nous nous engageons à répondre à toutes vos demandes sous un délai de 48h ouvré.","Si l’une de nos formations vous intéresse, contactez-nous au +33 4 93 65 34 24 ou à l’adresse mail contact@m2g-intellect.fr. Selon votre besoin et vos attentes, nous organiserons un échange téléphonique avec le formateur pressenti afin d’adapter la formation et ses modules, puis nous vous adresserons un devis.\n\nLes dates de la formation seront à convenir sous 30 jours maximum.","14.00","L1-DEV-02","2026-09-18T09:45:10+00:00","2026-09-17T15:02:31+00:00","1350.00",{"id":23,"name":24},"/api/organization_mode_types/6","HYBRID",{"id":26,"name":27,"slug":28},"/api/themes/0ac148c3-b298-11f1-a993-d8ca06000363","Développement logiciel informatique et web","developpement-logiciel-informatique-et-web",{"id":30,"label":31,"domain":32},"/api/training_specialities/163","326 - Informatique, traitement de l’information, réseaux de transmission des données",{"label":33},"32 - Communication et information",[],{"desc-accroche":36,"Description":37,"icon-color":38,"icon-name":39,"code-langage":40,"code-snippet":41,"courte-description":42,"titre-accroche":43},"Travaillez sur du code source volontairement dégradé pour maîtriser nommage explicite, découpage en petites fonctions, principes SOLID, tests automatisés et revue de code entre pairs.","Cette formation part d'un constat simple : un programme se lit bien plus souvent qu'il ne s'écrit, et c'est la lecture qui coûte cher à une équipe. Sur deux jours entièrement pratiques, les participants retravaillent du code volontairement dégradé pour en améliorer le nommage, réduire la taille des fonctions, éliminer la duplication et clarifier les responsabilités à la lumière des principes SOLID. La démarche s'appuie sur des critères de qualité objectivables (complexité cyclomatique, couverture de tests, couplage) plutôt que sur des préférences de style, et intègre la revue de code comme outil d'amélioration continue. La formation s'adresse aux développeurs pratiquant régulièrement un langage objet, aux responsables techniques et aux relecteurs de code souhaitant harmoniser leurs critères d'exigence.","#3F51B5","mdi:broom","java","// Avant : une méthode qui fait trop de choses\npublic double calculer(List\u003CItem> items, boolean vip) {\n    double t = 0;\n    for (Item i : items) t += i.getPrix() * i.getQte();\n    if (vip) t = t * 0.9;\n    return t;\n}\n\n// Après : intentions nommées, responsabilité unique\npublic Montant calculerTotal(Panier panier, Client client) {\n    Montant sousTotal = panier.sousTotal();\n    return client.appliquerRemise(sousTotal);\n}","Formation pratique de clean code : nommage, découpage, principes SOLID, tests et revue de code appliqués à du code volontairement dégradé.","Assainissez votre code au quotidien grâce au clean code : nommage, découpage et refactoring pour produire des programmes lisibles et durables.","\u003Cpre class=\"hljs\">\u003Ccode class=\"language-java\">\u003Cspan class=\"hljs-comment\">// Avant : une méthode qui fait trop de choses\u003C/span>\n\u003Cspan class=\"hljs-keyword\">public\u003C/span> \u003Cspan class=\"hljs-type\">double\u003C/span> \u003Cspan class=\"hljs-title function_\">calculer\u003C/span>\u003Cspan class=\"hljs-params\">(List&lt;Item&gt; items, \u003Cspan class=\"hljs-type\">boolean\u003C/span> vip)\u003C/span> {\n    \u003Cspan class=\"hljs-type\">double\u003C/span> \u003Cspan class=\"hljs-variable\">t\u003C/span> \u003Cspan class=\"hljs-operator\">=\u003C/span> \u003Cspan class=\"hljs-number\">0\u003C/span>;\n    \u003Cspan class=\"hljs-keyword\">for\u003C/span> (Item i : items) t += i.getPrix() * i.getQte();\n    \u003Cspan class=\"hljs-keyword\">if\u003C/span> (vip) t = t * \u003Cspan class=\"hljs-number\">0.9\u003C/span>;\n    \u003Cspan class=\"hljs-keyword\">return\u003C/span> t;\n}\n\n\u003Cspan class=\"hljs-comment\">// Après : intentions nommées, responsabilité unique\u003C/span>\n\u003Cspan class=\"hljs-keyword\">public\u003C/span> Montant \u003Cspan class=\"hljs-title function_\">calculerTotal\u003C/span>\u003Cspan class=\"hljs-params\">(Panier panier, Client client)\u003C/span> {\n    \u003Cspan class=\"hljs-type\">Montant\u003C/span> \u003Cspan class=\"hljs-variable\">sousTotal\u003C/span> \u003Cspan class=\"hljs-operator\">=\u003C/span> panier.sousTotal();\n    \u003Cspan class=\"hljs-keyword\">return\u003C/span> client.appliquerRemise(sousTotal);\n}\u003C/code>\u003C/pre>",1789717730726]