[Michael Herman] Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Django, Django REST Framework ΠΈ Docker
[Michael Herman] Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Django, Django REST Framework ΠΈ Docker [TDD] (2021)
Π―Π·ΡΠΊ: ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ
Π§Π΅ΠΌΡ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ?
Π§Π°ΡΡΡ 1 / ΠΡΠ½ΠΎΠ²Ρ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ
Π ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ RESTful API Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Python, Django, Django REST FrameworkΠΈ Postgres. ΠΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Django ΠΈ Postgres Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Docker ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΠ΅ pytest, ΡΡΠΎΠ±Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅ΡΡΠΎΠ² (TDD).
Π¦Π΅Π»ΠΈ ΠΠ±ΡΡΠ΅Π½ΠΈΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ RESTful API Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python, Django ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Django REST
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π’Π΅ΡΡΠΎΠ²
ΠΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Django Ρ ΠΏΠΎΠΌΠΎΡΡΡ pytest
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ Django ΠΈ Postgres Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Docker
ΠΠ°ΠΏΡΡΠΊ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΠΎΠ² Ρ ΠΎΡ Π²Π°ΡΠΎΠΌ ΠΊΠΎΠ΄Π°
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Django
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ API Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Django REST
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π»ΡΠ±ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΠΈΠ½ΡΠ΅ΡΠ°
Π§Π°ΡΡΡ 2 / Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ
ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π²Ρ Π½Π°ΡΠ½Π΅ΡΠ΅ Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Django, GunicornΠΈ Postgres Π² Heroku Ρ ΠΏΠΎΠΌΠΎΡΡΡ Docker. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ RESTful API ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΠΎΠ². ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ API Ρ ΠΏΠΎΠΌΠΎΡΡΡ Swagger.
Π¦Π΅Π»ΠΈ ΠΠ±ΡΡΠ΅Π½ΠΈΡ
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ GitLab CI Π΄Π»Ρ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ
Π£ΡΠΊΠΎΡΡΡΠ΅ ΡΠ±ΠΎΡΠΊΡ ΠΠ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Docker Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΡΡΠ° Docker
Π Π°Π·Π²Π΅ΡΠ½ΠΈΡΠ΅ Django, Gunicorn ΠΈ Postgres Π² Π₯Π΅ΡΠΎΠΊΡ Ρ ΠΠΎΠΊΠ΅ΡΠΎΠΌ
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π°ΠΊΡΠΈΠ²Π°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ WhiteNoise
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠ°ΠΉΠ» Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΏΠ΅Π½ΡΠ°ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΈΠΌΠΈΡΠ°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΡΠ΅ΡΡΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pytest
ΠΠ°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ pytest-xdist
Π§ΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ?
ΠΡΠΎ Π½Π΅ ΠΊΡΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . ΠΠ½ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ²-Π»ΡΠ΄Π΅ΠΉ Ρ ΠΎΠΏΡΡΠΎΠΌ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ΅Π².
Π―Π·ΡΠΊ: ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ
Π§Π΅ΠΌΡ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ?
Π§Π°ΡΡΡ 1 / ΠΡΠ½ΠΎΠ²Ρ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ
Π ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ RESTful API Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Python, Django, Django REST FrameworkΠΈ Postgres. ΠΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Django ΠΈ Postgres Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Docker ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΠ΅ pytest, ΡΡΠΎΠ±Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅ΡΡΠΎΠ² (TDD).
Π¦Π΅Π»ΠΈ ΠΠ±ΡΡΠ΅Π½ΠΈΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ RESTful API Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python, Django ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Django REST
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π’Π΅ΡΡΠΎΠ²
ΠΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Django Ρ ΠΏΠΎΠΌΠΎΡΡΡ pytest
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ Django ΠΈ Postgres Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Docker
ΠΠ°ΠΏΡΡΠΊ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΠΎΠ² Ρ ΠΎΡ Π²Π°ΡΠΎΠΌ ΠΊΠΎΠ΄Π°
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Django
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ API Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Django REST
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π»ΡΠ±ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΠΈΠ½ΡΠ΅ΡΠ°
Π§Π°ΡΡΡ 2 / Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ
ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π²Ρ Π½Π°ΡΠ½Π΅ΡΠ΅ Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Django, GunicornΠΈ Postgres Π² Heroku Ρ ΠΏΠΎΠΌΠΎΡΡΡ Docker. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ RESTful API ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΠΎΠ². ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ API Ρ ΠΏΠΎΠΌΠΎΡΡΡ Swagger.
Π¦Π΅Π»ΠΈ ΠΠ±ΡΡΠ΅Π½ΠΈΡ
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ GitLab CI Π΄Π»Ρ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ
Π£ΡΠΊΠΎΡΡΡΠ΅ ΡΠ±ΠΎΡΠΊΡ ΠΠ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Docker Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΡΡΠ° Docker
Π Π°Π·Π²Π΅ΡΠ½ΠΈΡΠ΅ Django, Gunicorn ΠΈ Postgres Π² Π₯Π΅ΡΠΎΠΊΡ Ρ ΠΠΎΠΊΠ΅ΡΠΎΠΌ
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π°ΠΊΡΠΈΠ²Π°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ WhiteNoise
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠ°ΠΉΠ» Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΏΠ΅Π½ΡΠ°ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΈΠΌΠΈΡΠ°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΡΠ΅ΡΡΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pytest
ΠΠ°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ pytest-xdist
Π§ΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ?
ΠΡΠΎ Π½Π΅ ΠΊΡΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . ΠΠ½ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ²-Π»ΡΠ΄Π΅ΠΉ Ρ ΠΎΠΏΡΡΠΎΠΌ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ΅Π².
favorite
0
star
0
