/microservice-template

Template for microservices

Primary LanguageJavaScriptMIT LicenseMIT

Template para microserviço

All Contributors

Este projeto é um template para a criação de microserviços.

Sumário

Este projeto está dividido nas seguintes seções:

Requisitos básicos

Este projeto faz uso da plataforma Node.js e o sistema deve possuir os seguintes executáveis instalados:

  • node
  • npm

As respectivas versões estão descritas dentro do arquivo package.json (na raiz do projeto) na seção (nó) engines.

Caso tenha os executáveis instalados e deseje verificar as versões, no seu terminal (prompt de comando ou linha de comando dependendo do seu sistema) utilize os comandos:

# Mostra a versão do node
$ node --version

# Mostra a versão do npm
$ npm --version

Garanta que as ferramentas tenham total acesso de permissão tanto para escrita quanto leitura, já que vários arquivos e configurações serão gerados automaticamente nos próximos passos.

Ferramentas para qualidade de código

Esse projeto faz uso de um conjunto de ferramentas para garantir uma melhor qualidade de código. Segue a lista das ferramentas e uma breve descrição do propósito de cada uma:

  • eslint: ferramenta responsável por identificar, reportar e aplicar diferentes regras de codificação num projeto. Neste projeto, as regras estão definidas dentro do arquivo .eslintrc.js
  • prettier: ferramenta responsável por estilizar o código seguindo padrões pré-estabelecidos
  • husky: permite a execução de scripts antes, durante ou após comandos git, exemplo: executar o linter no projeto antes de realizar o commit
  • lint-staged: garante que apenas arquivos marcados como staged sejam utilizados por scripts, exemplo: num projeto com 2 arquivos index.ts e person.ts, se o arquivo person.ts sofreu alteração e o index.ts não, apenas o arquivo person.ts passará pelo processo de linting
  • git-commit-msg-linter: garante que as mensagens de commit estejam sempre no mesmo formato: <type>[scope]: <description>

Lembrando que todas as ferramentas contribuem para um código mais limpo e enxuto, mas todos devemos trabalhar continuamente para manter esta qualidade.

Configuração inicial do projeto

Primeiramente, faça a instalação das dependências do projeto. Para isso, abra o terminal, navegue para o diretório deste projeto e execute o comando abaixo:

# Execute a instalação das dependências do projeto
$ npm install

Confirme a existência do arquivo .env com as variáveis de ambiente atualizadas. Caso não possua, converse com um membro para equipe para que envie a você.

Configuração do ambiente de desenvolvimento

Aqui faremos o setup das ferramentas para manter a qualidade do código. Todas as ferramentas são configuradas automaticamente durante a instalação das dependências do projeto, mas o eslint e o prettier são melhores quando utilizados em conjunto com a IDE.

Abaixo, faremos o setup para as seguintes IDEs:

# JetBrains IDEs (Intellij, Webstorm, ...)

Primeiramente, vamos fazer a instalação do plugin Prettier na IDE. No menu superior esquerdo clique em File --> Settings e navegue para a opção Plugins. Outras opções para acessar este menu são:

  • Usar a hotkey ctrl + alt + s e selecionar a opção plugins
  • Usar a hotkey shift + shift, digitar plugins e selecionar a ação Plugins
  • Usar a hotkey ctrl + shift + a, digitar plugins e selecionar a ação Plugins

Selecione a aba marketplace, pesquise por prettier e instale o plugin. Siga as instruções da IDE (caso ela solicite alguma coisa).

Ainda com a janela de opções (settings) aberta, use o campo de pesquisa para encontrar o termo eslint. Para o eslint, selecione as opções Automatic ESLint configuration e Run eslint --fix on save.

Novamente no campo de pesquisa, procure pelo termo prettier. Para o prettier, siga as instruções abaixo:

  • verifique se a opção Node interpreter está configurada com a versão correta do node, conforme os requisitos básicos
  • para o Prettier package, selecione o diretório do pacote do prettier no projeto. Normalmente o pacote se encontra dentro do diretório node_modules, exemplo: ~/projects/microservice-template/node_modules/prettier
  • garanta que a opção Run for files, esteja configurada da seguinte forma: {**/*,*}.{js,ts,jsx,tsx}
  • por último, marque a opção On save

Pronto, IDE configurada. Para garantir que a configuração está correta, experimente alterar o código criando uma variável utilizando var. Deve aparecer um erro sublinhando o local e ao salvar este erro deve ser corrigido automaticamente.

# VSCode

Primeiramente, vamos fazer a instalação do plugin ESLint. No menu lateral esquerdo, clique em Extensões. Outra opção é utilizar a hotkey ctrl + shift + x.

No campo de pesquisa, busque o termo eslint. Será apresentada uma lista de plugins, instale o ESLint criado por Dirk Baeumer.

Pronto, IDE configurada. Para garantir que a configuração está correta, experimente alterar o código criando uma variável utilizando var. Deve aparecer um erro sublinhando o local e ao salvar este erro deve ser corrigido automaticamente.

Primeiros passos

Com o projeto configurado, basta abrir o terminal, navegar para o diretório do projeto e executar o comando:

# Roda o projeto
$ npm run start

Além deste, existem outros comandos/scripts disponíveis. Para verificar a lista completa, abra o arquivo package.json na raiz do projeto. Na seção (nó) scripts estará a lista completa de todos os comandos que podem ser executados com o projeto e o que cada um faz.

Contribuidores ✨

Muito obrigado a todos que contribuiram no desenvolvimendo do projeto (emoji key):


Diego Moura

🤔

João Ribeiro Junior

💻

Esse projeto segue a especificação all-contributors. Contribuições de todos os tipos são bem-vindas!