Os design patterns (padrões de design) sempre fascinaram os desenvolvedores de software, mas o verdadeiro conhecimento de sua aplicabilidade e consequências tem eludido muitos deles também. As várias soluções que foram criadas e aplicadas para resolver problemas semelhantes foram estudadas ao longo do tempo por desenvolvedores e arquitetos experientes. Um movimento começou lentamente a catalogar tais soluções testadas pelo tempo e bem-sucedidas, que serviram de modelo para o design de um software. A aplicabilidade dos padrões de design apresentou maturidade (mesmo que a superestrutura seja um risco percebido) na arquitetura da solução (em termos de estabilidade, consistência, manutenção e extensibilidade) e se tornou uma habilidade básica para desenvolvedores e arquitetos sérios. É igualmente importante compreender a evolução dos padrões, idiomas, linguagens de programação e movimentos que levaram à padronização desses planos agnósticos da tecnologia, que constituem a base do desenvolvimento de aplicações corporativas hoje.
OOP
OOP é um modelo de programação que supostamente combina estrutura (dados) e comportamento (métodos) para fornecer funcionalidades de software. O mesmo foi um contraste acentuado em relação ao modelo de programação processual, que estava principalmente em voga quando o modelo OOP ganhou proeminência. A principal unidade de composição em um modelo de programação processual é um procedimento (principalmente uma função com efeitos colaterais). Os dados são alimentados em uma série de procedimentos que constituem o processo ou algoritmo em um contexto de solução. No caso do OOP, os dados e funções relacionadas são representados juntos como uma classe, que atua como uma unidade fundamental no modelo de programação. Esquematicamente temos a representação demonstrada na Listagem 1.
Listagem 1. Representação de uma classe.
Class Teste
{
<------ Variáveis Estáticas (Nível de Classe) --------------->
<------ Variáveis de Instância (Nível de Objeto) ------------>
<------ Métodos Privados ------------------------------>
<------ Métodos Públicos ------------------------------->
}
Como programador, podemos criar muitas instâncias de uma classe durante a execução de um programa. Uma vez que a classe encapsula dados e suas operações associadas para fornecer uma entidade coerente, os problemas (ou, em vez disso, efeitos colaterais) associados a variáveis/dados globais (sendo usados como carga útil para os procedimentos) desapareceram de repente. Isso ajudou a gerenciar a complexidade do desenvolvimento de um grande software.
O OOP revolucionou a forma como os programadores modelaram o domínio do problema, com composições de classes alavancando encapsulamento, associação, herança e polimorfismo. Além disso, com a flexibilidade para modelar hierarquias (que representam de perto o domínio do problema) com facilidade, tornou-se natural que os desenvolvedores pensassem em termos de objetos.
A Microsoft inicialmente colocou suas apostas em uma estratégia de arquitetura corporativa chamada Windows DNA, centrada no DCOM (Distributed Component Object Model). O advento e a tração do modelo de programação Java forçaram a Microsoft a reformular sua estratégia, então eles decidiram criar uma plataforma de máquina virtual chamada .NET. A plataforma .NET foi lançada em 2002, e foi apelidada de Java da Microsoft. O velho adágio de “imitação é a forma mais sincera de lisonja” foi ecoada pelos especialistas da indústria.
Por que precisamos de Design Patterns?
Escrever código de qualidade de forma consistente não é fácil sem alguns princípios fundamentais absorvidos pelos desenvolvedores. Diversos autores tentaram assimilar os princípios fundamentais de desenvolvimento de software, que ajudam a escrever um código de qualidade, a saber:
- KISS: Keep It Simple, Stupid (Mantenha simples, estúpido);
- DRY: Don’t Repeat Yourself (Não se repita);
- YAGNI: You aren’t gonna need it (Você não vai precisar disso);
- Acoplamento baixo: minimize o acoplamento entre as classes;
- Princípios SOLID: princípios para uma melhor OOP.
O primeiro item da lista, é um dos preferidos da comunidade. Esta máxima é importante porque, na maioria das vezes, os desenvolvedores caem na armadilha de escrever código de forma genérica para extensibilidade injustificada. Embora inicialmente pareça atraente, as coisas ficam sem limites. A complexidade acidental introduzida na base do código para atender a cenários improváveis, muitas vezes reduz a legibilidade e a capacidade de manutenção. O princípio KISS pode ser aplicado, inclusive, a esforços humanos do dia a dia como um todo.
Já em relação ao DRY, ao “não” fazer isso, corremos grandes riscos de inundar a base do código, induzir a erros sutis e tornar as coisas realmente difíceis de mudar. Ao seguir a máxima DRY em todos os estágios de desenvolvimento, podemos evitar esforços adicionais e tornar o código consistente. O oposto de DRY é escrever tudo duas vezes (WET, de write everything twice).
O YAGNI é um princípio que complementa o axioma do KISS. Ele serve como um aviso para as pessoas que tentam escrever o código da maneira mais geral, antecipando mudanças antecipadamente. Muitas vezes, na prática, a maioria do código que está escrito de forma genérica, pode resultar em code smell ...
Confira outros conteúdos:
Teste unitário com NUnit
Como migrar projetos do ASP.NET MVC...
Crie relatórios com o Stimulsoft...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.