Executando verificação de segurança...
1

Commits Semânticos - o que é ? E como Aplicar?

Antes de conhecer e entender melhor sobre o que é commit semânticos, você já conhece os comandos de commits mais utilizados?

se não, recomendarei este post do mendoncapedro: https://www.tabnews.com.br/mendoncapedro/o-basico-que-voce-precisa-saber-sobre-git

Feito isso, vamos direto ao ponto, Commits semânticos nada mais são do que apenas uma forma de padronizar (Patterns) e deixar os commits com uma arquitetura mais clean, sendo considerado uma boa prática.

com esse intuito, foi definido então por meio de uma convenção, qual seria a forma que se organizaria os commits pra manter o processo organizado ao desenvolver uma aplicação,

O detalhe de trabalhar com a semântica é que assim que você se acostuma com esta boa prática, ao bater o olho em um commit você já vai saber do que se trata, fica muito mais fácil e ágil trabalahr com eles, além de deixar tudo num padrão organizado.

Por que usar Commits Semânticos?
É importante saber que toda metodologia necessita estar alinhada a cultura e processos do time, e para tanto sempre se prioriza a análise de adaptações que se façam necessárias para que melhor se encaixe nas necessidades de sua equipe de desenvolvedores.

Conceitualmente, para o processo de maturação, é fundamental que as diretrizes sejam objetivas e de rápida absorção proporcionando a equipe de desenvolvimento uma experiência transparente de compreensão.

A partir da abstração de prefixos e tipos comuns dos processos executados a utilização do pattern se torna intrínseco a equipe de forma natural e consistente.

Com isso resulta, como principal valor, em uma metodologia clara e organizada para a estrutura de commits no repositório de versionamento.

Ganho de produtividade em equipes
Na rotina de um programador único, que trabalha sozinho em seus projetos, pode não parecer um grande ganho de produtividade.

Entretanto, em um contexto onde diversos programadores trabalham simultaneamente em um repositório centralizado a adoção de um padrão em todas as práticas do time, converge para um grande aumento de agilidade no atendimento das tarefas rotineiras.

A especificação do Conventional Commits é uma convenção simples para se utilizar nas mensagens de commit. Define-se um conjunto de regras para criar um histórico de commit explícito, o que facilita a criação de ferramentas automatizadas.

Esta convenção descreve os recursos, correções e modificações que estabelecem a compatibilidade nas mensagens de commit.

Vantagens de se usar Commits Semânticos
Em sua página oficial, o Conventional Commits, enumera algumas das vantagens em sua adoção, são elas:

Possibilitar a adoção de processos automatizados na geração de um CHANGELOG ou de release, o que resulta em uma documentação estruturada e consistente;
Determinar automaticamente um aumento de versionamento semântico (com base nos tipos de commits).

Comunicar a natureza das mudanças para colegas de equipe, o público e outras partes interessadas.

Disparar processos de build e deploy.

Facilitar a contribuição de outras pessoas em seus projetos, permitindo que eles explorem um histórico de commits mais estruturado
O Conventional Commit encoraja a se realizar mais commits de tipos específicos, por exemplo correções.

A flexibilidade do Conventional Commits permite que sua equipe crie seus próprios tipos e altere ao longo do tempo.

Tipos
A primeira e principal descrição de um commit semântico, refere-se a seu tipo, os quais possuem a finalidade de comunicar a intenção de processamento que o utilizador teve em sua execução.

Abaixo será enumerado os principais types descritos na documentação do Angular Commit Message Guidelines:

build: Alterações que afetam o sistema de construção ou dependências externas (escopos de exemplo: gulp, broccoli, npm),ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs);

docs: referem-se a inclusão ou alteração somente de arquivos de documentação;
feat: Tratam adições de novas funcionalidades ou de quaisquer outras novas implantações ao código;

fix: Essencialmente definem o tratamento de correções de bugs;

perf: Uma alteração de código que melhora o desempenho;

refactor: Tipo utilizado em quaisquer mudanças que sejam executados no código, porém não alterem a funcionalidade final da tarefa impactada;

style: Alterações referentes a formatações na apresentação do código que não afetam o significado do código, como por exemplo: espaço em branco, formatação, ponto e vírgula ausente etc.);

test: Adicionando testes ausentes ou corrigindo testes existentes nos processos de testes automatizados (TDD);

chore: Atualização de tarefas que não ocasionam alteração no código de produção, mas mudanças de ferramentas, mudanças de configuração e bibliotecas que realmente não entram em produção;

env: basicamente utilizado na descrição de modificações ou adições em arquivos de configuração em processos e métodos de integração contínua (CI), como parâmetros em arquivos de configuração de containers.
Também, o Guidelines, recomenda o tipo improvement para commits que melhoram uma implementação atual sem adicionar um novo recurso ou consertar um bug.

Observe que esses tipos não são obrigatórios pela especificação do Conventional Commits.

Reforço que estes são os principais tipos utilizados, mas existem outros diversos que podem ser empregados e também serem adequados a necessidade de sua equipe de desenvolvimento.

Eu quis apresentar somente os mais utilizados, mas vocês podem conferir todas as opções ou pesquisar mais sobre o assunto no https://www.conventionalcommits.org/en/v1.0.0/

Espero que tenha ajudado!! venho tentando aprender e aplicar em todos os projetos que inicio, como novato, o quanto antes aprendermos estas técnicas utilizadas no dia-a-dia melhor, menos uma coisa pra ser aprendido quando estivermos efetivamente inseridos no mercado de trabalho.

Carregando publicação patrocinada...