Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Frameworks

Bem-vindo ao Módulo 16!

Visão Geral

Até este ponto da trilha, você aprendeu os fundamentos da linguagem Python, estruturas de dados, programação orientada a objetos, gerenciamento de dependências e diversos recursos avançados da linguagem. Agora é o momento de utilizar esse conhecimento para desenvolver aplicações reais.

Neste módulo estudaremos os principais frameworks do ecossistema Python, utilizados para criação de aplicações web, APIs REST, microsserviços, sistemas corporativos e aplicações em tempo real.

Um framework fornece uma estrutura pronta para o desenvolvimento, oferecendo componentes reutilizáveis, organização do projeto e diversas funcionalidades que aceleram a construção de aplicações profissionais.

Durante este módulo serão explorados frameworks com diferentes filosofias e modelos de execução, permitindo compreender quando cada tecnologia deve ser utilizada e quais problemas ela resolve.

Objetivos do Módulo

Ao concluir este módulo, você será capaz de:

  • compreender o papel dos frameworks no desenvolvimento de software;
  • desenvolver aplicações web completas;
  • construir APIs REST profissionais;
  • trabalhar com aplicações síncronas e assíncronas;
  • compreender arquiteturas WSGI e ASGI;
  • organizar projetos seguindo boas práticas;
  • escolher o framework mais adequado para diferentes cenários;
  • compreender as vantagens e limitações das principais soluções do ecossistema Python.

O que é um Framework?

Um framework é um conjunto de bibliotecas, padrões e ferramentas que fornece uma estrutura para o desenvolvimento de aplicações.

Em vez de desenvolver toda a infraestrutura do projeto manualmente, o framework disponibiliza componentes prontos para tarefas como:

  • roteamento;
  • comunicação HTTP;
  • autenticação;
  • acesso ao banco de dados;
  • renderização de páginas;
  • serialização de dados;
  • gerenciamento de sessões;
  • validação de informações;
  • tratamento de erros.

Isso permite que o desenvolvedor concentre seus esforços na lógica de negócio da aplicação.

Por que Aprender Frameworks?

Embora seja possível desenvolver aplicações utilizando apenas a biblioteca padrão do Python, essa abordagem exige implementar manualmente diversas funcionalidades já consolidadas.

Os frameworks oferecem:

  • maior produtividade;
  • padronização da arquitetura;
  • reutilização de código;
  • melhor organização dos projetos;
  • integração com bibliotecas externas;
  • maior segurança;
  • facilidade de manutenção.

Por esse motivo, praticamente todo desenvolvimento web profissional em Python utiliza algum framework.

Organização do Módulo

Este módulo está dividido em três grandes submódulos.

1. Synchronous

Neste submódulo serão estudados frameworks que tradicionalmente seguem o modelo de execução síncrono.

Conteúdos:

  • Pyramid
  • Plotly Dash

Durante esse estudo você aprenderá sobre:

  • arquitetura baseada em requisições síncronas;
  • desenvolvimento de aplicações web;
  • dashboards interativos;
  • organização de projetos;
  • componentes visuais;
  • aplicações analíticas.

Essas tecnologias são amplamente utilizadas em aplicações tradicionais e sistemas de visualização de dados.

2. Asynchronous

Neste submódulo serão estudadas bibliotecas e frameworks voltados para programação assíncrona.

Conteúdos:

  • Tornado
  • Sanic
  • Aiohttp
  • Gevent

Serão apresentados conceitos como:

  • Event Loop;
  • programação assíncrona;
  • async e await;
  • WebSockets;
  • concorrência;
  • cliente HTTP assíncrono;
  • Greenlets;
  • Monkey Patching.

Essas tecnologias são indicadas para aplicações que precisam lidar com milhares de conexões simultaneamente.

3. Synchronous + Asynchronous

Neste submódulo estudaremos frameworks que podem ser utilizados em diferentes modelos de desenvolvimento ou que representam as principais abordagens do ecossistema web Python.

Conteúdos:

  • Flask
  • FastAPI
  • Django

