{"componentChunkName":"component---src-templates-lecture-template-js","path":"/lectures/ateliers/time-trials/refactoring","result":{"data":{"mdx":{"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"slug\": \"ateliers/time-trials/refactoring\",\n  \"title\": \"Exercice « time trial » sur le refactoring (partie 1)\",\n  \"type\": \"exercise\",\n  \"time\": \"30 minutes\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", null, \"Pourquoi des exercices de type \\xAB time trial \\xBB ?\"), mdx(\"p\", null, \"Nous avons remarqu\\xE9 que les \\xE9tudiants comprennent la mati\\xE8re, mais aux examens, le temps passe vite et ils n'arrivent\\npas \\xE0 terminer les questions de code. Le probl\\xE8me n'est pas leur compr\\xE9hension, mais leur vitesse d'ex\\xE9cution.\\nNous avons donc mont\\xE9 ces exercices pour d\\xE9velopper votre capacit\\xE9 \\xE0 taper du code, refactorer et naviguer dans l'IDE\\nnaturellement et rapidement. Chaque exercice a trois objectifs de temps : or, argent et bronze. Le but n'est pas de\\nb\\xE2cler le travail pour aller vite, mais de d\\xE9velopper les r\\xE9flexes vous permettant d'\\xE9crire du bon code rapidement.\\nNous allons aussi inclure des raccourcis IntelliJ pratiques qui am\\xE9lioreront votre productivit\\xE9 en programmation.\"), mdx(\"h3\", null, \"D\\xE9sactivation de Copilot\"), mdx(\"p\", null, \"Pour ces exercices, nous demandons de d\\xE9sactiver GitHub Copilot pour que vous d\\xE9veloppiez vos propres r\\xE9flexes de\\nprogrammation. Quand Copilot sugg\\xE8re du code automatiquement, vous ne d\\xE9veloppez pas votre m\\xE9moire des patterns de\\nbase et vous restez d\\xE9pendant de l'outil. Vous lisez rapidement les propositions et avez tendance \\xE0 faire confiance\\n\\xE0 ce qu'il vous sugg\\xE8re sans le remettre en question et nous savons tous qu'il lui arrive tr\\xE8s souvent de se tromper.\\nEn \\xE9crivant le code vous-m\\xEAme, vous m\\xE9morisez mieux la syntaxe et vous devenez plus fluide. Taper le code manuellement\\nam\\xE9liorera votre vitesse de frappe et votre familiarit\\xE9 avec les raccourcis clavier. L'objectif est de cr\\xE9er\\ncette rapidit\\xE9 naturelle qui vous servira aux examens. C'est la diff\\xE9rence entre quelqu'un qui h\\xE9site \\xE0 chaque\\nligne et quelqu'un qui code de fa\\xE7on instinctive.\"), mdx(\"p\", null, \"Voici comment d\\xE9sactiver Copilot dans IntelliJ\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Dans IntelliJ, allez dans \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"File\"), \" \\u2192 \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Settings\"), \" (ou \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"IntelliJ\"), \" \\u2192 \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Preferences\"), \" sur macOS)\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Recherchez \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Copilot\"), \" dans la barre de recherche\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"D\\xE9cochez l'option \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Enable GitHub Copilot\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Cliquez sur \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"OK\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"IntelliJ vous proposera probablement de red\\xE9marrer pour appliquer les changements\")), mdx(\"h2\", null, \"Exercice de refactoring\"), mdx(\"h3\", null, \"Repository\"), mdx(\"p\", null, \"Faire un clone local de ce d\\xE9p\\xF4t Github :\"), mdx(\"div\", {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"text\"\n  }, mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"style\": {\n      \"counterReset\": \"linenumber NaN\"\n    },\n    \"className\": \"language-text line-numbers\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"git clone https://github.com/GLO4002UL/officiel-lab-account-billing\"), mdx(\"span\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"className\": \"line-numbers-rows\",\n    \"style\": {\n      \"whiteSpace\": \"normal\",\n      \"width\": \"auto\",\n      \"left\": \"0\"\n    }\n  }), mdx(\"span\", {\n    parentName: \"span\"\n  })))), mdx(\"h3\", null, \"Target\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\uD83E\\uDD47 \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Or\"), \": 10 minutes\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\uD83E\\uDD48 \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Argent\"), \": 20 minutes\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\uD83E\\uDD49 \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Bronze\"), \": 30 minutes\")), mdx(\"p\", null, \"L'objectif de cet exercice est d'am\\xE9liorer votre rapidit\\xE9 \\xE0 comprendre du code malgr\\xE9 qu'il soit mal structur\\xE9 et \\xE0 l'am\\xE9liorer.\\nVous devez donc corriger \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"TOUS\"), \" les probl\\xE8mes que vous remarquez dans le code. Mettez en application les notions de clean code,\\nles principes SOLID+T et les patterns que vous avez vu jusqu'\\xE0 pr\\xE9sent. Vous avez le droit de modifier toutes les classes\\net interfaces pour y ajouter des m\\xE9thodes ou en retirer. Vous pouvez ajouter des impl\\xE9mentations aux interfaces ou cr\\xE9er\\nd'autres interfaces. Bref, vous avez le champ libre!\"), mdx(\"h2\", null, \"Raccourcis clavier int\\xE9ressants et configuration d'IntelliJ\"), mdx(\"p\", null, \"Nous vous conseillons \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"fortement\"), \" d'essayer tous les raccourcis clavier suivants. Ces raccourcis vous aideront \\xE0\\nd\\xE9velopper de la rapidit\\xE9 lorsque vous naviguez le code ou lorsque vous en \\xE9crivez.\"), mdx(\"p\", null, \"Vous trouverez ci-dessous les raccourcis pour le keymap \", mdx(\"code\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Windows\"), \" et pour celui \", mdx(\"code\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Visual Studio\"), \", mais vous n'\\xEAtes pas\\noblig\\xE9s d'utiliser ceux-ci. \\xC0 vous de voir lequel vous semble le plus intuitif!\"), mdx(\"p\", null, \"Pour voir quel est votre keymap ou le modifier :\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Allez dans \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"File\"), \" \\u2192 \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Settings\"), \" (ou \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"IntelliJ\"), \" \\u2192 \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Preferences\"), \" sur macOS)\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Cliquez sur \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Keymap\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"S\\xE9lectionnez le keymap que vous d\\xE9sirez : \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Visual Studio\"), \", \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Windows\"), \" ou autre\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Cliquez sur \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"OK\"))), mdx(\"p\", null, \"Vous pouvez aussi changer le raccourci clavier de toutes les actions \\xE0 partir de ce menu. Vous pouvez donc cr\\xE9er votre propre keymap custom!\"), mdx(\"h3\", null, \"Raccourcis communs au keymap Windows et Visual Studio\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Ctrl + Shift + /\"), \": Permet de commenter ou d\\xE9commenter un bloc de code s\\xE9lectionn\\xE9. Si faites \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Ctrl + Maj + /\"), \", le bloc de code sera comment\\xE9. Si vous le faites \\xE0 nouveau, il sera d\\xE9comment\\xE9.\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"div\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"java\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"style\": {\n      \"counterReset\": \"linenumber NaN\"\n    },\n    \"className\": \"language-java line-numbers\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-java\"\n  }), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token comment\"\n  }), \"// plus rapide \\xE0 d\\xE9commenter par la suite puisqu'il n'y a que 4 caract\\xE8res \\xE0 retirer\"), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token comment\"\n  }), \"/*public void addProduct(Product product) {\\nthis.products.add(product);\\n}*/\")), mdx(\"span\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"className\": \"line-numbers-rows\",\n    \"style\": {\n      \"whiteSpace\": \"normal\",\n      \"width\": \"auto\",\n      \"left\": \"0\"\n    }\n  }), mdx(\"span\", {\n    parentName: \"span\"\n  }), mdx(\"span\", {\n    parentName: \"span\"\n  }), mdx(\"span\", {\n    parentName: \"span\"\n  }), mdx(\"span\", {\n    parentName: \"span\"\n  }))))))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Clic droit + Refactor\"), \": Permet d'afficher le menu refactor qui contient plusieurs autres raccourcis utiles au refactoring.\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Encapsulate fields\"), \": Permet de cr\\xE9er une m\\xE9thode get et set pour le champ s\\xE9lectionn\\xE9.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Extract interface\"), \": Permet de cr\\xE9er une interface qui sera impl\\xE9ment\\xE9e par la classe actuelle.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Extract superclass\"), \": Permet de cr\\xE9er une classe parent et d'en faire h\\xE9riter la classe actuelle.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Pull members up\"), \": Permet de d\\xE9placer les champs ou m\\xE9thodes d'une classe enfant vers la classe parent lorsqu'il y a h\\xE9ritage ou de d\\xE9placer la d\\xE9finition d'une m\\xE9thode vers l'interface que la classe impl\\xE9mente.\")))), mdx(\"h3\", null, \"Raccourcis propres au keymap Windows\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Shift + F6\"), \" : Permet de renommer une classe, une m\\xE9thode, une variable, etc.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Ctrl + F6\"), \": Permet de changer la signature d'une m\\xE9thode.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Ctrl + Alt + V (Introduce Variable)\"), \": Permet d'extraire une expression dans une nouvelle variable.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Ctrl + Alt + P (Introduce Parameter)\"), \": Permet de convertir une variable locale en param\\xE8tre de la m\\xE9thode actuelle.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Ctrl + /\"), \": Permet de commenter plusieurs lignes de code individuellement (plus utile pour commenter une seule ligne).\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"div\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"java\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"style\": {\n      \"counterReset\": \"linenumber NaN\"\n    },\n    \"className\": \"language-java line-numbers\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-java\"\n  }), \"  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token comment\"\n  }), \"//    public void addProduct(Product product) {\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token comment\"\n  }), \"//        this.products.add(product);\"), \"\\n  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token comment\"\n  }), \"//    }\")), mdx(\"span\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"className\": \"line-numbers-rows\",\n    \"style\": {\n      \"whiteSpace\": \"normal\",\n      \"width\": \"auto\",\n      \"left\": \"0\"\n    }\n  }), mdx(\"span\", {\n    parentName: \"span\"\n  }), mdx(\"span\", {\n    parentName: \"span\"\n  }), mdx(\"span\", {\n    parentName: \"span\"\n  })))))))), mdx(\"h3\", null, \"Raccourcis propres au keymap Visual Studio\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Ctrl + R + R\"), \" : Permet de renommer une classe, une m\\xE9thode, une variable, un fichier, etc.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Ctrl + R + S\"), \": Permet de changer la signature d'une m\\xE9thode.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Ctrl + R + V (Introduce Variable)\"), \": Permet d'extraire une expression dans une nouvelle variable.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Ctrl + R + P (Introduce Parameter)\"), \": Permet de convertir une variable locale en param\\xE8tre de la m\\xE9thode actuelle.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Ctrl + K + C\"), \": Permet de commenter plusieurs lignes de code individuellement (plus utile pour commenter une seule ligne). Petit truc: C for Comment\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"div\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"java\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"style\": {\n      \"counterReset\": \"linenumber NaN\"\n    },\n    \"className\": \"language-java line-numbers\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-java\"\n  }), mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token comment\"\n  }), \"//    public void addProduct(Product product) {\"), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token comment\"\n  }), \"//        this.products.add(product);\"), \"\\n\", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token comment\"\n  }), \"//    }\")), mdx(\"span\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"className\": \"line-numbers-rows\",\n    \"style\": {\n      \"whiteSpace\": \"normal\",\n      \"width\": \"auto\",\n      \"left\": \"0\"\n    }\n  }), mdx(\"span\", {\n    parentName: \"span\"\n  }), mdx(\"span\", {\n    parentName: \"span\"\n  }), mdx(\"span\", {\n    parentName: \"span\"\n  }))))))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Ctrl + K + U\"), \": Permet de d\\xE9commenter plusieurs lignes de code. Petit truc: U for Uncomment\")), mdx(\"h3\", null, \"Configuration int\\xE9ressante dans IntelliJ : Action on Save\"), mdx(\"p\", null, \"Deux options int\\xE9ressantes:\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Reformat Code\"), \" : Ajuste automatiquement la mise en forme de votre code (indentation, espaces, sauts de ligne) selon vos r\\xE8gles de style configur\\xE9es dans \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"File\"), \" \\u2192 \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Settings\"), \" \\u2192 \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Editor\"), \" \\u2192 \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Code Style\"), \", sans changer la logique.\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Optimize Imports\"), \": Nettoie les imports en supprimant ceux inutilis\\xE9s, en les triant et en les organisant selon vos pr\\xE9f\\xE9rences configur\\xE9es.\")), mdx(\"p\", null, \"Vous pouvez d\\xE9finir IntelliJ pour qu'il reformatte automatiquement votre code et les imports lors de la sauvegarde. Pour ce faire:\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Allez dans \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"File\"), \" \\u2192 \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Settings\"), \" (ou \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"IntelliJ\"), \" \\u2192 \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Preferences\"), \" sur macOS)\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Cliquez sur \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Tools\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"S\\xE9lectionnez \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Actions on save\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Cochez \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Reformat code\"), \" et \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Optimize imports\"))));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"slug":"ateliers/time-trials/refactoring","title":"Exercice « time trial » sur le refactoring (partie 1)","type":"exercise","time":"30 minutes"}}},"pageContext":{"slug":"ateliers/time-trials/refactoring","previous":null,"next":null,"breadcrumbs":[{"url":"/curriculum","label":"Curriculum"},{"label":"Semaine 5"},{"label":"Atelier de la semaine"},{"url":"/lectures/ateliers/time-trials/refactoring","label":"Exercice « time trial » sur le refactoring (partie 1)"}]}}}