[ulbitv.ru] ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ Frontend. Π Production Π½Π° React (2023)

ΠΡΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ 2 ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌ Π»ΡΠ΄Π΅ΠΉ:
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΠΎΠ»Π½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ Π½ΡΠ»Ρ (Webpack). ΠΠ°ΡΡΡΠΎΠΈΠΌ React, Typescript, Babel, scss, css modules, ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠΎΠΈΠΌ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΡΠ΅Π΄Ρ, jest, rtl, storybook, loki, webdriwer IO. ΠΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π»ΠΎΠ°Π΄Π΅ΡΠΎΠ² + Π³ΡΠ°ΠΌΠΌΠΎΡΠ½Π°Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³Π°.
UI
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠΎΠ»Π΅Π΅ 15 UI ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠ΅ ΠΎΠΊΠ½Π° Ρ ΠΏΠΎΡΡΠ°Π»Π°ΠΌΠΈ, Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ\ΠΌΠ΅Π½Ρ, ΡΠ°ΠΉΠ΄Π±Π°Ρ, ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ΅ΠΌΠ°ΠΌΠΈ, ΡΠΊΠ΅Π»Π΅ΡΠΎΠ½Ρ, Π°Π²Π°ΡΠ°ΡΡ, Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅ΠΊΠΈ ΠΈ ΡΠ΄. ΠΡΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊ ΠΈ ΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ headless Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ½ΡΠΌΠΈ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°. ΠΠΎΠ΄ΡΠ»ΠΈ. ΠΠ΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ. ΠΠΈΠ·Π½Π΅Ρ ΡΡΡΠ½ΠΎΡΡΠΈ. Π‘Π»Π°Π±Π°Ρ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ. ΠΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌΠΈ Π±ΠΎΡΠΎΡΡΡΡ. ΠΠ½Π°Π»ΠΈΠ· ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±Π°Π½Π΄Π»Π°. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π½Π΄Π» Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ². ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ Redux ΡΠ΅Π΄ΡΡΡΠ΅ΡΡ. Reducer manager ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠΊΠΈ ΠΏΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠ΅Π΄ΡΡΠ΅ΡΠΎΠ². ΠΠ·ΠΎΠ»ΡΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. Throttle ΠΈ debounce. ΠΠ½ΡΠ΅ΠΊΡΠΈΡ ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΠΎΠ² Π΄Π»Ρ Π»ΡΡΡΠ΅Π³ΠΎ code splitting.
Π Π΅Π°Π»ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»-Π²Π° Π·Π°Π΄Π°Ρ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (ΡΠΈΠ»ΡΡΡΡ, ΠΏΠΎΠΈΡΠΊ, ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π»Π΅Π½ΡΡ, ΠΌΠ½ΠΎΠ³ΠΎΠ±Π»ΠΎΡΠ½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ΄). ΠΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π² ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΡΡΡΠ΅, Π½ΠΎ Π² ΡΠ°Π·Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅.
Π’Π΅ΠΌΡ ΠΈ ΡΡΠΈΠ»ΠΈ
CSS ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΡΠ΅ΠΌΠΈΠ·Π°ΡΠΈΡ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΈ Π²Π½Π΅Π΄ΡΠΈΠΌ 3 ΡΠ²Π΅ΡΠΎΠ²ΡΠ΅ ΡΠ΅ΠΌΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠ΅ΠΌΠ½Π°Ρ, ΡΠ²Π΅ΡΠ»Π°Ρ, ΠΎΡΠ°Π½ΠΆΠ΅Π²Π°Ρ). ΠΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΠΌ ΡΡΠΈΠ»ΠΈ ΡΠ°ΠΊ, ΡΡΠΎ Π²Π½Π΅Π΄ΡΠΈΡΡ Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΡΡΠΎΠΈΡΡ 5 ΠΌΠΈΠ½ΡΡ. ΠΠ΄Π°ΠΏΡΠΈΠ²Π½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Π‘ΡΠΎΡΠΈΠ±ΡΠΊ ΠΈ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ
Π‘ Π½ΡΠ»Ρ Π½Π°ΡΡΡΠΎΠΈΠΌ Storybook ΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ story case Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ. ΠΠ°ΡΡΠΈΠΌΡΡ Π΄Π΅Π»Π°ΡΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΎΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Unit ΠΈ RTL ΡΠ΅ΡΡΡ
Π‘ Π½ΡΠ»Ρ Π½Π°ΡΡΡΠΎΠΈΠΌ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ unit jest ΡΠ΅ΡΡΠΎΠ² ΠΈ ΡΠ΅ΡΡΠΎΠ² Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ React Testing Library. ΠΡΠ΄Π΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ (ΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ, async thunks, ΡΠ΅Π΄ΡΡΠ΅ΡΡ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ).
e2e ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠΊΡΠΎΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ E2E ΡΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΠΈΠ½ΡΠΈΠ½Π³
ΠΠ°ΡΡΡΠΎΠΈΠΌ ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ code-style, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π½Π°ΡΡΡΠΎΠΈΠΌ ESlint ΠΈ stylelint. ΠΠ»Ρ eslint ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ npm ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΈΠΌΠΏΠΎΡΡΠΎΠ² (ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠ΅).
ΠΡΠΈΠ±ΠΊΠΈ
ΠΠ°ΡΡΠΈΠΌΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ErrorBoundary. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π ΠΎΡΡΠΈΠ½Π³
React-router-dom V6. ΠΠΎΠ½Π΅ΡΠ½ΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½ΠΈΡ, ΡΡΠΈΠΌ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄ΠΈΠ²ΠΈΡΡ. ΠΠ°ΡΡΡΠΎΠΈΠΌ Π΄ΠΎΡΡΡΠΏΡ Π΄Π»Ρ ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡ, ΠΏΠΎ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ, Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΡΠΎΠ»ΡΠΌ. Π’Π°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±Π°Π½Π΄Π»Π° Π½Π°ΡΡΠΈΠΌΡΡ Π²ΡΠ½ΠΎΡΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π½ΠΊΠΈ.
i18n
ΠΠ°ΡΡΠΈΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΠ½Π΅Π΄ΡΠΈΠΌ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π²Π° ΡΠ·ΡΠΊΠ° (ΡΡΡΡΠΊΠΈΠΉ ΠΈ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ). Π’Π°ΠΊΠΆΠ΅ Π½Π°ΡΡΠΈΠΌΡΡ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ Π½Π° ΡΠ°Π½ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡ ΠΈΡ ΠΏΠΎΡΡΠΈΡΠΌΠΈ, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π°Π½Π΄Π»Π°.
TypeScript
Π‘ Π½ΡΠ»Ρ Π½Π°ΡΡΡΠΎΠΈΠΌ TS (tsconfig), ΠΏΠΎΠ΄ΡΡΠΆΠΈΠΌ Π΅Π³ΠΎ Ρ Π²Π΅Π±ΠΏΠ°ΠΊΠΎΠΌ, ΠΏΠΎΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ union ΡΠΈΠΏΠ°ΠΌΠΈ, Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ°ΠΉΠΏΡΠΊΡΠΈΠΏΡΠ° Π±ΡΠ΄Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ.
Bebel
ΠΠ°ΡΡΡΠΎΠΈΠΌ Babel ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΊΠ»ΡΡΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² JSON ΡΠ°ΠΉΠ»ΠΈΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»ΡΡΡ Π»ΠΈΡΠ½ΠΈΠΉ Π΄Π»Ρ Π½Π°Ρ ΠΊΠΎΠ΄ ΠΈΠ· Production ΡΠ±ΠΎΡΠΊΠΈ.
Π‘I/CD ΠΈ pre-commit Ρ ΡΠΊΠΈ
ΠΠ°ΡΡΡΠΎΠΈΠΌ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ci pipeline, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡ Π·Π° Π½Π°Ρ 3 Π²ΠΈΠ΄Π° ΡΠ΅ΡΡΠΎΠ², Π΄Π΅Π»Π°ΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΡΠΎΡΠΈΠ±ΡΠΊΠ°, ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡ ΠΊΠΎΠ΄ Π½Π° Π»ΠΈΠ½ΡΠ΅ΡΡ. Π’Π°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠΎΠΈΠΌ pre commit Ρ ΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ husky.
ΠΠΎΡΠΌΠ°Π»ΠΈΠ·ΡΠ°ΠΈΡ Π΄Π°Π½Π½ΡΡ
Π’Π°ΠΊΠΆΠ΅ ΡΠ΄Π΅Π»ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΡΠ°ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΊΠΎΠ΄Π΅. ΠΠΎΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ EntityAdapter.
ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ Π²Π°ΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π±ΡΡΡ ΠΏΡΠΎ Perfomance. ΠΠΎΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π½Π°ΡΡΡΠΎΠΈΠΌ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈ ΡΠ°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΡΡΠΎΡΠΈΠ±ΡΠΊ ΡΠΌΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠΈΡΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½Π½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅. (ts, css modules, Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΄).
Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³
Π ΠΊΠΎΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠΉΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ Π΅Π³ΠΎ ΠΎΡΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΡ, ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ»Π°Π±ΡΠ΅ ΠΌΠ΅ΡΡΠ°, ΠΈΡΠΏΡΠ°Π²ΠΈΠΌ ΠΈΡ ΠΈ ΠΏΠΎΠΉΠΌΠ΅ΠΌ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , ΠΊΠ°ΠΊ ΡΡΠΎΠΈΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ°ΠΏΡΠΎΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ
ΠΡΡ ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Redux toolkit. ΠΠ΅ΡΠ²ΡΡ ΡΠ°ΡΡΡ ΠΊΡΡΡΠ° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΈΠ»Π΅ ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΠΠ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ axios ΠΈΠ½ΡΡΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΠΌ Π² Π°ΡΠΈΠ½ΠΊ thunks. Π’Π°ΠΊΠΆΠ΅, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΈ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΊΠΎΠ½ΡΡ ΠΊΡΡΡΠ° ΠΌΡ ΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ RTK query. ΠΠ°ΡΡΠΈΠΌΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π°Π½Π΄Π»Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ (code splitting).
ΠΡΡΠ΅ΡΡ
ΠΠ»Ρ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ½ΡΡ /ΡΠ½ΠΈΡ/ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΡΡ ΡΠ΅ΡΡΠΎΠ² Π½Π°ΡΡΠΈΠΌΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΎΡΡΠ΅ΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΡΠΎΠ² ΡΡΠ°Π½Π΅Ρ ΠΏΡΠΎΡΠ΅.
ΠΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΡ
Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΠΌ ΡΠΈΡΠΈ\ΡΡΡΠ½ΠΎΡΡΠΈ ΡΠΎ Π²ΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΎΠΊ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΡΠΆΠ΅ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅.
ΠΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π Ρ ΠΎΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΡ ΡΠ΅ΡΠΈΠΌ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π² ΠΆΠΈΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΊΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ·ΡΡΠ°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° React 18
Π ΠΊΠΎΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΈΠ³ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ Ρ 17 Π½Π° 18 Π²Π΅ΡΡΠΈΡ ΡΠ΅Π°ΠΊΡΠ°.
ΠΠ΅Π±Π°Π³
ΠΠ°ΡΡΠΈΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄Π΅Π±Π°Π³ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ: Π²ΠΊΠ»Π°Π΄ΠΊΠ° network, application Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π΄Π΅Π²ΡΡΠ»Π·Ρ ΡΠ΅Π°ΠΊΡΠ°, ΡΠ΅Π΄Π°ΠΊΡΠ°, Π±Π°Π½Π΄Π»Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΈ ΡΠ΄.
ΠΠΎΠ»ΡΡΠ΅Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ babel ΠΏΠ»Π°Π³ΠΈΠ½
ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΊΠΎΠ»ΡΡΠ΅Π²ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ , Π½Π°ΡΡΠΈΠΌΡΡ ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ babel ΠΏΠ»Π°Π³ΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»ΡΡΡ Π»ΠΈΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄ ΠΈΠ· ΡΠ±ΠΎΡΠΊΠΈ.
ΠΡΠΎΠ΄Π°ΠΆΠ½ΠΈΠΊ:

ΠΡΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ 2 ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌ Π»ΡΠ΄Π΅ΠΉ:
- ΠΡΠ΄ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈΠ»ΠΈ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ ΡΡΠΎΠΌΡ.
- ΠΠ΅ΠΉΡΡΠ²ΡΡΡΠΈΠ΅ junior ΠΈΠ»ΠΈ middle ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΠΎΠ»Π½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ Π½ΡΠ»Ρ (Webpack). ΠΠ°ΡΡΡΠΎΠΈΠΌ React, Typescript, Babel, scss, css modules, ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠΎΠΈΠΌ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΡΠ΅Π΄Ρ, jest, rtl, storybook, loki, webdriwer IO. ΠΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π»ΠΎΠ°Π΄Π΅ΡΠΎΠ² + Π³ΡΠ°ΠΌΠΌΠΎΡΠ½Π°Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³Π°.
UI
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠΎΠ»Π΅Π΅ 15 UI ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠ΅ ΠΎΠΊΠ½Π° Ρ ΠΏΠΎΡΡΠ°Π»Π°ΠΌΠΈ, Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ\ΠΌΠ΅Π½Ρ, ΡΠ°ΠΉΠ΄Π±Π°Ρ, ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ΅ΠΌΠ°ΠΌΠΈ, ΡΠΊΠ΅Π»Π΅ΡΠΎΠ½Ρ, Π°Π²Π°ΡΠ°ΡΡ, Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅ΠΊΠΈ ΠΈ ΡΠ΄. ΠΡΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊ ΠΈ ΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ headless Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ½ΡΠΌΠΈ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°. ΠΠΎΠ΄ΡΠ»ΠΈ. ΠΠ΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ. ΠΠΈΠ·Π½Π΅Ρ ΡΡΡΠ½ΠΎΡΡΠΈ. Π‘Π»Π°Π±Π°Ρ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ. ΠΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌΠΈ Π±ΠΎΡΠΎΡΡΡΡ. ΠΠ½Π°Π»ΠΈΠ· ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±Π°Π½Π΄Π»Π°. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π½Π΄Π» Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ². ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ Redux ΡΠ΅Π΄ΡΡΡΠ΅ΡΡ. Reducer manager ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠΊΠΈ ΠΏΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠ΅Π΄ΡΡΠ΅ΡΠΎΠ². ΠΠ·ΠΎΠ»ΡΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. Throttle ΠΈ debounce. ΠΠ½ΡΠ΅ΠΊΡΠΈΡ ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΠΎΠ² Π΄Π»Ρ Π»ΡΡΡΠ΅Π³ΠΎ code splitting.
Π Π΅Π°Π»ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»-Π²Π° Π·Π°Π΄Π°Ρ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (ΡΠΈΠ»ΡΡΡΡ, ΠΏΠΎΠΈΡΠΊ, ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π»Π΅Π½ΡΡ, ΠΌΠ½ΠΎΠ³ΠΎΠ±Π»ΠΎΡΠ½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ΄). ΠΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π² ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΡΡΡΠ΅, Π½ΠΎ Π² ΡΠ°Π·Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅.
Π’Π΅ΠΌΡ ΠΈ ΡΡΠΈΠ»ΠΈ
CSS ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΡΠ΅ΠΌΠΈΠ·Π°ΡΠΈΡ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΈ Π²Π½Π΅Π΄ΡΠΈΠΌ 3 ΡΠ²Π΅ΡΠΎΠ²ΡΠ΅ ΡΠ΅ΠΌΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠ΅ΠΌΠ½Π°Ρ, ΡΠ²Π΅ΡΠ»Π°Ρ, ΠΎΡΠ°Π½ΠΆΠ΅Π²Π°Ρ). ΠΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΠΌ ΡΡΠΈΠ»ΠΈ ΡΠ°ΠΊ, ΡΡΠΎ Π²Π½Π΅Π΄ΡΠΈΡΡ Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΡΡΠΎΠΈΡΡ 5 ΠΌΠΈΠ½ΡΡ. ΠΠ΄Π°ΠΏΡΠΈΠ²Π½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Π‘ΡΠΎΡΠΈΠ±ΡΠΊ ΠΈ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ
Π‘ Π½ΡΠ»Ρ Π½Π°ΡΡΡΠΎΠΈΠΌ Storybook ΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ story case Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ. ΠΠ°ΡΡΠΈΠΌΡΡ Π΄Π΅Π»Π°ΡΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΎΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Unit ΠΈ RTL ΡΠ΅ΡΡΡ
Π‘ Π½ΡΠ»Ρ Π½Π°ΡΡΡΠΎΠΈΠΌ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ unit jest ΡΠ΅ΡΡΠΎΠ² ΠΈ ΡΠ΅ΡΡΠΎΠ² Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ React Testing Library. ΠΡΠ΄Π΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ (ΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ, async thunks, ΡΠ΅Π΄ΡΡΠ΅ΡΡ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ).
e2e ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠΊΡΠΎΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ E2E ΡΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΠΈΠ½ΡΠΈΠ½Π³
ΠΠ°ΡΡΡΠΎΠΈΠΌ ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ code-style, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π½Π°ΡΡΡΠΎΠΈΠΌ ESlint ΠΈ stylelint. ΠΠ»Ρ eslint ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ npm ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΈΠΌΠΏΠΎΡΡΠΎΠ² (ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠ΅).
ΠΡΠΈΠ±ΠΊΠΈ
ΠΠ°ΡΡΠΈΠΌΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ErrorBoundary. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π ΠΎΡΡΠΈΠ½Π³
React-router-dom V6. ΠΠΎΠ½Π΅ΡΠ½ΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½ΠΈΡ, ΡΡΠΈΠΌ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄ΠΈΠ²ΠΈΡΡ. ΠΠ°ΡΡΡΠΎΠΈΠΌ Π΄ΠΎΡΡΡΠΏΡ Π΄Π»Ρ ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡ, ΠΏΠΎ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ, Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΡΠΎΠ»ΡΠΌ. Π’Π°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±Π°Π½Π΄Π»Π° Π½Π°ΡΡΠΈΠΌΡΡ Π²ΡΠ½ΠΎΡΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π½ΠΊΠΈ.
i18n
ΠΠ°ΡΡΠΈΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΠ½Π΅Π΄ΡΠΈΠΌ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π²Π° ΡΠ·ΡΠΊΠ° (ΡΡΡΡΠΊΠΈΠΉ ΠΈ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ). Π’Π°ΠΊΠΆΠ΅ Π½Π°ΡΡΠΈΠΌΡΡ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ Π½Π° ΡΠ°Π½ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡ ΠΈΡ ΠΏΠΎΡΡΠΈΡΠΌΠΈ, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π°Π½Π΄Π»Π°.
TypeScript
Π‘ Π½ΡΠ»Ρ Π½Π°ΡΡΡΠΎΠΈΠΌ TS (tsconfig), ΠΏΠΎΠ΄ΡΡΠΆΠΈΠΌ Π΅Π³ΠΎ Ρ Π²Π΅Π±ΠΏΠ°ΠΊΠΎΠΌ, ΠΏΠΎΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ union ΡΠΈΠΏΠ°ΠΌΠΈ, Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ°ΠΉΠΏΡΠΊΡΠΈΠΏΡΠ° Π±ΡΠ΄Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ.
Bebel
ΠΠ°ΡΡΡΠΎΠΈΠΌ Babel ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΊΠ»ΡΡΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² JSON ΡΠ°ΠΉΠ»ΠΈΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»ΡΡΡ Π»ΠΈΡΠ½ΠΈΠΉ Π΄Π»Ρ Π½Π°Ρ ΠΊΠΎΠ΄ ΠΈΠ· Production ΡΠ±ΠΎΡΠΊΠΈ.
Π‘I/CD ΠΈ pre-commit Ρ ΡΠΊΠΈ
ΠΠ°ΡΡΡΠΎΠΈΠΌ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ci pipeline, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡ Π·Π° Π½Π°Ρ 3 Π²ΠΈΠ΄Π° ΡΠ΅ΡΡΠΎΠ², Π΄Π΅Π»Π°ΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΡΠΎΡΠΈΠ±ΡΠΊΠ°, ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡ ΠΊΠΎΠ΄ Π½Π° Π»ΠΈΠ½ΡΠ΅ΡΡ. Π’Π°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠΎΠΈΠΌ pre commit Ρ ΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ husky.
ΠΠΎΡΠΌΠ°Π»ΠΈΠ·ΡΠ°ΠΈΡ Π΄Π°Π½Π½ΡΡ
Π’Π°ΠΊΠΆΠ΅ ΡΠ΄Π΅Π»ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΡΠ°ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΊΠΎΠ΄Π΅. ΠΠΎΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ EntityAdapter.
ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ Π²Π°ΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π±ΡΡΡ ΠΏΡΠΎ Perfomance. ΠΠΎΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π½Π°ΡΡΡΠΎΠΈΠΌ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈ ΡΠ°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΡΡΠΎΡΠΈΠ±ΡΠΊ ΡΠΌΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠΈΡΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½Π½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅. (ts, css modules, Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΄).
Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³
Π ΠΊΠΎΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠΉΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ Π΅Π³ΠΎ ΠΎΡΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΡ, ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ»Π°Π±ΡΠ΅ ΠΌΠ΅ΡΡΠ°, ΠΈΡΠΏΡΠ°Π²ΠΈΠΌ ΠΈΡ ΠΈ ΠΏΠΎΠΉΠΌΠ΅ΠΌ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , ΠΊΠ°ΠΊ ΡΡΠΎΠΈΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ°ΠΏΡΠΎΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ
ΠΡΡ ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Redux toolkit. ΠΠ΅ΡΠ²ΡΡ ΡΠ°ΡΡΡ ΠΊΡΡΡΠ° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΈΠ»Π΅ ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΠΠ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ axios ΠΈΠ½ΡΡΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΠΌ Π² Π°ΡΠΈΠ½ΠΊ thunks. Π’Π°ΠΊΠΆΠ΅, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΈ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΊΠΎΠ½ΡΡ ΠΊΡΡΡΠ° ΠΌΡ ΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ RTK query. ΠΠ°ΡΡΠΈΠΌΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π°Π½Π΄Π»Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ (code splitting).
ΠΡΡΠ΅ΡΡ
ΠΠ»Ρ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ½ΡΡ /ΡΠ½ΠΈΡ/ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΡΡ ΡΠ΅ΡΡΠΎΠ² Π½Π°ΡΡΠΈΠΌΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΎΡΡΠ΅ΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΡΠΎΠ² ΡΡΠ°Π½Π΅Ρ ΠΏΡΠΎΡΠ΅.
ΠΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΡ
Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΠΌ ΡΠΈΡΠΈ\ΡΡΡΠ½ΠΎΡΡΠΈ ΡΠΎ Π²ΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΎΠΊ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΡΠΆΠ΅ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅.
ΠΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π Ρ ΠΎΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΡ ΡΠ΅ΡΠΈΠΌ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π² ΠΆΠΈΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΊΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ·ΡΡΠ°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° React 18
Π ΠΊΠΎΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΈΠ³ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ Ρ 17 Π½Π° 18 Π²Π΅ΡΡΠΈΡ ΡΠ΅Π°ΠΊΡΠ°.
ΠΠ΅Π±Π°Π³
ΠΠ°ΡΡΠΈΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄Π΅Π±Π°Π³ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ: Π²ΠΊΠ»Π°Π΄ΠΊΠ° network, application Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π΄Π΅Π²ΡΡΠ»Π·Ρ ΡΠ΅Π°ΠΊΡΠ°, ΡΠ΅Π΄Π°ΠΊΡΠ°, Π±Π°Π½Π΄Π»Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΈ ΡΠ΄.
ΠΠΎΠ»ΡΡΠ΅Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ babel ΠΏΠ»Π°Π³ΠΈΠ½
ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΊΠΎΠ»ΡΡΠ΅Π²ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ , Π½Π°ΡΡΠΈΠΌΡΡ ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ babel ΠΏΠ»Π°Π³ΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»ΡΡΡ Π»ΠΈΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄ ΠΈΠ· ΡΠ±ΠΎΡΠΊΠΈ.
ΠΡΠΎΠ΄Π°ΠΆΠ½ΠΈΠΊ:
Π‘ΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠΉΡΠΈ ΠΈΠ»ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ.
Π‘ΠΊΠ°ΡΠ°ΡΡ:Π‘ΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠΉΡΠΈ ΠΈΠ»ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ.