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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
IT-People
July 25, 2016
Programming
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
240
Осторожно, DSL! Иван Цыганов, Positive Technologies
itpeople123
0
130
Докеризация веб-приложения на Python Антон Егоров, Ostrovok.ru
itpeople123
0
200
Python Robot Operating System вместо Middleware framework Дмитрий Киселев, Endpoint.com
itpeople123
0
120
Очереди задач без купюр, Артем Малышев, Positive Technologies
itpeople123
1
120
Flame graph: новый взгляд на привычное профилирование, Кирилл Борисов, Яндекс
itpeople123
1
270
Как добавить scripting в веб приложение, Константин Лопухин, Scrapinghub
itpeople123
0
150
Other Decks in Programming
See All in Programming
信頼性の目標を誰も求めてない
shubox
0
480
ALB ログから Trace を気合で繋げる技術
fohte
7
850
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
250
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
200
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
140
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
0
200
이 함수, 실패하면 어떻게 되나요? null부터 Rich Errors까지, Kotlin 에러 처리 15년
haeti2
0
110
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
230
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
460
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
610
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
140
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
My Coaching Mixtape
mlcsv
0
300
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
230
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
490
Leo the Paperboy
mayatellez
8
2.2k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Code Review Best Practice
trishagee
74
20k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
180
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
640
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