Article image
Lucca Rodrigues
Lucca Rodrigues16/10/2024 18:40
Compartilhe

🎯 Deixe Seus Commits Super Poderosos com Conventional Commits 🚀

  • #GitHub
  • #Git

Imagina que você está construindo um projeto junto com várias pessoas e, de repente, você precisa entender o que todo mundo fez até agora. Aí, você olha os commits (as mensagens que a galera deixou ao salvar uma mudança no código) e encontra algo assim 🤯:

- "Corrigido bug."

- "Arrumei."

- "Melhorando a parada."

- "Finalizado."

Confuso, né? 🤔 O que foi arrumado? Qual bug? O que foi melhorado? É aqui que entra o Conventional Commits, uma forma de deixar tudo mais claro e organizado. Basicamente, é um conjunto de regrinhas que todo mundo segue para escrever essas mensagens de uma forma que faça sentido pra qualquer pessoa que abrir o histórico do projeto.

O Que é o Conventional Commits?

É como dar uma "receitinha" de bolo 🍰 para escrever mensagens de commit. Ao invés de jogar um "corrigido bug" no histórico, você vai escrever algo como:

fix(login): corrigido bug que impedia autenticação

Parece simples, né? E é mesmo! Vamos destrinchar essa mensagem:

- fix: aqui você diz que foi uma correção de bug. Se fosse uma nova funcionalidade, seria feat.

- login: é o escopo da mudança, ou seja, em qual parte do projeto você mexeu.

- corrigir bug que impedia autenticação : essa é a descrição, explicando de forma clara o que foi feito.

Como Usar?

Funciona assim: sempre que você for salvar uma mudança no código, segue o formato:

<tipo>(<parte do projeto>): <o que foi feito>

Aqui vão alguns exemplos:

- feat(pagamento): adicionaDO suporte a boleto bancário
- fix(navbar): corrigiDO bug de navegação no mobile
- chore(deps): atualizado dependências do projeto

Cada um desses commits fala exatamente o que foi feito, sem rodeios.

Principais Tipos de Conventional Commits 🎯

1. feat: ✨

O que é?: Quando você adiciona uma nova funcionalidade ao projeto.

Exemplo: feat(login): adicionar autenticação por Google

Quando usar?: Sempre que criar algo novo que agrega valor ao projeto, como uma nova página ou funcionalidade.

2. fix: 🐛

O que é?: Usado para corrigir bugs no código.

Exemplo: fix(carrinho): corrigir erro ao adicionar item

Quando usar?: Quando você corrige algo que estava quebrando ou funcionando errado no sistema.

3. docs: 📝

O que é?: Para mudanças na documentação, como README, arquivos de comentários, etc.

Exemplo: docs(README): adicionar instruções de instalação

Quando usar?: Quando a mudança afeta somente a documentação, sem alterar o código.

4. style: 💅

O que é?: Usado para mudanças de formatação, como indentação, espaço em branco, etc., que não afetam o funcionamento do código.

Exemplo: style(css): ajustar espaçamento no layout

Quando usar?: Quando você altera o visual ou o estilo do código sem mudar a lógica.

5. refactor: ♻️

O que é?: Refatorações no código que não mudam o comportamento, mas melhoram a estrutura ou legibilidade.

Exemplo: refactor(user): otimizar lógica de autenticação

Quando usar?: Quando você melhora o código sem alterar o que ele faz, como trocar um loop por uma função mais eficiente.

6. test: 🧪

O que é?: Usado para adicionar ou corrigir testes no projeto.

Exemplo: test(profile): adicionar testes unitários para validação

Quando usar?: Sempre que criar ou melhorar testes automatizados.

7. chore: 🛠️

O que é?: Para tarefas de manutenção, como atualizações de bibliotecas ou mudanças menores que não afetam o código de produção.

Exemplo: chore(deps): atualizar versão do React

Quando usar?: Quando você faz algo nos bastidores, como atualizações de dependências, configuração de ferramentas, etc.