Durante esse estudo serão abordados:

  • desenvolvimento de APIs REST;
  • aplicações web completas;
  • autenticação;
  • ORM;
  • templates;
  • documentação automática;
  • validação de dados;
  • arquitetura de projetos.

Esses frameworks representam algumas das ferramentas mais utilizadas pela indústria atualmente.

Comparação das Tecnologias

Tecnologia Principal Aplicação Modelo
Pyramid Aplicações web flexíveis Síncrono
Plotly Dash Dashboards e visualização de dados Síncrono
Tornado Aplicações em tempo real Assíncrono
Sanic APIs REST de alto desempenho Assíncrono
Aiohttp Cliente HTTP e servidor web Assíncrono
Gevent Concorrência cooperativa Assíncrono
FastAPI APIs REST modernas Assíncrono (ASGI)
Flask Aplicações web leves e APIs Predominantemente síncrono (WSGI)
Django Aplicações web completas Predominantemente síncrono (WSGI, com suporte ASGI)

Habilidades Desenvolvidas

Ao finalizar este módulo, você terá desenvolvido competências para:

  • construir aplicações web profissionais;
  • desenvolver APIs REST escaláveis;
  • utilizar frameworks modernos do ecossistema Python;
  • compreender arquiteturas síncronas e assíncronas;
  • estruturar projetos seguindo boas práticas;
  • criar dashboards interativos;
  • consumir e disponibilizar serviços HTTP;
  • desenvolver microsserviços;
  • trabalhar com aplicações de alta concorrência.

Aplicações no Mercado

Os conhecimentos deste módulo são utilizados em praticamente todas as áreas do desenvolvimento com Python.

  • Desenvolvimento Web
  • APIs REST
  • Microsserviços
  • Ciência de Dados
  • Engenharia de Dados
  • Inteligência Artificial
  • Computação em Nuvem

Como Escolher um Framework?

A escolha depende dos requisitos do projeto.

De forma geral:

  • Django é indicado para aplicações completas que exigem muitos recursos integrados.
  • Flask é ideal para projetos menores, APIs simples e aplicações que necessitam de maior flexibilidade.
  • FastAPI é recomendado para APIs modernas, microsserviços e aplicações com alta demanda por desempenho.
  • Sanic, Tornado e Aiohttp são excelentes opções para aplicações altamente concorrentes e comunicação assíncrona.
  • Plotly Dash é especializado em dashboards e visualização de dados.
  • Pyramid oferece uma arquitetura flexível para projetos que exigem maior liberdade de configuração.
  • Gevent continua relevante principalmente em aplicações legadas e cenários específicos de concorrência cooperativa.

Não existe um framework universalmente melhor; a escolha deve considerar fatores como tipo de aplicação, requisitos de desempenho, equipe de desenvolvimento, ecossistema disponível e facilidade de manutenção.

Pré-requisitos

Para aproveitar melhor este módulo, é recomendado já dominar:

  • sintaxe da linguagem Python;
  • estruturas de dados;
  • funções e módulos;
  • Programação Orientada a Objetos;
  • gerenciamento de pacotes;
  • exceções;
  • compreensão de HTTP e APIs;
  • noções de programação assíncrona (desejável).

O que vem depois?

Após concluir este módulo, você estará preparado para aprofundar seus conhecimentos em áreas como desenvolvimento de APIs avançadas, autenticação e autorização, ORMs, bancos de dados, testes automatizados, Docker, Kubernetes, computação em nuvem, arquitetura de microsserviços, mensageria, observabilidade e práticas de DevOps.

Resumo

O módulo Frameworks marca a transição do estudo da linguagem para o desenvolvimento de aplicações reais. Ao longo dele, você conhecerá os principais frameworks do ecossistema Python, explorando diferentes modelos de desenvolvimento — síncrono, assíncrono e híbrido — e aprendendo quando utilizar cada tecnologia. Com o estudo de Pyramid, Plotly Dash, Tornado, Sanic, Aiohttp, Gevent, FastAPI, Flask e Django, você desenvolverá uma visão ampla do desenvolvimento web moderno em Python e estará preparado para escolher a ferramenta mais adequada para cada tipo de projeto, desde dashboards analíticos até APIs de alto desempenho e sistemas corporativos completos.