- Os princípios que você citou em sua pergunta são apenas isso ... princípios. Eles não são mandatos, leis ou ordens.
- Enquanto as pessoas que surgiram com esses princípios são muito inteligentes, elas não são autoridades absolutas. Eles são apenas pessoas que oferecem seus insights e orientações.
- Não existe uma maneira "correta" de programar. Isso é evidenciado pelo fato de que a maneira "aceita" como o fizemos mudou e continua a mudar radicalmente com o passar do tempo.
- O envio de um produto muitas vezes pode ter precedência sobre o modo "correto". Esta é uma prática tão comum que tem um nome: Dívida técnica.
-
Algumas arquiteturas de software em uso comum não são ideais. As práticas recomendadas estão evoluindo de grandes aplicativos monolíticos para coleções de módulos fracamente acoplados.
-
O contexto é importante. Muitos princípios de arquitetura só provam seu valor quando você está trabalhando com programas grandes ou domínios específicos. Por exemplo, a herança é principalmente útil para hierarquias de IU e outras estruturas que se beneficiam de arranjos strongmente acoplados e profundamente aninhados.
Então, como você segue um caminho "certo", um caminho de princípio, para que você possa emergir do deserto?
- Adequação do estudo, ao invés de correção. A maneira "certa" de fazer qualquer coisa no desenvolvimento de software é a que mais atende às suas necessidades específicas.
- Trocas de estudo. Tudo no desenvolvimento de software é uma troca. Você quer mais velocidade ou menos uso de memória? Você quer uma linguagem de programação muito expressiva com poucos profissionais ou uma linguagem menos expressiva que muitos desenvolvedores sabem?
-
Estudo da intemporalidade. Alguns princípios resistiram ao teste do tempo e sempre serão relevantes. Sistemas de tipos são universais. Funções de primeira classe são universais. Estruturas de dados são universais.
-
Aprenda o pragmatismo. Ser prático é importante. A pureza matemática, as arquiteturas de catedral de cristal e os princípios da torre de marfim são inúteis se você não puder enviar.
- Seja um artesão, não um fanático. Os melhores desenvolvedores de software são aqueles que conhecem as regras e, em seguida, sabem como quebrá-los quando faz sentido fazê-lo. Eles são os únicos que ainda sabem como resolver problemas e pensam por si mesmos. Eles usam princípios para informar e orientar suas escolhas, não para ditá-los.
- Escreva o código. Muito disso. Os princípios de design de software são otimizações prematuras até que você tenha escrito muito código e desenvolvido um instinto de como aplicá-los corretamente.