DEV ‐ Padrão de Projeto - manolito-fatec/dashflow-2025-1 GitHub Wiki

Estrutura Padrão para Padrão de Projeto


1. Introdução

Esta documentação descreve os padrões para o desenvolvimento de software na equipe, garantindo consistência, qualidade e colaboração eficiente. Tais padrões são flexíveis e podem ser ajustados para se adaptar ao perfil e ao comportamento da equipe ao longo do desenvolvimento.


2. Padrão para Criação de Branches

Utilizamos o fluxo de trabalho baseado no Git Flow, organizando as branches da seguinte forma:

2.1 Estrutura de Branches

  • main: Contém apenas versões estáveis e prontas para produção.
  • develop: Branch principal de desenvolvimento, onde novas funcionalidades são integradas.
  • feature branches (working branches): Usadas para o desenvolvimento de novas funcionalidades.
  • release branches: Criadas a partir da develop para preparar versões para produção.
  • hotfix branches: Criadas a partir da main para corrigir problemas críticos em produção.
  • bugfix branches: Criadas a partir da develop para corrigir bugs detectados durante o desenvolvimento.

2.2 Convenção de Nomes para Branches

As branches seguem o seguinte padrão, em inglês:

(tipo-de-commit)/idXXX/short-description

Exemplos:

  • feat/id123/google-authentication
  • bugfix/id124/fix-login-error
  • hotfix/id125/fix-prod-bug
  • release/id126/version-1.2.0

3. Padrão para Criação de Commits

Adotamos o formato Conventional Commits, utilizando o padrão GITMOJI para categorizar commits de maneira visual.

Tipo (Keyword) Gitmoji Exemplo de Uso
feat ✨ (feat): add user authentication
fix 🐛 🐛 (fix): button alignment in mobile
docs 📝 📝 (docs): update API examples
style 🎨 🎨 (style): format CSS files
refactor ♻️ ♻️ (refactor): simplify login logic
perf ⚡ (perf): optimize image loading
test ✅ ou 🧪 ✅ (test): add login unit tests
chore 🔧 ou ⚰️ 🔧 (chore): update dependencies
build 📦 📦 (build): upgrade webpack config
ci 💚 💚 (ci): fix GitHub Actions workflow
merge 🔀 🔀 (merge):'feat/id123/login-screen'
revert ⏪ (revert): remove experimental feature
security 🔒 🔒 (security): patch SQL injection
breaking 💥 💥 (feat!): remove deprecated API

3.1 Instalação do gitmoji-cli

3.1.1 Instale o Node.js e npm (caso ainda não tenha)

Siga as instruções no site oficial: https://nodejs.org/

3.1.2 Instale o gitmoji-cli globalmente:

npm install -g gitmoji-cli

3.2 Configuração e Uso do gitmoji-cli

Para configurar o gitmoji-cli, execute:

gitmoji -i

Isso ativará o modo interativo para commits com emojis.

3.3 Exemplo de Configuração

Para garantir que todos os commits sigam o padrão:

gitmoji --config enable-emoji

3.4 Criando um Commit com gitmoji-cli

gitmoji -c

Escolha o emoji adequado, adicione a descrição e finalize.


4. Padrão de Documentação de Endpoints

A documentação dos endpoints deve seguir o padrão Swagger, incluindo:

  • Descrição clara do endpoint.
  • Parâmetros e tipos de dados.
  • Exemplos de requisição e resposta.
  • Códigos de status HTTP.

5. Padrão para Pull Requests (PR)

O título do PR deve seguir o formato:

(tipo-do-commit)/id(id-task): breve descrição

Exemplo:

feat/id42: adicionar funcionalidade de exportação de relatórios

Descrição do PR:

  • DEVE referenciar a ID da task associada.
  • Desejavelmente deve incluir:
    • Objetivo da alteração.
    • Referência a issues relacionadas, se aplicável.

6. Regras de Revisão de PR

  • O PR deve ser revisado por pelo menos um outro desenvolvedor antes de ser mesclado.
  • O código deve seguir os padrões definidos pela equipe.
  • Feedbacks devem ser claros e objetivos.

7. Regras para Criação de Tasks

  • A descrição e critérios de aceitação devem ser claros e bem definidos.
  • O escopo da task deve ser pequeno o suficiente para ser concluído dentro de um sprint, sendo idealmente fragmentado em pequenas tarefas para a entrega constante e visível progresso.