Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠΎΠ²
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Node.js / NestJS / PostgreSQL. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ REST/gRPC API ΠΏΠΎΠ΄ 3 ΡΠΎΠ»ΠΈ (ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΌΠ°ΡΡΠ΅Ρ, Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ) ΠΈ ΡΠΊΠ²ΠΎΠ·Π½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ: Π·Π°ΠΊΠ°Π· ? Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ? ΠΏΡΠΈΡΠΌΠΊΠ° ? Π²ΡΠΏΠ»Π°ΡΠ° ? ΡΠΏΠΎΡ. ΠΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π΅Ρ. ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: Π¦Π΅Π½Π° Π·Π° ΡΠ°Π±ΠΎΡΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ. ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ REST/gRPC API ΠΏΠΎΠ΄ 3 ΡΠΎΠ»ΠΈ (ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΌΠ°ΡΡΠ΅Ρ, Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ) ΠΈ ΡΠΊΠ²ΠΎΠ·Π½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ: Π·Π°ΠΊΠ°Π· ? Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ? ΠΏΡΠΈΡΠΌΠΊΠ° ? Π²ΡΠΏΠ»Π°ΡΠ° ? ΡΠΏΠΎΡ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ?Π»ΠΎΠ³ΠΈΠΊΠΈ Π²ΡΠΏΠ»Π°Ρ: Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ°ΡΡΡΠΎΠ² ΠΈ Π°ΠΊΡΠΎΠ² (ΠΠ‘?2/ΠΠ‘?3) ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π±Π°Π½ΠΊ, Π±Π°Π½ΠΊ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. Π’Ρ Π½Π΅ Ρ
ΡΠ°Π½ΠΈΡΡ Π΄Π΅Π½ΡΠ³ΠΈ ΠΈ Π½Π΅ Π΄Π΅Π»Π°Π΅ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΊΠΈ β ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡ ΠΈ ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Π±Π°Π½ΠΊΠΎΠΌ (Π½ΠΎΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΡΡ, Ρ
ΠΎΠ»Π΄, Π²ΡΠΏΠ»Π°ΡΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΡ) ΠΏΠΎ ΠΈΡ
API: ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π΅Π±Ρ
ΡΠΊΠΎΠ², ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡΡ, ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
ΡΠΎΠ±ΡΡΠΈΠΉ Π΄Π»Ρ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠΎΡΡ. Π Π°Π±ΠΎΡΠ° Ρ PostgreSQL: Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ: Π·Π°ΡΠΈΡΠ° ΠΎΡ CSRF/XSS/SQLi, Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
, Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΠΠ½ ΠΏΠΎ 152?Π€Π, ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΠΎΠ»Π΅ΠΉ. ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³: ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π»ΠΎΠ³ΠΈ, ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π°Π»Π΅ΡΡΡ, ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° (ΡΡΠΎΠ±Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΏΠΎΡΠ° Ρ ΠΠΠ Π±ΡΠ»Π° ΠΏΠΎΠ»Π½Π°Ρ Ρ
ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ). ΠΠΎΠΊΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΠ°ΠΌΠΈ (unit/integration), CI/CD, Docker, Π΄Π΅ΠΏΠ»ΠΎΠΉ. Π‘ΡΠ΅ΠΊ: Node.js, NestJS, PostgreSQL, TypeORM/Prisma, Redis, RabbitMQ/Kafka, Jest, Docker.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠΎΠ²
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Π‘Π°ΠΉΡ ΠΌΡΠ½ΠΈΡΠΈΠΏΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: ΠΠ»Π°ΡΠ½ΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ Π½ΠΈΠΌΠΈ Π»Π΅Π½ΡΠ° Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ. ΠΠΎΠ½ΡΠ΅Π½Ρ Π΅ΡΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠΎΠ²
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΡ (ΡΠ°ΠΉΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ). ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ. ΠΠΎΠ½ΡΠ΅Π½Ρ Π΅ΡΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠΎΠ²
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Π‘Π°ΠΉΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΠΊΠΎΠ². ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΠΠ . Π‘Π°ΠΉΡ ΠΏΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ΅ ΠΊ ΡΠΊΠ·Π°ΠΌΠ΅Π½Π°ΠΌ ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΠΈ. ΠΠ½ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π»ΠΈΡΡ Π΄Π»Ρ ΠΠΠ . ΠΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π΅Ρ. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΡΠΉ, ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΡΠ°ΠΉΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠΎΠ²
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Π¨ΠΊΠΎΠ»Π°. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΊΠΎΠ»Π΅. ΠΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π΅Ρ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠΎΠ²
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΡ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: CMS, ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΠΉ, Π½ΠΎΠ²ΠΎΡΡΠΈ, ΡΡΠ»ΡΠ³ΠΈ ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΡΠΎΡΠΌΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ, ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ°ΠΉΡΡ, Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ ΡΠ»Π°Π±ΠΎΠ²ΠΈΠ΄ΡΡΠΈΡ
, Π°Π΄Π°ΠΏΡΠΈΠ²Π½Π°Ρ Π²Π΅ΡΡΠΈΡ, ΡΠΎΡΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π³Π°Π»Π΅ΡΠ΅Ρ, Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°, SEO-ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π». ΠΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π΅Ρ. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ: ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΉΡΠ° ΠΏΠΎ Π·Π°ΡΠΈΡΡΠ½Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ HTTPS; ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΠΉΡΠ° Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ
Π²Π΅ΡΡΠΈΡΡ
ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ
Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ²; ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ; ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
; Π·Π°ΡΠΈΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ°ΠΉΡΠ°; ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡ ΠΏΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡ
ΡΠΊΡΠ°Π½Π°; Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° ΡΠ°ΠΉΡΠ° Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠΈ Π΅Π³ΠΎ ΡΡΡΡΠΊΡΡΡΡ.