8. perf: ⚡

O que é?: Para melhorar a performance do código.

Exemplo: perf(api): otimizar consulta ao banco de dados

Quando usar?: Quando você altera algo para o código rodar mais rápido ou consumir menos recursos.

9. build: 🏗️

O que é?: Usado para mudanças que afetam o processo de build ou dependências externas, como configurações do npm, webpack, etc.

Exemplo: build(grunt): adicionar task de minificação de CSS

Quando usar?: Quando alterar algo que afete como o projeto é construído ou empacotado.

10. ci: 🤖

O que é?: Para mudanças no sistema de integração contínua (CI), como configurações de pipelines.

Exemplo: ci(travis): corrigir script de build

Quando usar?: Quando fizer ajustes no CI, como configuração de scripts de automação para testes ou deploy.

Resumo dos Principais Commits 🔥

feat: Nova funcionalidade.

fix: Correção de bug.

docs: Alterações na documentação.

style: Mudanças de estilo (sem impacto na lógica).

refactor: Melhorias no código sem alterar o comportamento.

test: Adição ou correção de testes.

chore: Tarefas de manutenção ou atualizações de dependências.

perf: Otimizações de performance.

build: Mudanças no sistema de build ou dependências externas.

ci: Alterações no sistema de integração contínua.

Por Que Usar Conventional Commits?

1.Clareza Total: Com mensagens claras e padronizadas, todo mundo sabe exatamente o que cada commit fez. Isso facilita a vida de quem está revisando o código ou tentando entender uma mudança antiga.

  

 Exemplo: Você vai revisar o código e, ao invés de ver um monte de "arrumei tal coisa", você vê "fix(carrinho): corrigido erro ao remover produto". Fica bem mais fácil, né? 😌

2. Automação: Ferramentas de automação amam essa padronização 🤖. Por exemplo, dá pra gerar automaticamente um *changelog* (uma lista do que mudou entre versões) e até controlar as versões do projeto com base nos tipos de *commits* (ex: se tem um **feat**, pode aumentar a versão).

3. Organização: O projeto fica com uma carinha mais profissional 🏆. Quando todo mundo segue a mesma regra, fica mais simples e rápido entender o que está rolando no código.

E Por Que Commits em Inglês? 🇬🇧

Eu sei, pode dar uma preguiça fazer as mensagens em inglês, mas tem bons motivos pra isso:

1. Comunidade Global: Se algum dia seu projeto for aberto ao mundo 🌍, ou se alguém de fora da sua equipe precisar olhar o código, eles vão entender o que está acontecendo. Inglês é a língua padrão da programação, então é bom adotar.

2. Padrão do Mercado: Muitas empresas grandes já utilizam o inglês como padrão, principalmente aquelas que trabalham com equipes internacionais. Então, se você quer estar preparado pra entrar numa dessas, melhor ir se acostumando! 💼

3. Consistência: Misturar português com inglês (tipo, código em inglês e commits em português) pode deixar o projeto meio bagunçado. Fazer tudo em inglês dá aquela sensação de uniformidade e organização 🎯.

Resumindo...

O Conventional Commits é tipo aquele manual de boas práticas 📜 que vai deixar seus commits mais organizados, claros e prontos para qualquer pessoa entender. E o melhor: você também pode automatizar um monte de coisas no seu projeto, como gerar logs de mudança e gerenciar versões de forma inteligente 💡.

Então, na próxima vez que for salvar algo no seu projeto, nada de "consertado bug" ou "mexi naquilo". Pensa no que foi feito e use algo como:

fix(cadastro): corrigido validação de e-mail

E, claro, aproveita pra treinar o inglês! Isso vai te abrir portas 🚪 e deixar seu projeto preparado pra qualquer pessoa, de qualquer lugar do mundo, entender tudinho o que está rolando. 🌎

Compartilhe
Comentários (1)

JN

Jean Neja - 16/10/2024 19:08

Parabéns! Muito bem exemplificado.