Les soucis suivants sont réduits et l'efficacité du débogage est améliorée.
"Ce drapeau devrait être vrai, mais il est faux!" "Je ne sais pas où est la cause du bug." "Si vous le résolvez, il peut y avoir un problème quelque part."
Concevez les deux fonctions suivantes exactement séparément et augmentez la zone pure pour réduire la zone sale.
Une fonction qui renvoie toujours le même résultat pour le même argument et n'affecte pas la portée en dehors de la fonction.
Une fonction qui renvoie différents résultats avec le même argument ou affecte la portée en dehors de la fonction
Ce qui suit est un exemple. Peu importe si vous pouvez facilement et clairement distinguer les choses pures et sales, comme séparer les paquets et les fichiers, ou en nommant, et vous pouvez rendre la zone pure relativement épaisse.
class Pure:
"""
Une classe de fonctions pures
Faire cette graisse
"""
def plus(self,a,b):
return a + b
def minus(self,a,b):
return a - b
class Dirty:
"""
Classe groupée de fonction sale
=Une classe avec une fonction qui change l'état
Réduisez cela
"""
def __init__(self):
self.my_number = 0
def plus(self,a):
self.my_number = self.my_number + a
return self.my_number
def minus(self,b):
self.my_number = self.my_number - 1
return self.my_number
Il y a quatre raisons.
Un langage facile à faire de la programmation fonctionnelle. Il convient à l'écriture avec de nombreux langages qui gèrent des fonctions ou avec des fonctions pures. La programmation fonctionnelle elle-même peut être VB ou autre.
La chose la plus spécifique en commun est de minimiser l'impact d'une zone sur une autre. L'orientation objet cherche à atteindre cet objectif par l'encapsulation, le polymorphisme et l'héritage. La programmation fonctionnelle essaie d'engraisser une fonction pure comme celle ci-dessus pour minimiser le problème des changements d'état.
Ce qui suit peut être biaisé d'un point de vue très personnel Les deux ne sont pas des concepts contradictoires, mais des concepts de coexistence, mais l'orientation de l'objet est habituellement faite sur la prémisse de changer l'état de nombreux objets, donc l'objectif ci-dessus "une certaine zone" Il est difficile de minimiser l’impact du has sur d’autres domaines. De plus, je pense que l'orientation objet est moins susceptible de produire des résultats que les coûts d'apprentissage et de conception par rapport à la programmation fonctionnelle. Donc, tout en gardant à l'esprit le compromis avec le temps, je fais un certain nombre de classifications, mais je ne fais attention qu'à Pure ou Dirty.
Le cœur de la programmation fonctionnelle est d'engraisser le royaume pur. La programmation fonctionnelle est une technologie délicieuse et polyvalente qui est très efficace pour ses faibles coûts d'apprentissage.
Recommended Posts