Pendant que je lisais Les pires anti-patterns que vous ayez rencontrés , j'ai cliqué sur le lien dans ce post pour atterrir sur le site web sur les anti-patterns.
Et la page http://sourcemaking.com/antipatterns/functional-decomposition m'a fait réfléchir.
Quelle est la gravité de cet anti-modèle, et est-ce un anti-modèle du tout? Parce que, bien que je fasse principalement de la programmation OOP de nos jours, je ressens toujours une réticence contre les langages OOP purs comme Java, et aussi les pratiques de conception qu'ils apportent. Et je suppose que j'ai encore quelques traits de la programmation fonctionnelle pendant que j'écris le code.
Et cela a soulevé une question, est-ce que je me trompe en m'en tenant au style fonctionnel OOP +, ou est-ce courant dans l'industrie et n'est pas vraiment si mauvais.
Ce que je sais par expérience, c'est que le style fonctionnel OOP + n'est pas complètement compatible avec les développeurs OOP purs. Mais en même temps, alors que les développeurs OOP ont des problèmes avec le développement fonctionnel OOP +, le contre-argument est que les solutions OOP sont souvent trop conçues et trop difficiles à utiliser, et d'après mon expérience, n'étaient même pas un peu plus faciles, et en fait a introduit des angles morts pour cacher des bugs TRÈS graves.
Donc, même si j'ai discuté avec mon collègue de ces sujets, je suis arrivé à la conclusion qu'aucune des façons n'est réellement parfaite. Et j'ai toujours la question sans réponse.
Le problème de POO a également été renforcé par un lien d'un autre poste dans le même fil. Le lien examine la POO de style Java http://chaosinmotion.com/blog/?p=622
Quelle est donc l'attitude générale à l'égard du mélange de la programmation fonctionnelle avec la POO? Et quel est l'équilibre qu'un développeur devrait s'efforcer d'atteindre?
Réponses:
Tout d'abord, la programmation fonctionnelle est actuellement ce que font tous les enfants sympas. L'Anti-Pattern parlait vraiment de programmation procédurale (ce serait plus clair si la technique était appelée "décomposition procédurale" mais ce n'est pas le cas), et je pense que vous l'étiez aussi.
L'anti-modèle parlait de mauvaises façons d'écrire du code procédural dans un langage orienté objet, l'autre page parlait de mal d'écrire Java - en vérité, il n'y a pas de langage si fantastique que vous pouvez faire tout ce que vous voulez mais ne pouvez pas écrire du mauvais code.
Dans la pratique, j'ai vu un peu plus d'ingénierie en code orienté objet que procédural - un peu moins en ingénierie et un peu plus en ingénierie.
Dans votre cas, cela dépendrait des détails, et je ne suis pas sûr de ce que vous faites réellement dans un style procédural. Est-ce correct, clair, testable, facile à modifier, etc.? Les critères pour juger le code devraient être basés sur ces préoccupations pratiques, et non sur la pureté d'un style particulier. Il semble que dans votre cas, des personnes raisonnables et bien informées pourraient être en désaccord (et le faire!) Sur ces préoccupations, et si c'est le cas, il n'y a probablement aucun moyen objectif de déterminer la vérité de la question.
la source