[{"data":1,"prerenderedAt":4842},["ShallowReactive",2],{"/fr/dette-technique/clean-code-software-craftsmanship-principes-java":3,"search-api":-1},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"id":10,"date":11,"listed":12,"nocomments":6,"hidden":6,"categories":13,"tags":14,"--cover":17,"readingTime":18,"body":23,"_type":4836,"_id":4837,"_source":4838,"_file":4839,"_stem":4840,"_extension":4841},"/fr/dette-technique/clean-code-software-craftsmanship-principes-java","dette-technique",false,"","Découvrir le Clean Code en Software Craftsmanship, Les Bonnes Pratiques en Java","Découvrez les principes du Clean Code et comment écrire du code propre et maintenable avec des exemples concrets en Java. Astuces, FAQ et bonnes pratiques pour...",49,"2024-07-17",true,[5],[15,16],"Clean code","Software craftsmanship","covers/articles/principe-clean-code.jpg",{"text":19,"minutes":20,"time":21,"words":22},"16 min read",15.43,925800,3086,{"type":24,"children":25,"toc":4806},"root",[26,39,49,55,88,97,108,117,135,139,148,159,168,186,194,294,315,325,334,346,353,1214,1227,1235,1238,1251,1260,1278,1285,1585,1590,1593,1602,1619,1628,1639,1646,1724,1745,1780,1783,1792,1797,1804,2282,2287,2295,2298,2307,2312,2319,2664,2669,2685,2688,2697,2707,2716,2727,2734,3131,3136,3144,3147,3156,3161,3168,3641,3646,3654,3657,3666,3683,3690,4008,4020,4028,4031,4040,4051,4060,4080,4087,4387,4400,4408,4411,4420,4431,4443,4478,4486,4489,4498,4515,4523,4556,4570,4573,4582,4600,4620,4639,4709,4728,4747,4766,4769,4778,4788,4800],{"type":27,"tag":28,"props":29,"children":31},"element","h2",{"id":30},"découvrir-le-clean-code-en-software-craftsmanship-les-bonnes-pratiques-en-java",[32],{"type":27,"tag":33,"props":34,"children":35},"strong",{},[36],{"type":37,"value":38},"text","Découvrir le Clean Code en Software Craftsmanship : Les Bonnes Pratiques en Java",{"type":27,"tag":40,"props":41,"children":43},"h3",{"id":42},"introduction-au-clean-code-pourquoi-écrire-du-code-propre-est-essentiel",[44],{"type":27,"tag":33,"props":45,"children":46},{},[47],{"type":37,"value":48},"Introduction au Clean Code : Pourquoi écrire du code propre est essentiel",{"type":27,"tag":50,"props":51,"children":52},"p",{},[53],{"type":37,"value":54},"Imaginez cette situation : vous revenez sur un projet sur lequel vous avez travaillé il y a six mois. À l’époque, vous aviez tout bouclé en vitesse pour respecter les délais. Mais aujourd’hui, en rouvrant ce code, c’est un véritable casse-tête. Des noms de variables incompréhensibles, des fonctions interminables... et maintenant, vous devez y ajouter une nouvelle fonctionnalité. Résultat ? Vous passez plus de temps à comprendre votre propre code qu’à le modifier.",{"type":27,"tag":50,"props":56,"children":57},{},[58,60,65,67,72,74,79,81,86],{"type":37,"value":59},"J’ai vu cette situation se répéter dans des dizaines d’équipes que j’ai accompagnées, notamment dans des DSI bancaires comme BNP Paribas CIB ou Agirc-Arrco. C’est là que le ",{"type":27,"tag":33,"props":61,"children":62},{},[63],{"type":37,"value":64},"Clean Code",{"type":37,"value":66}," entre en jeu. Plus qu’une simple méthodologie, c’est une philosophie de développement qui vise à rendre le code non seulement fonctionnel, mais aussi ",{"type":27,"tag":33,"props":68,"children":69},{},[70],{"type":37,"value":71},"clair",{"type":37,"value":73},", ",{"type":27,"tag":33,"props":75,"children":76},{},[77],{"type":37,"value":78},"lisible",{"type":37,"value":80}," et ",{"type":27,"tag":33,"props":82,"children":83},{},[84],{"type":37,"value":85},"facilement maintenable",{"type":37,"value":87},". En d’autres termes, un code que vous (ou quelqu’un d’autre) pourrez modifier sereinement dans six mois, ou même dans un an.",{"type":27,"tag":40,"props":89,"children":91},{"id":90},"pourquoi-vous-devez-vous-en-soucier",[92],{"type":27,"tag":33,"props":93,"children":94},{},[95],{"type":37,"value":96},"Pourquoi vous devez vous en soucier ?",{"type":27,"tag":50,"props":98,"children":99},{},[100,102,106],{"type":37,"value":101},"Le ",{"type":27,"tag":33,"props":103,"children":104},{},[105],{"type":37,"value":64},{"type":37,"value":107},", ce n’est pas juste une question d’esthétique. C’est un moyen de garantir que votre code reste robuste, compréhensible et prêt à évoluer. En adoptant ces principes, vous allez réduire les bugs, faciliter la maintenance, et surtout, économiser énormément de temps sur le long terme. Ce qui se traduit concrètement par des cycles de livraison plus courts et un coût de maintenance réduit.",{"type":27,"tag":40,"props":109,"children":111},{"id":110},"ce-que-vous-allez-apprendre-ici",[112],{"type":27,"tag":33,"props":113,"children":114},{},[115],{"type":37,"value":116},"Ce que vous allez apprendre ici",{"type":27,"tag":50,"props":118,"children":119},{},[120,122,126,128,133],{"type":37,"value":121},"Vous allez découvrir les principes fondamentaux du ",{"type":27,"tag":33,"props":123,"children":124},{},[125],{"type":37,"value":64},{"type":37,"value":127},", tels que les définit Robert C. Martin dans son ouvrage de référence, avec des exemples pratiques en ",{"type":27,"tag":33,"props":129,"children":130},{},[131],{"type":37,"value":132},"Java",{"type":37,"value":134}," pour intégrer ces bonnes pratiques dans votre travail quotidien. Je vous donnerai aussi des astuces simples à appliquer, même lorsque vous êtes sous pression pour livrer rapidement.",{"type":27,"tag":136,"props":137,"children":138},"hr",{},[],{"type":27,"tag":28,"props":140,"children":142},{"id":141},"les-principes-fondamentaux-du-clean-code",[143],{"type":27,"tag":33,"props":144,"children":145},{},[146],{"type":37,"value":147},"Les principes fondamentaux du Clean Code",{"type":27,"tag":50,"props":149,"children":150},{},[151,153,157],{"type":37,"value":152},"Maintenant que vous comprenez pourquoi le ",{"type":27,"tag":33,"props":154,"children":155},{},[156],{"type":37,"value":64},{"type":37,"value":158}," est si important, plongeons dans les principes clés qui vous permettront de l'appliquer efficacement dans votre code. Ces principes vous guideront pour écrire un code qui n'est pas seulement fonctionnel, mais aussi agréable à lire et à maintenir.",{"type":27,"tag":40,"props":160,"children":162},{"id":161},"_1-des-noms-de-variables-et-de-fonctions-explicites",[163],{"type":27,"tag":33,"props":164,"children":165},{},[166],{"type":37,"value":167},"1. Des noms de variables et de fonctions explicites",{"type":27,"tag":50,"props":169,"children":170},{},[171,173,178,179,184],{"type":37,"value":172},"L'un des premiers pas vers un code propre est de choisir des noms ",{"type":27,"tag":33,"props":174,"children":175},{},[176],{"type":37,"value":177},"clairs",{"type":37,"value":80},{"type":27,"tag":33,"props":180,"children":181},{},[182],{"type":37,"value":183},"significatifs",{"type":37,"value":185}," pour vos variables, vos fonctions et vos classes. Si quelqu'un peut comprendre ce qu'une variable fait rien qu'en lisant son nom, alors vous êtes sur la bonne voie.",{"type":27,"tag":50,"props":187,"children":188},{},[189],{"type":27,"tag":33,"props":190,"children":191},{},[192],{"type":37,"value":193},"Exemple en Java :",{"type":27,"tag":195,"props":196,"children":200},"pre",{"className":197,"code":198,"language":199,"meta":7,"style":7},"language-java shiki shiki-themes catppuccin-frappe github-dark","// Mauvais exemple\nint a = 5;\n\n// Meilleur exemple\nint nombreDeJours = 5;\n","java",[201],{"type":27,"tag":202,"props":203,"children":204},"code",{"__ignoreMap":7},[205,217,251,260,269],{"type":27,"tag":206,"props":207,"children":210},"span",{"class":208,"line":209},"line",1,[211],{"type":27,"tag":206,"props":212,"children":214},{"style":213},"--shiki-default:#737994;--shiki-default-font-style:italic;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit",[215],{"type":37,"value":216},"// Mauvais exemple\n",{"type":27,"tag":206,"props":218,"children":220},{"class":208,"line":219},2,[221,227,233,239,245],{"type":27,"tag":206,"props":222,"children":224},{"style":223},"--shiki-default:#CA9EE6;--shiki-dark:#F97583",[225],{"type":37,"value":226},"int",{"type":27,"tag":206,"props":228,"children":230},{"style":229},"--shiki-default:#C6D0F5;--shiki-dark:#E1E4E8",[231],{"type":37,"value":232}," a ",{"type":27,"tag":206,"props":234,"children":236},{"style":235},"--shiki-default:#81C8BE;--shiki-dark:#F97583",[237],{"type":37,"value":238},"=",{"type":27,"tag":206,"props":240,"children":242},{"style":241},"--shiki-default:#EF9F76;--shiki-dark:#79B8FF",[243],{"type":37,"value":244}," 5",{"type":27,"tag":206,"props":246,"children":248},{"style":247},"--shiki-default:#949CBB;--shiki-dark:#E1E4E8",[249],{"type":37,"value":250},";\n",{"type":27,"tag":206,"props":252,"children":254},{"class":208,"line":253},3,[255],{"type":27,"tag":206,"props":256,"children":257},{"emptyLinePlaceholder":12},[258],{"type":37,"value":259},"\n",{"type":27,"tag":206,"props":261,"children":263},{"class":208,"line":262},4,[264],{"type":27,"tag":206,"props":265,"children":266},{"style":213},[267],{"type":37,"value":268},"// Meilleur exemple\n",{"type":27,"tag":206,"props":270,"children":272},{"class":208,"line":271},5,[273,277,282,286,290],{"type":27,"tag":206,"props":274,"children":275},{"style":223},[276],{"type":37,"value":226},{"type":27,"tag":206,"props":278,"children":279},{"style":229},[280],{"type":37,"value":281}," nombreDeJours ",{"type":27,"tag":206,"props":283,"children":284},{"style":235},[285],{"type":37,"value":238},{"type":27,"tag":206,"props":287,"children":288},{"style":241},[289],{"type":37,"value":244},{"type":27,"tag":206,"props":291,"children":292},{"style":247},[293],{"type":37,"value":250},{"type":27,"tag":50,"props":295,"children":296},{},[297,299,305,307,313],{"type":37,"value":298},"En nommant la variable ",{"type":27,"tag":202,"props":300,"children":302},{"className":301},[],[303],{"type":37,"value":304},"nombreDeJours",{"type":37,"value":306},", on rend immédiatement évident ce que représente cette donnée, sans avoir besoin de commentaires ou de devinettes. De plus, évitez les abréviations trop courtes ou ambiguës comme ",{"type":27,"tag":202,"props":308,"children":310},{"className":309},[],[311],{"type":37,"value":312},"nbr",{"type":37,"value":314},", qui peuvent prêter à confusion.",{"type":27,"tag":316,"props":317,"children":319},"alert",{"type":318},"TIP",[320],{"type":27,"tag":50,"props":321,"children":322},{},[323],{"type":37,"value":324},"Pensez à vos noms de variables et fonctions comme à une conversation. Si vous deviez expliquer ce que fait votre code à un collègue, utiliseriez-vous ces noms ? Si la réponse est non, il est probablement temps de les améliorer.",{"type":27,"tag":40,"props":326,"children":328},{"id":327},"_2-la-règle-des-fonctions-courtes",[329],{"type":27,"tag":33,"props":330,"children":331},{},[332],{"type":37,"value":333},"2. La règle des fonctions courtes",{"type":27,"tag":50,"props":335,"children":336},{},[337,339,344],{"type":37,"value":338},"Une bonne fonction ne doit faire ",{"type":27,"tag":33,"props":340,"children":341},{},[342],{"type":37,"value":343},"qu'une seule chose",{"type":37,"value":345}," et bien la faire. Si une fonction devient trop longue, il y a de fortes chances qu'elle fasse trop de choses à la fois. Un bon indicateur : si vous pouvez résumer ce que fait votre fonction en une seule phrase claire, elle est probablement assez concise.",{"type":27,"tag":50,"props":347,"children":348},{},[349],{"type":27,"tag":33,"props":350,"children":351},{},[352],{"type":37,"value":193},{"type":27,"tag":195,"props":354,"children":356},{"className":197,"code":355,"language":199,"meta":7,"style":7},"// Mauvais exemple - Trop de responsabilités dans une seule fonction\npublic void processOrder(Order order) {\n    // Valider la commande\n    if (order.isValid()) {\n        // Calculer le total\n        double total = order.getAmount() + calculateTax(order);\n\n        // Traiter le paiement\n        processPayment(order, total);\n\n        // Envoyer une confirmation\n        sendConfirmationEmail(order);\n    } else {\n        System.out.println(\"Commande invalide\");\n    }\n}\n\n// Meilleur exemple - Chaque fonction a une responsabilité unique\npublic void processOrder(Order order) {\n    if (order.isValid()) {\n        double total = calculateTotal(order);\n        processPayment(order, total);\n        sendConfirmation(order);\n    } else {\n        handleInvalidOrder();\n    }\n}\n\nprivate double calculateTotal(Order order) {\n    return order.getAmount() + calculateTax(order);\n}\n\nprivate void processPayment(Order order, double total) {\n    // Code pour traiter le paiement\n}\n\nprivate void sendConfirmation(Order order) {\n    // Code pour envoyer l'email de confirmation\n}\n\nprivate void handleInvalidOrder() {\n    System.out.println(\"Commande invalide\");\n}\n",[357],{"type":27,"tag":202,"props":358,"children":359},{"__ignoreMap":7},[360,368,413,421,458,466,525,533,542,573,581,590,611,629,670,679,688,696,705,741,773,806,834,855,871,885,893,901,909,947,992,1000,1008,1057,1066,1074,1082,1119,1128,1136,1144,1169,1206],{"type":27,"tag":206,"props":361,"children":362},{"class":208,"line":209},[363],{"type":27,"tag":206,"props":364,"children":365},{"style":213},[366],{"type":37,"value":367},"// Mauvais exemple - Trop de responsabilités dans une seule fonction\n",{"type":27,"tag":206,"props":369,"children":370},{"class":208,"line":219},[371,376,381,387,392,398,403,408],{"type":27,"tag":206,"props":372,"children":373},{"style":223},[374],{"type":37,"value":375},"public",{"type":27,"tag":206,"props":377,"children":378},{"style":223},[379],{"type":37,"value":380}," void",{"type":27,"tag":206,"props":382,"children":384},{"style":383},"--shiki-default:#8CAAEE;--shiki-default-font-style:italic;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit",[385],{"type":37,"value":386}," processOrder",{"type":27,"tag":206,"props":388,"children":389},{"style":247},[390],{"type":37,"value":391},"(",{"type":27,"tag":206,"props":393,"children":395},{"style":394},"--shiki-default:#CA9EE6;--shiki-dark:#E1E4E8",[396],{"type":37,"value":397},"Order",{"type":27,"tag":206,"props":399,"children":400},{"style":229},[401],{"type":37,"value":402}," order",{"type":27,"tag":206,"props":404,"children":405},{"style":247},[406],{"type":37,"value":407},")",{"type":27,"tag":206,"props":409,"children":410},{"style":247},[411],{"type":37,"value":412}," {\n",{"type":27,"tag":206,"props":414,"children":415},{"class":208,"line":253},[416],{"type":27,"tag":206,"props":417,"children":418},{"style":213},[419],{"type":37,"value":420},"    // Valider la commande\n",{"type":27,"tag":206,"props":422,"children":423},{"class":208,"line":262},[424,429,434,439,444,449,454],{"type":27,"tag":206,"props":425,"children":426},{"style":223},[427],{"type":37,"value":428},"    if",{"type":27,"tag":206,"props":430,"children":431},{"style":247},[432],{"type":37,"value":433}," (",{"type":27,"tag":206,"props":435,"children":436},{"style":229},[437],{"type":37,"value":438},"order",{"type":27,"tag":206,"props":440,"children":441},{"style":247},[442],{"type":37,"value":443},".",{"type":27,"tag":206,"props":445,"children":446},{"style":383},[447],{"type":37,"value":448},"isValid",{"type":27,"tag":206,"props":450,"children":451},{"style":247},[452],{"type":37,"value":453},"())",{"type":27,"tag":206,"props":455,"children":456},{"style":247},[457],{"type":37,"value":412},{"type":27,"tag":206,"props":459,"children":460},{"class":208,"line":271},[461],{"type":27,"tag":206,"props":462,"children":463},{"style":213},[464],{"type":37,"value":465},"        // Calculer le total\n",{"type":27,"tag":206,"props":467,"children":469},{"class":208,"line":468},6,[470,475,480,484,488,492,497,502,507,512,516,520],{"type":27,"tag":206,"props":471,"children":472},{"style":223},[473],{"type":37,"value":474},"        double",{"type":27,"tag":206,"props":476,"children":477},{"style":229},[478],{"type":37,"value":479}," total ",{"type":27,"tag":206,"props":481,"children":482},{"style":235},[483],{"type":37,"value":238},{"type":27,"tag":206,"props":485,"children":486},{"style":229},[487],{"type":37,"value":402},{"type":27,"tag":206,"props":489,"children":490},{"style":247},[491],{"type":37,"value":443},{"type":27,"tag":206,"props":493,"children":494},{"style":383},[495],{"type":37,"value":496},"getAmount",{"type":27,"tag":206,"props":498,"children":499},{"style":247},[500],{"type":37,"value":501},"()",{"type":27,"tag":206,"props":503,"children":504},{"style":235},[505],{"type":37,"value":506}," +",{"type":27,"tag":206,"props":508,"children":509},{"style":383},[510],{"type":37,"value":511}," calculateTax",{"type":27,"tag":206,"props":513,"children":514},{"style":247},[515],{"type":37,"value":391},{"type":27,"tag":206,"props":517,"children":518},{"style":229},[519],{"type":37,"value":438},{"type":27,"tag":206,"props":521,"children":522},{"style":247},[523],{"type":37,"value":524},");\n",{"type":27,"tag":206,"props":526,"children":528},{"class":208,"line":527},7,[529],{"type":27,"tag":206,"props":530,"children":531},{"emptyLinePlaceholder":12},[532],{"type":37,"value":259},{"type":27,"tag":206,"props":534,"children":536},{"class":208,"line":535},8,[537],{"type":27,"tag":206,"props":538,"children":539},{"style":213},[540],{"type":37,"value":541},"        // Traiter le paiement\n",{"type":27,"tag":206,"props":543,"children":545},{"class":208,"line":544},9,[546,551,555,559,564,569],{"type":27,"tag":206,"props":547,"children":548},{"style":383},[549],{"type":37,"value":550},"        processPayment",{"type":27,"tag":206,"props":552,"children":553},{"style":247},[554],{"type":37,"value":391},{"type":27,"tag":206,"props":556,"children":557},{"style":229},[558],{"type":37,"value":438},{"type":27,"tag":206,"props":560,"children":561},{"style":247},[562],{"type":37,"value":563},",",{"type":27,"tag":206,"props":565,"children":566},{"style":229},[567],{"type":37,"value":568}," total",{"type":27,"tag":206,"props":570,"children":571},{"style":247},[572],{"type":37,"value":524},{"type":27,"tag":206,"props":574,"children":576},{"class":208,"line":575},10,[577],{"type":27,"tag":206,"props":578,"children":579},{"emptyLinePlaceholder":12},[580],{"type":37,"value":259},{"type":27,"tag":206,"props":582,"children":584},{"class":208,"line":583},11,[585],{"type":27,"tag":206,"props":586,"children":587},{"style":213},[588],{"type":37,"value":589},"        // Envoyer une confirmation\n",{"type":27,"tag":206,"props":591,"children":593},{"class":208,"line":592},12,[594,599,603,607],{"type":27,"tag":206,"props":595,"children":596},{"style":383},[597],{"type":37,"value":598},"        sendConfirmationEmail",{"type":27,"tag":206,"props":600,"children":601},{"style":247},[602],{"type":37,"value":391},{"type":27,"tag":206,"props":604,"children":605},{"style":229},[606],{"type":37,"value":438},{"type":27,"tag":206,"props":608,"children":609},{"style":247},[610],{"type":37,"value":524},{"type":27,"tag":206,"props":612,"children":614},{"class":208,"line":613},13,[615,620,625],{"type":27,"tag":206,"props":616,"children":617},{"style":247},[618],{"type":37,"value":619},"    }",{"type":27,"tag":206,"props":621,"children":622},{"style":223},[623],{"type":37,"value":624}," else",{"type":27,"tag":206,"props":626,"children":627},{"style":247},[628],{"type":37,"value":412},{"type":27,"tag":206,"props":630,"children":632},{"class":208,"line":631},14,[633,638,642,647,651,656,660,666],{"type":27,"tag":206,"props":634,"children":635},{"style":229},[636],{"type":37,"value":637},"        System",{"type":27,"tag":206,"props":639,"children":640},{"style":247},[641],{"type":37,"value":443},{"type":27,"tag":206,"props":643,"children":644},{"style":229},[645],{"type":37,"value":646},"out",{"type":27,"tag":206,"props":648,"children":649},{"style":247},[650],{"type":37,"value":443},{"type":27,"tag":206,"props":652,"children":653},{"style":383},[654],{"type":37,"value":655},"println",{"type":27,"tag":206,"props":657,"children":658},{"style":247},[659],{"type":37,"value":391},{"type":27,"tag":206,"props":661,"children":663},{"style":662},"--shiki-default:#A6D189;--shiki-dark:#9ECBFF",[664],{"type":37,"value":665},"\"Commande invalide\"",{"type":27,"tag":206,"props":667,"children":668},{"style":247},[669],{"type":37,"value":524},{"type":27,"tag":206,"props":671,"children":673},{"class":208,"line":672},15,[674],{"type":27,"tag":206,"props":675,"children":676},{"style":247},[677],{"type":37,"value":678},"    }\n",{"type":27,"tag":206,"props":680,"children":682},{"class":208,"line":681},16,[683],{"type":27,"tag":206,"props":684,"children":685},{"style":247},[686],{"type":37,"value":687},"}\n",{"type":27,"tag":206,"props":689,"children":691},{"class":208,"line":690},17,[692],{"type":27,"tag":206,"props":693,"children":694},{"emptyLinePlaceholder":12},[695],{"type":37,"value":259},{"type":27,"tag":206,"props":697,"children":699},{"class":208,"line":698},18,[700],{"type":27,"tag":206,"props":701,"children":702},{"style":213},[703],{"type":37,"value":704},"// Meilleur exemple - Chaque fonction a une responsabilité unique\n",{"type":27,"tag":206,"props":706,"children":708},{"class":208,"line":707},19,[709,713,717,721,725,729,733,737],{"type":27,"tag":206,"props":710,"children":711},{"style":223},[712],{"type":37,"value":375},{"type":27,"tag":206,"props":714,"children":715},{"style":223},[716],{"type":37,"value":380},{"type":27,"tag":206,"props":718,"children":719},{"style":383},[720],{"type":37,"value":386},{"type":27,"tag":206,"props":722,"children":723},{"style":247},[724],{"type":37,"value":391},{"type":27,"tag":206,"props":726,"children":727},{"style":394},[728],{"type":37,"value":397},{"type":27,"tag":206,"props":730,"children":731},{"style":229},[732],{"type":37,"value":402},{"type":27,"tag":206,"props":734,"children":735},{"style":247},[736],{"type":37,"value":407},{"type":27,"tag":206,"props":738,"children":739},{"style":247},[740],{"type":37,"value":412},{"type":27,"tag":206,"props":742,"children":744},{"class":208,"line":743},20,[745,749,753,757,761,765,769],{"type":27,"tag":206,"props":746,"children":747},{"style":223},[748],{"type":37,"value":428},{"type":27,"tag":206,"props":750,"children":751},{"style":247},[752],{"type":37,"value":433},{"type":27,"tag":206,"props":754,"children":755},{"style":229},[756],{"type":37,"value":438},{"type":27,"tag":206,"props":758,"children":759},{"style":247},[760],{"type":37,"value":443},{"type":27,"tag":206,"props":762,"children":763},{"style":383},[764],{"type":37,"value":448},{"type":27,"tag":206,"props":766,"children":767},{"style":247},[768],{"type":37,"value":453},{"type":27,"tag":206,"props":770,"children":771},{"style":247},[772],{"type":37,"value":412},{"type":27,"tag":206,"props":774,"children":776},{"class":208,"line":775},21,[777,781,785,789,794,798,802],{"type":27,"tag":206,"props":778,"children":779},{"style":223},[780],{"type":37,"value":474},{"type":27,"tag":206,"props":782,"children":783},{"style":229},[784],{"type":37,"value":479},{"type":27,"tag":206,"props":786,"children":787},{"style":235},[788],{"type":37,"value":238},{"type":27,"tag":206,"props":790,"children":791},{"style":383},[792],{"type":37,"value":793}," calculateTotal",{"type":27,"tag":206,"props":795,"children":796},{"style":247},[797],{"type":37,"value":391},{"type":27,"tag":206,"props":799,"children":800},{"style":229},[801],{"type":37,"value":438},{"type":27,"tag":206,"props":803,"children":804},{"style":247},[805],{"type":37,"value":524},{"type":27,"tag":206,"props":807,"children":809},{"class":208,"line":808},22,[810,814,818,822,826,830],{"type":27,"tag":206,"props":811,"children":812},{"style":383},[813],{"type":37,"value":550},{"type":27,"tag":206,"props":815,"children":816},{"style":247},[817],{"type":37,"value":391},{"type":27,"tag":206,"props":819,"children":820},{"style":229},[821],{"type":37,"value":438},{"type":27,"tag":206,"props":823,"children":824},{"style":247},[825],{"type":37,"value":563},{"type":27,"tag":206,"props":827,"children":828},{"style":229},[829],{"type":37,"value":568},{"type":27,"tag":206,"props":831,"children":832},{"style":247},[833],{"type":37,"value":524},{"type":27,"tag":206,"props":835,"children":837},{"class":208,"line":836},23,[838,843,847,851],{"type":27,"tag":206,"props":839,"children":840},{"style":383},[841],{"type":37,"value":842},"        sendConfirmation",{"type":27,"tag":206,"props":844,"children":845},{"style":247},[846],{"type":37,"value":391},{"type":27,"tag":206,"props":848,"children":849},{"style":229},[850],{"type":37,"value":438},{"type":27,"tag":206,"props":852,"children":853},{"style":247},[854],{"type":37,"value":524},{"type":27,"tag":206,"props":856,"children":858},{"class":208,"line":857},24,[859,863,867],{"type":27,"tag":206,"props":860,"children":861},{"style":247},[862],{"type":37,"value":619},{"type":27,"tag":206,"props":864,"children":865},{"style":223},[866],{"type":37,"value":624},{"type":27,"tag":206,"props":868,"children":869},{"style":247},[870],{"type":37,"value":412},{"type":27,"tag":206,"props":872,"children":874},{"class":208,"line":873},25,[875,880],{"type":27,"tag":206,"props":876,"children":877},{"style":383},[878],{"type":37,"value":879},"        handleInvalidOrder",{"type":27,"tag":206,"props":881,"children":882},{"style":247},[883],{"type":37,"value":884},"();\n",{"type":27,"tag":206,"props":886,"children":888},{"class":208,"line":887},26,[889],{"type":27,"tag":206,"props":890,"children":891},{"style":247},[892],{"type":37,"value":678},{"type":27,"tag":206,"props":894,"children":896},{"class":208,"line":895},27,[897],{"type":27,"tag":206,"props":898,"children":899},{"style":247},[900],{"type":37,"value":687},{"type":27,"tag":206,"props":902,"children":904},{"class":208,"line":903},28,[905],{"type":27,"tag":206,"props":906,"children":907},{"emptyLinePlaceholder":12},[908],{"type":37,"value":259},{"type":27,"tag":206,"props":910,"children":912},{"class":208,"line":911},29,[913,918,923,927,931,935,939,943],{"type":27,"tag":206,"props":914,"children":915},{"style":223},[916],{"type":37,"value":917},"private",{"type":27,"tag":206,"props":919,"children":920},{"style":223},[921],{"type":37,"value":922}," double",{"type":27,"tag":206,"props":924,"children":925},{"style":383},[926],{"type":37,"value":793},{"type":27,"tag":206,"props":928,"children":929},{"style":247},[930],{"type":37,"value":391},{"type":27,"tag":206,"props":932,"children":933},{"style":394},[934],{"type":37,"value":397},{"type":27,"tag":206,"props":936,"children":937},{"style":229},[938],{"type":37,"value":402},{"type":27,"tag":206,"props":940,"children":941},{"style":247},[942],{"type":37,"value":407},{"type":27,"tag":206,"props":944,"children":945},{"style":247},[946],{"type":37,"value":412},{"type":27,"tag":206,"props":948,"children":950},{"class":208,"line":949},30,[951,956,960,964,968,972,976,980,984,988],{"type":27,"tag":206,"props":952,"children":953},{"style":223},[954],{"type":37,"value":955},"    return",{"type":27,"tag":206,"props":957,"children":958},{"style":229},[959],{"type":37,"value":402},{"type":27,"tag":206,"props":961,"children":962},{"style":247},[963],{"type":37,"value":443},{"type":27,"tag":206,"props":965,"children":966},{"style":383},[967],{"type":37,"value":496},{"type":27,"tag":206,"props":969,"children":970},{"style":247},[971],{"type":37,"value":501},{"type":27,"tag":206,"props":973,"children":974},{"style":235},[975],{"type":37,"value":506},{"type":27,"tag":206,"props":977,"children":978},{"style":383},[979],{"type":37,"value":511},{"type":27,"tag":206,"props":981,"children":982},{"style":247},[983],{"type":37,"value":391},{"type":27,"tag":206,"props":985,"children":986},{"style":229},[987],{"type":37,"value":438},{"type":27,"tag":206,"props":989,"children":990},{"style":247},[991],{"type":37,"value":524},{"type":27,"tag":206,"props":993,"children":995},{"class":208,"line":994},31,[996],{"type":27,"tag":206,"props":997,"children":998},{"style":247},[999],{"type":37,"value":687},{"type":27,"tag":206,"props":1001,"children":1003},{"class":208,"line":1002},32,[1004],{"type":27,"tag":206,"props":1005,"children":1006},{"emptyLinePlaceholder":12},[1007],{"type":37,"value":259},{"type":27,"tag":206,"props":1009,"children":1011},{"class":208,"line":1010},33,[1012,1016,1020,1025,1029,1033,1037,1041,1045,1049,1053],{"type":27,"tag":206,"props":1013,"children":1014},{"style":223},[1015],{"type":37,"value":917},{"type":27,"tag":206,"props":1017,"children":1018},{"style":223},[1019],{"type":37,"value":380},{"type":27,"tag":206,"props":1021,"children":1022},{"style":383},[1023],{"type":37,"value":1024}," processPayment",{"type":27,"tag":206,"props":1026,"children":1027},{"style":247},[1028],{"type":37,"value":391},{"type":27,"tag":206,"props":1030,"children":1031},{"style":394},[1032],{"type":37,"value":397},{"type":27,"tag":206,"props":1034,"children":1035},{"style":229},[1036],{"type":37,"value":402},{"type":27,"tag":206,"props":1038,"children":1039},{"style":247},[1040],{"type":37,"value":563},{"type":27,"tag":206,"props":1042,"children":1043},{"style":223},[1044],{"type":37,"value":922},{"type":27,"tag":206,"props":1046,"children":1047},{"style":229},[1048],{"type":37,"value":568},{"type":27,"tag":206,"props":1050,"children":1051},{"style":247},[1052],{"type":37,"value":407},{"type":27,"tag":206,"props":1054,"children":1055},{"style":247},[1056],{"type":37,"value":412},{"type":27,"tag":206,"props":1058,"children":1060},{"class":208,"line":1059},34,[1061],{"type":27,"tag":206,"props":1062,"children":1063},{"style":213},[1064],{"type":37,"value":1065},"    // Code pour traiter le paiement\n",{"type":27,"tag":206,"props":1067,"children":1069},{"class":208,"line":1068},35,[1070],{"type":27,"tag":206,"props":1071,"children":1072},{"style":247},[1073],{"type":37,"value":687},{"type":27,"tag":206,"props":1075,"children":1077},{"class":208,"line":1076},36,[1078],{"type":27,"tag":206,"props":1079,"children":1080},{"emptyLinePlaceholder":12},[1081],{"type":37,"value":259},{"type":27,"tag":206,"props":1083,"children":1085},{"class":208,"line":1084},37,[1086,1090,1094,1099,1103,1107,1111,1115],{"type":27,"tag":206,"props":1087,"children":1088},{"style":223},[1089],{"type":37,"value":917},{"type":27,"tag":206,"props":1091,"children":1092},{"style":223},[1093],{"type":37,"value":380},{"type":27,"tag":206,"props":1095,"children":1096},{"style":383},[1097],{"type":37,"value":1098}," sendConfirmation",{"type":27,"tag":206,"props":1100,"children":1101},{"style":247},[1102],{"type":37,"value":391},{"type":27,"tag":206,"props":1104,"children":1105},{"style":394},[1106],{"type":37,"value":397},{"type":27,"tag":206,"props":1108,"children":1109},{"style":229},[1110],{"type":37,"value":402},{"type":27,"tag":206,"props":1112,"children":1113},{"style":247},[1114],{"type":37,"value":407},{"type":27,"tag":206,"props":1116,"children":1117},{"style":247},[1118],{"type":37,"value":412},{"type":27,"tag":206,"props":1120,"children":1122},{"class":208,"line":1121},38,[1123],{"type":27,"tag":206,"props":1124,"children":1125},{"style":213},[1126],{"type":37,"value":1127},"    // Code pour envoyer l'email de confirmation\n",{"type":27,"tag":206,"props":1129,"children":1131},{"class":208,"line":1130},39,[1132],{"type":27,"tag":206,"props":1133,"children":1134},{"style":247},[1135],{"type":37,"value":687},{"type":27,"tag":206,"props":1137,"children":1139},{"class":208,"line":1138},40,[1140],{"type":27,"tag":206,"props":1141,"children":1142},{"emptyLinePlaceholder":12},[1143],{"type":37,"value":259},{"type":27,"tag":206,"props":1145,"children":1147},{"class":208,"line":1146},41,[1148,1152,1156,1161,1165],{"type":27,"tag":206,"props":1149,"children":1150},{"style":223},[1151],{"type":37,"value":917},{"type":27,"tag":206,"props":1153,"children":1154},{"style":223},[1155],{"type":37,"value":380},{"type":27,"tag":206,"props":1157,"children":1158},{"style":383},[1159],{"type":37,"value":1160}," handleInvalidOrder",{"type":27,"tag":206,"props":1162,"children":1163},{"style":247},[1164],{"type":37,"value":501},{"type":27,"tag":206,"props":1166,"children":1167},{"style":247},[1168],{"type":37,"value":412},{"type":27,"tag":206,"props":1170,"children":1172},{"class":208,"line":1171},42,[1173,1178,1182,1186,1190,1194,1198,1202],{"type":27,"tag":206,"props":1174,"children":1175},{"style":229},[1176],{"type":37,"value":1177},"    System",{"type":27,"tag":206,"props":1179,"children":1180},{"style":247},[1181],{"type":37,"value":443},{"type":27,"tag":206,"props":1183,"children":1184},{"style":229},[1185],{"type":37,"value":646},{"type":27,"tag":206,"props":1187,"children":1188},{"style":247},[1189],{"type":37,"value":443},{"type":27,"tag":206,"props":1191,"children":1192},{"style":383},[1193],{"type":37,"value":655},{"type":27,"tag":206,"props":1195,"children":1196},{"style":247},[1197],{"type":37,"value":391},{"type":27,"tag":206,"props":1199,"children":1200},{"style":662},[1201],{"type":37,"value":665},{"type":27,"tag":206,"props":1203,"children":1204},{"style":247},[1205],{"type":37,"value":524},{"type":27,"tag":206,"props":1207,"children":1209},{"class":208,"line":1208},43,[1210],{"type":27,"tag":206,"props":1211,"children":1212},{"style":247},[1213],{"type":37,"value":687},{"type":27,"tag":50,"props":1215,"children":1216},{},[1217,1219,1225],{"type":37,"value":1218},"Dans le second exemple, chaque étape du processus est divisée en fonctions plus petites et spécifiques. La fonction ",{"type":27,"tag":202,"props":1220,"children":1222},{"className":1221},[],[1223],{"type":37,"value":1224},"processOrder",{"type":37,"value":1226}," ne fait plus qu'orchestrer les étapes, tandis que les détails comme le calcul du total ou l'envoi de l'email de confirmation sont délégués à des fonctions plus courtes et plus ciblées.",{"type":27,"tag":316,"props":1228,"children":1229},{"type":318},[1230],{"type":27,"tag":50,"props":1231,"children":1232},{},[1233],{"type":37,"value":1234},"Si vous voyez des commentaires dans votre code pour expliquer ce que fait une fonction, c'est souvent le signe que cette fonction fait trop de choses. Utilisez ce commentaire pour scinder la fonction en plusieurs petites.",{"type":27,"tag":136,"props":1236,"children":1237},{},[],{"type":27,"tag":1239,"props":1240,"children":1245},"cta",{"cta":1241,"href":1242,"title":1243,"type":1244},"Réserver mon diagnostic gratuit →","https://app.kamanga.fr/forms/discovery-call","Vous revenez sur du code écrit il y a 6 mois et vous ne comprenez plus rien ?","call",[1246],{"type":27,"tag":50,"props":1247,"children":1248},{},[1249],{"type":37,"value":1250},"Chaque bug fix prend 3x plus de temps que prévu, les nouvelles recrues mettent des semaines à être productives, et l'équipe passe plus de temps à décrypter qu'à créer. Réservons 30 minutes pour diagnostiquer les vrais blocages de qualité dans votre équipe et définir un plan de redressement.",{"type":27,"tag":40,"props":1252,"children":1254},{"id":1253},"_3-comment-structurer-le-code-pour-le-rendre-lisible",[1255],{"type":27,"tag":33,"props":1256,"children":1257},{},[1258],{"type":37,"value":1259},"3. Comment structurer le code pour le rendre lisible",{"type":27,"tag":50,"props":1261,"children":1262},{},[1263,1265,1269,1271,1276],{"type":37,"value":1264},"La lisibilité du code est essentielle pour un ",{"type":27,"tag":33,"props":1266,"children":1267},{},[1268],{"type":37,"value":64},{"type":37,"value":1270},". Un code bien structuré est celui qui peut être compris facilement par un autre développeur, même sans explication supplémentaire. Pour cela, je vous recommande de suivre une ",{"type":27,"tag":33,"props":1272,"children":1273},{},[1274],{"type":37,"value":1275},"hiérarchie logique",{"type":37,"value":1277}," et d'éviter les longs blocs de code imbriqués.",{"type":27,"tag":50,"props":1279,"children":1280},{},[1281],{"type":27,"tag":33,"props":1282,"children":1283},{},[1284],{"type":37,"value":193},{"type":27,"tag":195,"props":1286,"children":1288},{"className":197,"code":1287,"language":199,"meta":7,"style":7},"// Mauvais exemple\nif (isValidUser(user)) {\n    if (hasSufficientBalance(user)) {\n        processPayment();\n    } else {\n        // ...\n    }\n} else {\n    // ...\n}\n\n// Meilleur exemple\nif (!isValidUser(user)) {\n    return;\n}\n\nif (!hasSufficientBalance(user)) {\n    return;\n}\n\nprocessPayment();\n",[1289],{"type":27,"tag":202,"props":1290,"children":1291},{"__ignoreMap":7},[1292,1299,1334,1366,1377,1392,1400,1407,1423,1431,1438,1445,1452,1488,1499,1506,1513,1548,1559,1566,1573],{"type":27,"tag":206,"props":1293,"children":1294},{"class":208,"line":209},[1295],{"type":27,"tag":206,"props":1296,"children":1297},{"style":213},[1298],{"type":37,"value":216},{"type":27,"tag":206,"props":1300,"children":1301},{"class":208,"line":219},[1302,1307,1311,1316,1320,1325,1330],{"type":27,"tag":206,"props":1303,"children":1304},{"style":223},[1305],{"type":37,"value":1306},"if",{"type":27,"tag":206,"props":1308,"children":1309},{"style":247},[1310],{"type":37,"value":433},{"type":27,"tag":206,"props":1312,"children":1313},{"style":383},[1314],{"type":37,"value":1315},"isValidUser",{"type":27,"tag":206,"props":1317,"children":1318},{"style":247},[1319],{"type":37,"value":391},{"type":27,"tag":206,"props":1321,"children":1322},{"style":229},[1323],{"type":37,"value":1324},"user",{"type":27,"tag":206,"props":1326,"children":1327},{"style":247},[1328],{"type":37,"value":1329},"))",{"type":27,"tag":206,"props":1331,"children":1332},{"style":247},[1333],{"type":37,"value":412},{"type":27,"tag":206,"props":1335,"children":1336},{"class":208,"line":253},[1337,1341,1345,1350,1354,1358,1362],{"type":27,"tag":206,"props":1338,"children":1339},{"style":223},[1340],{"type":37,"value":428},{"type":27,"tag":206,"props":1342,"children":1343},{"style":247},[1344],{"type":37,"value":433},{"type":27,"tag":206,"props":1346,"children":1347},{"style":383},[1348],{"type":37,"value":1349},"hasSufficientBalance",{"type":27,"tag":206,"props":1351,"children":1352},{"style":247},[1353],{"type":37,"value":391},{"type":27,"tag":206,"props":1355,"children":1356},{"style":229},[1357],{"type":37,"value":1324},{"type":27,"tag":206,"props":1359,"children":1360},{"style":247},[1361],{"type":37,"value":1329},{"type":27,"tag":206,"props":1363,"children":1364},{"style":247},[1365],{"type":37,"value":412},{"type":27,"tag":206,"props":1367,"children":1368},{"class":208,"line":262},[1369,1373],{"type":27,"tag":206,"props":1370,"children":1371},{"style":383},[1372],{"type":37,"value":550},{"type":27,"tag":206,"props":1374,"children":1375},{"style":247},[1376],{"type":37,"value":884},{"type":27,"tag":206,"props":1378,"children":1379},{"class":208,"line":271},[1380,1384,1388],{"type":27,"tag":206,"props":1381,"children":1382},{"style":247},[1383],{"type":37,"value":619},{"type":27,"tag":206,"props":1385,"children":1386},{"style":223},[1387],{"type":37,"value":624},{"type":27,"tag":206,"props":1389,"children":1390},{"style":247},[1391],{"type":37,"value":412},{"type":27,"tag":206,"props":1393,"children":1394},{"class":208,"line":468},[1395],{"type":27,"tag":206,"props":1396,"children":1397},{"style":213},[1398],{"type":37,"value":1399},"        // ...\n",{"type":27,"tag":206,"props":1401,"children":1402},{"class":208,"line":527},[1403],{"type":27,"tag":206,"props":1404,"children":1405},{"style":247},[1406],{"type":37,"value":678},{"type":27,"tag":206,"props":1408,"children":1409},{"class":208,"line":535},[1410,1415,1419],{"type":27,"tag":206,"props":1411,"children":1412},{"style":247},[1413],{"type":37,"value":1414},"}",{"type":27,"tag":206,"props":1416,"children":1417},{"style":223},[1418],{"type":37,"value":624},{"type":27,"tag":206,"props":1420,"children":1421},{"style":247},[1422],{"type":37,"value":412},{"type":27,"tag":206,"props":1424,"children":1425},{"class":208,"line":544},[1426],{"type":27,"tag":206,"props":1427,"children":1428},{"style":213},[1429],{"type":37,"value":1430},"    // ...\n",{"type":27,"tag":206,"props":1432,"children":1433},{"class":208,"line":575},[1434],{"type":27,"tag":206,"props":1435,"children":1436},{"style":247},[1437],{"type":37,"value":687},{"type":27,"tag":206,"props":1439,"children":1440},{"class":208,"line":583},[1441],{"type":27,"tag":206,"props":1442,"children":1443},{"emptyLinePlaceholder":12},[1444],{"type":37,"value":259},{"type":27,"tag":206,"props":1446,"children":1447},{"class":208,"line":592},[1448],{"type":27,"tag":206,"props":1449,"children":1450},{"style":213},[1451],{"type":37,"value":268},{"type":27,"tag":206,"props":1453,"children":1454},{"class":208,"line":613},[1455,1459,1463,1468,1472,1476,1480,1484],{"type":27,"tag":206,"props":1456,"children":1457},{"style":223},[1458],{"type":37,"value":1306},{"type":27,"tag":206,"props":1460,"children":1461},{"style":247},[1462],{"type":37,"value":433},{"type":27,"tag":206,"props":1464,"children":1465},{"style":235},[1466],{"type":37,"value":1467},"!",{"type":27,"tag":206,"props":1469,"children":1470},{"style":383},[1471],{"type":37,"value":1315},{"type":27,"tag":206,"props":1473,"children":1474},{"style":247},[1475],{"type":37,"value":391},{"type":27,"tag":206,"props":1477,"children":1478},{"style":229},[1479],{"type":37,"value":1324},{"type":27,"tag":206,"props":1481,"children":1482},{"style":247},[1483],{"type":37,"value":1329},{"type":27,"tag":206,"props":1485,"children":1486},{"style":247},[1487],{"type":37,"value":412},{"type":27,"tag":206,"props":1489,"children":1490},{"class":208,"line":631},[1491,1495],{"type":27,"tag":206,"props":1492,"children":1493},{"style":223},[1494],{"type":37,"value":955},{"type":27,"tag":206,"props":1496,"children":1497},{"style":247},[1498],{"type":37,"value":250},{"type":27,"tag":206,"props":1500,"children":1501},{"class":208,"line":672},[1502],{"type":27,"tag":206,"props":1503,"children":1504},{"style":247},[1505],{"type":37,"value":687},{"type":27,"tag":206,"props":1507,"children":1508},{"class":208,"line":681},[1509],{"type":27,"tag":206,"props":1510,"children":1511},{"emptyLinePlaceholder":12},[1512],{"type":37,"value":259},{"type":27,"tag":206,"props":1514,"children":1515},{"class":208,"line":690},[1516,1520,1524,1528,1532,1536,1540,1544],{"type":27,"tag":206,"props":1517,"children":1518},{"style":223},[1519],{"type":37,"value":1306},{"type":27,"tag":206,"props":1521,"children":1522},{"style":247},[1523],{"type":37,"value":433},{"type":27,"tag":206,"props":1525,"children":1526},{"style":235},[1527],{"type":37,"value":1467},{"type":27,"tag":206,"props":1529,"children":1530},{"style":383},[1531],{"type":37,"value":1349},{"type":27,"tag":206,"props":1533,"children":1534},{"style":247},[1535],{"type":37,"value":391},{"type":27,"tag":206,"props":1537,"children":1538},{"style":229},[1539],{"type":37,"value":1324},{"type":27,"tag":206,"props":1541,"children":1542},{"style":247},[1543],{"type":37,"value":1329},{"type":27,"tag":206,"props":1545,"children":1546},{"style":247},[1547],{"type":37,"value":412},{"type":27,"tag":206,"props":1549,"children":1550},{"class":208,"line":698},[1551,1555],{"type":27,"tag":206,"props":1552,"children":1553},{"style":223},[1554],{"type":37,"value":955},{"type":27,"tag":206,"props":1556,"children":1557},{"style":247},[1558],{"type":37,"value":250},{"type":27,"tag":206,"props":1560,"children":1561},{"class":208,"line":707},[1562],{"type":27,"tag":206,"props":1563,"children":1564},{"style":247},[1565],{"type":37,"value":687},{"type":27,"tag":206,"props":1567,"children":1568},{"class":208,"line":743},[1569],{"type":27,"tag":206,"props":1570,"children":1571},{"emptyLinePlaceholder":12},[1572],{"type":37,"value":259},{"type":27,"tag":206,"props":1574,"children":1575},{"class":208,"line":775},[1576,1581],{"type":27,"tag":206,"props":1577,"children":1578},{"style":383},[1579],{"type":37,"value":1580},"processPayment",{"type":27,"tag":206,"props":1582,"children":1583},{"style":247},[1584],{"type":37,"value":884},{"type":27,"tag":50,"props":1586,"children":1587},{},[1588],{"type":37,"value":1589},"Dans le deuxième exemple, la structure est plus claire : chaque condition est traitée séparément, et on élimine les cas d'erreur au début. Cela permet à celui qui lit le code de suivre le flux de manière plus fluide.",{"type":27,"tag":136,"props":1591,"children":1592},{},[],{"type":27,"tag":28,"props":1594,"children":1596},{"id":1595},"exemples-de-clean-code-en-java",[1597],{"type":27,"tag":33,"props":1598,"children":1599},{},[1600],{"type":37,"value":1601},"Exemples de Clean Code en Java",{"type":27,"tag":50,"props":1603,"children":1604},{},[1605,1607,1611,1613,1617],{"type":37,"value":1606},"Rien ne vaut des exemples concrets pour mieux comprendre comment appliquer les principes du ",{"type":27,"tag":33,"props":1608,"children":1609},{},[1610],{"type":37,"value":64},{"type":37,"value":1612},". Voici quelques exemples pratiques en ",{"type":27,"tag":33,"props":1614,"children":1615},{},[1616],{"type":37,"value":132},{"type":37,"value":1618},", basés sur les principes vus précédemment. Ces exemples vous montreront comment améliorer la clarté, la lisibilité et la maintenabilité de votre code.",{"type":27,"tag":40,"props":1620,"children":1622},{"id":1621},"_1-variables-bien-nommées",[1623],{"type":27,"tag":33,"props":1624,"children":1625},{},[1626],{"type":37,"value":1627},"1. Variables bien nommées",{"type":27,"tag":50,"props":1629,"children":1630},{},[1631,1633,1637],{"type":37,"value":1632},"Donner des noms explicites aux variables est l'une des bases du ",{"type":27,"tag":33,"props":1634,"children":1635},{},[1636],{"type":37,"value":64},{"type":37,"value":1638},". Cela permet de rendre votre code compréhensible sans avoir besoin de commentaires supplémentaires.",{"type":27,"tag":50,"props":1640,"children":1641},{},[1642],{"type":27,"tag":33,"props":1643,"children":1644},{},[1645],{"type":37,"value":193},{"type":27,"tag":195,"props":1647,"children":1649},{"className":197,"code":1648,"language":199,"meta":7,"style":7},"// Mauvais exemple\ndouble v = getVolume();\n\n// Meilleur exemple\ndouble volumeDeLaBoite = getVolume();\n",[1650],{"type":27,"tag":202,"props":1651,"children":1652},{"__ignoreMap":7},[1653,1660,1686,1693,1700],{"type":27,"tag":206,"props":1654,"children":1655},{"class":208,"line":209},[1656],{"type":27,"tag":206,"props":1657,"children":1658},{"style":213},[1659],{"type":37,"value":216},{"type":27,"tag":206,"props":1661,"children":1662},{"class":208,"line":219},[1663,1668,1673,1677,1682],{"type":27,"tag":206,"props":1664,"children":1665},{"style":223},[1666],{"type":37,"value":1667},"double",{"type":27,"tag":206,"props":1669,"children":1670},{"style":229},[1671],{"type":37,"value":1672}," v ",{"type":27,"tag":206,"props":1674,"children":1675},{"style":235},[1676],{"type":37,"value":238},{"type":27,"tag":206,"props":1678,"children":1679},{"style":383},[1680],{"type":37,"value":1681}," getVolume",{"type":27,"tag":206,"props":1683,"children":1684},{"style":247},[1685],{"type":37,"value":884},{"type":27,"tag":206,"props":1687,"children":1688},{"class":208,"line":253},[1689],{"type":27,"tag":206,"props":1690,"children":1691},{"emptyLinePlaceholder":12},[1692],{"type":37,"value":259},{"type":27,"tag":206,"props":1694,"children":1695},{"class":208,"line":262},[1696],{"type":27,"tag":206,"props":1697,"children":1698},{"style":213},[1699],{"type":37,"value":268},{"type":27,"tag":206,"props":1701,"children":1702},{"class":208,"line":271},[1703,1707,1712,1716,1720],{"type":27,"tag":206,"props":1704,"children":1705},{"style":223},[1706],{"type":37,"value":1667},{"type":27,"tag":206,"props":1708,"children":1709},{"style":229},[1710],{"type":37,"value":1711}," volumeDeLaBoite ",{"type":27,"tag":206,"props":1713,"children":1714},{"style":235},[1715],{"type":37,"value":238},{"type":27,"tag":206,"props":1717,"children":1718},{"style":383},[1719],{"type":37,"value":1681},{"type":27,"tag":206,"props":1721,"children":1722},{"style":247},[1723],{"type":37,"value":884},{"type":27,"tag":50,"props":1725,"children":1726},{},[1727,1729,1735,1737,1743],{"type":37,"value":1728},"Dans le second exemple, le nom ",{"type":27,"tag":202,"props":1730,"children":1732},{"className":1731},[],[1733],{"type":37,"value":1734},"volumeDeLaBoite",{"type":37,"value":1736}," explique clairement ce que représente cette donnée, tandis que ",{"type":27,"tag":202,"props":1738,"children":1740},{"className":1739},[],[1741],{"type":37,"value":1742},"v",{"type":37,"value":1744}," est trop vague. On facilite ainsi la compréhension du code sans avoir besoin de lire toute la logique.",{"type":27,"tag":316,"props":1746,"children":1747},{"type":318},[1748],{"type":27,"tag":50,"props":1749,"children":1750},{},[1751,1753,1758,1760,1765,1767,1772,1774,1778],{"type":37,"value":1752},"Un bon nom de variable devrait dire ",{"type":27,"tag":33,"props":1754,"children":1755},{},[1756],{"type":37,"value":1757},"quoi",{"type":37,"value":1759},", pas ",{"type":27,"tag":33,"props":1761,"children":1762},{},[1763],{"type":37,"value":1764},"comment",{"type":37,"value":1766},". Par exemple, ",{"type":27,"tag":202,"props":1768,"children":1770},{"className":1769},[],[1771],{"type":37,"value":1734},{"type":37,"value":1773}," explique ",{"type":27,"tag":33,"props":1775,"children":1776},{},[1777],{"type":37,"value":1757},{"type":37,"value":1779}," mesure cette variable, pas comment elle est calculée.",{"type":27,"tag":136,"props":1781,"children":1782},{},[],{"type":27,"tag":40,"props":1784,"children":1786},{"id":1785},"_2-fonctions-courtes-et-focalisées",[1787],{"type":27,"tag":33,"props":1788,"children":1789},{},[1790],{"type":37,"value":1791},"2. Fonctions courtes et focalisées",{"type":27,"tag":50,"props":1793,"children":1794},{},[1795],{"type":37,"value":1796},"Une bonne fonction doit être courte et se concentrer sur une seule responsabilité. Cela rend votre code plus lisible et plus facile à tester.",{"type":27,"tag":50,"props":1798,"children":1799},{},[1800],{"type":27,"tag":33,"props":1801,"children":1802},{},[1803],{"type":37,"value":193},{"type":27,"tag":195,"props":1805,"children":1807},{"className":197,"code":1806,"language":199,"meta":7,"style":7},"// Mauvais exemple\npublic void calculerEtEnvoyerFacture(Client client) {\n    // Calcul des montants\n    double montantHT = client.getPrixHT();\n    double taxe = montantHT * 0.2;\n    double montantTotal = montantHT + taxe;\n    \n    // Envoi du mail\n    String message = \"Facture envoyée\";\n    envoyerMail(client.getEmail(), message);\n}\n\n// Meilleur exemple\npublic double calculerMontantTotal(Client client) {\n    double montantHT = client.getPrixHT();\n    double taxe = montantHT * 0.2;\n    return montantHT + taxe;\n}\n\npublic void envoyerFacture(Client client) {\n    envoyerMail(client.getEmail(), \"Facture envoyée\");\n}\n",[1808],{"type":27,"tag":202,"props":1809,"children":1810},{"__ignoreMap":7},[1811,1818,1856,1864,1898,1932,1966,1974,1982,2008,2048,2055,2062,2069,2105,2136,2167,2190,2197,2204,2240,2275],{"type":27,"tag":206,"props":1812,"children":1813},{"class":208,"line":209},[1814],{"type":27,"tag":206,"props":1815,"children":1816},{"style":213},[1817],{"type":37,"value":216},{"type":27,"tag":206,"props":1819,"children":1820},{"class":208,"line":219},[1821,1825,1829,1834,1838,1843,1848,1852],{"type":27,"tag":206,"props":1822,"children":1823},{"style":223},[1824],{"type":37,"value":375},{"type":27,"tag":206,"props":1826,"children":1827},{"style":223},[1828],{"type":37,"value":380},{"type":27,"tag":206,"props":1830,"children":1831},{"style":383},[1832],{"type":37,"value":1833}," calculerEtEnvoyerFacture",{"type":27,"tag":206,"props":1835,"children":1836},{"style":247},[1837],{"type":37,"value":391},{"type":27,"tag":206,"props":1839,"children":1840},{"style":394},[1841],{"type":37,"value":1842},"Client",{"type":27,"tag":206,"props":1844,"children":1845},{"style":229},[1846],{"type":37,"value":1847}," client",{"type":27,"tag":206,"props":1849,"children":1850},{"style":247},[1851],{"type":37,"value":407},{"type":27,"tag":206,"props":1853,"children":1854},{"style":247},[1855],{"type":37,"value":412},{"type":27,"tag":206,"props":1857,"children":1858},{"class":208,"line":253},[1859],{"type":27,"tag":206,"props":1860,"children":1861},{"style":213},[1862],{"type":37,"value":1863},"    // Calcul des montants\n",{"type":27,"tag":206,"props":1865,"children":1866},{"class":208,"line":262},[1867,1872,1877,1881,1885,1889,1894],{"type":27,"tag":206,"props":1868,"children":1869},{"style":223},[1870],{"type":37,"value":1871},"    double",{"type":27,"tag":206,"props":1873,"children":1874},{"style":229},[1875],{"type":37,"value":1876}," montantHT ",{"type":27,"tag":206,"props":1878,"children":1879},{"style":235},[1880],{"type":37,"value":238},{"type":27,"tag":206,"props":1882,"children":1883},{"style":229},[1884],{"type":37,"value":1847},{"type":27,"tag":206,"props":1886,"children":1887},{"style":247},[1888],{"type":37,"value":443},{"type":27,"tag":206,"props":1890,"children":1891},{"style":383},[1892],{"type":37,"value":1893},"getPrixHT",{"type":27,"tag":206,"props":1895,"children":1896},{"style":247},[1897],{"type":37,"value":884},{"type":27,"tag":206,"props":1899,"children":1900},{"class":208,"line":271},[1901,1905,1910,1914,1918,1923,1928],{"type":27,"tag":206,"props":1902,"children":1903},{"style":223},[1904],{"type":37,"value":1871},{"type":27,"tag":206,"props":1906,"children":1907},{"style":229},[1908],{"type":37,"value":1909}," taxe ",{"type":27,"tag":206,"props":1911,"children":1912},{"style":235},[1913],{"type":37,"value":238},{"type":27,"tag":206,"props":1915,"children":1916},{"style":229},[1917],{"type":37,"value":1876},{"type":27,"tag":206,"props":1919,"children":1920},{"style":235},[1921],{"type":37,"value":1922},"*",{"type":27,"tag":206,"props":1924,"children":1925},{"style":241},[1926],{"type":37,"value":1927}," 0.2",{"type":27,"tag":206,"props":1929,"children":1930},{"style":247},[1931],{"type":37,"value":250},{"type":27,"tag":206,"props":1933,"children":1934},{"class":208,"line":468},[1935,1939,1944,1948,1952,1957,1962],{"type":27,"tag":206,"props":1936,"children":1937},{"style":223},[1938],{"type":37,"value":1871},{"type":27,"tag":206,"props":1940,"children":1941},{"style":229},[1942],{"type":37,"value":1943}," montantTotal ",{"type":27,"tag":206,"props":1945,"children":1946},{"style":235},[1947],{"type":37,"value":238},{"type":27,"tag":206,"props":1949,"children":1950},{"style":229},[1951],{"type":37,"value":1876},{"type":27,"tag":206,"props":1953,"children":1954},{"style":235},[1955],{"type":37,"value":1956},"+",{"type":27,"tag":206,"props":1958,"children":1959},{"style":229},[1960],{"type":37,"value":1961}," taxe",{"type":27,"tag":206,"props":1963,"children":1964},{"style":247},[1965],{"type":37,"value":250},{"type":27,"tag":206,"props":1967,"children":1968},{"class":208,"line":527},[1969],{"type":27,"tag":206,"props":1970,"children":1971},{"style":229},[1972],{"type":37,"value":1973},"    \n",{"type":27,"tag":206,"props":1975,"children":1976},{"class":208,"line":535},[1977],{"type":27,"tag":206,"props":1978,"children":1979},{"style":213},[1980],{"type":37,"value":1981},"    // Envoi du mail\n",{"type":27,"tag":206,"props":1983,"children":1984},{"class":208,"line":544},[1985,1990,1995,1999,2004],{"type":27,"tag":206,"props":1986,"children":1987},{"style":394},[1988],{"type":37,"value":1989},"    String",{"type":27,"tag":206,"props":1991,"children":1992},{"style":229},[1993],{"type":37,"value":1994}," message ",{"type":27,"tag":206,"props":1996,"children":1997},{"style":235},[1998],{"type":37,"value":238},{"type":27,"tag":206,"props":2000,"children":2001},{"style":662},[2002],{"type":37,"value":2003}," \"Facture envoyée\"",{"type":27,"tag":206,"props":2005,"children":2006},{"style":247},[2007],{"type":37,"value":250},{"type":27,"tag":206,"props":2009,"children":2010},{"class":208,"line":575},[2011,2016,2020,2025,2029,2034,2039,2044],{"type":27,"tag":206,"props":2012,"children":2013},{"style":383},[2014],{"type":37,"value":2015},"    envoyerMail",{"type":27,"tag":206,"props":2017,"children":2018},{"style":247},[2019],{"type":37,"value":391},{"type":27,"tag":206,"props":2021,"children":2022},{"style":229},[2023],{"type":37,"value":2024},"client",{"type":27,"tag":206,"props":2026,"children":2027},{"style":247},[2028],{"type":37,"value":443},{"type":27,"tag":206,"props":2030,"children":2031},{"style":383},[2032],{"type":37,"value":2033},"getEmail",{"type":27,"tag":206,"props":2035,"children":2036},{"style":247},[2037],{"type":37,"value":2038},"(),",{"type":27,"tag":206,"props":2040,"children":2041},{"style":229},[2042],{"type":37,"value":2043}," message",{"type":27,"tag":206,"props":2045,"children":2046},{"style":247},[2047],{"type":37,"value":524},{"type":27,"tag":206,"props":2049,"children":2050},{"class":208,"line":583},[2051],{"type":27,"tag":206,"props":2052,"children":2053},{"style":247},[2054],{"type":37,"value":687},{"type":27,"tag":206,"props":2056,"children":2057},{"class":208,"line":592},[2058],{"type":27,"tag":206,"props":2059,"children":2060},{"emptyLinePlaceholder":12},[2061],{"type":37,"value":259},{"type":27,"tag":206,"props":2063,"children":2064},{"class":208,"line":613},[2065],{"type":27,"tag":206,"props":2066,"children":2067},{"style":213},[2068],{"type":37,"value":268},{"type":27,"tag":206,"props":2070,"children":2071},{"class":208,"line":631},[2072,2076,2080,2085,2089,2093,2097,2101],{"type":27,"tag":206,"props":2073,"children":2074},{"style":223},[2075],{"type":37,"value":375},{"type":27,"tag":206,"props":2077,"children":2078},{"style":223},[2079],{"type":37,"value":922},{"type":27,"tag":206,"props":2081,"children":2082},{"style":383},[2083],{"type":37,"value":2084}," calculerMontantTotal",{"type":27,"tag":206,"props":2086,"children":2087},{"style":247},[2088],{"type":37,"value":391},{"type":27,"tag":206,"props":2090,"children":2091},{"style":394},[2092],{"type":37,"value":1842},{"type":27,"tag":206,"props":2094,"children":2095},{"style":229},[2096],{"type":37,"value":1847},{"type":27,"tag":206,"props":2098,"children":2099},{"style":247},[2100],{"type":37,"value":407},{"type":27,"tag":206,"props":2102,"children":2103},{"style":247},[2104],{"type":37,"value":412},{"type":27,"tag":206,"props":2106,"children":2107},{"class":208,"line":672},[2108,2112,2116,2120,2124,2128,2132],{"type":27,"tag":206,"props":2109,"children":2110},{"style":223},[2111],{"type":37,"value":1871},{"type":27,"tag":206,"props":2113,"children":2114},{"style":229},[2115],{"type":37,"value":1876},{"type":27,"tag":206,"props":2117,"children":2118},{"style":235},[2119],{"type":37,"value":238},{"type":27,"tag":206,"props":2121,"children":2122},{"style":229},[2123],{"type":37,"value":1847},{"type":27,"tag":206,"props":2125,"children":2126},{"style":247},[2127],{"type":37,"value":443},{"type":27,"tag":206,"props":2129,"children":2130},{"style":383},[2131],{"type":37,"value":1893},{"type":27,"tag":206,"props":2133,"children":2134},{"style":247},[2135],{"type":37,"value":884},{"type":27,"tag":206,"props":2137,"children":2138},{"class":208,"line":681},[2139,2143,2147,2151,2155,2159,2163],{"type":27,"tag":206,"props":2140,"children":2141},{"style":223},[2142],{"type":37,"value":1871},{"type":27,"tag":206,"props":2144,"children":2145},{"style":229},[2146],{"type":37,"value":1909},{"type":27,"tag":206,"props":2148,"children":2149},{"style":235},[2150],{"type":37,"value":238},{"type":27,"tag":206,"props":2152,"children":2153},{"style":229},[2154],{"type":37,"value":1876},{"type":27,"tag":206,"props":2156,"children":2157},{"style":235},[2158],{"type":37,"value":1922},{"type":27,"tag":206,"props":2160,"children":2161},{"style":241},[2162],{"type":37,"value":1927},{"type":27,"tag":206,"props":2164,"children":2165},{"style":247},[2166],{"type":37,"value":250},{"type":27,"tag":206,"props":2168,"children":2169},{"class":208,"line":690},[2170,2174,2178,2182,2186],{"type":27,"tag":206,"props":2171,"children":2172},{"style":223},[2173],{"type":37,"value":955},{"type":27,"tag":206,"props":2175,"children":2176},{"style":229},[2177],{"type":37,"value":1876},{"type":27,"tag":206,"props":2179,"children":2180},{"style":235},[2181],{"type":37,"value":1956},{"type":27,"tag":206,"props":2183,"children":2184},{"style":229},[2185],{"type":37,"value":1961},{"type":27,"tag":206,"props":2187,"children":2188},{"style":247},[2189],{"type":37,"value":250},{"type":27,"tag":206,"props":2191,"children":2192},{"class":208,"line":698},[2193],{"type":27,"tag":206,"props":2194,"children":2195},{"style":247},[2196],{"type":37,"value":687},{"type":27,"tag":206,"props":2198,"children":2199},{"class":208,"line":707},[2200],{"type":27,"tag":206,"props":2201,"children":2202},{"emptyLinePlaceholder":12},[2203],{"type":37,"value":259},{"type":27,"tag":206,"props":2205,"children":2206},{"class":208,"line":743},[2207,2211,2215,2220,2224,2228,2232,2236],{"type":27,"tag":206,"props":2208,"children":2209},{"style":223},[2210],{"type":37,"value":375},{"type":27,"tag":206,"props":2212,"children":2213},{"style":223},[2214],{"type":37,"value":380},{"type":27,"tag":206,"props":2216,"children":2217},{"style":383},[2218],{"type":37,"value":2219}," envoyerFacture",{"type":27,"tag":206,"props":2221,"children":2222},{"style":247},[2223],{"type":37,"value":391},{"type":27,"tag":206,"props":2225,"children":2226},{"style":394},[2227],{"type":37,"value":1842},{"type":27,"tag":206,"props":2229,"children":2230},{"style":229},[2231],{"type":37,"value":1847},{"type":27,"tag":206,"props":2233,"children":2234},{"style":247},[2235],{"type":37,"value":407},{"type":27,"tag":206,"props":2237,"children":2238},{"style":247},[2239],{"type":37,"value":412},{"type":27,"tag":206,"props":2241,"children":2242},{"class":208,"line":775},[2243,2247,2251,2255,2259,2263,2267,2271],{"type":27,"tag":206,"props":2244,"children":2245},{"style":383},[2246],{"type":37,"value":2015},{"type":27,"tag":206,"props":2248,"children":2249},{"style":247},[2250],{"type":37,"value":391},{"type":27,"tag":206,"props":2252,"children":2253},{"style":229},[2254],{"type":37,"value":2024},{"type":27,"tag":206,"props":2256,"children":2257},{"style":247},[2258],{"type":37,"value":443},{"type":27,"tag":206,"props":2260,"children":2261},{"style":383},[2262],{"type":37,"value":2033},{"type":27,"tag":206,"props":2264,"children":2265},{"style":247},[2266],{"type":37,"value":2038},{"type":27,"tag":206,"props":2268,"children":2269},{"style":662},[2270],{"type":37,"value":2003},{"type":27,"tag":206,"props":2272,"children":2273},{"style":247},[2274],{"type":37,"value":524},{"type":27,"tag":206,"props":2276,"children":2277},{"class":208,"line":808},[2278],{"type":27,"tag":206,"props":2279,"children":2280},{"style":247},[2281],{"type":37,"value":687},{"type":27,"tag":50,"props":2283,"children":2284},{},[2285],{"type":37,"value":2286},"Dans le second exemple, la logique de calcul est séparée de la logique d'envoi d'email, ce qui permet une meilleure lisibilité et une plus grande facilité pour tester chaque fonction individuellement.",{"type":27,"tag":316,"props":2288,"children":2289},{"type":318},[2290],{"type":27,"tag":50,"props":2291,"children":2292},{},[2293],{"type":37,"value":2294},"Si une fonction fait plus de 20 lignes, demandez-vous s'il est possible de la diviser en plusieurs fonctions plus petites. Cela aidera non seulement à la rendre plus lisible, mais aussi à isoler les responsabilités.",{"type":27,"tag":136,"props":2296,"children":2297},{},[],{"type":27,"tag":40,"props":2299,"children":2301},{"id":2300},"_3-bonne-gestion-des-exceptions",[2302],{"type":27,"tag":33,"props":2303,"children":2304},{},[2305],{"type":37,"value":2306},"3. Bonne gestion des exceptions",{"type":27,"tag":50,"props":2308,"children":2309},{},[2310],{"type":37,"value":2311},"La gestion des erreurs et des exceptions est souvent négligée, mais elle joue un rôle clé dans un code propre. Un bon code doit être capable de traiter les erreurs de manière claire et concise, sans masquer les problèmes.",{"type":27,"tag":50,"props":2313,"children":2314},{},[2315],{"type":27,"tag":33,"props":2316,"children":2317},{},[2318],{"type":37,"value":193},{"type":27,"tag":195,"props":2320,"children":2322},{"className":197,"code":2321,"language":199,"meta":7,"style":7},"// Mauvais exemple\ntry {\n    processOrder(order);\n} catch (Exception e) {\n    System.out.println(\"Erreur lors du traitement de la commande\");\n}\n\n// Meilleur exemple\ntry {\n    processOrder(order);\n} catch (InvalidOrderException e) {\n    System.out.println(\"Commande invalide : \" + e.getMessage());\n} catch (PaymentFailedException e) {\n    System.out.println(\"Échec du paiement : \" + e.getMessage());\n}\n",[2323],{"type":27,"tag":202,"props":2324,"children":2325},{"__ignoreMap":7},[2326,2333,2345,2365,2400,2436,2443,2450,2457,2468,2487,2519,2573,2605,2657],{"type":27,"tag":206,"props":2327,"children":2328},{"class":208,"line":209},[2329],{"type":27,"tag":206,"props":2330,"children":2331},{"style":213},[2332],{"type":37,"value":216},{"type":27,"tag":206,"props":2334,"children":2335},{"class":208,"line":219},[2336,2341],{"type":27,"tag":206,"props":2337,"children":2338},{"style":223},[2339],{"type":37,"value":2340},"try",{"type":27,"tag":206,"props":2342,"children":2343},{"style":247},[2344],{"type":37,"value":412},{"type":27,"tag":206,"props":2346,"children":2347},{"class":208,"line":253},[2348,2353,2357,2361],{"type":27,"tag":206,"props":2349,"children":2350},{"style":383},[2351],{"type":37,"value":2352},"    processOrder",{"type":27,"tag":206,"props":2354,"children":2355},{"style":247},[2356],{"type":37,"value":391},{"type":27,"tag":206,"props":2358,"children":2359},{"style":229},[2360],{"type":37,"value":438},{"type":27,"tag":206,"props":2362,"children":2363},{"style":247},[2364],{"type":37,"value":524},{"type":27,"tag":206,"props":2366,"children":2367},{"class":208,"line":262},[2368,2372,2377,2381,2386,2392,2396],{"type":27,"tag":206,"props":2369,"children":2370},{"style":247},[2371],{"type":37,"value":1414},{"type":27,"tag":206,"props":2373,"children":2374},{"style":223},[2375],{"type":37,"value":2376}," catch",{"type":27,"tag":206,"props":2378,"children":2379},{"style":247},[2380],{"type":37,"value":433},{"type":27,"tag":206,"props":2382,"children":2383},{"style":394},[2384],{"type":37,"value":2385},"Exception",{"type":27,"tag":206,"props":2387,"children":2389},{"style":2388},"--shiki-default:#EA999C;--shiki-default-font-style:italic;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit",[2390],{"type":37,"value":2391}," e",{"type":27,"tag":206,"props":2393,"children":2394},{"style":247},[2395],{"type":37,"value":407},{"type":27,"tag":206,"props":2397,"children":2398},{"style":247},[2399],{"type":37,"value":412},{"type":27,"tag":206,"props":2401,"children":2402},{"class":208,"line":271},[2403,2407,2411,2415,2419,2423,2427,2432],{"type":27,"tag":206,"props":2404,"children":2405},{"style":229},[2406],{"type":37,"value":1177},{"type":27,"tag":206,"props":2408,"children":2409},{"style":247},[2410],{"type":37,"value":443},{"type":27,"tag":206,"props":2412,"children":2413},{"style":229},[2414],{"type":37,"value":646},{"type":27,"tag":206,"props":2416,"children":2417},{"style":247},[2418],{"type":37,"value":443},{"type":27,"tag":206,"props":2420,"children":2421},{"style":383},[2422],{"type":37,"value":655},{"type":27,"tag":206,"props":2424,"children":2425},{"style":247},[2426],{"type":37,"value":391},{"type":27,"tag":206,"props":2428,"children":2429},{"style":662},[2430],{"type":37,"value":2431},"\"Erreur lors du traitement de la commande\"",{"type":27,"tag":206,"props":2433,"children":2434},{"style":247},[2435],{"type":37,"value":524},{"type":27,"tag":206,"props":2437,"children":2438},{"class":208,"line":468},[2439],{"type":27,"tag":206,"props":2440,"children":2441},{"style":247},[2442],{"type":37,"value":687},{"type":27,"tag":206,"props":2444,"children":2445},{"class":208,"line":527},[2446],{"type":27,"tag":206,"props":2447,"children":2448},{"emptyLinePlaceholder":12},[2449],{"type":37,"value":259},{"type":27,"tag":206,"props":2451,"children":2452},{"class":208,"line":535},[2453],{"type":27,"tag":206,"props":2454,"children":2455},{"style":213},[2456],{"type":37,"value":268},{"type":27,"tag":206,"props":2458,"children":2459},{"class":208,"line":544},[2460,2464],{"type":27,"tag":206,"props":2461,"children":2462},{"style":223},[2463],{"type":37,"value":2340},{"type":27,"tag":206,"props":2465,"children":2466},{"style":247},[2467],{"type":37,"value":412},{"type":27,"tag":206,"props":2469,"children":2470},{"class":208,"line":575},[2471,2475,2479,2483],{"type":27,"tag":206,"props":2472,"children":2473},{"style":383},[2474],{"type":37,"value":2352},{"type":27,"tag":206,"props":2476,"children":2477},{"style":247},[2478],{"type":37,"value":391},{"type":27,"tag":206,"props":2480,"children":2481},{"style":229},[2482],{"type":37,"value":438},{"type":27,"tag":206,"props":2484,"children":2485},{"style":247},[2486],{"type":37,"value":524},{"type":27,"tag":206,"props":2488,"children":2489},{"class":208,"line":583},[2490,2494,2498,2502,2507,2511,2515],{"type":27,"tag":206,"props":2491,"children":2492},{"style":247},[2493],{"type":37,"value":1414},{"type":27,"tag":206,"props":2495,"children":2496},{"style":223},[2497],{"type":37,"value":2376},{"type":27,"tag":206,"props":2499,"children":2500},{"style":247},[2501],{"type":37,"value":433},{"type":27,"tag":206,"props":2503,"children":2504},{"style":394},[2505],{"type":37,"value":2506},"InvalidOrderException",{"type":27,"tag":206,"props":2508,"children":2509},{"style":2388},[2510],{"type":37,"value":2391},{"type":27,"tag":206,"props":2512,"children":2513},{"style":247},[2514],{"type":37,"value":407},{"type":27,"tag":206,"props":2516,"children":2517},{"style":247},[2518],{"type":37,"value":412},{"type":27,"tag":206,"props":2520,"children":2521},{"class":208,"line":592},[2522,2526,2530,2534,2538,2542,2546,2551,2555,2559,2563,2568],{"type":27,"tag":206,"props":2523,"children":2524},{"style":229},[2525],{"type":37,"value":1177},{"type":27,"tag":206,"props":2527,"children":2528},{"style":247},[2529],{"type":37,"value":443},{"type":27,"tag":206,"props":2531,"children":2532},{"style":229},[2533],{"type":37,"value":646},{"type":27,"tag":206,"props":2535,"children":2536},{"style":247},[2537],{"type":37,"value":443},{"type":27,"tag":206,"props":2539,"children":2540},{"style":383},[2541],{"type":37,"value":655},{"type":27,"tag":206,"props":2543,"children":2544},{"style":247},[2545],{"type":37,"value":391},{"type":27,"tag":206,"props":2547,"children":2548},{"style":662},[2549],{"type":37,"value":2550},"\"Commande invalide : \"",{"type":27,"tag":206,"props":2552,"children":2553},{"style":235},[2554],{"type":37,"value":506},{"type":27,"tag":206,"props":2556,"children":2557},{"style":229},[2558],{"type":37,"value":2391},{"type":27,"tag":206,"props":2560,"children":2561},{"style":247},[2562],{"type":37,"value":443},{"type":27,"tag":206,"props":2564,"children":2565},{"style":383},[2566],{"type":37,"value":2567},"getMessage",{"type":27,"tag":206,"props":2569,"children":2570},{"style":247},[2571],{"type":37,"value":2572},"());\n",{"type":27,"tag":206,"props":2574,"children":2575},{"class":208,"line":613},[2576,2580,2584,2588,2593,2597,2601],{"type":27,"tag":206,"props":2577,"children":2578},{"style":247},[2579],{"type":37,"value":1414},{"type":27,"tag":206,"props":2581,"children":2582},{"style":223},[2583],{"type":37,"value":2376},{"type":27,"tag":206,"props":2585,"children":2586},{"style":247},[2587],{"type":37,"value":433},{"type":27,"tag":206,"props":2589,"children":2590},{"style":394},[2591],{"type":37,"value":2592},"PaymentFailedException",{"type":27,"tag":206,"props":2594,"children":2595},{"style":2388},[2596],{"type":37,"value":2391},{"type":27,"tag":206,"props":2598,"children":2599},{"style":247},[2600],{"type":37,"value":407},{"type":27,"tag":206,"props":2602,"children":2603},{"style":247},[2604],{"type":37,"value":412},{"type":27,"tag":206,"props":2606,"children":2607},{"class":208,"line":631},[2608,2612,2616,2620,2624,2628,2632,2637,2641,2645,2649,2653],{"type":27,"tag":206,"props":2609,"children":2610},{"style":229},[2611],{"type":37,"value":1177},{"type":27,"tag":206,"props":2613,"children":2614},{"style":247},[2615],{"type":37,"value":443},{"type":27,"tag":206,"props":2617,"children":2618},{"style":229},[2619],{"type":37,"value":646},{"type":27,"tag":206,"props":2621,"children":2622},{"style":247},[2623],{"type":37,"value":443},{"type":27,"tag":206,"props":2625,"children":2626},{"style":383},[2627],{"type":37,"value":655},{"type":27,"tag":206,"props":2629,"children":2630},{"style":247},[2631],{"type":37,"value":391},{"type":27,"tag":206,"props":2633,"children":2634},{"style":662},[2635],{"type":37,"value":2636},"\"Échec du paiement : \"",{"type":27,"tag":206,"props":2638,"children":2639},{"style":235},[2640],{"type":37,"value":506},{"type":27,"tag":206,"props":2642,"children":2643},{"style":229},[2644],{"type":37,"value":2391},{"type":27,"tag":206,"props":2646,"children":2647},{"style":247},[2648],{"type":37,"value":443},{"type":27,"tag":206,"props":2650,"children":2651},{"style":383},[2652],{"type":37,"value":2567},{"type":27,"tag":206,"props":2654,"children":2655},{"style":247},[2656],{"type":37,"value":2572},{"type":27,"tag":206,"props":2658,"children":2659},{"class":208,"line":672},[2660],{"type":27,"tag":206,"props":2661,"children":2662},{"style":247},[2663],{"type":37,"value":687},{"type":27,"tag":50,"props":2665,"children":2666},{},[2667],{"type":37,"value":2668},"Dans le second exemple, chaque type d'erreur est traité de manière spécifique, ce qui permet de mieux comprendre ce qui ne va pas et de réagir en conséquence.",{"type":27,"tag":316,"props":2670,"children":2671},{"type":318},[2672],{"type":27,"tag":50,"props":2673,"children":2674},{},[2675,2677,2683],{"type":37,"value":2676},"Évitez de capturer toutes les exceptions avec un ",{"type":27,"tag":202,"props":2678,"children":2680},{"className":2679},[],[2681],{"type":37,"value":2682},"catch (Exception e)",{"type":37,"value":2684},". Cela rend le débogage plus difficile et masque les problèmes spécifiques.",{"type":27,"tag":136,"props":2686,"children":2687},{},[],{"type":27,"tag":28,"props":2689,"children":2691},{"id":2690},"les-bonnes-pratiques-pour-écrire-du-code-maintenable",[2692],{"type":27,"tag":33,"props":2693,"children":2694},{},[2695],{"type":37,"value":2696},"Les bonnes pratiques pour écrire du code maintenable",{"type":27,"tag":50,"props":2698,"children":2699},{},[2700,2701,2705],{"type":37,"value":101},{"type":27,"tag":33,"props":2702,"children":2703},{},[2704],{"type":37,"value":64},{"type":37,"value":2706}," ne se limite pas à écrire du code lisible ; il doit aussi être facilement maintenable et évolutif. Voici quelques bonnes pratiques pour s'assurer que votre code reste propre même après plusieurs itérations.",{"type":27,"tag":40,"props":2708,"children":2710},{"id":2709},"_1-le-principe-de-responsabilité-unique-single-responsibility-principle-srp",[2711],{"type":27,"tag":33,"props":2712,"children":2713},{},[2714],{"type":37,"value":2715},"1. Le principe de responsabilité unique (Single Responsibility Principle - SRP)",{"type":27,"tag":50,"props":2717,"children":2718},{},[2719,2720,2725],{"type":37,"value":101},{"type":27,"tag":33,"props":2721,"children":2722},{},[2723],{"type":37,"value":2724},"principe de responsabilité unique",{"type":37,"value":2726},", formalisé par Robert C. Martin dans \"Clean Code\", stipule qu'une classe ou une fonction ne doit avoir qu'une seule raison de changer, autrement dit, elle ne doit gérer qu'une seule responsabilité. Cela permet de réduire les dépendances et rend votre code plus facile à tester et à maintenir.",{"type":27,"tag":50,"props":2728,"children":2729},{},[2730],{"type":27,"tag":33,"props":2731,"children":2732},{},[2733],{"type":37,"value":193},{"type":27,"tag":195,"props":2735,"children":2737},{"className":197,"code":2736,"language":199,"meta":7,"style":7},"// Mauvais exemple - Une classe gère trop de responsabilités\npublic class GestionnaireDeCommande {\n    public void creerCommande() {\n        // Crée une commande\n    }\n    \n    public void calculerRemises() {\n        // Calcule les remises\n    }\n\n    public void envoyerEmailConfirmation() {\n        // Envoie un email de confirmation\n    }\n}\n\n// Meilleur exemple - Responsabilités divisées en plusieurs classes\npublic class CommandeService {\n    public void creerCommande() {\n        // Crée une commande\n    }\n}\n\npublic class RemiseService {\n    public void calculerRemises() {\n        // Calcule les remises\n    }\n}\n\npublic class NotificationService {\n    public void envoyerEmailConfirmation() {\n        // Envoie un email de confirmation\n    }\n}\n",[2738],{"type":27,"tag":202,"props":2739,"children":2740},{"__ignoreMap":7},[2741,2749,2771,2796,2804,2811,2818,2842,2850,2857,2864,2888,2896,2903,2910,2917,2925,2945,2968,2975,2982,2989,2996,3016,3039,3046,3053,3060,3067,3087,3110,3117,3124],{"type":27,"tag":206,"props":2742,"children":2743},{"class":208,"line":209},[2744],{"type":27,"tag":206,"props":2745,"children":2746},{"style":213},[2747],{"type":37,"value":2748},"// Mauvais exemple - Une classe gère trop de responsabilités\n",{"type":27,"tag":206,"props":2750,"children":2751},{"class":208,"line":219},[2752,2756,2761,2767],{"type":27,"tag":206,"props":2753,"children":2754},{"style":223},[2755],{"type":37,"value":375},{"type":27,"tag":206,"props":2757,"children":2758},{"style":223},[2759],{"type":37,"value":2760}," class",{"type":27,"tag":206,"props":2762,"children":2764},{"style":2763},"--shiki-default:#E5C890;--shiki-default-font-style:italic;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit",[2765],{"type":37,"value":2766}," GestionnaireDeCommande",{"type":27,"tag":206,"props":2768,"children":2769},{"style":247},[2770],{"type":37,"value":412},{"type":27,"tag":206,"props":2772,"children":2773},{"class":208,"line":253},[2774,2779,2783,2788,2792],{"type":27,"tag":206,"props":2775,"children":2776},{"style":223},[2777],{"type":37,"value":2778},"    public",{"type":27,"tag":206,"props":2780,"children":2781},{"style":223},[2782],{"type":37,"value":380},{"type":27,"tag":206,"props":2784,"children":2785},{"style":383},[2786],{"type":37,"value":2787}," creerCommande",{"type":27,"tag":206,"props":2789,"children":2790},{"style":247},[2791],{"type":37,"value":501},{"type":27,"tag":206,"props":2793,"children":2794},{"style":247},[2795],{"type":37,"value":412},{"type":27,"tag":206,"props":2797,"children":2798},{"class":208,"line":262},[2799],{"type":27,"tag":206,"props":2800,"children":2801},{"style":213},[2802],{"type":37,"value":2803},"        // Crée une commande\n",{"type":27,"tag":206,"props":2805,"children":2806},{"class":208,"line":271},[2807],{"type":27,"tag":206,"props":2808,"children":2809},{"style":247},[2810],{"type":37,"value":678},{"type":27,"tag":206,"props":2812,"children":2813},{"class":208,"line":468},[2814],{"type":27,"tag":206,"props":2815,"children":2816},{"style":229},[2817],{"type":37,"value":1973},{"type":27,"tag":206,"props":2819,"children":2820},{"class":208,"line":527},[2821,2825,2829,2834,2838],{"type":27,"tag":206,"props":2822,"children":2823},{"style":223},[2824],{"type":37,"value":2778},{"type":27,"tag":206,"props":2826,"children":2827},{"style":223},[2828],{"type":37,"value":380},{"type":27,"tag":206,"props":2830,"children":2831},{"style":383},[2832],{"type":37,"value":2833}," calculerRemises",{"type":27,"tag":206,"props":2835,"children":2836},{"style":247},[2837],{"type":37,"value":501},{"type":27,"tag":206,"props":2839,"children":2840},{"style":247},[2841],{"type":37,"value":412},{"type":27,"tag":206,"props":2843,"children":2844},{"class":208,"line":535},[2845],{"type":27,"tag":206,"props":2846,"children":2847},{"style":213},[2848],{"type":37,"value":2849},"        // Calcule les remises\n",{"type":27,"tag":206,"props":2851,"children":2852},{"class":208,"line":544},[2853],{"type":27,"tag":206,"props":2854,"children":2855},{"style":247},[2856],{"type":37,"value":678},{"type":27,"tag":206,"props":2858,"children":2859},{"class":208,"line":575},[2860],{"type":27,"tag":206,"props":2861,"children":2862},{"emptyLinePlaceholder":12},[2863],{"type":37,"value":259},{"type":27,"tag":206,"props":2865,"children":2866},{"class":208,"line":583},[2867,2871,2875,2880,2884],{"type":27,"tag":206,"props":2868,"children":2869},{"style":223},[2870],{"type":37,"value":2778},{"type":27,"tag":206,"props":2872,"children":2873},{"style":223},[2874],{"type":37,"value":380},{"type":27,"tag":206,"props":2876,"children":2877},{"style":383},[2878],{"type":37,"value":2879}," envoyerEmailConfirmation",{"type":27,"tag":206,"props":2881,"children":2882},{"style":247},[2883],{"type":37,"value":501},{"type":27,"tag":206,"props":2885,"children":2886},{"style":247},[2887],{"type":37,"value":412},{"type":27,"tag":206,"props":2889,"children":2890},{"class":208,"line":592},[2891],{"type":27,"tag":206,"props":2892,"children":2893},{"style":213},[2894],{"type":37,"value":2895},"        // Envoie un email de confirmation\n",{"type":27,"tag":206,"props":2897,"children":2898},{"class":208,"line":613},[2899],{"type":27,"tag":206,"props":2900,"children":2901},{"style":247},[2902],{"type":37,"value":678},{"type":27,"tag":206,"props":2904,"children":2905},{"class":208,"line":631},[2906],{"type":27,"tag":206,"props":2907,"children":2908},{"style":247},[2909],{"type":37,"value":687},{"type":27,"tag":206,"props":2911,"children":2912},{"class":208,"line":672},[2913],{"type":27,"tag":206,"props":2914,"children":2915},{"emptyLinePlaceholder":12},[2916],{"type":37,"value":259},{"type":27,"tag":206,"props":2918,"children":2919},{"class":208,"line":681},[2920],{"type":27,"tag":206,"props":2921,"children":2922},{"style":213},[2923],{"type":37,"value":2924},"// Meilleur exemple - Responsabilités divisées en plusieurs classes\n",{"type":27,"tag":206,"props":2926,"children":2927},{"class":208,"line":690},[2928,2932,2936,2941],{"type":27,"tag":206,"props":2929,"children":2930},{"style":223},[2931],{"type":37,"value":375},{"type":27,"tag":206,"props":2933,"children":2934},{"style":223},[2935],{"type":37,"value":2760},{"type":27,"tag":206,"props":2937,"children":2938},{"style":2763},[2939],{"type":37,"value":2940}," CommandeService",{"type":27,"tag":206,"props":2942,"children":2943},{"style":247},[2944],{"type":37,"value":412},{"type":27,"tag":206,"props":2946,"children":2947},{"class":208,"line":698},[2948,2952,2956,2960,2964],{"type":27,"tag":206,"props":2949,"children":2950},{"style":223},[2951],{"type":37,"value":2778},{"type":27,"tag":206,"props":2953,"children":2954},{"style":223},[2955],{"type":37,"value":380},{"type":27,"tag":206,"props":2957,"children":2958},{"style":383},[2959],{"type":37,"value":2787},{"type":27,"tag":206,"props":2961,"children":2962},{"style":247},[2963],{"type":37,"value":501},{"type":27,"tag":206,"props":2965,"children":2966},{"style":247},[2967],{"type":37,"value":412},{"type":27,"tag":206,"props":2969,"children":2970},{"class":208,"line":707},[2971],{"type":27,"tag":206,"props":2972,"children":2973},{"style":213},[2974],{"type":37,"value":2803},{"type":27,"tag":206,"props":2976,"children":2977},{"class":208,"line":743},[2978],{"type":27,"tag":206,"props":2979,"children":2980},{"style":247},[2981],{"type":37,"value":678},{"type":27,"tag":206,"props":2983,"children":2984},{"class":208,"line":775},[2985],{"type":27,"tag":206,"props":2986,"children":2987},{"style":247},[2988],{"type":37,"value":687},{"type":27,"tag":206,"props":2990,"children":2991},{"class":208,"line":808},[2992],{"type":27,"tag":206,"props":2993,"children":2994},{"emptyLinePlaceholder":12},[2995],{"type":37,"value":259},{"type":27,"tag":206,"props":2997,"children":2998},{"class":208,"line":836},[2999,3003,3007,3012],{"type":27,"tag":206,"props":3000,"children":3001},{"style":223},[3002],{"type":37,"value":375},{"type":27,"tag":206,"props":3004,"children":3005},{"style":223},[3006],{"type":37,"value":2760},{"type":27,"tag":206,"props":3008,"children":3009},{"style":2763},[3010],{"type":37,"value":3011}," RemiseService",{"type":27,"tag":206,"props":3013,"children":3014},{"style":247},[3015],{"type":37,"value":412},{"type":27,"tag":206,"props":3017,"children":3018},{"class":208,"line":857},[3019,3023,3027,3031,3035],{"type":27,"tag":206,"props":3020,"children":3021},{"style":223},[3022],{"type":37,"value":2778},{"type":27,"tag":206,"props":3024,"children":3025},{"style":223},[3026],{"type":37,"value":380},{"type":27,"tag":206,"props":3028,"children":3029},{"style":383},[3030],{"type":37,"value":2833},{"type":27,"tag":206,"props":3032,"children":3033},{"style":247},[3034],{"type":37,"value":501},{"type":27,"tag":206,"props":3036,"children":3037},{"style":247},[3038],{"type":37,"value":412},{"type":27,"tag":206,"props":3040,"children":3041},{"class":208,"line":873},[3042],{"type":27,"tag":206,"props":3043,"children":3044},{"style":213},[3045],{"type":37,"value":2849},{"type":27,"tag":206,"props":3047,"children":3048},{"class":208,"line":887},[3049],{"type":27,"tag":206,"props":3050,"children":3051},{"style":247},[3052],{"type":37,"value":678},{"type":27,"tag":206,"props":3054,"children":3055},{"class":208,"line":895},[3056],{"type":27,"tag":206,"props":3057,"children":3058},{"style":247},[3059],{"type":37,"value":687},{"type":27,"tag":206,"props":3061,"children":3062},{"class":208,"line":903},[3063],{"type":27,"tag":206,"props":3064,"children":3065},{"emptyLinePlaceholder":12},[3066],{"type":37,"value":259},{"type":27,"tag":206,"props":3068,"children":3069},{"class":208,"line":911},[3070,3074,3078,3083],{"type":27,"tag":206,"props":3071,"children":3072},{"style":223},[3073],{"type":37,"value":375},{"type":27,"tag":206,"props":3075,"children":3076},{"style":223},[3077],{"type":37,"value":2760},{"type":27,"tag":206,"props":3079,"children":3080},{"style":2763},[3081],{"type":37,"value":3082}," NotificationService",{"type":27,"tag":206,"props":3084,"children":3085},{"style":247},[3086],{"type":37,"value":412},{"type":27,"tag":206,"props":3088,"children":3089},{"class":208,"line":949},[3090,3094,3098,3102,3106],{"type":27,"tag":206,"props":3091,"children":3092},{"style":223},[3093],{"type":37,"value":2778},{"type":27,"tag":206,"props":3095,"children":3096},{"style":223},[3097],{"type":37,"value":380},{"type":27,"tag":206,"props":3099,"children":3100},{"style":383},[3101],{"type":37,"value":2879},{"type":27,"tag":206,"props":3103,"children":3104},{"style":247},[3105],{"type":37,"value":501},{"type":27,"tag":206,"props":3107,"children":3108},{"style":247},[3109],{"type":37,"value":412},{"type":27,"tag":206,"props":3111,"children":3112},{"class":208,"line":994},[3113],{"type":27,"tag":206,"props":3114,"children":3115},{"style":213},[3116],{"type":37,"value":2895},{"type":27,"tag":206,"props":3118,"children":3119},{"class":208,"line":1002},[3120],{"type":27,"tag":206,"props":3121,"children":3122},{"style":247},[3123],{"type":37,"value":678},{"type":27,"tag":206,"props":3125,"children":3126},{"class":208,"line":1010},[3127],{"type":27,"tag":206,"props":3128,"children":3129},{"style":247},[3130],{"type":37,"value":687},{"type":27,"tag":50,"props":3132,"children":3133},{},[3134],{"type":37,"value":3135},"Dans cet exemple, chaque classe a une responsabilité unique. Cela permet d'éviter des classes trop lourdes et facilite leur maintenance. En cas de modification, vous n'aurez qu'à changer une partie spécifique de votre code sans impacter le reste.",{"type":27,"tag":316,"props":3137,"children":3138},{"type":318},[3139],{"type":27,"tag":50,"props":3140,"children":3141},{},[3142],{"type":37,"value":3143},"Une bonne règle : si vous avez du mal à expliquer ce que fait une classe ou une fonction en une phrase claire et concise, c'est probablement qu'elle a plusieurs responsabilités et doit être découpée.",{"type":27,"tag":136,"props":3145,"children":3146},{},[],{"type":27,"tag":40,"props":3148,"children":3150},{"id":3149},"_2-éviter-les-duplications-de-code",[3151],{"type":27,"tag":33,"props":3152,"children":3153},{},[3154],{"type":37,"value":3155},"2. Éviter les duplications de code",{"type":27,"tag":50,"props":3157,"children":3158},{},[3159],{"type":37,"value":3160},"Le code dupliqué est un piège fréquent qui complique la maintenance. En éliminant les duplications, vous vous assurez qu'un changement à un endroit du code n'entraîne pas une cascade de modifications à différents endroits.",{"type":27,"tag":50,"props":3162,"children":3163},{},[3164],{"type":27,"tag":33,"props":3165,"children":3166},{},[3167],{"type":37,"value":193},{"type":27,"tag":195,"props":3169,"children":3171},{"className":197,"code":3170,"language":199,"meta":7,"style":7},"// Mauvais exemple - Duplication de logique\ndouble calculerRemiseClient(double montant) {\n    double remise = 0;\n    if (montant > 1000) {\n        remise = montant * 0.1;\n    }\n    return remise;\n}\n\ndouble calculerRemisePartenaire(double montant) {\n    double remise = 0;\n    if (montant > 1000) {\n        remise = montant * 0.1;\n    }\n    return remise;\n}\n\n// Meilleur exemple - Refactorisation pour éviter la duplication\ndouble calculerRemise(double montant) {\n    double remise = 0;\n    if (montant > 1000) {\n        remise = montant * 0.1;\n    }\n    return remise;\n}\n",[3172],{"type":27,"tag":202,"props":3173,"children":3174},{"__ignoreMap":7},[3175,3183,3216,3241,3275,3305,3312,3328,3335,3342,3374,3397,3428,3455,3462,3477,3484,3491,3499,3531,3554,3585,3612,3619,3634],{"type":27,"tag":206,"props":3176,"children":3177},{"class":208,"line":209},[3178],{"type":27,"tag":206,"props":3179,"children":3180},{"style":213},[3181],{"type":37,"value":3182},"// Mauvais exemple - Duplication de logique\n",{"type":27,"tag":206,"props":3184,"children":3185},{"class":208,"line":219},[3186,3190,3195,3199,3203,3208,3212],{"type":27,"tag":206,"props":3187,"children":3188},{"style":223},[3189],{"type":37,"value":1667},{"type":27,"tag":206,"props":3191,"children":3192},{"style":383},[3193],{"type":37,"value":3194}," calculerRemiseClient",{"type":27,"tag":206,"props":3196,"children":3197},{"style":247},[3198],{"type":37,"value":391},{"type":27,"tag":206,"props":3200,"children":3201},{"style":223},[3202],{"type":37,"value":1667},{"type":27,"tag":206,"props":3204,"children":3205},{"style":229},[3206],{"type":37,"value":3207}," montant",{"type":27,"tag":206,"props":3209,"children":3210},{"style":247},[3211],{"type":37,"value":407},{"type":27,"tag":206,"props":3213,"children":3214},{"style":247},[3215],{"type":37,"value":412},{"type":27,"tag":206,"props":3217,"children":3218},{"class":208,"line":253},[3219,3223,3228,3232,3237],{"type":27,"tag":206,"props":3220,"children":3221},{"style":223},[3222],{"type":37,"value":1871},{"type":27,"tag":206,"props":3224,"children":3225},{"style":229},[3226],{"type":37,"value":3227}," remise ",{"type":27,"tag":206,"props":3229,"children":3230},{"style":235},[3231],{"type":37,"value":238},{"type":27,"tag":206,"props":3233,"children":3234},{"style":241},[3235],{"type":37,"value":3236}," 0",{"type":27,"tag":206,"props":3238,"children":3239},{"style":247},[3240],{"type":37,"value":250},{"type":27,"tag":206,"props":3242,"children":3243},{"class":208,"line":262},[3244,3248,3252,3257,3262,3267,3271],{"type":27,"tag":206,"props":3245,"children":3246},{"style":223},[3247],{"type":37,"value":428},{"type":27,"tag":206,"props":3249,"children":3250},{"style":247},[3251],{"type":37,"value":433},{"type":27,"tag":206,"props":3253,"children":3254},{"style":229},[3255],{"type":37,"value":3256},"montant ",{"type":27,"tag":206,"props":3258,"children":3259},{"style":235},[3260],{"type":37,"value":3261},">",{"type":27,"tag":206,"props":3263,"children":3264},{"style":241},[3265],{"type":37,"value":3266}," 1000",{"type":27,"tag":206,"props":3268,"children":3269},{"style":247},[3270],{"type":37,"value":407},{"type":27,"tag":206,"props":3272,"children":3273},{"style":247},[3274],{"type":37,"value":412},{"type":27,"tag":206,"props":3276,"children":3277},{"class":208,"line":271},[3278,3283,3287,3292,3296,3301],{"type":27,"tag":206,"props":3279,"children":3280},{"style":229},[3281],{"type":37,"value":3282},"        remise ",{"type":27,"tag":206,"props":3284,"children":3285},{"style":235},[3286],{"type":37,"value":238},{"type":27,"tag":206,"props":3288,"children":3289},{"style":229},[3290],{"type":37,"value":3291}," montant ",{"type":27,"tag":206,"props":3293,"children":3294},{"style":235},[3295],{"type":37,"value":1922},{"type":27,"tag":206,"props":3297,"children":3298},{"style":241},[3299],{"type":37,"value":3300}," 0.1",{"type":27,"tag":206,"props":3302,"children":3303},{"style":247},[3304],{"type":37,"value":250},{"type":27,"tag":206,"props":3306,"children":3307},{"class":208,"line":468},[3308],{"type":27,"tag":206,"props":3309,"children":3310},{"style":247},[3311],{"type":37,"value":678},{"type":27,"tag":206,"props":3313,"children":3314},{"class":208,"line":527},[3315,3319,3324],{"type":27,"tag":206,"props":3316,"children":3317},{"style":223},[3318],{"type":37,"value":955},{"type":27,"tag":206,"props":3320,"children":3321},{"style":229},[3322],{"type":37,"value":3323}," remise",{"type":27,"tag":206,"props":3325,"children":3326},{"style":247},[3327],{"type":37,"value":250},{"type":27,"tag":206,"props":3329,"children":3330},{"class":208,"line":535},[3331],{"type":27,"tag":206,"props":3332,"children":3333},{"style":247},[3334],{"type":37,"value":687},{"type":27,"tag":206,"props":3336,"children":3337},{"class":208,"line":544},[3338],{"type":27,"tag":206,"props":3339,"children":3340},{"emptyLinePlaceholder":12},[3341],{"type":37,"value":259},{"type":27,"tag":206,"props":3343,"children":3344},{"class":208,"line":575},[3345,3349,3354,3358,3362,3366,3370],{"type":27,"tag":206,"props":3346,"children":3347},{"style":223},[3348],{"type":37,"value":1667},{"type":27,"tag":206,"props":3350,"children":3351},{"style":383},[3352],{"type":37,"value":3353}," calculerRemisePartenaire",{"type":27,"tag":206,"props":3355,"children":3356},{"style":247},[3357],{"type":37,"value":391},{"type":27,"tag":206,"props":3359,"children":3360},{"style":223},[3361],{"type":37,"value":1667},{"type":27,"tag":206,"props":3363,"children":3364},{"style":229},[3365],{"type":37,"value":3207},{"type":27,"tag":206,"props":3367,"children":3368},{"style":247},[3369],{"type":37,"value":407},{"type":27,"tag":206,"props":3371,"children":3372},{"style":247},[3373],{"type":37,"value":412},{"type":27,"tag":206,"props":3375,"children":3376},{"class":208,"line":583},[3377,3381,3385,3389,3393],{"type":27,"tag":206,"props":3378,"children":3379},{"style":223},[3380],{"type":37,"value":1871},{"type":27,"tag":206,"props":3382,"children":3383},{"style":229},[3384],{"type":37,"value":3227},{"type":27,"tag":206,"props":3386,"children":3387},{"style":235},[3388],{"type":37,"value":238},{"type":27,"tag":206,"props":3390,"children":3391},{"style":241},[3392],{"type":37,"value":3236},{"type":27,"tag":206,"props":3394,"children":3395},{"style":247},[3396],{"type":37,"value":250},{"type":27,"tag":206,"props":3398,"children":3399},{"class":208,"line":592},[3400,3404,3408,3412,3416,3420,3424],{"type":27,"tag":206,"props":3401,"children":3402},{"style":223},[3403],{"type":37,"value":428},{"type":27,"tag":206,"props":3405,"children":3406},{"style":247},[3407],{"type":37,"value":433},{"type":27,"tag":206,"props":3409,"children":3410},{"style":229},[3411],{"type":37,"value":3256},{"type":27,"tag":206,"props":3413,"children":3414},{"style":235},[3415],{"type":37,"value":3261},{"type":27,"tag":206,"props":3417,"children":3418},{"style":241},[3419],{"type":37,"value":3266},{"type":27,"tag":206,"props":3421,"children":3422},{"style":247},[3423],{"type":37,"value":407},{"type":27,"tag":206,"props":3425,"children":3426},{"style":247},[3427],{"type":37,"value":412},{"type":27,"tag":206,"props":3429,"children":3430},{"class":208,"line":613},[3431,3435,3439,3443,3447,3451],{"type":27,"tag":206,"props":3432,"children":3433},{"style":229},[3434],{"type":37,"value":3282},{"type":27,"tag":206,"props":3436,"children":3437},{"style":235},[3438],{"type":37,"value":238},{"type":27,"tag":206,"props":3440,"children":3441},{"style":229},[3442],{"type":37,"value":3291},{"type":27,"tag":206,"props":3444,"children":3445},{"style":235},[3446],{"type":37,"value":1922},{"type":27,"tag":206,"props":3448,"children":3449},{"style":241},[3450],{"type":37,"value":3300},{"type":27,"tag":206,"props":3452,"children":3453},{"style":247},[3454],{"type":37,"value":250},{"type":27,"tag":206,"props":3456,"children":3457},{"class":208,"line":631},[3458],{"type":27,"tag":206,"props":3459,"children":3460},{"style":247},[3461],{"type":37,"value":678},{"type":27,"tag":206,"props":3463,"children":3464},{"class":208,"line":672},[3465,3469,3473],{"type":27,"tag":206,"props":3466,"children":3467},{"style":223},[3468],{"type":37,"value":955},{"type":27,"tag":206,"props":3470,"children":3471},{"style":229},[3472],{"type":37,"value":3323},{"type":27,"tag":206,"props":3474,"children":3475},{"style":247},[3476],{"type":37,"value":250},{"type":27,"tag":206,"props":3478,"children":3479},{"class":208,"line":681},[3480],{"type":27,"tag":206,"props":3481,"children":3482},{"style":247},[3483],{"type":37,"value":687},{"type":27,"tag":206,"props":3485,"children":3486},{"class":208,"line":690},[3487],{"type":27,"tag":206,"props":3488,"children":3489},{"emptyLinePlaceholder":12},[3490],{"type":37,"value":259},{"type":27,"tag":206,"props":3492,"children":3493},{"class":208,"line":698},[3494],{"type":27,"tag":206,"props":3495,"children":3496},{"style":213},[3497],{"type":37,"value":3498},"// Meilleur exemple - Refactorisation pour éviter la duplication\n",{"type":27,"tag":206,"props":3500,"children":3501},{"class":208,"line":707},[3502,3506,3511,3515,3519,3523,3527],{"type":27,"tag":206,"props":3503,"children":3504},{"style":223},[3505],{"type":37,"value":1667},{"type":27,"tag":206,"props":3507,"children":3508},{"style":383},[3509],{"type":37,"value":3510}," calculerRemise",{"type":27,"tag":206,"props":3512,"children":3513},{"style":247},[3514],{"type":37,"value":391},{"type":27,"tag":206,"props":3516,"children":3517},{"style":223},[3518],{"type":37,"value":1667},{"type":27,"tag":206,"props":3520,"children":3521},{"style":229},[3522],{"type":37,"value":3207},{"type":27,"tag":206,"props":3524,"children":3525},{"style":247},[3526],{"type":37,"value":407},{"type":27,"tag":206,"props":3528,"children":3529},{"style":247},[3530],{"type":37,"value":412},{"type":27,"tag":206,"props":3532,"children":3533},{"class":208,"line":743},[3534,3538,3542,3546,3550],{"type":27,"tag":206,"props":3535,"children":3536},{"style":223},[3537],{"type":37,"value":1871},{"type":27,"tag":206,"props":3539,"children":3540},{"style":229},[3541],{"type":37,"value":3227},{"type":27,"tag":206,"props":3543,"children":3544},{"style":235},[3545],{"type":37,"value":238},{"type":27,"tag":206,"props":3547,"children":3548},{"style":241},[3549],{"type":37,"value":3236},{"type":27,"tag":206,"props":3551,"children":3552},{"style":247},[3553],{"type":37,"value":250},{"type":27,"tag":206,"props":3555,"children":3556},{"class":208,"line":775},[3557,3561,3565,3569,3573,3577,3581],{"type":27,"tag":206,"props":3558,"children":3559},{"style":223},[3560],{"type":37,"value":428},{"type":27,"tag":206,"props":3562,"children":3563},{"style":247},[3564],{"type":37,"value":433},{"type":27,"tag":206,"props":3566,"children":3567},{"style":229},[3568],{"type":37,"value":3256},{"type":27,"tag":206,"props":3570,"children":3571},{"style":235},[3572],{"type":37,"value":3261},{"type":27,"tag":206,"props":3574,"children":3575},{"style":241},[3576],{"type":37,"value":3266},{"type":27,"tag":206,"props":3578,"children":3579},{"style":247},[3580],{"type":37,"value":407},{"type":27,"tag":206,"props":3582,"children":3583},{"style":247},[3584],{"type":37,"value":412},{"type":27,"tag":206,"props":3586,"children":3587},{"class":208,"line":808},[3588,3592,3596,3600,3604,3608],{"type":27,"tag":206,"props":3589,"children":3590},{"style":229},[3591],{"type":37,"value":3282},{"type":27,"tag":206,"props":3593,"children":3594},{"style":235},[3595],{"type":37,"value":238},{"type":27,"tag":206,"props":3597,"children":3598},{"style":229},[3599],{"type":37,"value":3291},{"type":27,"tag":206,"props":3601,"children":3602},{"style":235},[3603],{"type":37,"value":1922},{"type":27,"tag":206,"props":3605,"children":3606},{"style":241},[3607],{"type":37,"value":3300},{"type":27,"tag":206,"props":3609,"children":3610},{"style":247},[3611],{"type":37,"value":250},{"type":27,"tag":206,"props":3613,"children":3614},{"class":208,"line":836},[3615],{"type":27,"tag":206,"props":3616,"children":3617},{"style":247},[3618],{"type":37,"value":678},{"type":27,"tag":206,"props":3620,"children":3621},{"class":208,"line":857},[3622,3626,3630],{"type":27,"tag":206,"props":3623,"children":3624},{"style":223},[3625],{"type":37,"value":955},{"type":27,"tag":206,"props":3627,"children":3628},{"style":229},[3629],{"type":37,"value":3323},{"type":27,"tag":206,"props":3631,"children":3632},{"style":247},[3633],{"type":37,"value":250},{"type":27,"tag":206,"props":3635,"children":3636},{"class":208,"line":873},[3637],{"type":27,"tag":206,"props":3638,"children":3639},{"style":247},[3640],{"type":37,"value":687},{"type":27,"tag":50,"props":3642,"children":3643},{},[3644],{"type":37,"value":3645},"En unifiant la logique de calcul de la remise dans une seule fonction, vous éliminez la duplication et simplifiez la maintenance. Si la logique doit changer (par exemple, le seuil de 1000), vous n'aurez à modifier qu'une seule fonction.",{"type":27,"tag":316,"props":3647,"children":3648},{"type":318},[3649],{"type":27,"tag":50,"props":3650,"children":3651},{},[3652],{"type":37,"value":3653},"Cherchez les répétitions dans votre code. Si vous vous retrouvez à écrire la même logique ou presque identique à plusieurs endroits, c'est le signe qu'il est temps de refactoriser.",{"type":27,"tag":136,"props":3655,"children":3656},{},[],{"type":27,"tag":40,"props":3658,"children":3660},{"id":3659},"_3-faciliter-les-tests-unitaires",[3661],{"type":27,"tag":33,"props":3662,"children":3663},{},[3664],{"type":37,"value":3665},"3. Faciliter les tests unitaires",{"type":27,"tag":50,"props":3667,"children":3668},{},[3669,3671,3681],{"type":37,"value":3670},"Un code propre doit être facilement testable. En d'autres termes, il doit être écrit de manière à permettre des ",{"type":27,"tag":33,"props":3672,"children":3673},{},[3674],{"type":27,"tag":3675,"props":3676,"children":3678},"a",{"href":3677},"/fr/dette-technique/tests-integration-legacy-pieges",[3679],{"type":37,"value":3680},"tests unitaires",{"type":37,"value":3682}," simples et rapides. Cela passe par des fonctions courtes, des classes cohérentes et l'absence de dépendances cachées.",{"type":27,"tag":50,"props":3684,"children":3685},{},[3686],{"type":27,"tag":33,"props":3687,"children":3688},{},[3689],{"type":37,"value":193},{"type":27,"tag":195,"props":3691,"children":3693},{"className":197,"code":3692,"language":199,"meta":7,"style":7},"// Mauvais exemple - Difficulté à tester en raison des dépendances internes\npublic class CommandeService {\n    public void creerCommande() {\n        Database db = new Database();\n        db.save();\n    }\n}\n\n// Meilleur exemple - Injection de dépendance pour faciliter les tests\npublic class CommandeService {\n    private Database database;\n\n    public CommandeService(Database database) {\n        this.database = database;\n    }\n\n    public void creerCommande() {\n        database.save();\n    }\n}\n",[3694],{"type":27,"tag":202,"props":3695,"children":3696},{"__ignoreMap":7},[3697,3705,3724,3747,3778,3799,3806,3813,3820,3828,3847,3868,3875,3907,3937,3944,3951,3974,3994,4001],{"type":27,"tag":206,"props":3698,"children":3699},{"class":208,"line":209},[3700],{"type":27,"tag":206,"props":3701,"children":3702},{"style":213},[3703],{"type":37,"value":3704},"// Mauvais exemple - Difficulté à tester en raison des dépendances internes\n",{"type":27,"tag":206,"props":3706,"children":3707},{"class":208,"line":219},[3708,3712,3716,3720],{"type":27,"tag":206,"props":3709,"children":3710},{"style":223},[3711],{"type":37,"value":375},{"type":27,"tag":206,"props":3713,"children":3714},{"style":223},[3715],{"type":37,"value":2760},{"type":27,"tag":206,"props":3717,"children":3718},{"style":2763},[3719],{"type":37,"value":2940},{"type":27,"tag":206,"props":3721,"children":3722},{"style":247},[3723],{"type":37,"value":412},{"type":27,"tag":206,"props":3725,"children":3726},{"class":208,"line":253},[3727,3731,3735,3739,3743],{"type":27,"tag":206,"props":3728,"children":3729},{"style":223},[3730],{"type":37,"value":2778},{"type":27,"tag":206,"props":3732,"children":3733},{"style":223},[3734],{"type":37,"value":380},{"type":27,"tag":206,"props":3736,"children":3737},{"style":383},[3738],{"type":37,"value":2787},{"type":27,"tag":206,"props":3740,"children":3741},{"style":247},[3742],{"type":37,"value":501},{"type":27,"tag":206,"props":3744,"children":3745},{"style":247},[3746],{"type":37,"value":412},{"type":27,"tag":206,"props":3748,"children":3749},{"class":208,"line":262},[3750,3755,3760,3764,3769,3774],{"type":27,"tag":206,"props":3751,"children":3752},{"style":394},[3753],{"type":37,"value":3754},"        Database",{"type":27,"tag":206,"props":3756,"children":3757},{"style":229},[3758],{"type":37,"value":3759}," db ",{"type":27,"tag":206,"props":3761,"children":3762},{"style":235},[3763],{"type":37,"value":238},{"type":27,"tag":206,"props":3765,"children":3766},{"style":223},[3767],{"type":37,"value":3768}," new",{"type":27,"tag":206,"props":3770,"children":3771},{"style":383},[3772],{"type":37,"value":3773}," Database",{"type":27,"tag":206,"props":3775,"children":3776},{"style":247},[3777],{"type":37,"value":884},{"type":27,"tag":206,"props":3779,"children":3780},{"class":208,"line":271},[3781,3786,3790,3795],{"type":27,"tag":206,"props":3782,"children":3783},{"style":229},[3784],{"type":37,"value":3785},"        db",{"type":27,"tag":206,"props":3787,"children":3788},{"style":247},[3789],{"type":37,"value":443},{"type":27,"tag":206,"props":3791,"children":3792},{"style":383},[3793],{"type":37,"value":3794},"save",{"type":27,"tag":206,"props":3796,"children":3797},{"style":247},[3798],{"type":37,"value":884},{"type":27,"tag":206,"props":3800,"children":3801},{"class":208,"line":468},[3802],{"type":27,"tag":206,"props":3803,"children":3804},{"style":247},[3805],{"type":37,"value":678},{"type":27,"tag":206,"props":3807,"children":3808},{"class":208,"line":527},[3809],{"type":27,"tag":206,"props":3810,"children":3811},{"style":247},[3812],{"type":37,"value":687},{"type":27,"tag":206,"props":3814,"children":3815},{"class":208,"line":535},[3816],{"type":27,"tag":206,"props":3817,"children":3818},{"emptyLinePlaceholder":12},[3819],{"type":37,"value":259},{"type":27,"tag":206,"props":3821,"children":3822},{"class":208,"line":544},[3823],{"type":27,"tag":206,"props":3824,"children":3825},{"style":213},[3826],{"type":37,"value":3827},"// Meilleur exemple - Injection de dépendance pour faciliter les tests\n",{"type":27,"tag":206,"props":3829,"children":3830},{"class":208,"line":575},[3831,3835,3839,3843],{"type":27,"tag":206,"props":3832,"children":3833},{"style":223},[3834],{"type":37,"value":375},{"type":27,"tag":206,"props":3836,"children":3837},{"style":223},[3838],{"type":37,"value":2760},{"type":27,"tag":206,"props":3840,"children":3841},{"style":2763},[3842],{"type":37,"value":2940},{"type":27,"tag":206,"props":3844,"children":3845},{"style":247},[3846],{"type":37,"value":412},{"type":27,"tag":206,"props":3848,"children":3849},{"class":208,"line":583},[3850,3855,3859,3864],{"type":27,"tag":206,"props":3851,"children":3852},{"style":223},[3853],{"type":37,"value":3854},"    private",{"type":27,"tag":206,"props":3856,"children":3857},{"style":394},[3858],{"type":37,"value":3773},{"type":27,"tag":206,"props":3860,"children":3861},{"style":229},[3862],{"type":37,"value":3863}," database",{"type":27,"tag":206,"props":3865,"children":3866},{"style":247},[3867],{"type":37,"value":250},{"type":27,"tag":206,"props":3869,"children":3870},{"class":208,"line":592},[3871],{"type":27,"tag":206,"props":3872,"children":3873},{"emptyLinePlaceholder":12},[3874],{"type":37,"value":259},{"type":27,"tag":206,"props":3876,"children":3877},{"class":208,"line":613},[3878,3882,3886,3890,3895,3899,3903],{"type":27,"tag":206,"props":3879,"children":3880},{"style":223},[3881],{"type":37,"value":2778},{"type":27,"tag":206,"props":3883,"children":3884},{"style":383},[3885],{"type":37,"value":2940},{"type":27,"tag":206,"props":3887,"children":3888},{"style":247},[3889],{"type":37,"value":391},{"type":27,"tag":206,"props":3891,"children":3892},{"style":394},[3893],{"type":37,"value":3894},"Database",{"type":27,"tag":206,"props":3896,"children":3897},{"style":2388},[3898],{"type":37,"value":3863},{"type":27,"tag":206,"props":3900,"children":3901},{"style":247},[3902],{"type":37,"value":407},{"type":27,"tag":206,"props":3904,"children":3905},{"style":247},[3906],{"type":37,"value":412},{"type":27,"tag":206,"props":3908,"children":3909},{"class":208,"line":631},[3910,3916,3920,3925,3929,3933],{"type":27,"tag":206,"props":3911,"children":3913},{"style":3912},"--shiki-default:#E78284;--shiki-dark:#79B8FF",[3914],{"type":37,"value":3915},"        this",{"type":27,"tag":206,"props":3917,"children":3918},{"style":247},[3919],{"type":37,"value":443},{"type":27,"tag":206,"props":3921,"children":3922},{"style":229},[3923],{"type":37,"value":3924},"database ",{"type":27,"tag":206,"props":3926,"children":3927},{"style":235},[3928],{"type":37,"value":238},{"type":27,"tag":206,"props":3930,"children":3931},{"style":229},[3932],{"type":37,"value":3863},{"type":27,"tag":206,"props":3934,"children":3935},{"style":247},[3936],{"type":37,"value":250},{"type":27,"tag":206,"props":3938,"children":3939},{"class":208,"line":672},[3940],{"type":27,"tag":206,"props":3941,"children":3942},{"style":247},[3943],{"type":37,"value":678},{"type":27,"tag":206,"props":3945,"children":3946},{"class":208,"line":681},[3947],{"type":27,"tag":206,"props":3948,"children":3949},{"emptyLinePlaceholder":12},[3950],{"type":37,"value":259},{"type":27,"tag":206,"props":3952,"children":3953},{"class":208,"line":690},[3954,3958,3962,3966,3970],{"type":27,"tag":206,"props":3955,"children":3956},{"style":223},[3957],{"type":37,"value":2778},{"type":27,"tag":206,"props":3959,"children":3960},{"style":223},[3961],{"type":37,"value":380},{"type":27,"tag":206,"props":3963,"children":3964},{"style":383},[3965],{"type":37,"value":2787},{"type":27,"tag":206,"props":3967,"children":3968},{"style":247},[3969],{"type":37,"value":501},{"type":27,"tag":206,"props":3971,"children":3972},{"style":247},[3973],{"type":37,"value":412},{"type":27,"tag":206,"props":3975,"children":3976},{"class":208,"line":698},[3977,3982,3986,3990],{"type":27,"tag":206,"props":3978,"children":3979},{"style":229},[3980],{"type":37,"value":3981},"        database",{"type":27,"tag":206,"props":3983,"children":3984},{"style":247},[3985],{"type":37,"value":443},{"type":27,"tag":206,"props":3987,"children":3988},{"style":383},[3989],{"type":37,"value":3794},{"type":27,"tag":206,"props":3991,"children":3992},{"style":247},[3993],{"type":37,"value":884},{"type":27,"tag":206,"props":3995,"children":3996},{"class":208,"line":707},[3997],{"type":27,"tag":206,"props":3998,"children":3999},{"style":247},[4000],{"type":37,"value":678},{"type":27,"tag":206,"props":4002,"children":4003},{"class":208,"line":743},[4004],{"type":27,"tag":206,"props":4005,"children":4006},{"style":247},[4007],{"type":37,"value":687},{"type":27,"tag":50,"props":4009,"children":4010},{},[4011,4013,4018],{"type":37,"value":4012},"Dans le second exemple, l'injection de dépendance rend la classe plus testable. Au lieu de créer une instance de ",{"type":27,"tag":202,"props":4014,"children":4016},{"className":4015},[],[4017],{"type":37,"value":3894},{"type":37,"value":4019}," en interne, vous pouvez passer une base de données fictive (mock) lors de vos tests unitaires.",{"type":27,"tag":316,"props":4021,"children":4022},{"type":318},[4023],{"type":27,"tag":50,"props":4024,"children":4025},{},[4026],{"type":37,"value":4027},"Rendez chaque classe indépendante de ses dépendances réelles en utilisant des interfaces ou des injections de dépendances. Cela vous permet de tester chaque partie du code de manière isolée.",{"type":27,"tag":136,"props":4029,"children":4030},{},[],{"type":27,"tag":28,"props":4032,"children":4034},{"id":4033},"conseils-et-astuces-pour-appliquer-le-clean-code-au-quotidien",[4035],{"type":27,"tag":33,"props":4036,"children":4037},{},[4038],{"type":37,"value":4039},"Conseils et astuces pour appliquer le Clean Code au quotidien",{"type":27,"tag":50,"props":4041,"children":4042},{},[4043,4045,4049],{"type":37,"value":4044},"Maintenant que vous connaissez les bases du ",{"type":27,"tag":33,"props":4046,"children":4047},{},[4048],{"type":37,"value":64},{"type":37,"value":4050},", voyons comment intégrer ces bonnes pratiques dans votre travail quotidien, même lorsque vous êtes sous pression ou que vous devez travailler sur du code existant. Voici quelques astuces simples mais efficaces pour garder votre code propre, maintenable et lisible à long terme.",{"type":27,"tag":40,"props":4052,"children":4054},{"id":4053},"_1-réécrire-du-code-existant-le-refactoring-progressif",[4055],{"type":27,"tag":33,"props":4056,"children":4057},{},[4058],{"type":37,"value":4059},"1. Réécrire du code existant : le refactoring progressif",{"type":27,"tag":50,"props":4061,"children":4062},{},[4063,4065,4071,4073,4078],{"type":37,"value":4064},"Quand vous héritez d'un ",{"type":27,"tag":3675,"props":4066,"children":4068},{"href":4067},"/fr/dette-technique/legacy-code-evaluer-risque",[4069],{"type":37,"value":4070},"code legacy",{"type":37,"value":4072}," mal structuré ou difficile à comprendre, il peut être tentant de tout réécrire. Cependant, ce n'est pas toujours réaliste ou nécessaire. La meilleure approche est souvent le ",{"type":27,"tag":33,"props":4074,"children":4075},{},[4076],{"type":37,"value":4077},"refactoring progressif",{"type":37,"value":4079}," : au lieu de tout changer d'un coup, vous améliorez petit à petit le code à chaque modification ou ajout de fonctionnalité.",{"type":27,"tag":50,"props":4081,"children":4082},{},[4083],{"type":27,"tag":33,"props":4084,"children":4085},{},[4086],{"type":37,"value":193},{"type":27,"tag":195,"props":4088,"children":4090},{"className":197,"code":4089,"language":199,"meta":7,"style":7},"// Code hérité difficile à comprendre\npublic void traitementCommande(Commande commande) {\n    if (commande.isUrgent() && !commande.isValide()) {\n        System.out.println(\"Erreur\");\n    }\n    // Autres opérations\n}\n\n// Refactorisation progressive\npublic void verifierCommandeValide(Commande commande) {\n    if (!commande.isValide()) {\n        throw new IllegalArgumentException(\"Commande invalide\");\n    }\n}\n",[4091],{"type":27,"tag":202,"props":4092,"children":4093},{"__ignoreMap":7},[4094,4102,4140,4200,4236,4243,4251,4258,4265,4273,4309,4344,4373,4380],{"type":27,"tag":206,"props":4095,"children":4096},{"class":208,"line":209},[4097],{"type":27,"tag":206,"props":4098,"children":4099},{"style":213},[4100],{"type":37,"value":4101},"// Code hérité difficile à comprendre\n",{"type":27,"tag":206,"props":4103,"children":4104},{"class":208,"line":219},[4105,4109,4113,4118,4122,4127,4132,4136],{"type":27,"tag":206,"props":4106,"children":4107},{"style":223},[4108],{"type":37,"value":375},{"type":27,"tag":206,"props":4110,"children":4111},{"style":223},[4112],{"type":37,"value":380},{"type":27,"tag":206,"props":4114,"children":4115},{"style":383},[4116],{"type":37,"value":4117}," traitementCommande",{"type":27,"tag":206,"props":4119,"children":4120},{"style":247},[4121],{"type":37,"value":391},{"type":27,"tag":206,"props":4123,"children":4124},{"style":394},[4125],{"type":37,"value":4126},"Commande",{"type":27,"tag":206,"props":4128,"children":4129},{"style":229},[4130],{"type":37,"value":4131}," commande",{"type":27,"tag":206,"props":4133,"children":4134},{"style":247},[4135],{"type":37,"value":407},{"type":27,"tag":206,"props":4137,"children":4138},{"style":247},[4139],{"type":37,"value":412},{"type":27,"tag":206,"props":4141,"children":4142},{"class":208,"line":253},[4143,4147,4151,4156,4160,4165,4169,4174,4179,4183,4187,4192,4196],{"type":27,"tag":206,"props":4144,"children":4145},{"style":223},[4146],{"type":37,"value":428},{"type":27,"tag":206,"props":4148,"children":4149},{"style":247},[4150],{"type":37,"value":433},{"type":27,"tag":206,"props":4152,"children":4153},{"style":229},[4154],{"type":37,"value":4155},"commande",{"type":27,"tag":206,"props":4157,"children":4158},{"style":247},[4159],{"type":37,"value":443},{"type":27,"tag":206,"props":4161,"children":4162},{"style":383},[4163],{"type":37,"value":4164},"isUrgent",{"type":27,"tag":206,"props":4166,"children":4167},{"style":247},[4168],{"type":37,"value":501},{"type":27,"tag":206,"props":4170,"children":4171},{"style":235},[4172],{"type":37,"value":4173}," &&",{"type":27,"tag":206,"props":4175,"children":4176},{"style":235},[4177],{"type":37,"value":4178}," !",{"type":27,"tag":206,"props":4180,"children":4181},{"style":229},[4182],{"type":37,"value":4155},{"type":27,"tag":206,"props":4184,"children":4185},{"style":247},[4186],{"type":37,"value":443},{"type":27,"tag":206,"props":4188,"children":4189},{"style":383},[4190],{"type":37,"value":4191},"isValide",{"type":27,"tag":206,"props":4193,"children":4194},{"style":247},[4195],{"type":37,"value":453},{"type":27,"tag":206,"props":4197,"children":4198},{"style":247},[4199],{"type":37,"value":412},{"type":27,"tag":206,"props":4201,"children":4202},{"class":208,"line":262},[4203,4207,4211,4215,4219,4223,4227,4232],{"type":27,"tag":206,"props":4204,"children":4205},{"style":229},[4206],{"type":37,"value":637},{"type":27,"tag":206,"props":4208,"children":4209},{"style":247},[4210],{"type":37,"value":443},{"type":27,"tag":206,"props":4212,"children":4213},{"style":229},[4214],{"type":37,"value":646},{"type":27,"tag":206,"props":4216,"children":4217},{"style":247},[4218],{"type":37,"value":443},{"type":27,"tag":206,"props":4220,"children":4221},{"style":383},[4222],{"type":37,"value":655},{"type":27,"tag":206,"props":4224,"children":4225},{"style":247},[4226],{"type":37,"value":391},{"type":27,"tag":206,"props":4228,"children":4229},{"style":662},[4230],{"type":37,"value":4231},"\"Erreur\"",{"type":27,"tag":206,"props":4233,"children":4234},{"style":247},[4235],{"type":37,"value":524},{"type":27,"tag":206,"props":4237,"children":4238},{"class":208,"line":271},[4239],{"type":27,"tag":206,"props":4240,"children":4241},{"style":247},[4242],{"type":37,"value":678},{"type":27,"tag":206,"props":4244,"children":4245},{"class":208,"line":468},[4246],{"type":27,"tag":206,"props":4247,"children":4248},{"style":213},[4249],{"type":37,"value":4250},"    // Autres opérations\n",{"type":27,"tag":206,"props":4252,"children":4253},{"class":208,"line":527},[4254],{"type":27,"tag":206,"props":4255,"children":4256},{"style":247},[4257],{"type":37,"value":687},{"type":27,"tag":206,"props":4259,"children":4260},{"class":208,"line":535},[4261],{"type":27,"tag":206,"props":4262,"children":4263},{"emptyLinePlaceholder":12},[4264],{"type":37,"value":259},{"type":27,"tag":206,"props":4266,"children":4267},{"class":208,"line":544},[4268],{"type":27,"tag":206,"props":4269,"children":4270},{"style":213},[4271],{"type":37,"value":4272},"// Refactorisation progressive\n",{"type":27,"tag":206,"props":4274,"children":4275},{"class":208,"line":575},[4276,4280,4284,4289,4293,4297,4301,4305],{"type":27,"tag":206,"props":4277,"children":4278},{"style":223},[4279],{"type":37,"value":375},{"type":27,"tag":206,"props":4281,"children":4282},{"style":223},[4283],{"type":37,"value":380},{"type":27,"tag":206,"props":4285,"children":4286},{"style":383},[4287],{"type":37,"value":4288}," verifierCommandeValide",{"type":27,"tag":206,"props":4290,"children":4291},{"style":247},[4292],{"type":37,"value":391},{"type":27,"tag":206,"props":4294,"children":4295},{"style":394},[4296],{"type":37,"value":4126},{"type":27,"tag":206,"props":4298,"children":4299},{"style":229},[4300],{"type":37,"value":4131},{"type":27,"tag":206,"props":4302,"children":4303},{"style":247},[4304],{"type":37,"value":407},{"type":27,"tag":206,"props":4306,"children":4307},{"style":247},[4308],{"type":37,"value":412},{"type":27,"tag":206,"props":4310,"children":4311},{"class":208,"line":583},[4312,4316,4320,4324,4328,4332,4336,4340],{"type":27,"tag":206,"props":4313,"children":4314},{"style":223},[4315],{"type":37,"value":428},{"type":27,"tag":206,"props":4317,"children":4318},{"style":247},[4319],{"type":37,"value":433},{"type":27,"tag":206,"props":4321,"children":4322},{"style":235},[4323],{"type":37,"value":1467},{"type":27,"tag":206,"props":4325,"children":4326},{"style":229},[4327],{"type":37,"value":4155},{"type":27,"tag":206,"props":4329,"children":4330},{"style":247},[4331],{"type":37,"value":443},{"type":27,"tag":206,"props":4333,"children":4334},{"style":383},[4335],{"type":37,"value":4191},{"type":27,"tag":206,"props":4337,"children":4338},{"style":247},[4339],{"type":37,"value":453},{"type":27,"tag":206,"props":4341,"children":4342},{"style":247},[4343],{"type":37,"value":412},{"type":27,"tag":206,"props":4345,"children":4346},{"class":208,"line":592},[4347,4352,4356,4361,4365,4369],{"type":27,"tag":206,"props":4348,"children":4349},{"style":223},[4350],{"type":37,"value":4351},"        throw",{"type":27,"tag":206,"props":4353,"children":4354},{"style":223},[4355],{"type":37,"value":3768},{"type":27,"tag":206,"props":4357,"children":4358},{"style":383},[4359],{"type":37,"value":4360}," IllegalArgumentException",{"type":27,"tag":206,"props":4362,"children":4363},{"style":247},[4364],{"type":37,"value":391},{"type":27,"tag":206,"props":4366,"children":4367},{"style":662},[4368],{"type":37,"value":665},{"type":27,"tag":206,"props":4370,"children":4371},{"style":247},[4372],{"type":37,"value":524},{"type":27,"tag":206,"props":4374,"children":4375},{"class":208,"line":613},[4376],{"type":27,"tag":206,"props":4377,"children":4378},{"style":247},[4379],{"type":37,"value":678},{"type":27,"tag":206,"props":4381,"children":4382},{"class":208,"line":631},[4383],{"type":27,"tag":206,"props":4384,"children":4385},{"style":247},[4386],{"type":37,"value":687},{"type":27,"tag":50,"props":4388,"children":4389},{},[4390,4392,4398],{"type":37,"value":4391},"Dans cet exemple, au lieu de réécrire toute la méthode ",{"type":27,"tag":202,"props":4393,"children":4395},{"className":4394},[],[4396],{"type":37,"value":4397},"traitementCommande",{"type":37,"value":4399},", j’ai simplement extrait une partie du code dans une fonction dédiée, ce qui clarifie une portion du processus sans tout chambouler. Ce type de petit refactoring est une manière efficace de rendre le code plus propre à mesure que vous y travaillez.",{"type":27,"tag":316,"props":4401,"children":4402},{"type":318},[4403],{"type":27,"tag":50,"props":4404,"children":4405},{},[4406],{"type":37,"value":4407},"N'attendez pas de trouver du temps pour tout réécrire. Appliquez des petites améliorations à chaque passage sur du code existant. Petit à petit, vous verrez des résultats.",{"type":27,"tag":136,"props":4409,"children":4410},{},[],{"type":27,"tag":40,"props":4412,"children":4414},{"id":4413},"_2-prioriser-le-clean-code-sous-pression",[4415],{"type":27,"tag":33,"props":4416,"children":4417},{},[4418],{"type":37,"value":4419},"2. Prioriser le Clean Code sous pression",{"type":27,"tag":50,"props":4421,"children":4422},{},[4423,4425,4429],{"type":37,"value":4424},"Il est souvent tentant de sacrifier la qualité du code quand les délais sont serrés. Cependant, adopter les principes du ",{"type":27,"tag":33,"props":4426,"children":4427},{},[4428],{"type":37,"value":64},{"type":37,"value":4430}," ne signifie pas que vous devez ralentir. Bien au contraire, ces principes, lorsqu’ils sont appliqués de manière cohérente, peuvent vous aider à être plus rapide, en vous permettant de comprendre et de modifier votre code plus facilement.",{"type":27,"tag":50,"props":4432,"children":4433},{},[4434,4436,4441],{"type":37,"value":4435},"Voici quelques astuces pour ",{"type":27,"tag":33,"props":4437,"children":4438},{},[4439],{"type":37,"value":4440},"garder votre code propre même sous pression",{"type":37,"value":4442}," :",{"type":27,"tag":4444,"props":4445,"children":4446},"ul",{},[4447,4458,4468],{"type":27,"tag":4448,"props":4449,"children":4450},"li",{},[4451,4456],{"type":27,"tag":33,"props":4452,"children":4453},{},[4454],{"type":37,"value":4455},"Utilisez des fonctions courtes et bien nommées.",{"type":37,"value":4457}," Même en mode rush, séparer les responsabilités vous permet de limiter les erreurs et d’accélérer le débogage.",{"type":27,"tag":4448,"props":4459,"children":4460},{},[4461,4466],{"type":27,"tag":33,"props":4462,"children":4463},{},[4464],{"type":37,"value":4465},"Nommez les variables clairement.",{"type":37,"value":4467}," Prendre quelques secondes pour choisir un nom explicite peut vous faire gagner des heures plus tard en maintenance.",{"type":27,"tag":4448,"props":4469,"children":4470},{},[4471,4476],{"type":27,"tag":33,"props":4472,"children":4473},{},[4474],{"type":37,"value":4475},"Évitez les solutions \"hacky\".",{"type":37,"value":4477}," Même si une solution rapide semble tentante, elle peut introduire des bugs difficiles à repérer plus tard.",{"type":27,"tag":316,"props":4479,"children":4480},{"type":318},[4481],{"type":27,"tag":50,"props":4482,"children":4483},{},[4484],{"type":37,"value":4485},"Fixez-vous une règle simple : \"Pas de code hacky\". Si vous vous trouvez sur le point d’ajouter une solution temporaire ou désordonnée, posez-vous la question : est-ce que vous vous souviendrez de ce hack dans 3 mois ? Si non, trouvez un moyen plus propre.",{"type":27,"tag":136,"props":4487,"children":4488},{},[],{"type":27,"tag":40,"props":4490,"children":4492},{"id":4491},"_3-collaborer-avec-dautres-développeurs-pour-améliorer-le-code",[4493],{"type":27,"tag":33,"props":4494,"children":4495},{},[4496],{"type":37,"value":4497},"3. Collaborer avec d’autres développeurs pour améliorer le code",{"type":27,"tag":50,"props":4499,"children":4500},{},[4501,4502,4506,4508,4513],{"type":37,"value":101},{"type":27,"tag":33,"props":4503,"children":4504},{},[4505],{"type":37,"value":64},{"type":37,"value":4507}," n’est pas seulement une affaire personnelle. Il est aussi essentiel d’inciter vos collègues à adopter ces bonnes pratiques. Une ",{"type":27,"tag":33,"props":4509,"children":4510},{},[4511],{"type":37,"value":4512},"revue de code",{"type":37,"value":4514}," régulière est un excellent moyen d’encourager une culture du Clean Code au sein de votre équipe. Chacun peut ainsi apprendre des autres et partager des conseils sur la façon d’améliorer la qualité du code.",{"type":27,"tag":50,"props":4516,"children":4517},{},[4518],{"type":27,"tag":33,"props":4519,"children":4520},{},[4521],{"type":37,"value":4522},"Quelques conseils pour une bonne collaboration :",{"type":27,"tag":4444,"props":4524,"children":4525},{},[4526,4536,4546],{"type":27,"tag":4448,"props":4527,"children":4528},{},[4529,4534],{"type":27,"tag":33,"props":4530,"children":4531},{},[4532],{"type":37,"value":4533},"Soyez constructif lors des revues de code.",{"type":37,"value":4535}," Au lieu de pointer du doigt les erreurs, proposez des solutions et expliquez pourquoi une modification rendrait le code plus clair.",{"type":27,"tag":4448,"props":4537,"children":4538},{},[4539,4544],{"type":27,"tag":33,"props":4540,"children":4541},{},[4542],{"type":37,"value":4543},"Favorisez la documentation du code.",{"type":37,"value":4545}," Encouragez vos collègues à écrire des noms explicites, à bien structurer les fonctions, et à éviter les duplications.",{"type":27,"tag":4448,"props":4547,"children":4548},{},[4549,4554],{"type":27,"tag":33,"props":4550,"children":4551},{},[4552],{"type":37,"value":4553},"Partagez les succès.",{"type":37,"value":4555}," Quand un bon refactoring ou une amélioration de la lisibilité est fait, mettez-le en avant lors de vos réunions d’équipe.",{"type":27,"tag":316,"props":4557,"children":4558},{"type":318},[4559],{"type":27,"tag":50,"props":4560,"children":4561},{},[4562,4564,4568],{"type":37,"value":4563},"Créez un guide interne de ",{"type":27,"tag":33,"props":4565,"children":4566},{},[4567],{"type":37,"value":64},{"type":37,"value":4569}," avec des exemples de bonnes pratiques. Cela permet à tous les développeurs de se référer à des règles claires et d'améliorer progressivement la qualité du code.",{"type":27,"tag":136,"props":4571,"children":4572},{},[],{"type":27,"tag":28,"props":4574,"children":4576},{"id":4575},"faq-sur-le-clean-code",[4577],{"type":27,"tag":33,"props":4578,"children":4579},{},[4580],{"type":37,"value":4581},"FAQ sur le Clean Code",{"type":27,"tag":50,"props":4583,"children":4584},{},[4585,4587,4592,4594,4598],{"type":37,"value":4586},"Voici une section ",{"type":27,"tag":33,"props":4588,"children":4589},{},[4590],{"type":37,"value":4591},"FAQ",{"type":37,"value":4593}," qui répond aux questions les plus courantes sur le ",{"type":27,"tag":33,"props":4595,"children":4596},{},[4597],{"type":37,"value":64},{"type":37,"value":4599},". Que vous débutiez ou que vous soyez déjà familier avec ces principes, vous trouverez ici des réponses claires à vos interrogations.",{"type":27,"tag":4601,"props":4602,"children":4603},"details",{},[4604,4610],{"type":27,"tag":4605,"props":4606,"children":4607},"summary",{},[4608],{"type":37,"value":4609},"1. Qu'est-ce que le Clean Code exactement ?",{"type":27,"tag":50,"props":4611,"children":4612},{},[4613,4614,4618],{"type":37,"value":101},{"type":27,"tag":33,"props":4615,"children":4616},{},[4617],{"type":37,"value":64},{"type":37,"value":4619}," est un ensemble de pratiques visant à écrire un code qui soit lisible, maintenable, et compréhensible par d'autres développeurs. Il s'agit d'un code bien structuré, avec des noms explicites, des fonctions courtes, et des responsabilités clairement définies. L'objectif est de rendre le code facile à modifier et à faire évoluer au fil du temps, tout en réduisant les risques d'erreurs.",{"type":27,"tag":4601,"props":4621,"children":4622},{},[4623,4628],{"type":27,"tag":4605,"props":4624,"children":4625},{},[4626],{"type":37,"value":4627},"2. Pourquoi est-il important d'écrire du Clean Code ?",{"type":27,"tag":50,"props":4629,"children":4630},{},[4631,4633,4637],{"type":37,"value":4632},"Un code propre permet de gagner du temps à long terme. Même si écrire du ",{"type":27,"tag":33,"props":4634,"children":4635},{},[4636],{"type":37,"value":64},{"type":37,"value":4638}," demande un effort initial, cela réduit considérablement le temps nécessaire pour comprendre, déboguer, et modifier votre code. Cela améliore également la collaboration au sein des équipes de développement, car tout le monde peut lire et comprendre le code rapidement.",{"type":27,"tag":4601,"props":4640,"children":4641},{},[4642,4647,4658],{"type":27,"tag":4605,"props":4643,"children":4644},{},[4645],{"type":37,"value":4646},"3. Quels sont les principaux principes du Clean Code ?",{"type":27,"tag":50,"props":4648,"children":4649},{},[4650,4652,4656],{"type":37,"value":4651},"Les principes du ",{"type":27,"tag":33,"props":4653,"children":4654},{},[4655],{"type":37,"value":64},{"type":37,"value":4657}," incluent :",{"type":27,"tag":4444,"props":4659,"children":4660},{},[4661,4671,4681,4691,4699],{"type":27,"tag":4448,"props":4662,"children":4663},{},[4664,4669],{"type":27,"tag":33,"props":4665,"children":4666},{},[4667],{"type":37,"value":4668},"Noms explicites",{"type":37,"value":4670}," pour les variables, fonctions, et classes",{"type":27,"tag":4448,"props":4672,"children":4673},{},[4674,4679],{"type":27,"tag":33,"props":4675,"children":4676},{},[4677],{"type":37,"value":4678},"Fonctions courtes",{"type":37,"value":4680},", qui se concentrent sur une seule responsabilité",{"type":27,"tag":4448,"props":4682,"children":4683},{},[4684,4689],{"type":27,"tag":33,"props":4685,"children":4686},{},[4687],{"type":37,"value":4688},"Réduction des duplications",{"type":37,"value":4690}," dans le code",{"type":27,"tag":4448,"props":4692,"children":4693},{},[4694],{"type":27,"tag":33,"props":4695,"children":4696},{},[4697],{"type":37,"value":4698},"Gestion claire des erreurs et des exceptions",{"type":27,"tag":4448,"props":4700,"children":4701},{},[4702,4707],{"type":27,"tag":33,"props":4703,"children":4704},{},[4705],{"type":37,"value":4706},"Tests unitaires",{"type":37,"value":4708}," pour garantir la robustesse du code",{"type":27,"tag":4601,"props":4710,"children":4711},{},[4712,4717],{"type":27,"tag":4605,"props":4713,"children":4714},{},[4715],{"type":37,"value":4716},"4. Comment puis-je appliquer le Clean Code sur un projet déjà existant ?",{"type":27,"tag":50,"props":4718,"children":4719},{},[4720,4722,4726],{"type":37,"value":4721},"Si vous travaillez sur un projet existant avec du code désordonné, la meilleure approche est de faire du ",{"type":27,"tag":33,"props":4723,"children":4724},{},[4725],{"type":37,"value":4077},{"type":37,"value":4727},". Cela signifie que vous améliorez le code petit à petit à chaque fois que vous ajoutez de nouvelles fonctionnalités ou que vous corrigez des bugs. Cela permet d'améliorer la qualité sans tout réécrire d'un coup.",{"type":27,"tag":4601,"props":4729,"children":4730},{},[4731,4736],{"type":27,"tag":4605,"props":4732,"children":4733},{},[4734],{"type":37,"value":4735},"5. Est-il possible de suivre les principes du Clean Code tout en respectant des délais serrés ?",{"type":27,"tag":50,"props":4737,"children":4738},{},[4739,4741,4745],{"type":37,"value":4740},"Oui, absolument ! Suivre les principes du ",{"type":27,"tag":33,"props":4742,"children":4743},{},[4744],{"type":37,"value":64},{"type":37,"value":4746}," ne ralentit pas votre travail, bien au contraire. En écrivant un code plus lisible et mieux structuré dès le départ, vous réduisez le temps passé à déboguer et à comprendre votre propre code plus tard. Même sous pression, privilégiez des fonctions courtes, des noms explicites, et évitez les solutions temporaires ou \"hacky\".",{"type":27,"tag":4601,"props":4748,"children":4749},{},[4750,4755],{"type":27,"tag":4605,"props":4751,"children":4752},{},[4753],{"type":37,"value":4754},"6. Comment convaincre mon équipe d'adopter le Clean Code ?",{"type":27,"tag":50,"props":4756,"children":4757},{},[4758,4760,4764],{"type":37,"value":4759},"Commencez par introduire des revues de code régulières où chaque développeur peut proposer des améliorations. Partagez les avantages du ",{"type":27,"tag":33,"props":4761,"children":4762},{},[4763],{"type":37,"value":64},{"type":37,"value":4765}," en termes de maintenabilité et de productivité à long terme. Vous pouvez aussi créer un guide interne des bonnes pratiques pour que chacun sache à quoi se référer. Enfin, montrez par l'exemple en appliquant ces principes dans votre propre code.",{"type":27,"tag":136,"props":4767,"children":4768},{},[],{"type":27,"tag":40,"props":4770,"children":4772},{"id":4771},"conclusion",[4773],{"type":27,"tag":33,"props":4774,"children":4775},{},[4776],{"type":37,"value":4777},"Conclusion",{"type":27,"tag":50,"props":4779,"children":4780},{},[4781,4782,4786],{"type":37,"value":101},{"type":27,"tag":33,"props":4783,"children":4784},{},[4785],{"type":37,"value":64},{"type":37,"value":4787}," est bien plus qu'une simple pratique technique. C'est une manière de penser et de coder qui vous permettra d'être plus efficace, de travailler en équipe plus facilement, et de maintenir des projets sur le long terme sans vous noyer dans un code difficile à comprendre. En appliquant ces principes, vous améliorerez non seulement la qualité de votre code, mais aussi votre productivité et votre satisfaction en tant que développeur.",{"type":27,"tag":1239,"props":4789,"children":4794},{"cta":4790,"href":4791,"title":4792,"type":4793},"Télécharger le diagnostic gratuit →","/mes-ressources","Ressource gratuite : 10 signaux que votre équipe tech est en danger","resource",[4795],{"type":27,"tag":50,"props":4796,"children":4797},{},[4798],{"type":37,"value":4799},"10 signaux d'alarme pour identifier les problèmes systémiques cachés dans votre équipe avant qu'ils deviennent critiques. Auto-diagnostic inclus : 5 minutes pour savoir où vous en êtes.",{"type":27,"tag":4801,"props":4802,"children":4803},"style",{},[4804],{"type":37,"value":4805},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":7,"searchDepth":219,"depth":219,"links":4807},[4808,4813,4818,4823,4828,4833],{"id":30,"depth":219,"text":38,"children":4809},[4810,4811,4812],{"id":42,"depth":253,"text":48},{"id":90,"depth":253,"text":96},{"id":110,"depth":253,"text":116},{"id":141,"depth":219,"text":147,"children":4814},[4815,4816,4817],{"id":161,"depth":253,"text":167},{"id":327,"depth":253,"text":333},{"id":1253,"depth":253,"text":1259},{"id":1595,"depth":219,"text":1601,"children":4819},[4820,4821,4822],{"id":1621,"depth":253,"text":1627},{"id":1785,"depth":253,"text":1791},{"id":2300,"depth":253,"text":2306},{"id":2690,"depth":219,"text":2696,"children":4824},[4825,4826,4827],{"id":2709,"depth":253,"text":2715},{"id":3149,"depth":253,"text":3155},{"id":3659,"depth":253,"text":3665},{"id":4033,"depth":219,"text":4039,"children":4829},[4830,4831,4832],{"id":4053,"depth":253,"text":4059},{"id":4413,"depth":253,"text":4419},{"id":4491,"depth":253,"text":4497},{"id":4575,"depth":219,"text":4581,"children":4834},[4835],{"id":4771,"depth":253,"text":4777},"markdown","content:fr:dette-technique:clean-code-software-craftsmanship-principes-java.md","content","fr/dette-technique/clean-code-software-craftsmanship-principes-java.md","fr/dette-technique/clean-code-software-craftsmanship-principes-java","md",1775679766174]