Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Falcon — очередная WSGI библиотека? Дмитрий Кук...
Search
IT-People
July 25, 2016
Programming
280
0
Share
Falcon — очередная WSGI библиотека? Дмитрий Кукушкин, Wargaming
Выступление на конференции PyCon Russia 2016
IT-People
July 25, 2016
More Decks by IT-People
See All by IT-People
Александр Кошкин, Positive Technologies: Знай и люби свой CPython во имя луны и великой справедливости
itpeople123
1
210
How Python was Shaped by leaky Internals, Armin Ronacher, Flask framework
itpeople123
1
240
Building social network with Neo4j and Python, Андрей Солдатенко, Toptal
itpeople123
1
230
Осторожно, DSL! Иван Цыганов, Positive Technologies
itpeople123
0
120
Докеризация веб-приложения на Python Антон Егоров, Ostrovok.ru
itpeople123
0
200
Python Robot Operating System вместо Middleware framework Дмитрий Киселев, Endpoint.com
itpeople123
0
110
Очереди задач без купюр, Артем Малышев, Positive Technologies
itpeople123
1
110
Flame graph: новый взгляд на привычное профилирование, Кирилл Борисов, Яндекс
itpeople123
1
260
Как добавить scripting в веб приложение, Константин Лопухин, Scrapinghub
itpeople123
0
150
Other Decks in Programming
See All in Programming
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
180
事業会社でのセキュリティ長期インターンについて
masachikaura
0
250
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
6.4k
The Monolith Strikes Back: Why AI Agents ❤️ Rails Monoliths
serradura
0
310
PHPで TLSのプロトコルを実装してみるをもう一度しゃべりたい
higaki_program
0
200
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.5k
Alternatives to JPA 2026
debop
0
100
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
110
Don't Prompt Harder, Structure Better
kitasuke
0
720
SkillがSkillを生む:QA観点出しを自動化した
sontixyou
6
3.3k
存在論的プログラミング: 時間と存在を記述する
koriym
5
870
Vibe NLP for Applied NLP
inesmontani
PRO
0
380
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
320
A better future with KSS
kneath
240
18k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
27
3.4k
Building an army of robots
kneath
306
46k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
97
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Crafting Experiences
bethany
1
110
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
310
Joys of Absence: A Defence of Solitary Play
codingconduct
1
340
Transcript
FALCON Yet another WSGI library? Дмитрий Кукушкин Software Engineer
2
3 •500 000 игроков / 50 000 кланов •10 000
провинций •50 000 RPM Глобальная карта для WoT
4 •OSM data Исходные данные
5 •OSM data •JS Single Page App Исходные данные
6 •OSM data •JS Single Page App •Tiny Backend API
Исходные данные
7 •OSM data •JS Single Page App •Tiny Backend API
•Много PostGIS, SQL и Python Исходные данные
8 •Django •Bottle •Flask •Falcon Что выбрать
9 •Только API Что хотим
10 •Только API •SQLAlchemy Что хотим
11 •Только API •SQLAlchemy •Не потерять скорость разработки Что хотим
12 •Только API •SQLAlchemy •Не потерять скорость разработки •Действительно быстрый
API Что хотим
13 •Только API •SQLAlchemy •Не потерять скорость разработки •Действительно быстрый
API •Поменьше велосипедов Что хотим
14 •1 GET End-point •Параметр в URL (/conferences/{name}/) •Query -
параметр (/conferences/{name}?highlight=1) •1 заголовок запроса и ответа •10 KiB random text Сценарий
15 Скорость
16 Скорость
17
18 •CPython 2.6 / 2.7 •PyPy •CPython 3.3 - 3.5
Python
19 # api.py import falcon class HelloResource(object): def on_get(self, req,
resp): resp.status = falcon.HTTP_200 resp.body = 'Hello from Minsk!' app = falcon.API() app.add_route('/nohello, HelloResource()) >>> gunicorn api:app Пример!
20 •Falcon Сборка истребителя
21 •Falcon •SQLAlchemy + alembic Сборка истребителя
22 •Falcon •SQLAlchemy + alembic •invoke - command line interface
Сборка истребителя
23 •Falcon •SQLAlchemy + alembic •invoke - command line interface
•RQ Сборка истребителя
24 •Request/Response •Cookies •Routing •Middleware Что есть в боекомплекте
25 •l10n and i18n Что не хватило
26 •l10n and i18n •sessions and auth Что не хватило
27 •l10n and i18n •sessions and auth •CSRF Что не
хватило
28 “+” “-” • Быстрый • Прост в использовании •
Хорошо документирован • Не популярен • Мало библиотек • Нет стандартов организации кода
29
30 •falcon-i18n •falcon-redis-sessions •falcon-csrf •…. Будем делиться
31 •https://falconframework.org/ •https://github.com/wgnet Ссылочки
Спасибо!
Дмитрий Кукушкин Software Engineer +375-29-776-47-88 https://www.facebook.com/WargamingMinsk Вопросы?
[email protected]
wargaming.com https://www.linkedin.com/company/wargaming-net
OUR PROJECTS
None