[Π‘ΡΡΠ΅Π½ Π₯ΠΎΡΠ΅Π½ΡΠ½] [merion academy] Python Advanced. ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΊΡΡΡ (2024)
[Π‘ΡΡΠ΅Π½ Π₯ΠΎΡΠ΅Π½ΡΠ½] [merion academy] Python Advanced. ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΊΡΡΡ (2024)
Π‘Π»ΠΈΠ² ΠΊΡΡΡΠ° Python Advanced. ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΊΡΡΡ (2024) [merion academy] [Π‘ΡΡΠ΅Π½ Π₯ΠΎΡΠ΅Π½ΡΠ½]
ΠΡΠ²ΠΎΠΉΡΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΈ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ·ΡΡΠΈΡΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ², ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° FastAPI.
Π£Π»ΡΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠΈ Π½Π°Π²ΡΠΊΠΈ Python, ΡΡΠΎΠ±Ρ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ Π±ΡΡΡΡΡΠΉ ΡΠΎΡΡ Π²Π°ΡΠ΅Π³ΠΎ Π³ΡΠ΅ΠΉΠ΄Π° Π΄ΠΎ ΡΡΠΎΠ²Π½Ρ middle.
ΠΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΠΊΡΡΡ:
1. Python-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ
Π£Π·Π½Π°ΠΉΡΠ΅, ΡΡΠΎ Ρ Python ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ: ΠΌΠ΅ΡΠ°ΠΊΠ»Π°ΡΡΡ, Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ, Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ, ΠΏΠΎΡΠΎΠΊΠΈ (threading) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ (multiprocessing) Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΊ ΡΡΠΎΠ²Π½Ρ middle.
2. Data Scientist
Python ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π΄Π°ΡΠ°-ΡΠ°ΠΉΠ΅Π½ΡΠΈΡΡΠΎΠ² Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠΉ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². FastAPI ΠΈ SQLAlchemy Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ API ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Π² Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
3. Π‘ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡ
ΠΠ»Ρ Frontend ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° - ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΎΡΠ½ΠΎΠΉ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ, Backend ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° - ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΈΠ»Π»ΡΠ΅ΡΠ° ΠΈ ΠΊΡΡΠ³ΠΎΠ·ΠΎΡΠ°, Π° Π΄Π»Ρ QA-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ - ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠ°Π½Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΎΡΡ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
ΠΠ»ΠΎΠΊ 1 - Π£Π³Π»ΡΠ±Π»Π΅Π½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌΠΈ
ΠΠ²ΠΎΠ΄Π½ΠΎΠ΅ Π·Π°Π½ΡΡΠΈΠ΅: Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ multithreading ΠΈ multiprocessing
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ
ΠΠ»Π°ΡΡΡ-Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ»ΠΎΠΊ 2 - Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΠΏΡ
Π‘ΡΡΠΎΠΊΠΈ ΠΈ Π±Π°ΠΉΡΡ - Π² ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ°. ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ.
Π§ΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ½ΠΎΡΡΡ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π»ΠΎΠΊΡ 1 ΠΈ 2
ΠΠ»ΠΎΠΊ 3 - Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Python ΠΈ Π΅Π³ΠΎ ΠΌΠΈΠ½ΡΡΡ
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΎΠ² map, filter Ρ comprehensions. ΠΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ
Π Π΅ΠΊΡΡΡΠΈΡ, ΡΡΠ΅ΠΊ, ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°, Ρ Π²ΠΎΡΡΠΎΠ²Π°Ρ ΡΠ΅ΠΊΡΡΡΠΈΡ
ΠΠ»ΠΎΠΊ 4 - ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ
ΠΠ°ΠΊ ΡΠ²ΡΠ·Π°Π½Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΡΠΎΡΠΎΠ½Ρ (ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ Π² Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ), ΠΊΠΎΡΡΡΠΈΠ½Ρ
ΠΠ»ΠΎΠΊ 5 - ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ (asyncio)
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΡΠΏΠΏΡ Π·Π°Π΄Π°Ρ
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π² ΡΠ΅ΡΡ
Π¦ΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ (ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ) ΡΠΈΠΊΠ»
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π»ΠΎΠΊΡ 3, 4 ΠΈ 5
ΠΠ»ΠΎΠΊ 6 - ΠΠ»Π°ΡΡΡ ΠΈΠ·Π½ΡΡΡΠΈ
ΠΠ΅ΡΠ°ΠΊΠ»Π°ΡΡΡ
"ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ. ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ
ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ
Π‘Π»ΠΎΡΡ Π² ΠΊΠ»Π°ΡΡΠ°Ρ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ super
Π‘ΠΎΠΊΡΡΡΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ (name mangling)
ΠΠ»ΠΎΠΊ 7 - Π Π°Π±ΠΎΡΠ° Ρ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ, Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°
Π‘ΠΈΠ»ΡΠ½ΡΠ΅ ΠΈ ΡΠ»Π°Π±ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ
ΠΠ»ΠΎΠΊ 8 - ΠΠ½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ². Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ
ΠΠ°ΠΊ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ², Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ
Π Π°Π±ΠΎΡΠ° Ρ mypy
Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΠΈΠ³Π½Π°ΡΡΡΡ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π»ΠΎΠΊΡ 6, 7 ΠΈ 8
ΠΠ»ΠΎΠΊ 9 - Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Unittest
ΠΠΎΠΊΡΡΡΠΈΠ΅ ΠΊΠΎΠ΄Π° (coverage)
Pytest, ΠΏΠ»Π°Π³ΠΈΠ½Ρ
Π€ΠΈΠΊΡΡΡΡΡ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΌΠ΅ΡΠΊΠΈ
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΡΠΎΠ²
ΠΠ»ΠΎΠΊ 10 - ΠΡΠ΅ΡΠ΅Π΄ΠΈ Π·Π°Π΄Π°Ρ
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π·Π°Π΄Π°Ρ
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π·Π°Π΄Π°Ρ
Π‘Π΅ΡΠ²ΠΈΡΡ Π΄Π»Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π·Π°Π΄Π°Ρ. Celery. RabbitMQ
ΠΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΠΈΠ³Π½Π°ΡΡΡΡ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π»ΠΎΠΊΡ 9 ΠΈ 10
ΠΠ»ΠΎΠΊ 11 - ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ»ΠΎΠΊ 12 - Π£ΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π΄Π°Ρ
Threading, GIL
Multiprocessing
ΠΠ»ΠΎΠΊ 12 - Π£ΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π΄Π°Ρ
Threading, GIL
Multiprocessing
ΠΠ»ΠΎΠΊ 13 - ΠΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΊΡΡΠΊΠΎΠ² ΠΊΠΎΠ΄Π°. Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ· Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°. ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Python
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π»ΠΎΠΊΡ 11, 12 ΠΈ 13
ΠΠ»ΠΎΠΊ 14 - Π Π°Π±ΠΎΡΠ° Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· SQLAlchemy
ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ SQLAlchemy 2.0ΠΠ΅ΠΊΡΠΈΡ
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Π½Π° SQLAlchemy
ΠΠ»ΠΎΠΊ 15 - ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° FastAPI
ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ FastAPI
FastAPI Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ git: commit, remote, push
Π Π°Π±ΠΎΡΠ° Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· SQLAlchemy Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
Π Π°Π·Π²ΠΈΡΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° FastAPI
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π»ΠΎΠΊΡ 14 ΠΈ 15
Π€ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π€ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π‘Π»ΠΈΠ² ΠΊΡΡΡΠ° Python Advanced. ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΊΡΡΡ (2024) [merion academy] [Π‘ΡΡΠ΅Π½ Π₯ΠΎΡΠ΅Π½ΡΠ½]
ΠΡΠ²ΠΎΠΉΡΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΈ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ·ΡΡΠΈΡΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ², ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° FastAPI.
Π£Π»ΡΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠΈ Π½Π°Π²ΡΠΊΠΈ Python, ΡΡΠΎΠ±Ρ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ Π±ΡΡΡΡΡΠΉ ΡΠΎΡΡ Π²Π°ΡΠ΅Π³ΠΎ Π³ΡΠ΅ΠΉΠ΄Π° Π΄ΠΎ ΡΡΠΎΠ²Π½Ρ middle.
ΠΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΠΊΡΡΡ:
1. Python-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ
Π£Π·Π½Π°ΠΉΡΠ΅, ΡΡΠΎ Ρ Python ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ: ΠΌΠ΅ΡΠ°ΠΊΠ»Π°ΡΡΡ, Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ, Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ, ΠΏΠΎΡΠΎΠΊΠΈ (threading) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ (multiprocessing) Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΊ ΡΡΠΎΠ²Π½Ρ middle.
2. Data Scientist
Python ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π΄Π°ΡΠ°-ΡΠ°ΠΉΠ΅Π½ΡΠΈΡΡΠΎΠ² Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠΉ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². FastAPI ΠΈ SQLAlchemy Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ API ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Π² Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
3. Π‘ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡ
ΠΠ»Ρ Frontend ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° - ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΎΡΠ½ΠΎΠΉ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ, Backend ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° - ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΈΠ»Π»ΡΠ΅ΡΠ° ΠΈ ΠΊΡΡΠ³ΠΎΠ·ΠΎΡΠ°, Π° Π΄Π»Ρ QA-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ - ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠ°Π½Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΎΡΡ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
ΠΠ»ΠΎΠΊ 1 - Π£Π³Π»ΡΠ±Π»Π΅Π½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌΠΈ
ΠΠ²ΠΎΠ΄Π½ΠΎΠ΅ Π·Π°Π½ΡΡΠΈΠ΅: Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ multithreading ΠΈ multiprocessing
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ
ΠΠ»Π°ΡΡΡ-Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ»ΠΎΠΊ 2 - Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΠΏΡ
Π‘ΡΡΠΎΠΊΠΈ ΠΈ Π±Π°ΠΉΡΡ - Π² ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ°. ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ.
Π§ΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ½ΠΎΡΡΡ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π»ΠΎΠΊΡ 1 ΠΈ 2
ΠΠ»ΠΎΠΊ 3 - Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Python ΠΈ Π΅Π³ΠΎ ΠΌΠΈΠ½ΡΡΡ
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΎΠ² map, filter Ρ comprehensions. ΠΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ
Π Π΅ΠΊΡΡΡΠΈΡ, ΡΡΠ΅ΠΊ, ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°, Ρ Π²ΠΎΡΡΠΎΠ²Π°Ρ ΡΠ΅ΠΊΡΡΡΠΈΡ
ΠΠ»ΠΎΠΊ 4 - ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ
ΠΠ°ΠΊ ΡΠ²ΡΠ·Π°Π½Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΡΠΎΡΠΎΠ½Ρ (ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ Π² Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ), ΠΊΠΎΡΡΡΠΈΠ½Ρ
ΠΠ»ΠΎΠΊ 5 - ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ (asyncio)
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΡΠΏΠΏΡ Π·Π°Π΄Π°Ρ
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π² ΡΠ΅ΡΡ
Π¦ΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ (ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ) ΡΠΈΠΊΠ»
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π»ΠΎΠΊΡ 3, 4 ΠΈ 5
ΠΠ»ΠΎΠΊ 6 - ΠΠ»Π°ΡΡΡ ΠΈΠ·Π½ΡΡΡΠΈ
ΠΠ΅ΡΠ°ΠΊΠ»Π°ΡΡΡ
"ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ. ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ
ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ
Π‘Π»ΠΎΡΡ Π² ΠΊΠ»Π°ΡΡΠ°Ρ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ super
Π‘ΠΎΠΊΡΡΡΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ (name mangling)
ΠΠ»ΠΎΠΊ 7 - Π Π°Π±ΠΎΡΠ° Ρ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ, Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°
Π‘ΠΈΠ»ΡΠ½ΡΠ΅ ΠΈ ΡΠ»Π°Π±ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ
ΠΠ»ΠΎΠΊ 8 - ΠΠ½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ². Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ
ΠΠ°ΠΊ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ², Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ
Π Π°Π±ΠΎΡΠ° Ρ mypy
Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΠΈΠ³Π½Π°ΡΡΡΡ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π»ΠΎΠΊΡ 6, 7 ΠΈ 8
ΠΠ»ΠΎΠΊ 9 - Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Unittest
ΠΠΎΠΊΡΡΡΠΈΠ΅ ΠΊΠΎΠ΄Π° (coverage)
Pytest, ΠΏΠ»Π°Π³ΠΈΠ½Ρ
Π€ΠΈΠΊΡΡΡΡΡ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΌΠ΅ΡΠΊΠΈ
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΡΠΎΠ²
ΠΠ»ΠΎΠΊ 10 - ΠΡΠ΅ΡΠ΅Π΄ΠΈ Π·Π°Π΄Π°Ρ
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π·Π°Π΄Π°Ρ
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π·Π°Π΄Π°Ρ
Π‘Π΅ΡΠ²ΠΈΡΡ Π΄Π»Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π·Π°Π΄Π°Ρ. Celery. RabbitMQ
ΠΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΠΈΠ³Π½Π°ΡΡΡΡ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π»ΠΎΠΊΡ 9 ΠΈ 10
ΠΠ»ΠΎΠΊ 11 - ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ»ΠΎΠΊ 12 - Π£ΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π΄Π°Ρ
Threading, GIL
Multiprocessing
ΠΠ»ΠΎΠΊ 12 - Π£ΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π΄Π°Ρ
Threading, GIL
Multiprocessing
ΠΠ»ΠΎΠΊ 13 - ΠΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΊΡΡΠΊΠΎΠ² ΠΊΠΎΠ΄Π°. Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ· Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°. ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Python
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π»ΠΎΠΊΡ 11, 12 ΠΈ 13
ΠΠ»ΠΎΠΊ 14 - Π Π°Π±ΠΎΡΠ° Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· SQLAlchemy
ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ SQLAlchemy 2.0ΠΠ΅ΠΊΡΠΈΡ
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Π½Π° SQLAlchemy
ΠΠ»ΠΎΠΊ 15 - ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° FastAPI
ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ FastAPI
FastAPI Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ git: commit, remote, push
Π Π°Π±ΠΎΡΠ° Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· SQLAlchemy Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
Π Π°Π·Π²ΠΈΡΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° FastAPI
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π±Π»ΠΎΠΊΡ 14 ΠΈ 15
Π€ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π€ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
favorite
0
star
0
