1er juillet, 2019

Les développeurs JavaScript adoptent beaucoup la programmation fonctionnelle de nos jours, et il y a un énorme plaidoyer pour écrire des Fonctions pures. Maintenant, quelles sont les Fonctions pures? Il n’y a pas si longtemps, j’ai appris le concept de Fonctions pures, et à ma grande surprise, j’écrivais déjà beaucoup de fonctions pures, sans me rendre compte qu’il y avait un terme pour cela.

 Fonctions pures

Qu’est-ce qui est qualifié de Fonction Pure?

Une fonction est considérée comme pure si elle respecte les règles suivantes:

  1. La fonction renvoie toujours la même sortie si les mêmes arguments sont transmis.
  2. La fonction ne produit aucun effet secondaire.

Nous avons tous écrit des fonctions pures dans le passé sciemment ou inconsciemment.
Jetez un œil à une fonction pure ci-dessous, qui renvoie une somme de deux nombres avec deux arguments d’entrée.

function sumOfNumbers(a, b) { return a + b;}

La sortie de cette fonction restera toujours la même, si les mêmes arguments d’entrée sont passés. Assez simple. Les fonctions pures sont des blocs de construction simples qui ont toujours un comportement prévisible. Par conséquent, ils renvoient toujours la même sortie prévisible, sans aucune influence externe.

Voici un exemple simple, à quoi ressemble une fonction impure.

var value = 5;function impure(arg) { return value + 2 + 3;}

Ici, la fonction est considérée comme impure, car elle n’utilise pas l’argument qui lui a été passé. Au lieu de cela, il utilise une valeur externe qui est sujette à changement. Par conséquent, rendant la fonction impure en raison d’interférences externes / d’effets secondaires.

D’accord, parlons de l’exigence deux sur les effets secondaires.

Quels sont les effets secondaires?

Les effets secondaires se produisent chaque fois que votre fonction interagit avec le monde extérieur.

Voici quelques exemples d’effets secondaires courants ::

  • Faire un appel API
  • Muter les données
  • La console se connecte à l’écran
  • Manipuler la date du DOM
  • .maintenant () pour obtenir la date / heure actuelle
  • les appels d’attente asynchrones / en attente des promesses pour résoudre les mathématiques
  • .random() pour générer des nombres aléatoires

Eh bien, vous pouvez vous demander comment nous pouvons écrire des fonctions sans effets secondaires tout le temps. Il est assez difficile d’éviter complètement les effets secondaires. Tout ce que je dis, c’est que pour qu’une fonction soit qualifiée de pure, comme son nom l’indique, elle ne devrait avoir aucun effet secondaire.

Qu’est-ce que je gagne en écrivant des Fonctions pures ?

 Fonctions pures

Photo gracieuseté: Picpedia.Org

D’accord, nous avons écarté les définitions. Vous pouvez maintenant demander quels sont ses avantages.

Le test est facile

Imaginez, vous avez un tas de fonctions pures, qui ne font qu’une chose. Ils n’ont aucun effet secondaire externe et renvoient toujours une sortie prévisible. Ces fonctions seront tellement plus faciles à tester qu’une fonction qui a un tas de dépendances et un comportement imprévisible. Écrire du code propre et testable aidera à améliorer considérablement la qualité de votre code.

Le code de débogage n’est pas une douleur

Avec des fonctions pures, le code de débogage ne sera pas une grande douleur, comparé au débogage de fonctions impures. Si vous rencontrez un problème ou un bogue et que vous l’avez réduit à une fonction pure, vous pouvez être assuré que vous n’avez pas à regarder en dehors du champ d’application de cette fonction pour trouver le problème. Par conséquent, améliorer considérablement l’expérience de débogage du développeur.

Mémorisation pour améliorer les performances

Avec des fonctions pures, il est garanti de renvoyer la même sortie pour une entrée donnée. Cela crée une possibilité de mémorisation. Lorsque la même entrée est transmise à une fonction, elle peut extraire les résultats d’un cache, ce qui accélère les performances de l’application. La mise en cache peut économiser des tonnes de ressources et améliorer les performances. Et la mise en cache des fonctions pures peut se faire sans aucun souci, car elles sont prévisibles sans effets secondaires.

Code maintenable, facile à refactoriser

Ceci est évident. Avec le code, qui est si propre, facile à tester et à déboguer, vous vous retrouvez également avec du code très maintenable. C’est un aspect important qui garde l’avenir à l’esprit. Des années / mois plus tard, si votre logiciel doit avoir des fonctionnalités supplémentaires et un refactoring, le code qui comprend un tas de fonctions pures sera extrêmement intuitif à re-factoriser. Ils n’auront aucun effet secondaire externe dont le développeur devrait s’inquiéter. Même les nouveaux développeurs de l’équipe peuvent facilement s’acquitter de cette tâche.

Un exemple réel qui utilise des fonctions pures

Redux est si populaire et la plupart d’entre nous l’ont utilisé dans certains projets ou en ont entendu parler. Les réducteurs sont des fonctions qui font partie du modèle Redux et jouent un rôle crucial. La caractéristique la plus importante des réducteurs redux est que ce sont des fonctions pures.

Les réducteurs sont des fonctions pures qui prennent un état et une action et renvoient un nouvel état.Les réducteurs

function(state, action) => newState

constituent la majeure partie de l’intégration Redux et contiennent une grande partie de la logique métier. Et puisque redux impose que les réducteurs doivent être des fonctions pures sans effets secondaires, nous nous retrouvons avec des fonctions très élégantes et simples qui sont facilement maintenables

Redux est un exemple classique d’écriture de fonctions pures. Il s’inspire de la programmation fonctionnelle et a acquis une immense popularité au cours des dernières années. Il est fortement utilisé dans les applications Web modernes de gestion d’État. Maintenant, vous connaissez la raison de son succès, c’est son exigence d’écrire des fonctions pures. Cela rend le code testable, propre, plus facile à déboguer et à maintenir.

Conclusion

Nous avons examiné comment l’écriture de fonctions pures peut vous être bénéfique et garder votre code simple et élégant. Gardez à l’esprit que les fonctions pures ne sont pas limitées à JavaScript. Ce concept peut être adopté dans n’importe quel langage de programmation de votre choix. Il fonctionne bien avec JavaScript et tout langage de programmation fonctionnel.

Si vous cherchez à améliorer vos compétences en JavaScript, je recommande fortement le cours de Mosh sur JavaScript.

Consultez tous les cours JavaScript ici: https://codewithmosh.com/p/full-stack-javascript-developer-bundle

Si vous avez apprécié ce post, faites passer le mot et partagez-le. Revenez à nouveau pour plus de messages.

Adhithi Ravichandran est un consultant en logiciels basé à Kansas City. Elle travaille actuellement sur la création d’applications avec React, React Native et GraphQL. Elle est Conférencière, Auteure de Pluralsight, Blogueuse et Consultante en Logiciels. Elle est passionnée par l’enseignement et s’efforce de contribuer à la communauté technologique avec ses cours, ses articles de blog et ses conférences.

Tags: javascript, Fonctions pures

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.