Voce leu Domain Driven Design?
Antes dele voce leu Object Oriented Software Construction? Patterns of Enterprise Application Architeture?
Leu clean code? Refactoring? Leu TDD by example? Design Patterns?
Voce leu Working Effectivelly with legacy code?
Nao da pra listar tudo que alguem deve ler, mas voce entendeu a ideia.
O fato eh q eu ouco sempre essa conversa de DDD isso, TDD aquilo, modinha isso, revistinha aquilo, blablabla, blablabla, blablabla.
E tudo isso com sempre a mesma desculpa. Vou fazer procedural porque procedural sempre funcionou. Sim, sempre funcionou, mas existem coisas que funcionam melhor. DDD nao eh pattern eh conceito, mas antes de alguem querer entender DDD, vai ter que conhecer OO, atribuicao de responsabilidades, alta coesao/baixo acoplamento.
O problema eh que isso nao tem nominho bonito, nao vende revista e todo mundo acha que sabe. NAO, NAO SABE. Mais de 90% dos programadores que eu conheci nao conhecem OO um minimo aceitavel e eu rarissimas vezes encontrei um que achasse que deveria saber mais do que sabia.
Pois bem, aqui tem um, eu leio, estudo e aplico muitos dos conceitos OO, mas continuo tendo que aprender, continuo tendo que melhorar, continuo me surpreendendo com algo que nao estava fazendo direito.
O fato eh que DDD, TDD, GoF patterns e seja la o que for nunca vao ter efeito nenhum no codigo quando quem esta escrevendo o codigo nao tem a menor nocao de como, quando e porque atribuir determinada responsabilidade a uma classe ou outra. Quando mover um metodo daqui pra la, quando e como quebrar um classe em duas. Quando usar polimorfismo ou nao.
E diferente do que voce fala, sim as novidades sempre surgem, mas normalmente elas vem como forma de aprimoramento do que ja se sabia antes, as novidades sao normalmente complementares e nao se contradizem. Agora se o cara nao tem a base pra entender, nao vai conseguir mesmo. Nao vai entender mesmo.
Nenhum desses conceitos voce aprende em revistas e blogs, se voce nao investir seu tempo em livros e praticar aquilo voce nao vai aprender nada.
Em resumo, nenhuma dessas praticas e conceitos “famosos” contradiz a base de tudo, que é o conhecimento basico de orientacao a objetos. Sem esse conhecimento (e acredite: muitos dos que pensam ter nao tem) nao sera possivel entender e muito menos aplicar qualquer desses conceitos.