Projeto da NLW da Rocketseat (trilha python)
Configurações iniciais do ambiente de desenvolvimento
-
Instalar o virtualenv setar como comandos 2. python3 -m venv .venv 3. . .venv/bin/activate
-
Instalar pylint
- pip3 install pylint
- ativar a extensão da MS pylint
- pylint
- snake_case -> Funções, Variáveis, Métodos
- PascalCase -> Classes
- pylint --generate-rcfile > .pylintrc
- colocar as seguinte exceções:
- disable= C0114, # missing-module-docstring C0115, # missing-class-docstring C0116, # missing-function-docstring W0703, # Catching too general exception Exception
-
Instalar o pre-commit
- fazer as configs do pre-commit
-
Gerar o requirements.txt
- .venv/bin/pip3 freeze > requirements.txt
-
Instalar Flask
-
Instalar python-barcode
-
Instalar pillow
Após isso, gerar o arquivo de requirements novamente para atualizar com as novas instalações
Os passos acima fazem parte da aula 1 mas vou dividir o projeto em si por aulas
Criar e subir o server usando Flask. Usar o barcode para receber o código e gerar o uma imagem do código de barras.
Começamos a aula separando o único arquivo 'run_raw.py' que foi criado na primeira aula em uma estrutura de pastas seguindo a filosofia de arquitetura para facilitar a manutenção além de seguir as boas práticas da programação.
No arquivo 'run.py' rodamos o servidor e a opção de debug=True é um "equivalente" ao nodemon. Essa opção "ligada" fica monitorando nossos arquivos para renovar o servidor sempre que os arquivos forem alterados.
Em seguida, implementamos tipagem http para deixar encapsulado como serão tratadas as requests e responses. E fizemos alguns testes para garantir que estava tudo funcionando.
E por fim, alteramos a estrutura do projeto para facilitar a manutenção. Controllers farão de uso de funções criadas usando o padrão de desing de fachada onde implementamos as libs externas nos drivers.
Vamos focar em tratamento de erros e testes unitários.
Construir o error_handler bem genérico mesmo e passar para a função para testar. Basicamente, colocamos a função de tratamento de errors na rota que queremos testar e ela vai criar uma "máscara" no erro parar torná-lo mais legível e facilitar o entendimento.