Publié le

Bonnes pratiques de refactoring, ce qu'il faut faire et ne pas faire

3 min lecture - 474 mots
Auteurs
  • avatar
    Nom
    Cédric RIBALTA
    Twitter
post image

Introduction 🌟

Le refactoring est une pratique essentielle pour améliorer la qualité de ton code sans changer son comportement. Il permet de simplifier et optimiser ton code, mais attention à ne pas tomber dans certains pièges ! Voici les bonnes pratiques à suivre et les erreurs à éviter, accompagnées d'exemples en TypeScript.


Ce qu’il faut faire :

1. Comprendre avant de changer

Avant de refactorer, prends le temps de bien comprendre l'existant. Ça évite de casser des parties importantes du code. ⚠️

// Avant refactoring : une fonction dense
function calculateInvoiceAmount(items: Item[], discountRate: number): number {
  let total = 0
  for (let i = 0; i < items.length; i++) {
    total += items[i].price * items[i].quantity
  }
  let discount = total * discountRate
  return total - discount
}

// Après refactoring : simplification et clarté
function calculateTotalAmount(items: Item[]): number {
  return items.reduce((total, item) => total + item.price * item.quantity, 0)
}

function applyDiscount(total: number, discountRate: number): number {
  return total - total * discountRate
}

function calculateInvoiceAmount(items: Item[], discountRate: number): number {
  const total = calculateTotalAmount(items)
  return applyDiscount(total, discountRate)
}

Explication : Ce refactoring divise la logique en petites fonctions simples et réutilisables. 🎯

2. Refactoriser par petites étapes

Ne fais jamais de changements massifs d’un coup. 🐢 Vas-y progressivement pour éviter de casser des fonctionnalités.

3. Maintenir la simplicité

Le refactoring vise à simplifier le code. Si ton refactoring ajoute de la complexité, il vaut mieux faire marche arrière !

4. Respecter les conventions

Refactorer ne veut pas dire tout changer ! Garde les conventions du projet en tête. Changer le style de codage sans raison peut rendre le code difficile à maintenir. ⚙️

5. Tests automatisés

Assure-toi que les tests passent avant et après chaque refactoring. Ça te protège des bugs cachés. ✅

Ce qu’il faut éviter :

1. Sur-refactorisation

Évite de vouloir trop en faire. Les abstractions superflues et les changements massifs sont souvent contre-productifs. 🚫

2. Trop de changements dans le style de codage

Passer d'un style de codage à un autre sans raison apparente peut créer de la confusion. Reste cohérent avec le style en place dans le projet. 🙅‍♂️

3. Abstractions non nécessaires

N'ajoute pas des couches d'abstraction là où elles ne sont pas nécessaires. Cela complique le code sans raison. 🌀

4. Inconsistances

L'incohérence dans le code est un piège fréquent lors du refactoring. Garde une structure uniforme pour ne pas rendre ton code difficile à comprendre et à maintenir. 📏

5. Ne pas comprendre le contexte business

Refactorer sans comprendre le contexte business derrière le code est risqué. Il faut savoir pourquoi le code est là et quel problème il résout avant de modifier quoi que ce soit. 💼

Conclusion

Un bon refactoring doit simplifier, clarifier et améliorer la maintenabilité du code. Cependant, mal géré, il peut introduire des erreurs ou des complexités inutiles. Toujours garder à l’esprit l’objectif ultime : rendre le code plus propre et plus lisible, tout en respectant les conventions et le contexte business. 💡