{"id":231075,"date":"2022-12-14T17:59:00","date_gmt":"2022-12-14T14:59:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231075"},"modified":"2022-12-07T11:35:03","modified_gmt":"2022-12-07T08:35:03","slug":"refactoriser-simplement-le-code-base-sur-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/refactoriser-simplement-le-code-base-sur-wordpress\/","title":{"rendered":"Refactoriser simplement le code bas\u00e9 sur WordPress"},"content":{"rendered":"\n<p>En 2011, je lisais beaucoup sur le travail avec le code h\u00e9rit\u00e9, la qualit\u00e9 du code et la refactorisation.<\/p>\n<p>Il y a une citation de <strong><a href=\"https:\/\/martinfowler.com\/bliki\/OpportunisticRefactoring.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Martin Fowler<\/a><\/strong> (qui a litt\u00e9ralement <strong><a href=\"https:\/\/martinfowler.com\/books\/refactoring.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e9crit le livre<\/a><\/strong> sur le refactoring) attribu\u00e9e \u00e0 l&rsquo; <a href=\"https:\/\/twitter.com\/unclebobmartin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">oncle Bob<\/a> qui m&rsquo;est rest\u00e9 &#8211; et je suis s\u00fbr que beaucoup, beaucoup de programmeurs &#8211; depuis :<\/p>\n<blockquote>\n<p>laissez toujours le code derri\u00e8re vous dans un meilleur \u00e9tat que vous ne l&rsquo;avez trouv\u00e9<\/p>\n<\/blockquote>\n<p>Le probl\u00e8me avec cette id\u00e9e particuli\u00e8re est que je pense que cela peut sembler un peu plus id\u00e9aliste jusqu&rsquo;\u00e0 ce que vous commenciez vraiment \u00e0 essayer de la mettre en pratique dans tout ce que vous faites.<\/p>\n<p>Autrement dit, si vous le prenez au pied de la lettre, cela ressemble \u00e0 chaque fois que vous devez travailler sur une base de code, alors vous devez laisser la base de code enti\u00e8re mieux que lorsque vous l&rsquo;avez trouv\u00e9e. Mais plus j&rsquo;ai essay\u00e9 d&rsquo;appliquer cette r\u00e8gle dans mon travail quotidien, plus le code sp\u00e9cifique \u00e0 WordPress est devenu pratique, plus propre et plus maintenable.<\/p>\n<p>Alors, quand il s&rsquo;agit de refactoriser du code bas\u00e9 sur WordPress, \u00e0 quoi cela ressemble-t-il ?<\/p>\n<p>Cela ne va pas \u00eatre un long post. Au lieu de cela, je vais simplement partager quelques puces que je suis lorsqu&rsquo;il s&rsquo;agit de travailler sur du code que j&rsquo;ai d\u00e9j\u00e0 \u00e9crit, que je rencontre d&rsquo;autres, ou qui provient d&rsquo;une base de code sur laquelle j&rsquo;ai travaill\u00e9 avec d&rsquo;autres dans le pass\u00e9.<\/p>\n<p>Dans aucun ordre particulier:<\/p>\n<ul>\n<li><strong>Ne soyez pas id\u00e9aliste\u00a0; Soyez pratique<\/strong>. La refactorisation d&rsquo;une base de code enti\u00e8re n&rsquo;est pas quelque chose de pratique, surtout si la base de code n&rsquo;est pas envelopp\u00e9e dans des tests unitaires. Regardez le code sur lequel vous travaillez et voyez quelles modifications mineures vous pouvez apporter pour l&rsquo;am\u00e9liorer.<\/li>\n<li><strong>Utilisez les derni\u00e8res normes<\/strong>. Vous n&rsquo;avez pas besoin de configurer un environnement de d\u00e9veloppement enti\u00e8rement nouveau pour le code plus ancien. Au lieu de cela, assurez-vous simplement d&rsquo;avoir de bons renifleurs de code en place. Si vous \u00eates pass\u00e9 des normes de codage WordPress \u00e0 PSR, examinez les avertissements ou les avis \u00e9mis par les renifleurs et essayez de mettre \u00e0 jour le code uniquement dans ce fichier (ou ensemble de fichiers).<\/li>\n<li><strong>Fonctions d&rsquo;aide \u00e0 l&rsquo;\u00e9criture<\/strong>. Si vos fonctions sont trop longues, cherchez des moyens de les rendre plus faciles \u00e0 utiliser. Tout d&rsquo;abord, mettez \u00e0 jour toutes les structures de contr\u00f4le telles que les boucles ou les conditions, puis \u00e9crivez des fonctions d&rsquo;assistance pour les rendre plus faciles \u00e0 lire.<\/li>\n<li><strong>Ajouter des tests (si possible)<\/strong>. Si vous avez d\u00e9j\u00e0 un framework de tests unitaires en place, ajoutez des tests pour votre nouveau code. Si vous n&rsquo;avez pas le temps ou le cadre, ne vous en faites pas. M\u00eame si les programmeurs pragmatiques le pr\u00eachent, il n&rsquo;y a pas toujours le temps d&rsquo;ajouter des tests. (Cela ne doit pas \u00eatre une d\u00e9claration selon laquelle ils ne sont pas utiles ou ne devraient pas \u00eatre inclus, mais qu&rsquo;il n&rsquo;est pas toujours pratique de les incorporer \u00e0 un moment donn\u00e9).<\/li>\n<\/ul>\n<p>Certaines des choses que je me suis retrouv\u00e9 \u00e0 faire dans des projets r\u00e9cents incluent aussi des choses simples\u00a0:<\/p>\n<ul>\n<li>mise \u00e0 jour des noms de variables et de fonctions pour suivre PSR,<\/li>\n<li>changer les tabulations en espaces,<\/li>\n<li>ajouter des fonctions d&rsquo;assistance pour rendre les conditions et les boucles plus lisibles,<\/li>\n<li>fractionner les classes pour qu&rsquo;elles aient un plus haut degr\u00e9 de coh\u00e9sion,<\/li>\n<li>am\u00e9liorer les docblocks de chaque fonction<\/li>\n<\/ul>\n<p>Ce ne sont l\u00e0 que quelques exemples et il ne s&rsquo;agit \u00e9videmment pas d&rsquo;une liste exhaustive. Mais ce n&rsquo;est pas le sujet. Au lieu de cela, je cherche simplement \u00e0 partager comment vous pouvez appliquer la refactorisation du code bas\u00e9 sur WordPress tout en effectuant votre travail quotidien de mani\u00e8re g\u00e9rable.<\/p>\n<p>Tous les changements ou recommandations ci-dessus sont des choses qui peuvent g\u00e9n\u00e9ralement \u00eatre faites avec l&rsquo;aide de l&rsquo;IDE, quelques raccourcis et avec peut-\u00eatre une demi-heure de temps suppl\u00e9mentaire (et je suis lib\u00e9ral avec cette estimation).<\/p>\n<p>Donc, non, vous n&rsquo;avez pas \u00e0 r\u00e9\u00e9crire une base de code enti\u00e8re. Je ne sais m\u00eame pas si c&rsquo;est un objectif pratique vers lequel viser. Mais pouvez-vous r\u00e9parer un petit \u00e9l\u00e9ment du syst\u00e8me global dont vous \u00eates responsable\u00a0?<\/p>\n<p>Et pourquoi ne pas viser au moins cela ?<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Plus j&rsquo;essaie d&rsquo;appliquer cela dans mon travail quotidien, meilleur mon code est devenu. Quand il s&rsquo;agit de refactoriser du code bas\u00e9 sur WordPress, \u00e0 quoi cela ressemble-t-il ?<\/p>\n","protected":false},"author":1,"featured_media":235914,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,717,841,862],"tags":[1167],"class_list":["post-231075","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231075","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=231075"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231075\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/235914"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=231075"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=231075"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=231075"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}