Contruindo um Framework Web de Brinquedo só com Python

Osvaldo Santana Neto
Osvaldo Santana NetoSoftware Developer
Just Python
Subversive Edition
Manifesto Just Python
Vamos ver essas regras...
Contruindo um Framework Web de Brinquedo só com Python
Contruindo um Framework Web de Brinquedo só com Python
Toy
O Framework Web de Brinquedo
Esperem! Não me expulsem!
Vamos colocar uma lupa nessas regras!
Regras Just Python
Contruindo um Framework Web de Brinquedo só com Python
Regras Just Python
Não falaria sobre carreira...
Estamos contratando!
http://99jobs.com/olist
Regras Just Python
Regras Just Python
Regras Just Python
Usar != Fazer
Toy
Criando um Framework de Brinquedo
(que não é uma piada de 1º de abril 🤪)
Sem dependência externa
• A única dependência externa era o projeto staty. Mas o projeto também é
Pure Python e eu que desenvolvi. Então ficou naquela 'gray area'.
• https://github.com/osantana/staty ← Eu que fiz, tá?
• Já que não pode pip, pode git?
Contruindo um Framework Web de Brinquedo só com Python
ok...
Como fazer um Framework Pure
Python?
Vou mostrar como faz mas não posso mostrar como usa...
estão ligados na regra, né?
Como fazer?
1. Você não testa. Ninguém merece usar o unittest builtin do Python
• Só programadores Brainf*ck podem desenvolver sem testes.
• Brincadeira... eu fiz teste com pytest mas não vou mostrar porque...
enfim... (as regras...)
2. Prestar atenção ao módulo wsgiref que implementa uma referência do
padrão WSGI 1.0
• PEP-333 apenas (não tem tudo o que tem na PEP-3333, WSGI 1.0.1)
Contruindo um Framework Web de Brinquedo só com Python
Já temos um servidor.
Precisamos de uma App.
Contruindo um Framework Web de Brinquedo só com Python
Contruindo um Framework Web de Brinquedo só com Python
WSGI environ
Contruindo um Framework Web de Brinquedo só com Python
HTTP Request
Contruindo um Framework Web de Brinquedo só com Python
HTTP Response
Contruindo um Framework Web de Brinquedo só com Python
WSGI Response
Contruindo um Framework Web de Brinquedo só com Python
Contruindo um Framework Web de Brinquedo só com Python
Rotas e Handlers
O básico do básico...
Contruindo um Framework Web de Brinquedo só com Python
Contruindo um Framework Web de Brinquedo só com Python
Usando Rotas
E tem mais...
Class Handlers
Class Handlers
Resources
Usando o Framework
Ops!
http://github.com/osantana/toy
1 of 42

Recommended

RVM and Infinity Test by
RVM and Infinity TestRVM and Infinity Test
RVM and Infinity TestSuccesSoft
401 views18 slides
Test-Driven Development com Ruby on Rails by
Test-Driven Development com Ruby on RailsTest-Driven Development com Ruby on Rails
Test-Driven Development com Ruby on RailsRodrigo Manhães
577 views51 slides
YAGNI, KISS e Over Patternization by
YAGNI, KISS e Over PatternizationYAGNI, KISS e Over Patternization
YAGNI, KISS e Over PatternizationVinicius Quaiato
848 views59 slides
Refatorar! Porque ninguém gosta de código que cheira mal by
Refatorar! Porque ninguém gosta de código que cheira malRefatorar! Porque ninguém gosta de código que cheira mal
Refatorar! Porque ninguém gosta de código que cheira malAndrei Tognolo
686 views71 slides
Infinity test and RVM by
Infinity test and RVMInfinity test and RVM
Infinity test and RVMSuccesSoft LTDA
262 views18 slides
Por que escolher Python? by
Por que escolher Python?Por que escolher Python?
Por que escolher Python?Igor Leroy
995 views18 slides

More Related Content

More from Osvaldo Santana Neto

Basic Brainf*ck by
Basic Brainf*ckBasic Brainf*ck
Basic Brainf*ckOsvaldo Santana Neto
138 views5 slides
A Web é uma API by
A Web é uma APIA Web é uma API
A Web é uma APIOsvaldo Santana Neto
363 views40 slides
Dave Thomas - Agile is Dead (GOTO 2015) by
Dave Thomas - Agile is Dead (GOTO 2015)Dave Thomas - Agile is Dead (GOTO 2015)
Dave Thomas - Agile is Dead (GOTO 2015)Osvaldo Santana Neto
1.8K views62 slides
Olist Architecture v2.0 by
Olist Architecture v2.0Olist Architecture v2.0
Olist Architecture v2.0Osvaldo Santana Neto
864 views71 slides
Advanced Brainf*ck by
Advanced Brainf*ckAdvanced Brainf*ck
Advanced Brainf*ckOsvaldo Santana Neto
527 views11 slides
Corrigindo Bugs no CPython by
Corrigindo Bugs no CPythonCorrigindo Bugs no CPython
Corrigindo Bugs no CPythonOsvaldo Santana Neto
495 views14 slides

More from Osvaldo Santana Neto(20)

Como funciona um time remoto de desenvolvimento - Caipyra 2018 by Osvaldo Santana Neto
Como funciona um time remoto de desenvolvimento - Caipyra 2018Como funciona um time remoto de desenvolvimento - Caipyra 2018
Como funciona um time remoto de desenvolvimento - Caipyra 2018
Plataforma distribuída de Microserviços ou, como a Olist funciona by Osvaldo Santana Neto
Plataforma distribuída de Microserviços ou, como a Olist funcionaPlataforma distribuída de Microserviços ou, como a Olist funciona
Plataforma distribuída de Microserviços ou, como a Olist funciona
Matando (ou quase) Unicode(De|En)codeErrors (lightning talk) by Osvaldo Santana Neto
Matando (ou quase) Unicode(De|En)codeErrors (lightning talk)Matando (ou quase) Unicode(De|En)codeErrors (lightning talk)
Matando (ou quase) Unicode(De|En)codeErrors (lightning talk)
App Engine: aplicações escaláveis em poucas horas by Osvaldo Santana Neto
App Engine: aplicações escaláveis em poucas horasApp Engine: aplicações escaláveis em poucas horas
App Engine: aplicações escaláveis em poucas horas

Contruindo um Framework Web de Brinquedo só com Python