DEV Community

Cover image for Commits Semânticos: Organizando o Caos com Padrões de Mensagens
Ruan Victor Dev for Ruan Victor Dev Blog

Posted on • Edited on

3

Commits Semânticos: Organizando o Caos com Padrões de Mensagens

E aí, dev! Beleza? Você já ouviu falar sobre versionamento de código e commits semânticos? Não? 😱 Então já deve ter reparado que o histórico de commits em seus projetos está um pouquinho bagunçado e sem um padrão lógico.

Você já deve ter notado algo como:

  • "Subindo alterações";
  • "Corrigindo bugs";
  • "Voltando para a versão funcional";
  • "Atualização...";
  • "Ajustes...";
  • "Testando...";

Tá, Ruan, mas eu consigo entender tranquilamente quais foram as modificações desses commits em meu projeto, então qual é o problema nisso?

Bom, certo, você pode até conseguir compreender os motivos dessas alterações hoje, mas no futuro, com o avanço do projeto, estamos sujeitos a esquecer disso, e pela ausência de detalhes nas mensagens de commit, é fácil não entendermos a finalidade real dessas alterações e ficarmos perdidos com tantas versões sem significado 😵. O problema de commits não semânticos é ainda mais grave quando trabalhamos em equipe, visto que, se cada um tiver o seu próprio padrão, isso impactará diretamente na comunicação da equipe de desenvolvimento no decorrer do projeto...

Por isso estamos aqui hoje! 🚀 Para aprender alguns padrões conhecidos e como escrever boas mensagens de commit. Está pronto?

Oque são Commits Semânticos?

Ok, mas oque de fato são 'commits semânticos'? 🤔
Commits semânticos são simplesmente mensagens de commit que seguem um padrão específico para que, ao olhar para o histórico, você consiga entender claramente o que foi feito no projeto. Ou seja, eles têm um significado claro e preciso, facilitando a comunicação do que realmente aconteceu naquele commit.

Por exemplo, ao invés de usar algo vago como "Ajustes", você usaria uma mensagem semântica como:

  • "corrigindo erro no formulário de login";
  • "adicionando validação no formulário de registro";

Com commits semânticos, cada mensagem de commit é como uma mini descrição do que foi feito, de forma clara e organizada. Isso facilita a vida não só para você no futuro, mas também para qualquer pessoa que estiver contribuindo no projeto.

Padrões de Commits Semânticos: Como Escrever e Quando Usar?

Após entender o que são commits semânticos, é importante que você conheça alguns tipos comuns muito utilizados em projetos pelas comunidades de desenvolvedores.

Os tipos de commits facilitam e dão ainda mais significado para a mensagem assim como um rótulo de um produto no mercado 🏷, eles adicionam uma "identidade" para cada mensagem.

Abaixo, uma listagem com os principais tipos:

  • ✨ feat: Adição de nova funcionalidade.
  • 🐛 fix: Correção de bugs.
  • 🛠️ chore: Tarefas de manutenção que não afetam a lógica do código (como atualizações de dependências).
  • ♻️ refactor: Refatoração de código sem adicionar novas funcionalidades ou corrigir bugs.
  • ⚡ perf: Melhorias de desempenho.
  • 📚 docs: Alterações na documentação.
  • 🧪 test: Adição ou modificação de testes.

Estes tipos de commits darão ainda mais significado para suas alterações. Vale lembrar que o uso de emojis pode melhorar a visualização, mas não são obrigatórios.

Veja o exemplo em um repositório real:

Imagem exemplo de commits semânticos em um projeto real.

Estruturando uma Mensagem de Commit Clara

Sabe aquela sensação de abrir o histórico de commits e não entender nada? 😅 Para evitar isso, uma boa estrutura de mensagem de commit é essencial! Veja a seguir uma estrutura para descrever melhor os seus commits:

1. Título (Curto e direto ao ponto)

O título é a primeira coisa que todos vão ler. Por isso, ele precisa ser curto e objetivo. Geralmente, segue esse formato:

< tipo >(escopo opcional): breve descrição da mudança

  • Tipo: Define a natureza da mudança. Exemplo: feat, fix, docs, refactor.
  • Escopo (opcional): Qual parte do projeto foi alterada. Exemplo: auth, api, header.
  • Breve descrição: Explicação rápida e direta sobre o que mudou.

Exemplo:

✨ feat(api): adicionar suporte à autenticação com OAuth

2. Corpo (Aqui vem o contexto)

O corpo da mensagem é onde você explica em mais detalhes o que foi feito e por quê. É uma oportunidade de documentar o raciocínio por trás da mudança, além de deixar claro o impacto no sistema. Inclua:

  • Motivo da mudança: Por que essa alteração foi necessária?
  • O que foi feito: Explicação mais detalhada sobre a modificação.
  • Detalhes adicionais: Alguma observação importante, impacto ou dependência.

Exemplo de corpo:

✨ feat(api): adicionar suporte à autenticação com OAuth
Adicionei a funcionalidade de autenticação via OAuth utilizando a biblioteca passport.js. Essa feature permite aos usuários fazer login com contas de terceiros, como Google e Facebook. A configuração foi feita tanto no backend quanto no frontend, e os testes foram concluídos com sucesso.

Essa estrutura facilita a leitura e entendimento do histórico de commits para todos os desenvolvedores no projeto, além de manter um padrão claro e organizado. 🚀

Conclusão

Recapitulando, os commits semânticos são uma maneira eficiente de manter o histórico de alterações do projeto organizado e facilmente compreensível por toda a equipe. Seguindo a estrutura de Título, Corpo e Escopo, garantimos que cada modificação tenha um propósito claro e possa ser rapidamente identificada no futuro.

Adotar esse padrão não só melhora a comunicação dentro de um time de desenvolvimento, mas também facilita o entendimento para futuros colaboradores e revisões. Além disso, manter um histórico consistente é um grande aliado para quem trabalha com CI/CD (Integração Contínua/Entrega Contínua), já que facilita a automação de processos e o rastreamento de bugs.

Portanto, usar commits semânticos não é apenas uma questão de organização, mas de boas práticas que impactam diretamente a qualidade e eficiência do projeto. Então, que tal começar a aplicar essas técnicas nos seus próximos commits? 😎

Lembre-se: Um bom commit é a chave para um projeto bem organizado!

Conheça Mais Sobre Git e Github

Quer aprender mais sobre? Reuni alguns materiais interessantes:

Minhas Redes Sociais

Instagram, Linkedin, Github

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

Top comments (2)

Collapse
 
edurojas-tech profile image
Eduardo Rojas

Show!
Conteúdo bem útil!

Collapse
 
ruanvictordev profile image
Ruan Victor Dev

Valeeuu🤙🏻

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay