Resumen del problema:
En pocas palabras, heredé una base de código y un equipo de desarrollo que no puedo reemplazar y el uso de God Objects es un gran problema. En el futuro, quiero que tengamos que volver a factorizar las cosas, pero me están haciendo retroceder los equipos que quieren hacer todo con God Objects "porque es más fácil" y esto significa que no se me permitiría volver a factorizar. Retrocedí citando mis años de experiencia en desarrollo, que soy el nuevo jefe que fue contratado para conocer estas cosas, etc., y también lo hizo el representante de ventas de cuentas de compañías offshore de terceros, y esto ahora está en el nivel ejecutivo y en mi reunión es mañana y quiero entrar con mucha munición técnica para defender las mejores prácticas porque siento que será más barato a largo plazo (y personalmente creo que eso es lo que le preocupa al tercero) para la compañía.
Mi problema es desde un nivel técnico, sé que es bueno a largo plazo, pero estoy teniendo problemas con el plazo ultracorto y el plazo de 6 meses, y aunque es algo que "sé", no puedo probarlo con referencias y recursos citados fuera de una persona (Robert C. Martin, también conocido como tío Bob), ya que eso es lo que se me pide que haga, ya que me han dicho que tengo datos de una persona y solo una persona (Robert C Martin) no es un argumento suficientemente bueno .
Pregunta:
¿Cuáles son algunos recursos que puedo citar directamente (Título, año de publicación, número de página, cita) por expertos bien conocidos en el campo que dicen explícitamente que este uso de Objetos / Clases / Sistemas "Dios" es malo (o bueno, ya que estamos buscando para la solución técnicamente más válida)?
Investigación que ya he hecho:
- Tengo varios libros aquí y he buscado en sus índices el uso de las palabras "objeto de dios" y "clase de dios". Descubrí que, curiosamente, casi nunca se usa y la copia del libro GoF que tengo, por ejemplo, nunca lo usa (al menos de acuerdo con el índice que tengo delante), pero lo he encontrado en los dos libros a continuación, pero quiero más Puedo usar.
- Revisé la página de Wikipedia para "God Object" y actualmente es un trozo con pocos enlaces de referencia, así que aunque personalmente estoy de acuerdo con lo que dice, no tiene mucho que pueda usar en un entorno donde la experiencia personal no se considera válida. El libro citado también se considera demasiado viejo para ser válido por las personas con las que estoy debatiendo estos puntos técnicos, ya que el argumento que hacen es que "alguna vez se pensó que era malo, pero nadie podía probarlo, y ahora el software moderno dice" dios "los objetos son buenos para usar". Personalmente, creo que esta afirmación es incorrecta, pero quiero demostrar la verdad, sea lo que sea.
- En los "Principios, patrones y prácticas ágiles de Robert C Martin en C #" (ISBN: 0-13-185725-8, tapa dura) donde en la página 266 dice "Todo el mundo sabe que las clases de Dios son una mala idea. No queremos concentrar toda la inteligencia de un sistema en un solo objeto o una sola función. Uno de los objetivos de OOD es la división y distribución del comportamiento en muchas clases y muchas funciones ". - Y luego continúa diciendo que a veces es mejor usar las Clases de Dios de todos modos a veces (citando microcontroladores como ejemplo).
- En la página 136 de Robert C Martin "Clean Code: A Handbook of Agile Software Craftsmanship" (Y solo esta página) habla de la "clase de Dios" y lo llama como un excelente ejemplo de una violación de la regla de "las clases deberían ser pequeñas" él usa para promover el Principio de responsabilidad única "a partir de la página 138.
El problema que tengo es que todas mis referencias y citas provienen de la misma persona (Robert C. Martin), y soy de la misma persona / fuente. Me dicen que debido a que él es solo una opinión, mi deseo de no usar "Clases de Dios" es inválido y no es aceptado como una práctica recomendada estándar en la industria del software. ¿Es esto cierto? ¿Estoy haciendo las cosas mal desde una perspectiva técnica al tratar de seguir las enseñanzas del tío Bob?
Objetos de Dios y programación y diseño orientados a objetos:
Cuanto más pienso en esto, más creo que esto es más algo que aprendes cuando estudias POO y nunca se menciona explícitamente; Está implícito en un buen diseño mi pensamiento (no dude en corregirme, por favor, como quiero aprender), el problema es que "sé" esto, pero no todos lo saben, así que en este caso no se considera un argumento válido porque Efectivamente lo llamo verdad universal cuando, de hecho, la mayoría de las personas lo ignoran estadísticamente ya que estadísticamente la mayoría de las personas no son programadores.
Conclusión:
No sé qué buscar para obtener los mejores resultados adicionales para citar, ya que están haciendo un reclamo técnico y quiero saber la verdad y poder probarlo con citas como un verdadero ingeniero / científico, incluso si Soy parcial contra los objetos divinos debido a mi experiencia personal con el código que los usó. Cualquier ayuda o citas serán muy apreciadas.