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 c…


This content originally appeared on DEV Community and was authored by Ruan Victor Dev

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


This content originally appeared on DEV Community and was authored by Ruan Victor Dev


Print Share Comment Cite Upload Translate Updates
APA

Ruan Victor Dev | Sciencx (2024-10-16T00:43:49+00:00) Commits Semânticos: Organizando o Caos com Padrões de Mensagens. Retrieved from https://www.scien.cx/2024/10/16/commits-semanticos-organizando-o-caos-com-padroes-de-mensagens/

MLA
" » Commits Semânticos: Organizando o Caos com Padrões de Mensagens." Ruan Victor Dev | Sciencx - Wednesday October 16, 2024, https://www.scien.cx/2024/10/16/commits-semanticos-organizando-o-caos-com-padroes-de-mensagens/
HARVARD
Ruan Victor Dev | Sciencx Wednesday October 16, 2024 » Commits Semânticos: Organizando o Caos com Padrões de Mensagens., viewed ,<https://www.scien.cx/2024/10/16/commits-semanticos-organizando-o-caos-com-padroes-de-mensagens/>
VANCOUVER
Ruan Victor Dev | Sciencx - » Commits Semânticos: Organizando o Caos com Padrões de Mensagens. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/10/16/commits-semanticos-organizando-o-caos-com-padroes-de-mensagens/
CHICAGO
" » Commits Semânticos: Organizando o Caos com Padrões de Mensagens." Ruan Victor Dev | Sciencx - Accessed . https://www.scien.cx/2024/10/16/commits-semanticos-organizando-o-caos-com-padroes-de-mensagens/
IEEE
" » Commits Semânticos: Organizando o Caos com Padrões de Mensagens." Ruan Victor Dev | Sciencx [Online]. Available: https://www.scien.cx/2024/10/16/commits-semanticos-organizando-o-caos-com-padroes-de-mensagens/. [Accessed: ]
rf:citation
» Commits Semânticos: Organizando o Caos com Padrões de Mensagens | Ruan Victor Dev | Sciencx | https://www.scien.cx/2024/10/16/commits-semanticos-organizando-o-caos-com-padroes-de-mensagens/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.