{"id":3016,"date":"2020-06-24T08:53:38","date_gmt":"2020-06-24T08:53:38","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/a-quick-primer-on-refactoring-for-beginners\/"},"modified":"2026-04-24T11:30:09","modified_gmt":"2026-04-24T11:30:09","slug":"une-introduction-rapide-au-refactoring-pour-les-debutants","status":"publish","type":"post","link":"https:\/\/thecodest.co\/fr\/blog\/a-quick-primer-on-refactoring-for-beginners\/","title":{"rendered":"Une introduction rapide au refactoring pour les d\u00e9butants"},"content":{"rendered":"<p>Il est donc incompr\u00e9hensible pour certains que <strong>remaniement<\/strong> est en fait un domaine de la programmation, et c'est aussi une partie tr\u00e8s importante du travail du programmeur. Le code est en constante \u00e9volution, il sera modifi\u00e9 tant qu'il sera possible d'ajouter de nouvelles fonctionnalit\u00e9s. Cependant, il peut prendre une forme qui ne permet plus d'ajouter efficacement de nouvelles fonctionnalit\u00e9s et il serait alors plus facile de r\u00e9\u00e9crire l'ensemble du programme.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu'est-ce que le refactoring ?<\/h2>\n\n\n\n<p>Habituellement, la r\u00e9ponse que vous entendez est qu'il s'agit de changer la structure du code en appliquant une s\u00e9rie de transformations de refactoring sans affecter le comportement observable du code. Cela est vrai. R\u00e9cemment, je suis \u00e9galement tomb\u00e9 sur une d\u00e9finition de <b>Martin Fowler<\/b> dans son livre <b>\"Am\u00e9liorer la conception des codes existants\".<\/b> o\u00f9 il d\u00e9crit <strong>remaniement<\/strong> comme \"faire de grands changements \u00e0 petits pas\". Il d\u00e9crit <strong>remaniement<\/strong> comme une modification du code n'affectant pas son fonctionnement, mais il insiste sur le fait que cela doit se faire par petites \u00e9tapes.<\/p>\n\n\n\n<p>Le livre pr\u00e9conise \u00e9galement que <strong>remaniement<\/strong> n'affecte pas le fonctionnement du code et souligne qu'elle n'a aucun effet sur la r\u00e9ussite des tests \u00e0 tout moment. Il d\u00e9crit \u00e9tape par \u00e9tape comment effectuer en toute s\u00e9curit\u00e9 <strong>remaniement<\/strong>. J'ai aim\u00e9 son livre parce qu'il d\u00e9crit des astuces simples qui peuvent \u00eatre utilis\u00e9es dans le travail de tous les jours.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi avons-nous besoin d'un remaniement ?<\/h2>\n\n\n\n<p>&nbsp;Le plus souvent, vous pouvez en avoir besoin lorsque vous souhaitez introduire une nouvelle fonctionnalit\u00e9 et que le code dans sa version actuelle ne le permet pas ou qu'il serait plus difficile de le faire sans modifier le code. Elle est \u00e9galement utile lorsque l'ajout de nouvelles fonctionnalit\u00e9s n'est pas rentable en termes de temps, c'est-\u00e0-dire qu'il serait plus rapide de r\u00e9\u00e9crire le code \u00e0 partir de z\u00e9ro. Je pense que l'on oublie parfois que <strong>remaniement<\/strong> peut rendre le code plus propre et plus lisible. Martin \u00e9crit dans son livre qu'il effectue des remaniements lorsqu'il sent des odeurs d\u00e9sagr\u00e9ables dans le code et, comme il le dit lui-m\u00eame, qu'il n'y a pas d'autres solutions que de remanier le code, <b>\"Il laisse toujours de la place pour le meilleur<\/b>. Et il m'a surpris ici en consid\u00e9rant le refactoring comme un \u00e9l\u00e9ment du travail quotidien du code. Pour moi, les codes sont souvent incompr\u00e9hensibles, les lire est un peu une exp\u00e9rience car le code est souvent peu intuitif.<\/p>\n\n\n\n<p>La caract\u00e9ristique d'un programme bien con\u00e7u est sa <b>modularit\u00e9<\/b>Gr\u00e2ce \u00e0 la modularit\u00e9, il suffit de ne conna\u00eetre qu'une petite partie du code pour introduire la plupart des modifications. La modularit\u00e9 facilite \u00e9galement l'int\u00e9gration de nouvelles personnes et leur permet de travailler plus efficacement. Pour parvenir \u00e0 cette modularit\u00e9, les \u00e9l\u00e9ments de programme apparent\u00e9s doivent \u00eatre regroup\u00e9s, les connexions \u00e9tant compr\u00e9hensibles et faciles \u00e0 trouver. Il n'existe pas de r\u00e8gle empirique unique sur la mani\u00e8re d'y parvenir. Au fur et \u00e0 mesure que l'on comprend mieux comment le code est cens\u00e9 fonctionner, on peut regrouper les \u00e9l\u00e9ments, mais il faut aussi parfois tester et v\u00e9rifier.<\/p>\n\n\n\n<p>L'une des r\u00e8gles du refactoring en <b>YAGNI<\/b>Il s'agit d'un acronyme pour \"You Aren't Gonna Need It\" (vous n'en aurez pas besoin), qui provient de l'anglais \"You Aren't Gonna Need It\". <b>Programmation eXtreme (XP) <\/b>utilis\u00e9 principalement dans <strong><a href=\"https:\/\/thecodest.co\/fr\/blog\/how-to-implement-agile-methodology\/\">Agile<\/a> <a href=\"https:\/\/thecodest.co\/fr\/blog\/8-key-questions-to-ask-your-software-development-outsourcing-partner\/\">d\u00e9veloppement de logiciels<\/a> \u00e9quipes<\/strong>. Pour faire court, <b>YAGNI<\/b> dit qu'il ne faut faire que les choses les plus r\u00e9centes. Cela signifie essentiellement que m\u00eame si quelque chose peut \u00eatre n\u00e9cessaire \u00e0 l'avenir, il ne faut pas le faire tout de suite.  Mais nous ne pouvons pas non plus bloquer les extensions futures et c'est l\u00e0 que la modularit\u00e9 devient importante.<\/p>\n\n\n\n<p>Lorsque l'on parle de <strong>remaniement<\/strong>il convient de mentionner l'un des \u00e9l\u00e9ments les plus essentiels, \u00e0 savoir les tests. En effet, en <strong>remaniement<\/strong>Nous avons besoin de savoir que le code fonctionne toujours, parce que <strong>remaniement<\/strong> ne modifie pas son fonctionnement, mais sa structure, de sorte que tous les tests doivent \u00eatre r\u00e9ussis. Il est pr\u00e9f\u00e9rable d'ex\u00e9cuter des tests pour la partie du code sur laquelle nous travaillons apr\u00e8s chaque petite transformation. Cela donne <a href=\"https:\/\/thecodest.co\/fr\/blog\/why-us-companies-are-opting-for-polish-developers\/\">nous<\/a> une confirmation que tout fonctionne comme il se doit et cela raccourcit la dur\u00e9e de l'ensemble de l'op\u00e9ration. C'est ce dont Martin parle dans son livre : effectuer des tests aussi souvent que possible afin de ne pas prendre du recul et perdre du temps \u00e0 chercher une transformation qui a cass\u00e9 quelque chose.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/thecodest.co\/fr\/dictionary\/what-is-code-refactoring\/\">Refonte du code<\/a><\/strong> Sans test, c'est un vrai calvaire et il y a de grandes chances que quelque chose ne fonctionne pas. Si c'est possible, il serait pr\u00e9f\u00e9rable d'ajouter au moins quelques tests de base qui nous donneront un peu d'assurance que le code fonctionne.<\/p>\n\n\n\n<p>Les transformations \u00e9num\u00e9r\u00e9es ci-dessous ne sont que des exemples, mais elles sont tr\u00e8s utiles dans la programmation quotidienne :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Extraction de fonctions et de variables - si la fonction est trop longue, v\u00e9rifiez s'il existe des fonctions mineures qui pourraient \u00eatre extraites. Il en va de m\u00eame pour les longues lignes. Ces transformations peuvent aider \u00e0 trouver des doublons dans le code. Gr\u00e2ce aux petites fonctions, le code devient plus clair et plus compr\u00e9hensible,<\/li>\n\n\n\n<li>Renommer les fonctions et les variables - l'utilisation d'une convention de d\u00e9nomination correcte est essentielle \u00e0 une bonne programmation. Les noms de variables, lorsqu'ils sont bien choisis, peuvent en dire long sur le code,<\/li>\n\n\n\n<li>Regroupement des fonctions dans une classe - cette modification est utile lorsque deux classes effectuent des op\u00e9rations similaires, car elle permet de raccourcir la dur\u00e9e de la classe,<\/li>\n\n\n\n<li>Remplacer l'instruction imbriqu\u00e9e - si la condition est v\u00e9rifi\u00e9e dans un cas particulier, \u00e9mettre une instruction de retour lorsque la condition se produit. Ce type de test est souvent appel\u00e9 clause de garde. Le remplacement d'une instruction conditionnelle imbriqu\u00e9e par une instruction de sortie modifie l'importance du code. La construction if-else attribue la m\u00eame importance aux deux variantes. Pour la personne qui lit le code, il s'agit d'un message indiquant que chacune d'entre elles est aussi probable et importante que l'autre,<\/li>\n\n\n\n<li>Introduction d'un cas sp\u00e9cial - si vous utilisez certaines conditions \u00e0 plusieurs reprises dans votre code, il peut \u00eatre int\u00e9ressant de cr\u00e9er une structure distincte pour elles. Par cons\u00e9quent, la plupart des v\u00e9rifications de cas particuliers peuvent \u00eatre remplac\u00e9es par de simples appels de fonction. Souvent, la valeur courante qui n\u00e9cessite un traitement sp\u00e9cial est null. C'est pourquoi ce mod\u00e8le est souvent appel\u00e9 \"objet z\u00e9ro\". Toutefois, cette approche peut \u00eatre utilis\u00e9e dans n'importe quel cas particulier,<\/li>\n\n\n\n<li>Remplacement du polymorphisme d'instruction conditionnelle.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Exemple<\/h2>\n\n\n\n<p>Il s'agit d'un article sur <strong>remaniement<\/strong> et un exemple est n\u00e9cessaire. Je veux montrer un exemple simple de refactorisation ci-dessous avec l'utilisation de <b>Remplacer la d\u00e9claration imbriqu\u00e9e<\/b> et <b>Remplacement du polymorphisme d'instruction conditionnelle<\/b>. Supposons que nous ayons une fonction de programme qui renvoie un <a href=\"https:\/\/thecodest.co\/fr\/blog\/hash-to-use-or-not-to-use\/\">hachage<\/a> avec des informations sur la mani\u00e8re d'arroser les plantes dans la vie r\u00e9elle. Ces informations se trouveraient probablement dans le mod\u00e8le, mais pour cet exemple, elles se trouvent dans la fonction.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def watering_info(plant)\n     result = {}\n     if plant.is_a ? Suculent || plant.is_a ? Cactus\n         result = { water_amount : \"Un petit peu\" , how_to : \"Par le bas\", dur\u00e9e de l'arrosage : \"2 semaines\" }\n     elsif plant.is_a ? Alocasia || plant.is_a ? Maranta\n         result = { water_amount : \"Grande quantit\u00e9\", how_to : \"Comme vous pr\u00e9f\u00e9rez\", watering_duration : \"5 jours\" }\n     elsif plant.is_a ? Peperomia\n         result = { water_amount : \"Quantit\u00e9 d'eau\",\n             how_to : \"Par le bas ! ils n'aiment pas l'eau sur les feuilles\",\n             watering_duration : \"1 semaine\" }\n     else\n         result = { water_amount : \"Quantit\u00e9 d'eau\",\n             how_to : \"Comme vous le souhaitez\",\n             watering_duration : \"1 semaine\"\n             }\n     fin\n     retourner le r\u00e9sultat\n fin\n<\/code><\/pre>\n\n\n\n<p>L'id\u00e9e est de changer pour revenir :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">if plant.isa ? Suculent || plant.isa ? Cactus\n\n     result = { wateramount : \"Un peu\" , howto : \"Depuis le bas\",\n<\/code><\/pre>\n\n\n\n<p>Pour<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>return { water_amount : \"Un petit peu\" , how_to : \"Depuis le bas\",watering_duration : \"2 semaines\" } if plant.is_a ? Suculent || plant.is_a ? Cactus<\/code><\/code><\/pre>\n\n\n\n<p>return { eau<em>montant : \"Un peu\", comment<\/em>\u00e0 : \"De bas en haut\", arrosage<em>dur\u00e9e : \"2 semaines\" } if plant.is<\/em>a ? Suculent || plant.is_a ? Cactus<\/p>\n\n\n\n<p>Et ainsi de suite, jusqu'\u00e0 ce que nous arrivions \u00e0 une fonction qui ressemble \u00e0 ceci :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def watering_info(plant)\n\nreturn result = { wateramount : \"Un petit peu\" , howto : \"Depuis le bas\", dur\u00e9e de l'arrosage : \"2 semaines\" } if plant.isa ? Suculent || plant.is_a ? Cactus\n\nreturn result = { wateramount : \"Grande quantit\u00e9\", howto : \"Comme vous le souhaitez\", wateringduration : \"5 jours\" } if plant.isa ? Alocasia || plant.is_a ? Maranta\n\nreturn result = { water_amount : \"Quantit\u00e9 d'eau\",\n\n          howto : \"Par le bas ! ils n'aiment pas l'eau sur les feuilles\",\n          wateringduration : \"1 semaine\" } if plant.is_a ? Peperomia\n\nreturn result = { water_amount : \"Quantit\u00e9 d'eau\",\n\n          how_to : \"Comme vous le souhaitez\",\n\n          watering_duration : \"1 semaine\"\n\n          }\n\nfin<\/code><\/pre>\n\n\n\n<p>\u00a0\u00c0 la toute fin, nous avions d\u00e9j\u00e0 un r\u00e9sultat de retour. Une bonne habitude consiste \u00e0 proc\u00e9der \u00e9tape par \u00e9tape et \u00e0 tester chaque changement. Vous pourriez remplacer ce bloc if par un switch case et cela aurait imm\u00e9diatement l'air mieux, et vous n'auriez pas \u00e0 v\u00e9rifier tous les ifs \u00e0 chaque fois. Cela ressemblerait \u00e0 ceci :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def watering_info(plant)\n\nswich plant.class.to_string\n\ncase Suculente, Cactus\n\n     { wateramount : \"Un peu\" , howto : \"Par le bas\", watering_duration : \"2 semaines\" }\n\ncas Alocasia, Maranta\n\n     { wateramount : \"Grande quantit\u00e9\", howto : \"Comme vous le souhaitez\", watering_duration : \"5 jours\" }\n\ncas Peperomia\n\n     { water_amount : \"Quantit\u00e9 d'eau\",\n\n          how_to : \"Par le bas ! ils n'aiment pas l'eau sur les feuilles\",\n\n          watering_duration : \"1 semaine\" }\n\nelse\n\n     { water_amount : \"Dicent amount\",\n\n            how_to : \"Comme vous pr\u00e9f\u00e9rez\",\n\n       watering_duration : \"1 semaine\" }\n\nfin\n\nfin<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Vous pouvez ensuite appliquer le <b>Remplacement du polymorphisme d'instruction conditionnelle<\/b>. Il s'agit de cr\u00e9er une classe avec une fonction qui renvoie la bonne valeur et qui les place \u00e0 l'endroit appropri\u00e9.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">classe Suculente\n\n...\n\ndef watering_info()\n\n     return { quantit\u00e9 d'eau : \"Un petit peu\" , howto : \"Depuis le bas\", watering_duration : \"2 semaines\" }\n\nfin\n\nfin\n\nclasse Cactus\n\n...\n\ndef watering_info()\n\n     return { quantit\u00e9 d'eau : \"Un petit peu\" , howto : \"Depuis le bas\", watering_duration : \"2 semaines\" }\n\nfin\n\nfin\n\nclasse Alocasia\n\n...\n\ndef watering_info\n\n     return { wateramount : \"Grande quantit\u00e9\", howto : \"Comme vous le souhaitez\", watering_duration : \"5 jours\" }\n\nfin\n\nfin\n\nclasse Maranta\n\n...\n\ndef watering_info\n\n     return { wateramount : \"Grande quantit\u00e9\", howto : \"Comme vous le souhaitez\", watering_duration : \"5 jours\" }\n\nfin\n\nfin\n\nclasse Peperomia\n\n...\n\ndef watering_info\n\n     return {montant_d'eau : \"Montant de l'arrosage\",\n\n      how_to : \"Par le bas ! ils n'aiment pas l'eau sur les feuilles\",\n\n      watering_duration : \"1 semaine\" }\n\nfin\n\nfin\n\nclasse Plant\n\n...\n\ndef watering_info\n\n     return {montant_d'eau : \"Montant de l'arrosage\",\n\n              how_to : \"Comme vous pr\u00e9f\u00e9rez\",\n\n              watering_duration : \"1 semaine\" }\n\nfin\n\nfin<\/code><\/pre>\n\n\n\n<p>Et dans la fonction principale watering_infofunction, le code ressemblera \u00e0 ceci :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def watering_info(plant)\n\n    plant.map(&amp;:watering_info)\n\nend<\/code><\/pre>\n\n\n\n<p>Bien entendu, cette fonction peut \u00eatre supprim\u00e9e et remplac\u00e9e par son contenu. Avec cet exemple, j'ai voulu pr\u00e9senter le fonctionnement g\u00e9n\u00e9ral de la fonction <strong>mod\u00e8le de remaniement<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">R\u00e9sum\u00e9<\/h2>\n\n\n\n<p><strong>Refonte<\/strong> est un vaste sujet. J'esp\u00e8re que cet article vous a donn\u00e9 envie d'en savoir plus. Ces articles <strong>comp\u00e9tences en mati\u00e8re de refonte<\/strong> vous aider \u00e0 attraper vos bogues et \u00e0 am\u00e9liorer votre atelier de code propre. Je recommande la lecture du livre de Martin (Improving the Design of Existing Code), qui est un ensemble de r\u00e8gles assez basiques et utiles de <strong>remaniement<\/strong>. L'auteur montre diff\u00e9rentes transformations \u00e9tape par \u00e9tape avec une explication compl\u00e8te et une motivation, ainsi que des conseils pour \u00e9viter les erreurs. <strong>remaniement<\/strong>. Gr\u00e2ce \u00e0 sa polyvalence, c'est un livre id\u00e9al pour les frontend et les . <strong>d\u00e9veloppeurs backend<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/thecodest.co\/careers\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/ruby_developer_hiring.jpeg\" alt=\"Devenir d\u00e9veloppeur Ruby junior\"\/><\/a><\/figure>\n\n\n\n<p><strong>Lire la suite<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/graphql-ruby-what-about-performance\">GraphQL Ruby. Qu'en est-il des performances ?<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-and-other-means-of-transport\">Rails et autres moyens de transport<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\">D\u00e9veloppement Rails avec TMUX, Vim, Fzf + Ripgrep<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>J'\u00e9cris peut-\u00eatre sur quelque chose d'\u00e9vident pour beaucoup, mais peut-\u00eatre pas pour tout le monde. Le remaniement est, je pense, un sujet compliqu\u00e9 parce qu'il implique de modifier le code sans affecter son fonctionnement.<\/p>","protected":false},"author":2,"featured_media":3017,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3016","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>A Quick Primer on Refactoring for Beginners - The Codest<\/title>\n<meta name=\"description\" content=\"Perhaps I am writing about something obvious to many, but maybe not to everyone. Refactoring is, I think, a complicated topic because it involves changing the code without affecting its operation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/fr\/blog\/une-introduction-rapide-au-refactoring-pour-les-debutants\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Quick Primer on Refactoring for Beginners\" \/>\n<meta property=\"og:description\" content=\"Perhaps I am writing about something obvious to many, but maybe not to everyone. Refactoring is, I think, a complicated topic because it involves changing the code without affecting its operation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/fr\/blog\/une-introduction-rapide-au-refactoring-pour-les-debutants\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-24T08:53:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-24T11:30:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/regactor.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"A Quick Primer on Refactoring for Beginners\",\"datePublished\":\"2020-06-24T08:53:38+00:00\",\"dateModified\":\"2026-04-24T11:30:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/\"},\"wordCount\":1338,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/regactor.png\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/\",\"name\":\"A Quick Primer on Refactoring for Beginners - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/regactor.png\",\"datePublished\":\"2020-06-24T08:53:38+00:00\",\"dateModified\":\"2026-04-24T11:30:09+00:00\",\"description\":\"Perhaps I am writing about something obvious to many, but maybe not to everyone. Refactoring is, I think, a complicated topic because it involves changing the code without affecting its operation.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/regactor.png\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/regactor.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Quick Primer on Refactoring for Beginners\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/fr\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Une introduction rapide au refactoring pour les d\u00e9butants - The Codest","description":"J'\u00e9cris peut-\u00eatre sur quelque chose d'\u00e9vident pour beaucoup, mais peut-\u00eatre pas pour tout le monde. Le remaniement est, je pense, un sujet compliqu\u00e9 parce qu'il implique de modifier le code sans affecter son fonctionnement.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/fr\/blog\/une-introduction-rapide-au-refactoring-pour-les-debutants\/","og_locale":"fr_FR","og_type":"article","og_title":"A Quick Primer on Refactoring for Beginners","og_description":"Perhaps I am writing about something obvious to many, but maybe not to everyone. Refactoring is, I think, a complicated topic because it involves changing the code without affecting its operation.","og_url":"https:\/\/thecodest.co\/fr\/blog\/une-introduction-rapide-au-refactoring-pour-les-debutants\/","og_site_name":"The Codest","article_published_time":"2020-06-24T08:53:38+00:00","article_modified_time":"2026-04-24T11:30:09+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/regactor.png","type":"image\/png"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"A Quick Primer on Refactoring for Beginners","datePublished":"2020-06-24T08:53:38+00:00","dateModified":"2026-04-24T11:30:09+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/"},"wordCount":1338,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/regactor.png","articleSection":["Software Development"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/","url":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/","name":"Une introduction rapide au refactoring pour les d\u00e9butants - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/regactor.png","datePublished":"2020-06-24T08:53:38+00:00","dateModified":"2026-04-24T11:30:09+00:00","description":"J'\u00e9cris peut-\u00eatre sur quelque chose d'\u00e9vident pour beaucoup, mais peut-\u00eatre pas pour tout le monde. Le remaniement est, je pense, un sujet compliqu\u00e9 parce qu'il implique de modifier le code sans affecter son fonctionnement.","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/regactor.png","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/regactor.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"A Quick Primer on Refactoring for Beginners"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/fr\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/posts\/3016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/comments?post=3016"}],"version-history":[{"count":12,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/posts\/3016\/revisions"}],"predecessor-version":[{"id":7707,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/posts\/3016\/revisions\/7707"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/media\/3017"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/media?parent=3016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/categories?post=3016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/tags?post=3016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}