DEV Community

Cover image for Pourquoi la fonction pure rend un code plus robuste
MandyTrl
MandyTrl

Posted on • Edited on

Pourquoi la fonction pure rend un code plus robuste

Une fois que l'on commence à construire nos premiers algorithmes, vient l'envie et la nécessité d'écrire un code plus maintenable. C'est là qu'entre en jeux la fonction pure.


Qu'est-ce qu'une fonction dite "pure" ?

C'est une fonction qui ne va générer aucun effet de bord; c'est-à-dire qu'elle ne va rien modifier en dehors de son scope.
Exemples :

  • pas de modification de variables globales,
  • pas de modification des objets passés en argument,
  • pas de changements dans l'interface utilisateur,
  • pas d'appels réseau, etc..

Elle est plus lisible, prévisible (réduit les erreurs) et facile à tester et à débuguer. Avec les mêmes paramètres elle renvoie le même résultat.


Exemples de fonctions pures

Prenons l'exemple suivant pour calculer une moyenne :

const calculateAverage = (numbers) => {
  if (numbers.length === 0) return 0

  const totalSum = numbers.reduce((sum, num) => sum + num, 0)
  return totalSum / numbers.length
}


const scores = [80, 90, 75, 85, 95]
const average = calculateAverage(scores)

console.log(average) // 85

Enter fullscreen mode Exit fullscreen mode

Mais sans le savoir vous utilisez sûrement déjà des fonctions pures grâces aux méthodes JavaScript comme .toUppercase() qui ne modifie pas la chaîne d'origine, mais retourne une nouvelle chaîne en majuscule :

const text = "hello"

const upperText = text.toUpperCase()

console.log(upperText) // "HELLO"
console.log(text) // "hello" > la chaîne d'origine n'a pas été modifiée
Enter fullscreen mode Exit fullscreen mode



Et Voilà, vous savez tout sur les fonctions pures :)

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay