image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
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 (2)
Ronaldo Schmidt
Ronaldo Schmidt - 16/10/2024 20:22

Ola.

Artigo muito bem feito.

Padronizar os commits deveria ser um habito e porque não implementado no proprio git por padrão.

Isto deveria ser parte do git ou pelo menos poderia haver a opção de configuração de commits.

Apenas uma idéia.

Exemplo:

git config --global commit "feat:" 

Outra implementação importante seria dar um git init sempre que iniciarmos um novo projeto.

São boas praticas que já deveriam ter sido incluidas nas linguagens.

Diz ai qual sua opinião.

Obrigado.

JN

Jean Neja - 16/10/2024 19:08

Parabéns! Muito bem exemplificado.