Pense sobre o problema em primeiro lugar. Se você aplicar cegamente os princípios de YAGNI ou SOLID, poderá se machucar mais tarde. Algo que espero que todos possamos entender é que não existe uma abordagem de design "única" que atenda a todos os problemas. Você pode ver evidências disso quando uma loja vende um chapéu anunciado como "tamanho único", mas não combina com sua cabeça. É muito grande ou muito pequeno.
Em vez disso, é melhor entender os princípios e problemas que o SOLID está tentando resolver; bem como os princípios e problemas que a YAGNI está tentando resolver. Você verá que um se preocupa com a arquitetura do seu aplicativo e o outro se preocupa com o processo de desenvolvimento como um todo. Embora possa haver sobreposição em alguns casos, eles são problemas distintos.
A YAGNI (você não vai precisar disso) quer economizar tempo do desenvolvedor, adicionando fundações de concreto reforçado com aço a uma ponte que se destina apenas a atravessar um riacho de 3 pés de largura quando uma ponte de madeira mais simples bem. Se estamos atravessando um rio de uma milha de largura e precisando suportar vários reboques de tratores, é claro que precisaríamos desse trabalho extra de fundação. Em essência, a YAGNI está dizendo para você olhar para a imagem maior e o design para as necessidades atuais . Está abordando o problema de tornar algo muito complicado, porque estamos antecipando uma série de necessidades potenciais que o cliente ainda não identificou.
O SOLID se preocupa com a forma como garantimos que as peças da ponte se encaixem corretamente e possam ser mantidas com o tempo. Você pode aplicar os princípios do SOLID à ponte de madeira e à ponte de concreto armado de aço.
Em suma, esses dois conceitos não estão necessariamente em conflito entre si. Quando você se deparar com uma situação em que acredita estar, é hora de dar uma olhada no quadro geral. Dependendo da sua conclusão, você pode decidir acabar com uma parte dos princípios do SOLID ou pode realmente precisar.
SOLID principle vs YAGNI
?