Django e Design Patterns

Artigo Técnico | Django

Esse texto é direcionado ao pessoal que ainda não conhece o conceito de DRY e o framework django, vou tentar ser o mais direto e limpo possivel nas explicações desse tópico.

Primeiramente, vamos falar do framework, Django é um framework para desenvolvimento rápido para web, escrito em Python, que utiliza o padrão model-template-view (MTV). Foi criado originalmente como sistema para gerenciar um site jornalístico na cidade de Lawrence, no Kansas. Tornou-se um projeto de código aberto e foi publicado sob a licença BSD em 2005.

Django utiliza o princípio DRY (Don’t Repeat Yourself), onde faz com que o desenvolvedor aproveite ao máximo o código já feito, evitando a repetição. O Django só é chamado de um framework MTV pois o controller é gerenciado pelo próprio framework e a maior parte das coisas acontece no model, templates e views.

Agora que ja sabe um pouco do framework, vamos entender o que é DRY.

DRY é o acrônimo para Don’t repeat yourself, ao pé da letra ficaria assim, em português, ‘Não repita a si mesmo’. O princípio do DRY é evitar a repetição de qualquer parte do sistema abstraindo as coisas que são comuns entre si e colocá-las em um lugar único. Esse princípio não se preocupa somente com o código, mas qualquer lógica que está duplicada no sistema.

A documentação do framework cita a seguinte coluna:

“Cada conceito distinto e/ou dado deve estar em um, e apenas um, lugar. Redundância é ruim. Normalização é bom. O framework deve deduzir, razoavelmente, o máximo possível do mínimo possível.”

O que são Design Patterns?

Design patterns (padrões de projeto) surgiram com a motivação de ajudar a solucionar problemas que ocorrem frequentemente. Existem alguns principios de Design patterns e tentarei ser o mais simplista possivel para que o entendimento fique mais facil.

- Keep it simple stupid (KISS)

Mantenha isso estupidamente simples:

O objetivo do KISS é fazer com que o projeto seja o mais simples, mas não simplista, evitando assim, complexidade desnecessaria.

- Don’t repeat yourself (DRY)

Não repita você mesmo:

O princípio do DRY é evitar a repetição de qualquer parte do sistema abstraindo as coisas que são comuns entre si e colocá-las em um lugar único.

- Tell, Don’t Ask

Fale, não pergunte:

O princípio afirma que você deve dizer aos objetos quais ações você quer que eles realizem, ao invés de fazer perguntas sobre o estado do objeto e então tomar uma decisão por si próprio em cima da ação que você quer realizar.

-You Ain’t Gonna Need It (YAGNI)

Você não vai precisar disso:

O princípio YAGNI se refere a necessidade de adicionar somente as funcionalidades que são necessárias para a aplicação e deixar de lado qualquer tentação de adicionar outras funcionalidades que você acha que precisa.

-Separations of Concerns (SoC)

Separação de responsabilidades:

SoC é o processo de dissecação de uma parte de software em distintas características. O ato de separar um programa em discretas responsabilidades aumenta significativamente a reutilização de código, manutenção e testabilidade.

Abordei alguns tópicos importantes sobre o assunto de design patterns e django, na realidade mostrei mais um pouco dos dois mundo, tanto do framework quanto sobre os padrões de projetos e suas caracteristicas.