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 🚀

    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.