Resumo do Problema:
Para encurtar a história, herdei uma base de código e uma equipe de desenvolvimento que não tenho permissão para substituir e o uso de God Objects é um grande problema. No futuro, quero que refizemos as coisas, mas estou recebendo críticas das equipes que querem fazer tudo com o God Objects "porque é mais fácil" e isso significa que não seria permitido refatorar. Recuei citando meus anos de experiência em desenvolvimento, que sou o novo chefe que foi contratado para saber essas coisas etc., e o mesmo aconteceu com o representante de vendas da conta de empresas offshore, e agora isso é no nível executivo e na minha reunião é amanhã e quero entrar com muita munição técnica para defender as melhores práticas, porque sinto que será mais barato a longo prazo (e eu pessoalmente acho que é isso que preocupa os terceiros) para a empresa.
Meu problema é de nível técnico, eu sei que é bom a longo prazo, mas estou tendo problemas com o ultra curto prazo e o prazo de 6 meses, e enquanto isso é algo que eu "sei", não posso provar isso com referências e recursos citados fora de uma pessoa (Robert C. Martin, tio Bob), pois é o que me pedem para fazer, porque me disseram que ter dados de uma pessoa e que apenas uma pessoa (Robert C Martin) não é argumento suficiente .
Pergunta, questão:
Quais são alguns dos recursos que posso citar diretamente (título, ano de publicação, número da página, citação) por especialistas renomados na área que dizem explicitamente que o uso de "Deus" Objetos / Classes / Sistemas é ruim (ou bom, pois estamos procurando para a solução mais tecnicamente válida)?
Pesquisa que já fiz:
- Eu tenho vários livros aqui e procurei em seus índices pelo uso das palavras "objeto de deus" e "classe de deus". Descobri que, estranhamente, quase nunca é usado e a cópia do livro do GoF que eu tenho, por exemplo, nunca o usa (pelo menos de acordo com o índice à minha frente), mas eu o encontrei nos dois livros abaixo, mas quero mais Eu posso usar.
- Eu verifiquei a página da Wikipedia em busca de "God Object" e atualmente é um esboço com poucos links de referência. Embora eu pessoalmente concorde com o que diz, ele não tem muito que eu possa usar em um ambiente onde a experiência pessoal não é considerada válida. O livro citado também é considerado velho demais para ser válido pelas pessoas com as quais estou debatendo esses pontos técnicos, pois o argumento é que eles "já foram considerados ruins, mas ninguém poderia provar isso, e agora o software moderno diz" deus "objetos são bons de usar". Pessoalmente, acredito que esta afirmação está incorreta, mas quero provar a verdade, seja ela qual for.
- Nos "Princípios Ágeis, Padrões e Práticas em C # de Robert C Martin" (ISBN: 0-13-185725-8, capa dura), onde na página 266 ele afirma: "Todo mundo sabe que as classes de Deus são uma má idéia. Não queremos concentrar toda a inteligência de um sistema em um único objeto ou em uma única função. Um dos objetivos do OOD é particionar e distribuir o comportamento em muitas classes e muitas funções ". - E então continua dizendo que às vezes é melhor usar Classes de Deus de qualquer maneira (citando microcontroladores como exemplo).
- Na página "Código Limpo: Um Manual do Artesanato em Software Ágil", de Robert C Martin (pág. 136) (e somente esta página) fala sobre a "classe Deus" e a destaca como um excelente exemplo de violação das regras "as classes devem ser pequenas" ele usa para promover o Princípio da Responsabilidade Única ", começando na página 138.
O problema que tenho é que todas as minhas referências e citações são da mesma pessoa (Robert C. Martin) e da mesma pessoa / fonte. Disseram-me que, como ele é apenas uma visão, meu desejo de não usar "Classes dos Deuses" é inválido e não é aceito como uma prática recomendada padrão na indústria de software. Isso é verdade? Estou fazendo coisas erradas do ponto de vista técnico, tentando seguir os ensinamentos do tio Bob?
Objetos de Deus e Programação e Design Orientados a Objetos:
Quanto mais penso nisso, mais penso que isso é algo que você aprende quando estuda OOP e nunca é explicitamente chamado; Está implícito no bom design o meu pensamento (sinta-se à vontade para me corrigir, por favor, como quero aprender), o problema é que eu "sei" isso, mas nem todo mundo sabe, portanto, neste caso, não é considerado um argumento válido porque Estou efetivamente chamando isso de verdade universal quando, na verdade, a maioria das pessoas é estatisticamente ignorante, já que estatisticamente a maioria das pessoas não é programadora.
Conclusão:
Estou sem saber o que procurar para obter os melhores resultados adicionais, pois eles estão fazendo uma afirmação técnica e quero saber a verdade e poder prová-la com citações como um verdadeiro engenheiro / cientista, mesmo que Sou tendencioso contra objetos divinos devido à minha experiência pessoal com o código que os usou. Qualquer assistência ou citações seria profundamente apreciada.