Clean Code
Clean Code
Programando lindamente
Introdução
● Microsoft.DependencyInjection
● Ninject
● SimpleInjector
Regras de design
Lei de Demeter
A Lei de Demeter (LoD) ou princípio do menos conhecimento
prega os seguintes pontos:
Bom exemplo
Regras sobre entendimento do código
Seja consistente
Se existe um padrão estabelecido no projeto, realize manutenções, melhorias
e novas implementações mantendo o padrão definido.
Regras sobre entendimento do código
Utilize variáveis concisas
Opte por variáveis concisas, mesmo que resultem em um nome maior. Elas devem
ser auto-explicativas, sem a necessidade de comentários ou informações adicionais.
Regras sobre entendimento do código
Evite dependências lógicas
Não escreva métodos cujo funcionamento correto dependa de algo contido em sua
classe.
Mau exemplo
Bom exemplo
Regras de nomes
Escolha nomes descritivos
Escolher bons nomes para classes variáveis e métodos é essencial para um código
limpo. Se você precisa explicar o seu código, então algo pode ser melhorado nele.
Regras de nomes
Faça distinções significantes
Utilize nomes nos quais quem estiver lendo o seu código possa diferenciar seu
significado de outros possíveis nomes.
Regras de nomes
Utilize nomes pronunciáveis e buscaveis
Evite utilizar nomes difíceis de pronunciar ou inventar nomes e convenções para
variáveis, classes e métodos. Tenha em mente a linguagem ubíqua definida para o
projeto.
Regras de nomes
Evite uso excessivo de strings
Evite utilizar a mesma string várias vezes, utilize constantes para isso.
Regras de nomes
Não use prefixo ou caracteres especiais
Não utilize prefixo com o tipo da variável, classe ou método e nunca use caracteres
especiais nesses itens.
Regras para funções ou métodos
Pequenas e com apenas um objetivo
Mantenha suas funções ou métodos o menor possível. É mais fácil manter métodos
menores e reutilizáveis do que tudo dentro de um método só.
Regras para funções ou métodos
Utilize nomes descritivos
Assim como na regra anterior, mantenha nomes concisos, sem caracteres especiais.
Regras para funções ou métodos
Opte por poucos parâmetros
Evite exigir muitos parâmetros para a construção de um objeto.
Regras para funções ou métodos
Não tome decisões desnecessárias
Não utilize os famosos “flags” para tomar decisões dentro dos métodos, divida-os
em vários métodos ou até mesmo outras classes.
Regras de comentários
Um código bom é expressivo Evite códigos comentados
No geral, se você precisa comentar uma parte Não deixe sujeira no código, não mantenha
do seu código, é um indicativo de que ele não códigos antigos comentados. As ferramentas
está expressivo o suficiente. de controle de versão dão o devido suporte
para analisar códigos antigos.
Esclarecimento
Outro uso interessante para os comentários são
esclarecimentos sobre o código.
Estrutura do código
Separe conceitos verticalmente
Mantenha uma estrutura de pasta organizada. Utilize uma separação por contexto
ou feature.
Estrutura do código
Declare variáveis próximas de seu uso
Não crie todas as variáveis juntas, no começo da classe ou método. Defina-as
próximas de onde serão utilizadas.
Estrutura do código
Agrupe funcionalidades similares
Se uma função pertence a um grupo dentro de um objeto, mantenha-as sempre por perto.
Rápido
Um dos objetivos principais de um teste é cobrir uma pequena porção do código. Estendendo
esta ideia para a maior parte do código possível, pode ocasionar uma ampla gama de testes.
Como os testes normalmente são executados antes de cada publicação, em cenários críticos
onde o tempo do deploy é extremamente importante, testes que demorem para serem
executados podem impactar negativamente.
Testes
Independentes
Os testes não devem depender de entidades externas, nem de outros testes. Por isso é
fundamental a utilização de Injeção de Dependência.
Repetível
Devemos ter a possibilidade de repetir o mesmo teste, mas com parâmetros diferentes.
Code Smells
Code Smells são alguns sintomas que podemos identificar e que nos remetem a uma má aplicação
do Clean Code de forma geral.
Rigidez Imobilidade
Seu software é difícil de mudar. Você não consegue reutilizar partes
Qualquer mudança, por menor que do seu código em outros projetos
seja, causa uma cascata de outras porque isso requer esforços
mudanças. gigantes. Alto acoplamento.
Dimas Soares
(12) 98113-4015
Dimas Soares
[email protected]