Accueil » Bonnes pratiques & Clean code » Refactoriser une fonction de 50 lignes en 10 minutes

Une fonction de 50 lignes cache presque toujours plusieurs responsabilités. Avant de modifier quoi que ce soit, prenez une minute pour analyser sa structure : quelles parties relèvent de la validation, du calcul, de la transformation ou de l’affichage ?
Un bon indicateur est la présence de nombreux if, switch ou blocs imbriqués. Par exemple :
function processOrder(order) { if (!order) { ... } // validation // calculs // formatage // envoi }En séparant ces blocs en fonctions dédiées (validateOrder, computeTotals, formatPayload…), vous réduisez immédiatement la taille et la complexité. Cette approche rend le code plus lisible et facilite la détection d’erreurs.
Identifier les responsabilités est la base d’un refactoring rapide et efficace.
L’extraction de fonctions est l’une des techniques les plus puissantes du refactoring. Elle consiste à transformer des blocs de code en fonctions autonomes, chacune ayant un rôle précis. Cela réduit la taille de la fonction principale et améliore la lisibilité.
Exemple :
function processOrder(order) { validate(order); const total = computeTotal(order.items); const payload = formatPayload(order, total); return sendOrder(payload); }Chaque fonction extraite peut ensuite être testée individuellement, ce qui renforce la fiabilité du code. De plus, cette approche encourage la réutilisation : une fonction comme computeTotal peut servir ailleurs dans le projet.
En quelques minutes, vous transformez une fonction monolithique en un ensemble de blocs clairs et maintenables.
Pour refactoriser efficacement, vous pouvez vous appuyer sur des patterns simples comme le guard clause, le mapping ou la décomposition d’objets. Ces techniques réduisent les imbrications et rendent le flux plus lisible.
Par exemple, remplacer :
if (user) { if (user.isActive) { // logique } }par :
if (!user || !user.isActive) return; Les guard clauses permettent de sortir tôt des cas non pertinents, ce qui aère le code. De même, utiliser map, filter ou reduce peut remplacer des boucles longues et répétitives.
Ces patterns simples, appliqués en quelques minutes, transforment une fonction lourde en un code fluide et élégant.

Au‑delà du code : StackAndLife, ton allié pour progresser et t’équiper.

