Résumé du problème:
En bref, j'ai hérité d'une base de code et d'une équipe de développement que je ne suis pas autorisé à remplacer et l'utilisation de God Objects est un gros problème. Pour aller de l'avant, je veux que nous reformulions les choses, mais les équipes qui veulent tout faire avec God Objects sont réticentes "parce que c'est plus facile" et cela signifie que je ne serais pas autorisé à reformuler. J’ai repoussé mes années d’expérience en matière de développement, affirmant que je suis le nouveau patron qui a été embauché pour connaître ces informations, etc. C'est demain et je veux utiliser beaucoup de munitions techniques pour défendre les meilleures pratiques car je pense que cela coûtera moins cher à long terme (et personnellement, je pense que c'est ce qui inquiète le tiers) pour l'entreprise.
Mon problème est d'ordre technique. Je sais que c'est bon à long terme, mais j'ai des problèmes avec le très court terme et le terme de 6 mois. Bien que ce soit quelque chose, je "sais", je ne peux pas le prouver avec des références et des ressources citées à l'extérieur. d'une personne (Robert C. Martin, alias Oncle Bob), car c'est ce que l'on me demande de faire, car on me dit que disposer des données d'une personne et d'une seule personne (Robert C Martin) n'est pas assez bon pour argumenter .
Question:
Quelles sont certaines des ressources que je peux citer directement (titre, année de publication, numéro de page, citation) d’experts de renom dans le domaine qui expliquent explicitement que cet usage de «Dieu» Objets / Classes / Systèmes est mauvais (ou bon, car nous recherchons pour la solution la plus techniquement valable)?
Recherches que j'ai déjà effectuées:
- J'ai un certain nombre de livres ici et j'ai cherché dans leurs index l'utilisation des mots "objet divin" et "classe de divinité". J'ai trouvé cela curieusement, il est presque jamais utilisé et la copie du livre GoF que j'ai par exemple, ne l'utilise jamais (du moins d'après l'index devant moi), mais je l'ai trouvée dans les deux livres ci-dessous, mais j'en veux plus Je peux utiliser.
- J'ai vérifié la page Wikipedia pour "God Object" et c'est actuellement un bout avec peu de liens de référence, donc bien que je souscrive personnellement à son propos, il n'y a pas grand chose que je puisse utiliser dans un environnement où l'expérience personnelle n'est pas considérée comme valide. Le livre cité est également considéré trop vieux pour être valable par les personnes avec lesquelles je discute de ces points techniques, car il soutient que "c'était jadis considéré comme mauvais, mais personne ne pouvait le prouver, et le logiciel moderne dit maintenant" dieu "les objets sont bons à utiliser". Personnellement, je pense que cette affirmation est incorrecte, mais je veux prouver la vérité, quelle qu’elle soit.
- Dans «Principes, schémas et pratiques agiles en C #» de Robert C. Martin (ISBN: 0-13-185725-8, couverture rigide), où il est écrit à la page 266 «Tout le monde sait que les classes de dieux sont une mauvaise idée. Nous ne voulons pas concentrer toute l'intelligence d'un système en un seul objet ou en une seule fonction. L'un des objectifs de OOD est le partitionnement et la distribution du comportement en plusieurs classes et plusieurs fonctions. " - Et continue ensuite en disant qu'il vaut parfois mieux utiliser les classes divines de temps en temps (citant des micro-contrôleurs par exemple).
- Dans la section "Code propre: un manuel d'artisanat agile de logiciel" de Robert C. Martin, page 136 (et seulement cette page) parle de la "classe de Dieu" et la décrit comme un exemple typique d'une violation de la règle "les classes devraient être petites" il utilise pour promouvoir le principe de responsabilité unique "à partir de la page 138.
Le problème que j'ai est que toutes mes références et citations proviennent de la même personne (Robert C. Martin) et proviennent de la même personne / source. On me dit que parce qu’il n’est qu’un seul point de vue, mon désir de ne pas utiliser les "Classes divines" est invalide et n’est pas accepté comme une pratique exemplaire standard dans l’industrie du logiciel. Est-ce vrai? Est-ce que je fais mal les choses d'un point de vue technique en essayant de suivre l'enseignement d'Oncle Bob?
Objets divins et programmation et conception orientées objet:
Plus j'y pense, plus je pense que c'est quelque chose que vous apprenez lorsque vous étudiez la POO et que cela n'est jamais explicitement appelé; C'est ma pensée qui est implicite au bon design (n'hésitez pas à me corriger, comme je veux apprendre), le problème est que je "le sais", mais que tout le monde ne le sait pas, alors dans ce cas, l'argument n'est pas valable car J'appelle effectivement cela une vérité universelle alors qu'en fait, la plupart des gens l'ignorent statistiquement, puisque statistiquement, la plupart des gens ne sont pas des programmeurs.
Conclusion:
Je ne sais pas quoi chercher pour obtenir les meilleurs résultats supplémentaires à citer, car ils ont une prétention technique et je veux connaître la vérité et pouvoir le prouver avec des citations comme un vrai ingénieur / scientifique, même si Je suis partial contre les objets divins en raison de mon expérience personnelle avec le code qui les utilisait. Toute aide ou citation serait profondément appréciée.