Image Image Image Image Image
Scroll to Top

Topo

24

set
2011

Sem Comentários

Em Blog

Por Allison

Boas práticas de programação – filosofias de desenvolvimento

Em 24, set 2011 | Sem Comentários | Em Blog | Por Allison

Vou escrever um resumão de alguns conceitos muito importantes para o desenvolvimento de softwares, independente da linguagem que você estiver “falando”.

Conceitos antigos, mas que muitas vezes não são tão difundidos quanto deveriam.

Para evitar uma confusão durante a leitura e alguns comentários perdidos, informo que o nível desse artigo é mediano. Nem muito avançado, a ponto de que um Dev iniciante fique completamente perdido (talvez apenas não entenda alguns trechos, mas nada que atrapalhe a assimilação do todo), e nem tão básico a ponto de ser desinteressante para quem já tem um pouco mais de experiência.

Um dos conceitos mais importantes diz que seus códigos devem ser de fácil manutenção e é impossível que a sua aplicação seja “simples” de refatorar, se ela tiver rotinas idênticas espalhadas “ao Deus dará”. Note que os conceitos que citarei se aplicam a um mesmo projeto. Durante o desenvolvimento de uma aplicação, leve em conta os seguintes pontos:

SOC = Separation Of Concerns

Separe os interesses. Divida rotinas em trechos tão pequenos quanto possível, e tanto quanto ainda fizer sentido. Quando temos um grande problema para resolver, devemos começar separando esse problemão em probleminhas menores e resolvê-los uma vez. Isolando em pequenas partes focadas você privilegiará até o reaproveitamento do seu código.

DRY = Dont Repeat Yourself

Não repita a si mesmo. Se você já programou um trecho de código que resolve uma dada situação e logo mais adiante se depara com a mesma situação, você não deve desenvolver a mesma rotina outra vez ou muito menos replicar o script. Sem essa de Ctrl+C / Ctrl+V (ou command no caso de usar MAC). Também pode ser conhecido por:

DIE = Duplication is Evil

E é o que realmente é. Duplicação é ruim. Ruim para o desenvolvedor, para o desenvolvimento, para futuras correções… Não duplique códigos.

Existem até Design Patterns específicos que tratam desse tipo de questão.

Desacoplamento é o objetivo. Devemos saber que é impossível termos componentes completamente independentes porém o Strategy, por exemplo, pode nos ajudar nisso.

Trabalho com sistemas web. Programo hoje em dia principalmente em php. Não estou falando que “é ruim” instalar o WordPress 2-3, várias vezes para vários clientes, duplicando o core do WP em vários dominios. Digo para você não se repetir num mesmo site, num mesmo projeto.

Se eu já implementei uma rotina de conexão ao banco de dados, não vou duplicar essa rotina. Não vou ter mais que um único arquivo com os dados de configuração. Não vou jogar por vários cantos da aplicação a lógica do cálculo de descontos do e-commerce. Tenho que analisar bem e centralizar para não me repetir ou “reinventar a roda” que eu mesmo já inventei.

KISS = Keep It Simple, Stupid

Mantenha simples. Descarte toda a complexidade que não for realmente necessária.

Lógico que nem tudo é simples. Existem coisas que realmente não são. Porém a idéia do KISS não é deixar fácil, mas sim evitar complicar. Evitar aumentar o custo entregando exatamente o que foi requisitado. E apenas isso.

Você e sua aplicação só ganharão com isso.

KISS é fazer menos, e não fazer da forma mais fácil.

Mantenha o foco. Desse conceito derivam os dois seguintes:

YAGNI = You Aren’t Going Need It

Bastante parecido com o conceito de cima. “Você não vai precisar disso” nos diz para não complicar ou ficar inventando o que não será usado.

É uma tentação comum querermos desenvolver o sistema mais incrível do mundo com as melhores funcionalidades.

Seja racional. Preveja a expansão e escalabilidade, porém não fique dando voltas atrás do próprio rabo sem sair do lugar ou entregar o que foi pedido por estar implementando algo que não era nem requisito e nem necessário naquele momento.

Worse is better, também nos diz exatamente isso. A qualidade não provém somente de mais funcionalidades. Ao pé da letra, “quanto pior, melhor”. Devemos prezar pela praticidade e usabilidade, mesmo que sejamos obrigados a impor limites. Algumas expansões são óbvias e não vamos deixar de fazê-las, porém analise se neste momento é necessária ou não.

Além desses pontos, nunca devemos nos esquecer de identar, comentar, documentar…

Um não concorre com o outro. Use todos juntos, como complementos. Aplicar um desses conceitos te leva ao seguinte.

Ainda não tenho conhecimento suficiente para ensinar. Continuo estudando e espero ter contribuido com alguma coisa, assim como contribui com o meu próprio aprendizado ao me propor a escrever esse texto.

Fonte: William Bruno/IMaster

Redes Sociais

Tags | , , , , ,

Enviar um Comentário