Antecedentes: compreender os princípios de SOLID

Diremos quem os inventou e o que são. Vamos falar também sobre as críticas a essa abordagem - sobre por que alguns desenvolvedores se recusam a seguir metodologias SOLID.





Foto - nesa - Unsplash



Acrônimo



SOLID - denota os primeiros cinco princípios da programação orientada a objetos:





Se você seguir isso e estruturar suas classes e funções para que os princípios SOLID sejam verdadeiros, você provavelmente obterá um código robusto, compreensível e de fácil manutenção. A propósito, exemplos aqui para ilustrar como cada princípio funciona.



Quem trouxe SOLID



Como você deve ter adivinhado, foi o tio Bob o responsável pela maior parte dos princípios . Ele os descreveu de forma abrangente em seus Princípios de Design e Padrões de Design de 2000, e a sigla SOLID foi sugerida posteriormente pelo engenheiro Michael Feathers. Se você estiver interessado, Michael tem um livro onde dá conselhos sobre como "reviver" o sistema legado e não enlouquecer ao longo do caminho.





Photo - Oskar Yildiz -



A missão do Unsplash SOLID é ajudar a desenvolver aplicativos fáceis de manter e expandir ao longo do tempo. Mas esse conjunto de diretrizes é frequentemente criticado.



O que é criticado por



Esses princípios são às vezes chamados de "muito vagos", o que os torna difíceis de usar na prática. O programador e escritor Joel Spolsky também observou em um podcast do The StackOverflow que a metodologia SOLID é utópica demais e força os desenvolvedores a gastar tempo em código redundante, na verdade, por causa de um tique.



Ele acredita que não há necessidade de tentar antecipadamente levar em conta todos os cenários possíveis e simplesmente programar, corrigindo gradativamente as deficiências, e não contar com um “sistema de segurança” imaginário. Spolsky não nega a importância dos princípios, mas os chama de excessivos.



Há uma opiniãoque o código SOLID é fracamente coerente e fácil de testar, mas muito difícil de entender (a crítica usa a palavra "ininteligível"). O programador precisa escrever muitas interfaces detalhadas e pequenas classes que distraem e confundem mais do que ajudar a configurar um sistema. Esta declaração é compartilhada por muitos que acreditam que focar na simplicidade do código é suficiente para que outros desenvolvedores o suportem.





Foto - Kevin Canlas - Unsplash



Hacker News Topics Speake que a escolha da arquitetura, pilha de tecnologia e gerenciamento das dependências do projeto é muito mais importante, e não os princípios fundamentais sobre os quais sua escrita é construída. Aqui, novamente, eles apontam para a complexidade desnecessária de começar com um design de sistema integrado, apontando para o princípio YAGNI ou " Você não vai precisar ". Até certo ponto, este é outro remix da abordagem clássica do KISS .



Temos que admitir que existem muitas afirmações em defesa de SOLID. Portanto, um dos residentes de HN diz que seguir esses princípios ajudará a substituir rapidamente a biblioteca condicional se algo der errado no nível de abstração. Bastará ter certeza de que os testes estão rodando para a nova implementação, e pronto, o máximo é verificar adicionalmente as dependências para a versão antiga da classe e, se necessário, usar a modificada para que os testes passem com sucesso. Então não haverá "complexidade desnecessária" no código, e aqueles que vão lidar com isso mais tarde não enfrentarão a chamada síndrome da rejeição do desenvolvimento de outra pessoa .



É importante lembrar que os princípios SOLID são apenas diretrizes, não regras rígidas. E sempre haverá casos em que é melhor segui-los e quando recuar.






1cloud.ru:



— HTTP-

,

UTF-8






:









All Articles