C#
-
Clean Code :
Fundamentos
![]() |
Hoje voltamos ao assunto Clean Code onde vamos recordar alguns dos princípios do código limpo aplicados à linguagem C#. |
As boas práticas na construção de um projeto software são a forma como um profissional eficiente se conduz na sua jornada para criar produtos de software de qualidade.
O Clean Code tem um papel fundamental neste processo sem o qual um projeto de software é apenas um monte de código ajeitado para funcionar precariamente.
Vamos recordar algumas das principais recomendações para aplicar o clean code na prática.
1. Use nomes significativos 'pelo amor de
Deus'
Não importa se você escolhe um nome para uma variável, método, classe, projeto
ou qualquer outra coisa. Há uma regra simples a lembrar aqui - o nome deve
significar alguma coisa.
Esqueça o uso de variáveis chamadas “s”,
“campo1”, “lista”, “array”, “asdfg” etc. Enquanto o código cresce em volume,
nomes aleatórios serão os primeiros gatilhos para o caos.
2. Adote uma convenção e siga-a
Aposto que todas as linguagens de programação definem algumas convenções de
nomenclatura de variáveis, métodos ou classes. Também aposto que elas definem a
estrutura geral e a organização do código.
Uma convenção não é apenas um conjunto de guias sobre como escrever um bom código, mas também envolve disciplina e uma organização concisa do seu trabalho.
Se você e sua equipe não gostam da convenção de idioma padrão, escolha a sua, mas, por motivos de sanidade, continue com ela !
3. Tente não produzir código que não será
utilizado
Imagine a seguinte situação. Na geladeira, você deixa a carne com prazo de
validade curto e pensa “Amanhã comerei almôndegas”.
Mas chega o dia seguinte e você pensa “Estou muito cansado para cozinhar, vamos pedir pizza!”.
Então você sai por uma semana para férias planejadas. Depois, você volta e descobre que a carne ainda está magicamente na geladeira, mas fede.
Isso também
acontece se você escrever código não utilizado - é fácil se livrar dele quando
ainda está fresco. No entanto, se ele está morto e permanece em repouso durante
semanas, não há ninguém corajoso o suficiente para limpar as coisas.
4. Preste atenção à estrutura e respeite-a
Não escreva classes do modelo onde você armazena os serviços. Não defina o
código de acesso a dados na sua camada de apresentação.
Defina uma
estrutura coerente que facilite a localização dos diversos artefatos criados em
seu projeto.
5. Usar comentários e nomes de variáveis
em inglês
É maravilhoso que você esteja orgulhoso de seu país e abraça a sua língua mãe,
mas programadores devem saber usar pelo menos uma língua básica - o inglês.
Isso é uma questão de ser pragmático e encarar a realidade.
Há uma grande probabilidade de que outros profissionais de outros países que porventura venham acessar o seu código entendam o idioma inglês. Simples assim.
Nota: Essa
recomendação é mais pertinente para projetos corporativos e que você publica em blogs.
6. Usar nomes de métodos coerentes com o
objetivo do método
Nunca, jamais, escreva métodos onde o nome sugere algo diferente do que está
acontecendo dentro de um corpo de método.
Esta é uma fórmula simples para evitar uma catástrofe.
7. Use padrões de projeto, mas não abuse
Use os padrões de projeto se for realmente necessário - já vi grandes
projetos prontos sem quase nenhum padrão, mas vi ainda mais projetos com padrões
usados de forma incorreta.
Ambos os casos são
perigosos.
8. Não escreva classes com muitas linhas de
código
Isso torna o código mais difícil de analisar e manter. Escolha suas linhas de
código com sabedoria, deixe apenas as essenciais.
9. Escreva testes de unidade
Eles são realmente úteis em projetos de médio porte e projetos maiores. Desta
forma, você pode verificar se tudo está funcionando como deveria.
Mas primeiro,
aprenda a escrevê-los corretamente para que não causem ainda mais danos.
10. Tente não escrever código redundante.
Aplique o princípio DRY - Don´t Repeat Yourself. (Não duplique código.)
11. Reutilize código já escrito
Reutilize o código que já foi escrito e escreva código que possa ser
reutilizável. A tendência de desperdício zero tem uma utilidade para o mundo da
TI.
12. Não use comentários para comentar o código
não utilizado
Código não utilizado, a princípio nem deveria existir, então por que comentar ???
13. Use a indentação adequada, formatação de
código etc.
Faça seu código parecer lindo. Faça seu código ser fácil de ler. (Isso não é
apenas uma questão de estética)
14. Não aninhe seu código além dos limites
O código deve ser lido verticalmente e não horizontalmente.
15. Não use números mágicos
Considere que nem todo mundo sabe o que números mágicos como “-1” ou “10”
significam em seu código.
Use constantes, enums e até comentários, mas faça com que alguém saiba o
que esses números significam e porque estão sendo usados.
16. Tente evitar a construção de métodos
enormes
Divida métodos grandes em pedaços menores. Pode ser que você consiga
reutilizá-los.
17. Não use tecnologia obsoleta
Se você está prestes a escrever algum código em um novo projeto usando
tecnologia que não é mais suportada, pense duas vezes.
Porque você vai usar algo que já sabe que vai ter que ser substituído ?
18. Um método somente deve cumprir uma única função
Cada método deve ter um único propósito e uma única função. Entendeu ???
19. Comente somente o necessário mesmo
Um código claro e eficiente é auto explicativo e não precisa ser comentado.
20. Mantenha as coisas simples. Não complique o código.
Não adote soluções excêntricas e complexas apenas para mostrar o quanto você é bom em usar recursos complexos da linguagem que esta usando. Se o serviço pode ser feito de forma mais simples prefira esta opção.
Estas são algumas das práticas recomendadas para ter um código limpo. Estão bem resumidas para facilitar a leitura e a prática.
E estamos conversados.
"Porque a palavra de Deus é viva e
eficaz, e mais penetrante do que espada alguma de dois gumes, e penetra até à
divisão da alma e do espírito, e das juntas e medulas, e é apta para discernir
os pensamentos e intenções do coração."
Hebreus 4:12
Referências:
C# - Tasks x Threads. Qual a diferença
C# - Programação Assíncrona como : Asycn e Task
C# - O Struct Guid - Macoratti.net