ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ: Svelte FullStack
ΠΡΠΎΠ΅ΠΊΡ:
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ/ΡΠ°Π·Π²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°Π»Π° Π΄Π»Ρ ΠΈΠ³ΡΡ Π² ΡΠ»ΠΎΡΡ Π½Π° ΡΠ°Π½ΡΠΈΠΊΠΈ. ΠΡΠΎΠ΅ΠΊΡ Π½ΠΎΠ²ΡΠΉ, Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ ΡΠΈΡΡΠΎΠ³ΠΎ Π»ΠΈΡΡΠ°. ΠΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ Π±ΡΠ΄Π΅Ρ Π»Π΅ΠΆΠ°ΡΡ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΡΡΠΈΠ½Π³Π° ΠΈ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° Π΄Π°Π½Π½ΡΡ . Π‘Π°ΠΉΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ SSR, ΡΠ°ΡΡΠΈΡΠ½ΠΎ SSG. ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΈΠ·ΠΎΠΌΠΎΡΡΠ½Π°Ρ load ΡΡΠ½ΠΊΡΠΈΡ). ΠΠ°Π½Π½ΡΠ΅ ΠΎΠ± Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π΄ΠΎΡΡΡΠΏΠ°ΠΌ ΠΈ ΠΊΠ΅Ρ API Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π² KeyValue Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
ΠΠ°Π΄Π°ΡΠΈ:
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° SvelteKit. ΠΡΠΎΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΡΡΠΈΠ½Π³Π° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Ρ layouts Π² sveltekit. ΠΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ Performance ΠΌΠ΅ΡΡΠΈΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (PageSpeed 90+). ΠΡΠΎΠ΅ΠΊΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ·ΡΡΠ½ΡΠΉ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ i18n Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΠΎ ΡΡΠ°ΡΡΠ°. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ³Ρ ΠΈ ΡΡΡΠ½ΠΈΡΠΎΠ². Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΠΠ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ³Ρ. ΠΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΏΡΠΈΠ½ΡΡΡΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
- TypeScript Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ, ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ sveltekit, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ load ΡΡΠ½ΠΊΡΠΈΠΉ sveltekit ΡΠ°ΠΌ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΈΠΏΡ.
- ΠΡΠ΅ API Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎ, Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ codegen ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
- ΠΠΈΠ½ΠΈΠΌΡΠΌ Π²Π½Π΅ΡΠ½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ (Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΌΠΎΠΌΡ ΠΈΠ»ΠΈ Π·Π°Π²Π΅Π½Π΄ΠΎΡΠΈΡΡ ΠΈΠ·-Π·Π° ΠΌΠ°Π»ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° β ΡΠ°ΠΊ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ)
- ΠΡ Π½Π΅ ΠΏΠΈΡΠ΅ΠΌ ΡΠ½ΠΈΡ ΡΠ΅ΡΡΡ, ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ. ΠΡ Π½Π΅ ΠΏΠΈΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ Π½Π° ΡΠ°Π±ΠΎΡΡ 3rd party Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
- ΠΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ KV (ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΡΠΎΠ±Ρ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π½Π΅ Π±ΡΠ»ΠΎ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Π² KV, ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠ²Π΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡ, Π΅ΡΠ»ΠΈ ΠΊΠ΅Ρ ΡΠΆΠ΅ Π±ΡΠ» Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ°Π½Π΅Π΅. ΠΡΠ»ΠΈ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π½Π΅Ρ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ streaming Π΄Π»Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠΈΠ΄Π΅ΠΎ Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΡΠΈΠΌΠΌΠΈΠ½Π³Π°, conditional stream example )
ΠΡΠΈΠΌΠ΅Ρ Π·Π°Π΄Π°ΡΠΈ:
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡ KYC Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ²ΡΠΎΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π² CloudFlare R2 Π»ΠΈΠ½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ signed url, Π½Π°ΠΏΡΡΠΌΡΡ Π² R2. ΠΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»Π° ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΡΡΡΡΡ Π΅ΠΌΡ Π·Π°ΠΏΠΈΡΡ Π² Π±Π΄. ΠΠ°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π°Π²ΡΠΎΡΡ Π»ΠΈΠ±ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠ±Π»ΠΈΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½. Π Π±Π΄ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡ ΡΡΠ°ΡΡΡ: new, rejected, approved, validation.
ΠΠΊΡΠ°Π½ ΠΏΡΠΎΡΠΈΠ»Ρ:
ΠΠ΅Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Π’Π΅Ρ ΡΡΠ΅ΠΊ:
SvelteKit, Svelte, CloudFlare Pages, CloudFlare KV, Lucia Auth,CloudFlare R2, D1, BigQuery, SCSS, Markdown.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ°ΠΌ:
ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ: 4+ Π³ΠΎΠ΄Π° ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ReactJS/Svelte/Solid/Svelte ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³Π΅ (ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ Svelte must have). ΠΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±Π΅ΠΊΠ΅Π½Π΄Π° (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π° nodejs).
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ:
git, browserstack, figma, jira, confluence
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π²ΡΠΊΠΈ:
ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ: intermediate + Π£ΠΌΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄. ΠΠ½Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ fetch Π²ΠΌΠ΅ΡΡΠΎ axios, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°/ΡΡΠ΅Π΄Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΌΠ΅ΡΡ ΠΏΡΠΎΠ΄ΡΠΌΡΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Ρ ΡΠ°Π·Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (layout/route/kv-cache/database). Π£Π²Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π½Π΅ stateless, ΠΏΠΎΡΡΠΎΠΌ ΠΏΡΠΈΠΉΠ΄Π΅ΡΡΡ ΠΆΠΎΠ½Π³Π»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ.
Π€ΠΎΡΠΌΠ°Ρ ΡΠ°Π±ΠΎΡΡ:
ΡΠ΄Π°Π»Π΅Π½ΠΊΠ°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠ°ΡΡΠΈΡΠ½Π°Ρ ΡΠ΄Π°Π»Π΅Π½ΠΊΠ° (ΠΠΈΠ΅Π²).
#vacancy #frontend