Foto - nesa - Unsplash
Acrônimo
SOLID - denota os primeiros cinco princípios da programação orientada a objetos:
- (SRP). / — . , - , « Unix» KISS.
- / (OCP). — . (Bertrand Meyer) — Eiffel.
- (LSP). , . , . (Barbara Liskov) — Clu.
- (ISP). (Robert Martin), , : « , ». .
- (DIP). , — . ( ).
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, há 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:
: