Dicas de como escrever um código limpo
Tags: javascript, braziliandevs, beginners, programming
Published: 2023-02-24 11:51:22

Eae gente bonita, beleza?

Dessa vez eu gostaria de trazer algumas dicas para você poder começar a escrever um código mais limpo. Essa é uma das coisas que eu acho muito importante para todo desenvolvedor aprender, independente de linguagem, área, framework, etc.

## O que é código limpo?

Bom o termo foi criado por Robert C. Martin no livro [Código limpo: Habilidades práticas do Agile Software](https://www.amazon.com.br/C%C3%B3digo-limpo-Robert-C-Martin/dp/8576082675/ref=asc_df_8576082675/?tag=googleshopp00-20&linkCode=df0&hvadid=379792215563&hvpos=&hvnetw=g&hvrand=3382338647882419822&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1031666&hvtargid=pla-398225630878&psc=1). Mas aqui não vou me aprofundar muito nos ensinamentos desse livro, pois não é uma obrigatoriedade você ter lido ele para poder escrever códigos melhores.

Eu resumiria o termo código limpo em: criar um código de fácil leitura, manutenção e eficiente. 

 Bem simples né.

## O que fazer para tentar escrever um código melhor

Na sopa de letrinhas que existe na área de programação com dezenas de siglas é interessante você estudar algumas, pois elas vão te ajudar a escrever um código melhor. As que mais me marcaram e ficaram na minha cabeça foi o K.I.S.S. e o D.R.Y.

### Keep It Simple, Stupid



Nós poderíamos traduzir o nome desse principio para apenas "mantenha isso simples e estúpido". Eu gosto bastante, pois a ideia do KISS é que você mantenha seu código mais simples possível. Você não precisa escrever um código complexo para ser um bom programador, a melhor forma de fazer um bom código e um código limpo é criar um código simples ou estupidamente simples. O seu time vai entender o seu código muito mais fácil e principalmente vai ser muito mais **SIMPLES** de fazer manutenção

### D.R.Y.



A sigla DRY significa Don't Repeat Yourselft que em tradução livre pode ficar como "Não se repita" ou não "Repita a si mesmo" algo nesse sentido. A ideia do DRY é lembrar a você para não repetir regras em vários locais na mesma aplicação. Pelo simples motivo de facilitar a manutenção. Vamos a um exemplo: imagine que você tem um front-end ou ele cadastrar e edita usuário e uma das informações desse usuário é o CPF. Você acha que vale a pena eu remover a máscara desse CPF em todos os inputs ou apenas no serviço que salva e edita? Fazendo isso apenas no serviço eu não preciso fazer em vários outros casos onde o CPF possa vir a ser exigido.

## Pontos gerais

Aqui pretendo ser mais direto e explicar motivos e formas de fazer.

### Variáveis

X ou I não são nomes legais para você usar em suas variáveis. Sempre tente ser o mais descritivo possível ao nomear variáveis, por mais que nome possa ficar grande o importante é que fique claro para que ela serve.

### Condicionais

É normal termos que criar algumas condicionais complexas. Mas para uma leitura rápida entender uma condição com mais de uma linha leva um tempo e isso é algo que pode ser otimizado simplesmente quando o resultado da condicional em uma variável e testando a variável. 

Por exemplo: 


```javascript
const numeros = [1,2,3,4,5,6,7,8,9,10];

for (const numero of numeros) {
    if (numero % 2 === 0 && numero = 2 && numero = 2 && numero) {
        console.log('Número', numero)
    }
}
```
Nesse código eu quero mostrar os números entre 2 e 5. A condicional acabou ficou um pouco extensa, não é muito complexa mas nós podemos melhorar isso da seguinte forma:

```javascript
const numeros = [1,2,3,4,5,6,7,8,9,10];

for (const numero of numeros) {
    const numeroEntreDoisECinco = numero % 2 === 0 && numero >= 2 && numero <= 5
    if (numeroEntreDoisECinco) {
        console.log('Número', numero)
    }
}
```
Nesse caso a cada iteração nós atribuimos a condicional a variável e testamos. Dessa forma fica muito mais simples entender o objetivo do código.

Eu falei um pouco apenas nesse artigo sobre código limpo, porém é um assunto bem extenso e tem muitas outras coisas a serem pesquisadas. Abaixo vou deixar algumas recomendações.


### Nomes de funções

Outra coisa muito importante é nomear bem as suas funções. Dessa forma o código vai acabar parecendo um texto e ficando muito mais fácil de ser lido por você e por outros devs.


### Bônus

Você trabalha com Typescript? Pois então use a tipagem "mas demora pra tipar", "é chato", "não precisa". Você ter a tipagem no seu código faz com que você nem precise abrir algumas funções para ler e economizar tempo. Fora os erros que o próprio TS evita durante o desenvolvimento. Eu sinto que quando o código está tipado ele fica muito mais fácil de ser entendido.

### Recomendações

Ler sobre os termos: 

* SOLID
* YAGNI

Assistir os seguintes videos: 

[DRY, KISS, YAGNI | Code/Drops #27
](https://www.youtube.com/watch?v=5yJ_cAUrpQc)

[Playlist clean code Filipe Deschamps](https://www.youtube.com/watch?v=9w3o9NHXqu0&list=PLMdYygf53DP5Sc6yFYs6ZmjsuuA2fu0TK)

Se chegou até aqui, me segue la nas [redes vizinhas.] (https://bento.me/cmsdev)

<img src="https://media.giphy.com/media/uWlpPGquhGZNFzY90z/giphy.gif" />