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.
Réponses:
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.
la source
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.
la source
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.
la source