Π£ΡΠ΅Π±Π½ΡΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΊΡΡΡΠ° ΠΠΈΠ΄Π» ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²Π΅Π±-ΠΈΠ³ΡΡ, ΠΏΠΎΡ
ΠΎΠΆΠ΅ΠΉ Π½Π° Space Invaders ΠΈΠ»ΠΈ Arkanoid
Π‘Π°ΠΉΡ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠ΅Π½ Π½Π° ΡΠ΅ΡΠ²ΠΈΡΠ΅ Π―Π½Π΄Π΅ΠΊΡ.ΠΠ±Π»Π°ΠΊΠΎ
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Ρ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠΎΡΠΌΠΎΡ...ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΌ Π²ΠΎΠ΄ΡΡΡΡ ΠΎΠ±ΠΈΡΠ°ΡΠ΅Π»ΠΈ? π½π½π½
ΠΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π½Π°Ρ Π»ΠΈΡΠ½ΡΠΉ Π²Π·Π³Π»ΡΠ΄ Π½Π° ΠΏΡΠΈΡΠ΅Π»ΡΡΠ΅Π², ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΌ Π²ΡΡΡΠ΅ΡΠΈΡΡ (ΠΎΠ½ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠΈΠ»ΡΠ΅, ΠΏΡΠΎΡΡΠΎ ΡΠ»Π΅Π³ΠΊΠ° ΠΊΡΠΎΠ²ΠΎΠΆΠ°Π΄Π½ΡΠ΅)
Π¦Π΅Π»Ρ ΠΈΠ³ΡΡ - ΠΏΠ΅ΡΠ΅ΡΡΡΠ΅Π»ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΌΠΎΠ½ΡΡΡΠΎΠ² ΠΈ Π½Π°Π±ΡΠ°ΡΡ Π·Π° ΡΡΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΡΠΊΠΎΠ².
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ³ΡΠΎΠΊΡ Π΄Π°ΡΡΡΡ ΡΡΠΈ ΠΆΠΈΠ·Π½ΠΈ. ΠΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Ρ ΠΏΡΠ»Π΅ΠΉ Π²ΡΠ°Π³Π° - Π·Π°Π±ΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΆΠΈΠ·Π½Ρ, ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Ρ Π°ΡΡΠ΅ΡΠΎΠΈΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ ΡΠ΅ΡΠΊΠΎΠΉ Π²ΡΠ°Π³ΠΎΠ² - Π²ΡΠ΅ ΠΆΠΈΠ·Π½ΠΈ.
ΠΠΎ Π½Π΅ ΠΎΡΡΠ°ΠΈΠ²Π°ΠΉΡΠ΅ΡΡ! Π ΠΈΠ³ΡΠ΅ Π² ΡΠ°Π½Π΄ΠΎΠΌΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π±ΠΎΠ½ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ±Π°Π²ΠΈΡΡ ΠΆΠΈΠ·Π½Ρ (ΠΈΠ»ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ) ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠ»ΡΡΠΊΠΈ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΡΠΈΡΠ° ΠΈΠ»ΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΊΠΈΠ±Π΅Ρ-Π°ΡΠ°ΠΊΠΈβ‘
ΠΠ»Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΡΠ°Π±Π»Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅Π»ΠΊΠΈ Π²ΠΏΡΠ°Π²ΠΎ-Π²Π»Π΅Π²ΠΎ, Π΄Π»Ρ ΡΡΡΠ΅Π»ΡΠ±Ρ - ΠΏΡΠΎΠ±Π΅Π».
ΠΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠ³ΡΡ Π½Π° ΠΏΠ°ΡΠ·Ρ - Π½Π°ΠΆΠΌΠΈΡΠ΅ Esc: ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΠΌΠ΅Π½Ρ, Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π°Π±ΡΠ°Π½Π½ΡΠ΅ ΠΎΡΠΊΠΈ, ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΅ΡΠ΅ ΡΠ°Π·, Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ³ΡΡ ΠΈΠ»ΠΈ Π²ΡΠΉΡΠΈ ΠΈΠ· Π½Π΅Ρ.
ΠΠ΅Π»Π°Π΅ΠΌ ΡΠ΄Π°ΡΠΈ!
Canvas API
- ΠΎΡΠ½ΠΎΠ²Π° ΠΈΠ³ΡΡWeb Audio API
- Π΄Π»Ρ Π·Π²ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ³ΡΡFullscreen API
- Π΄Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ³ΡΠ°ΡΡ Π² FullScreen ΡΠ΅ΠΆΠΈΠΌΠ΅Drag and Drop API
- Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π°Π²Π°ΡΠ°ΡΠ° Π² ΠΏΡΠΎΡΠΈΠ»ΡCache API
- ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ offlinenode
Π²Π΅ΡΡΠΈΠΈ 16.20.2 ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ docker
yarn bootstrap
docker compose build
docker compose up
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
yarn bootstrap
ΠΠ°ΠΏΡΡΠΊ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· docker
docker compose up postgres
ΠΠΈΠ³ΡΠ°ΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
yarn migrate
Π‘Π±ΠΎΡΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
yarn build:client
ΠΠ»Ρ development:
ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (Ρ hot reloading)
yarn dev
ΠΠ»Ρ production:
Π‘Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°
yarn build:server
ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½
yarn preview
ΠΡΠΊΡΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ http://localhost:8000/
ΠΠ»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ react-testing-library
ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ yarn test
ΠΠ°ΡΠΈ ΡΠ΅ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° ΡΠ½Π°ΠΏΡΠΎΡΠ°Ρ
, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΡΠΎ-ΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ (ΠΎΠ±ΡΡΠ½ΠΎ Π² Π²Π΅ΡΡΡΠΊΠ΅) - Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ ΡΠ½Π°ΠΏΡΠΎΡ.
ΠΡΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°:
cd packages/client
yarn test:file **/{Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Ρ ΡΠ΅ΡΡΠΎΠΌ} -u
ΠΠ»ΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅:
cd packages/client
yarn test --watch
yarn lint
yarn format
ΠΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ eslint ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ prettier