Riepilogo del problema:
Per farla breve, ho ereditato una base di codice e un team di sviluppo che non posso sostituire e l'uso di God Objects è un grosso problema. Andando avanti, voglio che ri-fattorizziamo le cose, ma sto ricevendo respingimenti dai team che vogliono fare tutto con God Objects "perché è più facile" e questo significa che non mi sarà permesso di ricodificare. Ho respinto citando i miei anni di esperienza nello sviluppo, che sono il nuovo capo che è stato assunto per conoscere queste cose, ecc., E così anche le società offshore di terze parti hanno rappresentato il rappresentante delle vendite, e questo è ora a livello esecutivo e il mio incontro è domani e voglio entrare con un sacco di munizioni tecniche per sostenere le migliori pratiche perché ritengo che a lungo termine sarà più economico (e personalmente sento che ciò è preoccupato per la terza parte) per l'azienda.
Il mio problema è di livello tecnico, so che è buono a lungo termine ma ho problemi con il termine ultra breve e 6 mesi, e mentre è qualcosa che "conosco" non posso provarlo con riferimenti e risorse citate al di fuori di una persona (Robert C. Martin, alias Zio Bob), poiché è quello che mi viene chiesto di fare poiché mi è stato detto di avere dati da una persona e solo una persona (Robert C Martin) non è abbastanza brava da discutere .
Domanda:
Quali sono alcune risorse che posso citare direttamente (titolo, anno pubblicato, numero di pagina, citazione) da noti esperti del settore che affermano esplicitamente che questo uso di "Dio" Oggetti / Classi / Sistemi è cattivo (o buono, dal momento che stiamo cercando per la soluzione tecnicamente più valida)?
Ricerca che ho già fatto:
- Ho un numero di libri qui e ho cercato nei loro indici l'uso delle parole "oggetto dio" e "classe dio". Ho scoperto che stranamente non è quasi mai usato e la copia del libro GoF che ho per esempio, non lo usa mai (almeno secondo l'indice di fronte a me) ma l'ho trovato nei due libri sottostanti, ma voglio di più Posso usare.
- Ho controllato la pagina di Wikipedia per "God Object" ed è attualmente uno stub con pochi collegamenti di riferimento, quindi anche se sono personalmente d'accordo con ciò che dice, non ha molto che posso usare in un ambiente in cui l'esperienza personale non è considerata valida. Il libro citato è anche considerato troppo vecchio per essere valido dalle persone con cui sto discutendo di questi punti tecnici poiché l'argomento che stanno sostenendo è che "una volta si pensava che fosse cattivo ma nessuno poteva provarlo, e ora il software moderno dice" dio "gli oggetti sono buoni da usare". Personalmente credo che questa affermazione sia errata, ma voglio dimostrare la verità, qualunque essa sia.
- In "Agile Principles, Patterns and Practices in C #" di Robert C Martin (ISBN: 0-13-185725-8, copertina rigida) dove a pagina 266 si afferma "Tutti sanno che le classi divine sono una cattiva idea. Non vogliamo concentrare tutta l'intelligenza di un sistema in un singolo oggetto o in una singola funzione. Uno degli obiettivi di OOD è il partizionamento e la distribuzione del comportamento in molte classi e molte funzioni. " - E poi continua a dire che a volte è meglio usare God Classes a volte (citando i microcontroller come esempio).
- Nella pagina 136 (e solo questa pagina) "Clean Code: A Handbook of Agile Software Artigianato" parla della "classe di Dio" e la definisce come un esempio lampante della violazione delle "classi dovrebbe essere piccola" usa per promuovere il principio di responsabilità singola "a partire da pagina 138.
Il problema che ho è che tutti i miei riferimenti e citazioni provengono dalla stessa persona (Robert C. Martin) e provengono dalla stessa persona / fonte. Mi è stato detto che, poiché ha solo una visione, il mio desiderio di non usare "God Classes" non è valido e non è accettato come best practice standard nel settore del software. È vero? Sto sbagliando qualcosa dal punto di vista tecnico, cercando di seguire l'insegnamento di zio Bob?
Dio Oggetti e programmazione orientata agli oggetti:
Più ci penso e più penso che sia qualcosa di più che impari quando studi OOP e non viene mai chiamato esplicitamente; Il mio pensiero è implicito in un buon design (sentiti libero di correggermi, per favore, come voglio imparare), il problema è che "lo so", ma non tutti lo fanno, quindi in questo caso non è considerato un argomento valido perché Lo sto effettivamente chiamando come verità universale quando in realtà la maggior parte delle persone è statisticamente ignorante dal momento che statisticamente la maggior parte delle persone non sono programmatori.
Conclusione:
Sono in perdita su cosa cercare per ottenere i migliori risultati aggiuntivi da citare, dal momento che stanno avanzando un reclamo tecnico e voglio conoscere la verità ed essere in grado di dimostrarlo con citazioni come un vero ingegnere / scienziato, anche se Sono di parte contro gli oggetti divini a causa della mia esperienza personale con il codice che li ha usati. Qualsiasi assistenza o citazioni sarebbe molto apprezzata.