Comment écrire du code gérable avec une programmation fonctionnelle?

14

Je viens de commencer avec la programmation fonctionnelle (avec JavaScript et Node.js) et à première vue, il semble que le code que j'écris deviendrait un enfer de base de code à gérer, par rapport aux langages de programmation qui ont un sorte de paradigme orienté objet.

Avec la POO, je connais les pratiques qui garantiraient que votre code est facilement géré et extensible. Mais je ne suis pas sûr d'une convention similaire avec la programmation fonctionnelle.

dade
la source
4
JavaScript est un langage orienté objet, alors continuez et utilisez vos compétences OOP en utilisant Node.js
Jonas
5
essayez les fonctions. Cela résoudra presque tous les problèmes.
tp1
4
Voici une excellente ressource pour garder votre code source de nœud propre et bien rangé et donc gérable: nodeguide.com/style.html
Daniel Bradley
2
Pour autant que je sache, la seule fonctionnalité de programmation fonctionnelle que possède JavaScript est les lambdas (plus précisément, les fonctions sans nom) et le passage de fonctions. Si vous voulez apprendre la programmation fonctionnelle, vous devriez probablement vous pencher sur quelque chose comme Haskell ou F # / OCaml ou Scala ou Lisp.
Rei Miyasaka

Réponses:

8

Dans la pratique, une grande base de code fonctionnelle devra encore être divisée en une sorte de système structurel. Si vous êtes à l'aise en POO, les cours restent l'élément structurant naturel. Vous recherchez des «objets fonctionnels»: les fonctions conceptuellement liées sont placées ensemble dans une classe. Bien sûr, vous évitez l'état non conversationnel et la dépendance aux variables d'instance.

Au-delà de la structure, certaines techniques, telles que l'application de fonctions partielles, sont préférées dans le monde fonctionnel pour l'extension, la maintenabilité et la généralisation. Cependant, apprendre à reconnaître ces opportunités peut être difficile lorsque l'on travaille en mode hybride fonctionnel / objet. Personnellement, je pense que c'est une bonne idée de travailler en mode hybride mais d' étudier et de jouer dans un environnement plus pur, comme celui fourni par Haskell.

Larry OBrien
la source
2

Les langages de programmation fonctionnels bénéficient de nombreux concepts puissants pour construire du code de haute qualité, par exemple: fonctions appliquées partielles, compositions de fonctions (celle-ci est vraiment puissante et ma préférée), macros, fonctions d'ordre supérieur. Et sans oublier des structures de données immuables.

Chiron
la source
1

Plutôt que d'abandonner la POO pour la PF, essayez de l'augmenter avec certains modèles de PF. Chaque fois que vous avez besoin de traiter une collection est un bon candidat et pointe vers un ensemble commun de méthodes de PF comme cartographier, plier et réduire. Jetez un coup d'œil à underscore.js et à backbone, un framework MVC qui utilise largement le premier.

sunwukung
la source