Gatsby
ΠΠΠ§ΠΠ«Π
Gatsby
ΠΠΠ§ΠΠ«Π
- Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ
- 10 ΠΠΊΡ 2018
- Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
- 44,465
- ΠΠ°ΠΉΠΊΠΈ
- 204,508
ΠΠ²ΡΠΎΡ: kts - ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΠΏΡΡΡΠΊΠΎ
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅: ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ (2021)

ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΠΎΡΡΠΎΠΌΡ python-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΠΈ, ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ, ΠΈ ΡΠΌΠ΅ΡΡ Π²ΡΠ΅ ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΡΠΎΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π° Π½Π°ΡΠ΅ΠΌ ΠΊΡΡΡΠ΅:
Django vs Aiohttp
β Π‘ΡΠ°Π²Π½ΠΈΠΌ Django ΠΈ Aiohttp, ΠΏΠΎΠΉΠΌΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠΈΡ
β Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Django, Π° ΠΊΠΎΠ³Π΄Π° β Aiohttp
β Π‘ΡΠ°Π²Π½ΠΈΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Django ΠΈ Aiohttp
β Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Aiohttp Π½Π΅Π»ΡΠ·Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Django 3.0 (c ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΠΈ Π² Django)
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΎΡΠΈΠΈ
β ΠΠΎΠΉΠΌΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠΈΡ CPU ΠΎΡ IO bound ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ
β Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Π² python threading, ΠΏΠΎΠΉΠΌΠ΅ΠΌ ΠΈΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ
β Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Python (multiprocessing ΠΈ ΠΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ)
β ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ GIL, ΠΏΠΎΠΉΠΌΠ΅ΠΌ Π·Π°ΡΠ΅ΠΌ Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π΅ΡΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ
Asyncio
β Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ asyncio ΠΈ ΠΏΠΎΠΉΠΌΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅:
β Coroutines
β Tasks
β Synchronization Primitives
β Queues
Aiohttp client
β ΠΠ°ΡΡΠΈΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ aiohttp Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ http/https/web sockets/s3 ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ:
β VK API (http, long polling). ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ°Π³ΠΈ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ VK Π±ΠΎΡΠ°
β Telegram API (http, long polling). ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ°Π³ΠΈ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Telegram Π±ΠΎΡΠ°
β ΠΠΈΡΠΆΠ΅Π²ΠΎΠ΅ API (web socket)
β ΠΠ°ΡΡΠΈΠΌΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π±Π΅Π· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°
β Π€Π°ΠΉΠ»ΠΎΠ²ΠΎΠ΅ API (s3). ΠΠ°ΡΡΠΈΠΌΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ
Asyncio connectors
β Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΊΠΎΠ½Π½Π΅ΠΊΡΠΎΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ
β ΠΠ°ΡΡΠΈΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ: Postgres, Mongo, RabbitMQ, Elasticsearch
Aiohttp server
β ΠΠ°ΡΡΠΈΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ aiohttp ΡΠ΅ΡΠ²Π΅ΡΠ°:
β Handlers, routes ΠΈ classview
β Middleware ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ
β Signals
β Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠ°ΡΡ ΡΠΈΠΏΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
β ΠΠ²ΡΡ ΡΡΠΎΡΠΎΠ½Π½Π΅Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ web socket
β ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Π² s3 (stream)
β Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ½ΠΎΠ²ΡΡ Π·Π°Π΄Π°ΡΠΈ
Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
β Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, Π½Π° ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Python
β ΠΠΎΠΉΠΌΠ΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ future ΠΈ event loop, ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°Ρ
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
Π‘ΠΊΠ°ΡΠ°ΡΡ:
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅: ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ (2021)

ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΠΎΡΡΠΎΠΌΡ python-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΠΈ, ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ, ΠΈ ΡΠΌΠ΅ΡΡ Π²ΡΠ΅ ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΡΠΎΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π° Π½Π°ΡΠ΅ΠΌ ΠΊΡΡΡΠ΅:
- ΠΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Python (GIL, Threading, ΠΊΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ)
- Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ python-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° asyncio
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ aiohttp
Django vs Aiohttp
β Π‘ΡΠ°Π²Π½ΠΈΠΌ Django ΠΈ Aiohttp, ΠΏΠΎΠΉΠΌΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠΈΡ
β Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Django, Π° ΠΊΠΎΠ³Π΄Π° β Aiohttp
β Π‘ΡΠ°Π²Π½ΠΈΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Django ΠΈ Aiohttp
β Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Aiohttp Π½Π΅Π»ΡΠ·Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Django 3.0 (c ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΠΈ Π² Django)
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΎΡΠΈΠΈ
β ΠΠΎΠΉΠΌΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠΈΡ CPU ΠΎΡ IO bound ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ
β Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Π² python threading, ΠΏΠΎΠΉΠΌΠ΅ΠΌ ΠΈΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ
β Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Python (multiprocessing ΠΈ ΠΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ)
β ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ GIL, ΠΏΠΎΠΉΠΌΠ΅ΠΌ Π·Π°ΡΠ΅ΠΌ Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π΅ΡΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ
Asyncio
β Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ asyncio ΠΈ ΠΏΠΎΠΉΠΌΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅:
β Coroutines
β Tasks
β Synchronization Primitives
β Queues
Aiohttp client
β ΠΠ°ΡΡΠΈΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ aiohttp Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ http/https/web sockets/s3 ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ:
β VK API (http, long polling). ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ°Π³ΠΈ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ VK Π±ΠΎΡΠ°
β Telegram API (http, long polling). ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ°Π³ΠΈ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Telegram Π±ΠΎΡΠ°
β ΠΠΈΡΠΆΠ΅Π²ΠΎΠ΅ API (web socket)
β ΠΠ°ΡΡΠΈΠΌΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π±Π΅Π· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°
β Π€Π°ΠΉΠ»ΠΎΠ²ΠΎΠ΅ API (s3). ΠΠ°ΡΡΠΈΠΌΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ
Asyncio connectors
β Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΊΠΎΠ½Π½Π΅ΠΊΡΠΎΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ
β ΠΠ°ΡΡΠΈΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ: Postgres, Mongo, RabbitMQ, Elasticsearch
Aiohttp server
β ΠΠ°ΡΡΠΈΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ aiohttp ΡΠ΅ΡΠ²Π΅ΡΠ°:
β Handlers, routes ΠΈ classview
β Middleware ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ
β Signals
β Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠ°ΡΡ ΡΠΈΠΏΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
β ΠΠ²ΡΡ ΡΡΠΎΡΠΎΠ½Π½Π΅Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ web socket
β ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Π² s3 (stream)
β Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ½ΠΎΠ²ΡΡ Π·Π°Π΄Π°ΡΠΈ
Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
β Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, Π½Π° ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Python
β ΠΠΎΠΉΠΌΠ΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ future ΠΈ event loop, ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°Ρ
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
Π‘ΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ!
Π‘ΠΊΠ°ΡΠ°ΡΡ:
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΠΉΡΠΈ ΠΈΠ»ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ.