Também buscaremos apresentar aspectos dos modelos anêmico e de domínio, mostrando as principais diferenças na hora de optar por um deles.
A máxima popular afirma que para bom entendedor, meia palavra basta. Seguramente também poderíamos utilizá-la na nossa profissão e afirmar: para um bom programador, meio código basta. Quando o código é bem escrito, qualquer programador pode compreendê-lo sem grandes dificuldades e entende rapidamente a real função da implementação em questão.
Como diria Martin Fowler, “qualquer um pode escrever um código que o computador entenda. Bons programadores escrevem códigos que os humanos entendem”. Este é o verdadeiro desafio do desenvolvedor.
Neste contexto, o objetivo deste artigo, como o próprio título sugere, é propor aspectos que tornem o código mais claro, de modo que ele possa ser compreendido com facilidade por outros profissionais.
Para a criação de um código limpo nos termos de Robert C. Martin, torna-se necessário seguir algumas regras básicas. Segundo este autor, a possibilidade de um fácil entendimento e manutenção decorre do cumprimento de determinadas regras.
Existe uma significativa literatura referente ao tema código limpo. Neste artigo faremos comentários sobre o que é o código limpo e como alcançá-lo, através de um breve resumo baseado no livro Clean Code, de Robert C. Martin.
Neste livro, são descritas regras que definem, por exemplo, a nomenclatura adequada para classes, métodos e atributos, o correto uso dos comentários, a melhor formatação do código, o tratamento de erros e até mesmo testes unitários.
Martin, mais conhecido como Uncle Bob, é um grande nome na comunidade de desenvolvimento de software, trabalhando na área desde 1970. Fundador e presidente da Object Mentor Inc, é um dos 17 membros do Manifesto Ágil e publicou diversos artigos e livros sobre o assunto.
Contudo, não adianta apenas ter um código limpo e bem escrito, se o mesmo for aplicado a um modelo de domínio mal estruturado. Para resolver este problema serão abordadas as diferenças entre o modelo anêmico e o modelo de domínio.
Estes modelos são tipos de padrões que o programador poderá utilizar para o desenvolvimento das funcionalidades de seu respectivo projeto. Apesar disso, atualmente o modelo anêmico é considerado um anti-pattern, ou seja, ele é um anti-padrão. Como curiosidade, a maioria dos profissionais ainda insiste em utilizá-lo.
Com base nisso, neste artigo procuraremos expor algumas razões que confirmem as limitações deste modelo, e como alternativa, apresentaremos o modelo de domínio (domain model), que consiste numa visão e numa técnica para lidar tanto com os casos de domínios mais simples até os altamente complexos.
Para a definição correta do domínio, teremos como base o uso da prática do DDD, técnica criada por Eric Evans, autor do livro Domain-Driven Design e um líder nos estudos sobre design de software e modelagem de domínio. Assim, serão propostas algumas sugestões para que o desenvolvedor possa criar códigos claros, eficazes e de fácil compreensão para outros desenvolvedores.
Como anda o seu código?
Em primeiro lugar, devemos ter, de forma clara, a ideia do que se entende por código limpo (ver BOX 1). O código limpo não deve ser apenas desejável devido à sua organização, mas também pela facilidade com que outros profissionais poderão futuramente manuseá-lo.
Quando um código não está bom, ele só tende a piorar com o decorrer do tempo, pois o desenvolvedor que tiver de fazer alguma manutenção, possivelmente não o fará com tanta organização porque encontrou o trabalho inicial já desestruturado. É como o exemplo do carro com um dos vidros quebrados.
Segundo Kent Beck, um dos integrantes do Manifesto Ágil, Código Limpo (Clean Code), de forma resumida, é o código fácil de entender, fácil de modificar e fácil de testar.
Foi realizada uma experiência nos Estados Unidos que consistia em deixar um carro trancado e com apenas uma das janelas quebradas numa esquina. Após alguns dias, o mesmo já possuía mais janelas quebradas. Ao longo de mais algumas semanas, o carro já estava todo amassado e depenado.
Para comparação, outro carro foi deixado no mesmo local, só que dessa vez sem problema algum. Este automóvel permaneceu assim por semanas e ao final da experiência, nenhum dano lhe foi causado.
Com este exemplo queremos dizer que as pessoas têm zelo por aquilo que está arrumado, que está sob bons cuidados. O mesmo acontece com o código.
Quando o desenvolvedor escreve-o de qualquer forma, ou seja, sem nenhum padrão, os outros profissionais que posteriormente manusearem seu código irão danificá-lo ainda mais. Em outras palavras, o profissional tende a perpetuar uma desestruturação já existente.
Um código limpo é aquele que segue
determinados padrões e regras de implementação, desde a escolha do nome da
classe, atributos e métodos, até o uso correto da orientação a objetos. Para
exemplificar esses padrões e regras, apresentaremos sub tópicos que expl ...