J'ai trouvé les principes SOLID plutôt utiles pour la conception orientée objet.
Existe-t-il un ensemble de principes agnostiques similaires / équivalents, conçus pour la programmation fonctionnelle?
J'ai trouvé les principes SOLID plutôt utiles pour la conception orientée objet.
Existe-t-il un ensemble de principes agnostiques similaires / équivalents, conçus pour la programmation fonctionnelle?
Réponses:
C'est un peu difficile de trouver des équivalents mais je peux essayer:
SOLID s'avère être une bonne idée pour les domaines fonctionnel / impératif aussi.
SRP - «Ne faites qu'une chose» a été empruntée à la programmation impérative. Avoir de petites fonctions ciblées, c'est bien.
OCP - Vous permettre de modifier les comportements sans modifier le code est une bonne chose. La programmation fonctionnelle utilise davantage les fonctions d'ordre supérieur que l'héritage, mais le principe est valable.
LSP - Le respect de certains contrats d'interface est tout aussi bon en programmation fonctionnelle qu'en orientée objet. Si une fonction de tri utilise un comparateur, vous vous attendriez à ce que le comportement '0 est égal, inférieur à fournit des résultats négatifs, supérieur à celui des résultats positifs.
ISP - La plupart des langages fonctionnels ont encore des structures. La spécification du plus petit ensemble de données requis par une fonction est toujours une bonne pratique. Exiger l'interface la moins spécifique aux données (pourquoi utiliser des listes d'ints alors que les énumérations de T fonctionnent aussi bien?) Reste une bonne pratique.
DIP - Spécifier des paramètres à une fonction (ou une fonction d'ordre supérieur pour les récupérer) plutôt que de coder en dur la fonction pour obtenir une valeur est tout aussi bon en programmation fonctionnelle qu'en orientée objet.
Et même lorsque vous effectuez une programmation orientée objet, nombre de ces principes s'appliquent également à la conception de méthodes dans les objets.