Web Development with Python
26/11/2024 - -
Ipê Room
Content to be presented in pt-br

Evoluindo o sistema: testes, logs e automações do ambiente

Intermediate

Aqui você vai aprender sobre documentação, testes e diversas automações que vão auxiliar no seu dia a dia como desenvolvedor e tornar seu sistema web com muito mais qualidade.

Description

Criar um bom sistema web vai além do código do sistema em si, muitos outros fatores podem influenciar na qualidade e na rapidez do software entregue. O objetivo deste tutorial é melhorar as habilidades das pessoas por trás desses sistemas e fornecer mais ferramentas para que o desenvolvimento se torne além de mais rápido, com mais qualidade, seguro e profissional.

Criar um bom sistema web vai além do código do sistema em si, muitos outros fatores podem influenciar na qualidade e na rapidez do software entregue. O objetivo deste tutorial é melhorar as habilidades das pessoas por trás desses sistemas e fornecer mais ferramentas para que o desenvolvimento se torne além de mais rápido, com mais qualidade, seguro e profissional.

Iniciaremos o tutorial disponibilizando um código já pronto de um sistema simples, escrito em FastAPI de acordo com boas práticas de programação.

A partir desse código pronto, criaremos a documentação da API, que explorará a capacidade de entendimento dos códigos disponibilizados, e ressaltar o valor desse artefato.

Criaremos testes unitários e de ponta a ponta, explorando as funcionalidades previamente entendidas, e realizaremos uma modificação em um endpoint, para observar a segurança promovida pelos testes e impacto dessa modificação no escopo.

Adicionaremos logs que permitam uma melhor observabilidade do comportamento do sistema, dedicando tempo a explorar conceitos como níveis, formatação, armazenamento e introduzir uma alternativa à biblioteca padrão de logging do python.

Finalizaremos com a instrumentalização do ambiente, com formatadores, analisadores sintáticos e automações que tem impacto direto no dia a dia e na produtividade de devs.

Requirements

Necessário trazer notebook para o treinamento.

Pré-requisitos sobre a linguagem Python:
* funções é essencial;
* decoradores e orientação a objetos é bastante importante também.

Pré-requisitos práticos:
* já ter desenvolvido algum sistema web, independente da linguagem ou framework;

Pré-requisitos teóricos:
* desejável algum conhecimento sobre testes;

Para as máquinas, é necessário que você tenha permissão para instalação de pacotes. Preferencialmente Linux ou ter docker instalado.
Uma IDE da sua preferência.