Π€ΠΈΠ»ΠΎΡΠΎΡΡΠΊΠ°Ρ ΡΠΎΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΡΡ Β«Π€ΠΎΠ½Π°ΡΡΒ», ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊ β ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ. Π‘ΠΎΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΡΡΠΊΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΡ , Ρ ΡΠ΄ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈ ΡΠΈΠ»ΠΎΡΠΎΡΡΠΊΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ² ΡΠΈΡΠΎΠΊΠΎΠΉ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΎΡΠΊΠ»ΠΈΠΊΠΎΠ² β ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π½Π° ΡΡΠΈ ΡΠ΅ΠΊΡΡΡ.
Π€ΠΎΠ½Π°ΡΡ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½ Π² docker-ΠΎΠ±ΡΠ°Π·, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Ρ ΡΠ΅Π±Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ:
docker-compose up
ΠΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ»ΠΎΡΠΎΡΡΠΊΠ°Ρ ΡΠΎΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΡΡ Β«Π€ΠΎΠ½Π°ΡΡΒ» Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ TypeScript Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° NestJS Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ JavaScript Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π¦Π΅Π»ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π°Π½Π°Π»ΠΈΠ· ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΡΠ΅Π΄ΡΡΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
Π Ρ ΠΎΠ΄Π΅ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ:
- Π‘Π΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ°Ρ Π·Π°ΠΏΡΠΎΡΡ
- ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°;
- ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡ , ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π·Π°ΠΏΠΈΡΡΡ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
ΠΡΠ°ΡΠ·Π΅Ρ
β ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π²Π΅Π±-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ².Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ
β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ°Ρ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.Π€ΡΠΎΠ½ΡΠ΅Π½Π΄
β ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΡΠΎΡΠΎΠ½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ-Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°.ΠΡΠΊΠ΅Π½Π΄
β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ-Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ°Ρ Π·Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ.
Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ:
Π Π΅ΠΏΠ»ΠΈΠΊΠ° (Replique)
β Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ; Π΅Π΄ΠΈΠ½ΠΎΡΠ°Π·ΠΎΠ²Π°Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ Π²Π²ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ (ΠΏΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΡ) ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ²Π΅ΡΠΎΠΌ ΠΊ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ΅.ΠΡΠΊΠ»ΠΈΠΊ (Reponse)
β ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΊ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ΅.
Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠΌ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΡΠΈΠ»ΠΎΡΠΎΡΡΠΊΠΎΠΉ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ Β«Π€ΠΎΠ½Π°ΡΡΒ», ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊ β ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ. Π‘ΠΎΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΡΡΠΊΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΡ , Ρ ΡΠ΄ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈ ΡΠΈΠ»ΠΎΡΠΎΡΡΠΊΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ² ΡΠΈΡΠΎΠΊΠΎΠΉ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΎΡΠΊΠ»ΠΈΠΊΠΎΠ² β ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π½Π° ΡΡΠΈ ΡΠ΅ΠΊΡΡΡ.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΡΠ΄ ΡΠΈΠΏΠΎΠ²ΡΡ Π·Π°Π΄Π°Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°. Π ΡΠ°ΠΌΠΊΠ°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ Β«Π€ΠΎΠ½Π°ΡΡΒ» ΠΊΠ°ΠΊ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π·Π°Π΄Π°ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊ-ΠΎΡΠ²Π΅ΡΠΎΠ² ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊ.
ΠΠΎΠ΄ΡΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΠΌΠΈ (ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ Π·Π°ΠΏΠΈΡΡΠΌΠΈ) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ:
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΠΏΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡ
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΏΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΡ ΠΈ ΡΠ΅ΠΊΡΡΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊ, ΠΎΡΠ²Π΅ΡΠΎΠΌ Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ-Π½Π°Π±ΡΠΎΡΠΊΠ°
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ
- ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ°Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°
- ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊ, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠ²ΠΈΡΠ΅
ΠΠΎΠ΄ΡΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ:
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π»ΠΈΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
- ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ
ΠΠΎΠ΄ΡΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΡΠΊΠ»ΠΈΠΊΠ°ΠΌΠΈ (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ:
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΊΠ»ΠΈΠΊΠ° Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΡ
- ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΎΡΠΊΠ»ΠΈΠΊΠΎΠ² Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΡ
Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π±Π΅Π· ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ.
Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°ΠΏΡΡΠΌΡΡ, ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ OpenAPI Π²Π΅ΡΡΠΈΠΈ Π½Π΅ Π½ΠΈΠΆΠ΅ 3.0
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ , ΡΠ²ΠΎΠΉΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΡΠΌ.
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ΅ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ Π΄Π»Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: ΡΠ·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ HTML, ΡΠ·ΡΠΊ ΡΡΠΈΠ»Π΅ΠΉ CSS, ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ JavaScript. ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Bulma Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ·ΡΠΊΠ° SCSS Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ BulmaJS. ΠΠ»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ JQuery ΠΈ Toastr.
ΠΠ΅ΠΊΠ΅Π½Π΄ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Express ΠΈ ΡΠΎΠΊΠ΅Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ° Socket.IO Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° NestJS.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π‘Π£ΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ PostgreSQL Π²Π²ΠΈΠ΄Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π΄ΠΈΠ°Π»Π΅ΠΊΡ ΡΠ·ΡΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² SQL, ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²Π° ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠ°. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π±ΡΠ»Π° Π²ΡΠ±ΡΠ°Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ TypeORM.
Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ Git, Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΡΠΏΠ½Π΅ΠΉΡΠΈΠΉ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡ GitHub, Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Ρ ΠΎΡΡΠΈΠ½Π³Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ Heroku.
ΠΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈΠ· Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° HTTPS. ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ²Π΅Ρ PostgreSQL, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Supertokens.
Π ΠΈΡΡΠ½ΠΎΠΊ 1. Π‘ΠΈΡΡΠ΅ΠΌΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΡΠ²Π»ΡΡΡΠΈΠ΅ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ ΡΡΠ΅Ρ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ: User (ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ), Replique (ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° β Π·Π°ΠΏΠΈΡΡ), Reponse (ΠΎΡΠΊΠ»ΠΈΠΊ β ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ):
User
β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΈΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Supertokens.Replique
β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΏΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΈ ΡΠ΅ΠΊΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, Π΄Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° User ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Replique.Reponse
β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π°Π²ΡΠΎΡΠ° User ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΡ Replique, Π΄Π°ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
User ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Replique ΠΈ Reponse. Replique ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ²Π΅ΡΠΎΠΌ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ Replique, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ replique_discours_replique. Replique ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Reponse.
Π ΠΈΡΡΠ½ΠΎΠΊ 2. Π‘Ρ Π΅ΠΌΠ° ΡΠ°Π±Π»ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π’Π°Π±Π»ΠΈΡΠ° 1. ΠΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ |
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° |
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° |
AuthModule |
AuthController |
Π‘Π΅ΡΠ²ΠΈΡ (ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ) |
AuthFilter |
Π€ΠΈΠ»ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ |
|
AuthMiddleware |
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ»ΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Supertokens |
|
guards / AuthGuard |
Guard Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΌ |
|
guards / AuthRequiredGuard |
Guard, ΡΡΠ΅Π±ΡΡΡΠΈΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ |
|
PageModule |
PageController |
Π‘Π΅ΡΠ²ΠΈΡ (ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ) |
PageExceptionFilter |
Π€ΠΈΠ»ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ |
|
LoggingInterceptor |
ΠΠ»Π°ΡΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ |
|
RepliqueModule |
RepliqueController |
Π‘Π΅ΡΠ²ΠΈΡ (ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ) |
Publication |
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ |
|
Replique |
ΠΠ»Π°ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ |
|
dto / CreateRepliqueDto |
ΠΠ»Π°ΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ |
|
dto / UpdateRepliqueDto |
ΠΠ»Π°ΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ |
|
guards / UserOwnsRepliqueGuard |
Guard Π΄Π»Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΎΠΉ |
|
ReponseModule |
ReponseController |
Π‘Π΅ΡΠ²ΠΈΡ (ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ) |
Reponse |
ΠΠ»Π°ΡΡ ΠΎΡΠΊΠ»ΠΈΠΊΠ° |
|
Dto / CreateReponseDto |
ΠΠ»Π°ΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠΊΠ»ΠΈΠΊΠ° |
|
SocialbusModule |
GlobalGateway |
Π‘ΠΎΠΊΠ΅Ρ-ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ |
UserModule |
UserController |
Π‘Π΅ΡΠ²ΠΈΡ (ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ) |
User |
ΠΠ»Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ |
|
AppModule |
β |
Π’Π°Π±Π»ΠΈΡΠ° 2. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° |
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° |
AppService |
ΠΠ»Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² Ρ.Ρ. ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΡΡΡΠ»ΠΎΠΊ |
PageService |
ΠΠ»Π°ΡΡ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ, Π² Ρ.Ρ. ΡΡΡΠ°Π½ΠΈΡΡ Π²Ρ ΠΎΠ΄Π° ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, ΡΠΏΠΈΡΠΊΠΎΠ² ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΉ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊ, Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ |
RepliqueService |
ΠΠ»Π°ΡΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΈ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊ |
ReponseService |
ΠΠ»Π°ΡΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΎΡΠΊΠ»ΠΈΠΊΠΎΠ² |
UserService |
ΠΠ»Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ |
translation / TranslationService |
ΠΠ»Π°ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² |
supertokens / SupertokensService |
ΠΠ»Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ Supertokens |
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π±ΡΠ» Π²ΡΠ±ΡΠ°Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ OAS 3.0 β Swagger. ΠΠ°Π»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ API ΠΏΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π² Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΡΡΡΠΊΡΡΡΠ°Ρ Π΄Π°Π½Π½ΡΡ Π²Π½ΡΡΡΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
Π ΠΈΡΡΠ½ΠΎΠΊ 3. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ API.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠΈΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ Π€ΠΎΠ½Π°ΡΡ (ΡΠ²Π΅ΡΠ° #FDDF97 ΠΈ #364968), ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΈΡΡ Inter.
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡ. ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Π°Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ.
Π ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΡΠΈΠ»Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ Π½Π°Π±ΡΠΎΡΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ. Π ΠΏΡΠ°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Π½Π°Π±ΡΠΎΡΠΎΠΊ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΏΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΡΠ΅ΠΊΡΡ. Π ΡΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠΌΡ, ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ, ΠΎΡΠ²Π΅ΡΠΎΠΌ Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ°Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΈ ΡΠ΅ΠΊΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ EditorJS.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ.
Π Π΅ΠΏΠ»ΠΈΠΊΠΈ Π½Π° Π€ΠΎΠ½Π°ΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅, ΠΈ ΠΏΠΎ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΠΈΡΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ.
Π ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΈΠ»Π΅ Π€ΠΎΠ½Π°ΡΡ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Ρ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ:
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΎΡΠΊΠ»ΠΈΠΊΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΠΎΠ΄ ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΡΠΊΠ»ΠΈΠΊ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΎΡΠΊΠ»ΠΈΠΊΠΈ.
Π Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ» ΠΏΡΠΎΠ²Π΅Π΄ΡΠ½ Π°Π½Π°Π»ΠΈΠ· ΡΠ°Π±ΠΎΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΡΠ°ΠΌΠΈ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΈ Π²ΡΡΠ²Π»Π΅Π½Ρ ΠΈ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΌΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ Π½Π°Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π±ΡΠ»ΠΈ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΡΠ»Π° ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ Π² Π½ΠΎΡΠ°ΡΠΈΠΈ UML. ΠΠΏΠΈΡΠ°ΡΡΡ Π½Π° Π²ΡΡΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Ρ Β«Web-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅Β».
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°Π½Π΅Π΅ ΡΠ΅Π»ΠΈ Π±ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ. Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
- ΠΠ°ΡΡΠΈΠ½ Π€Π°ΡΠ»Π΅Ρ - ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΎΠΌ "ΠΠΈΠ»ΡΡΠΌΠ΅'. 2006 Π³.
- Π€Π»ΡΠ½Π°Π³Π°Π½, ΠΡΠ²ΠΈΠ΄. JavaScript. ΠΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, 7-Π΅ ΠΈΠ·Π΄. : ΠΠ΅Ρ. Ρ Π°Π½Π³Π». β Π‘ΠΠ±. : ΠΠΠ βΠΠΈΠ°Π»Π΅ΠΊΡΠΈΠΊΠ°β, 2021. β 720 Ρ .
- Π―Π½Π³ Π., ΠΠ΅ΠΊ Π., ΠΠ°Π½ΡΠ΅Π»ΠΎΠ½ Π. Node.js Π² Π΄Π΅ΠΈΜΡΡΠ²ΠΈΠΈ. 2-Π΅ ΠΈΠ·Π΄. β Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2018. β 432 Ρ.
- ΠΡΠ°ΡΠ½ Π.ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Node ΠΈ Express. ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° JavaScript. 2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. β Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2021. β 336 Ρ.
- Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΡΠ΅Π±Π½ΠΈΠΊ JavaScript [ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ]. β Π Π΅ΠΆΠΈΠΌ Π΄ΠΎΡΡΡΠΏΠ°: https://learn.javascript.ru/. β ΠΠ°ΡΠ° Π΄ΠΎΡΡΡΠΏΠ°: 04.05.2021.