ΠΠ΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Express (Node.js/JavaScript) — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Express ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° JavaScript ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π²Π½ΡΡΡΠΈ ΡΡΠ΅Π΄Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ node.js. ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΡΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π·Π°Π΄Π°Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ.
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ, ΡΡΠΎ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ, ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ· ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΒ Server-side website programming first steps.Β ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ JavaScript Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, Π½ΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠΎΡ Π²Π΅Π±-ΡΠ°ΠΉΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ JavaScript Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Β ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°: JavaScript,Β JavaScript Guide, JavaScript Basics,Β JavaScript (ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅).
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ Π²Π°Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Node.js ΠΈ Express, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΈ ΠΊΠ½ΠΈΠ³Π°Ρ β Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ· ΡΠ΅ΠΌΒ How do I get started with Node.js (StackOverflow) ΠΈΒ What are the best resources for learning Node.js? (Quora).
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Express/Node
- Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΠ± Express ΠΌΡ ΠΎΡΠ²Π΅ΡΠΈΠΌ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ «Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Node?» ΠΈ «Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Express?» ΠΈ Π΄Π°Π΄ΠΈΠΌ Π²Π°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Express ΠΎΡΠΎΠ±Π΅Π½Π½ΡΠΌ. ΠΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΠ± ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΡΡ
ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Express (Ρ
ΠΎΡΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ Π²Π°Ρ Π΅ΡΡ Π½Π΅Ρ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ).
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Node (Express)
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Express, ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Node/Express Π² Windows, Linux (Ubuntu) ΠΈ Mac OS X. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅, ΡΡΠ° ΡΡΠ°ΡΡΡ Π΄Π°ΡΡ Π²Π°ΠΌ ΡΠΎ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Express.
- Π£ΡΠ΅Π±Π½ΠΈΠΊ Express: ΡΠ°ΠΉΡ LocalLibrary
ΠΠ΅ΡΠ²Π°Ρ ΡΡΠ°ΡΡΡ Π² Π½Π°ΡΠ΅ΠΉ ΡΠ΅ΡΠΈΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠΎΠΊΠΎΠ² ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, ΡΡΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΠ·ΡΡΠ°ΡΡ, ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ ΠΎΠ±Π·ΠΎΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Β«Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΒ», Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ .
- Π£ΡΠ΅Π±Π½ΠΈΠΊ Express ΡΠ°ΡΡΡ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ΅Π»Π΅ΡΠ° Π²Π΅Π±-ΡΠ°ΠΉΡΠ°
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Β«ΡΠΊΠ΅Π»Π΅ΡΒ» Π²Π΅Π±-ΡΠ°ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΡΠ°ΠΉΡΠ°, ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²/ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ .
- Π£ΡΠ΅Π±Π½ΠΈΠΊ Express ΡΠ°ΡΡΡ 3: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (Ρ ΠΏΠΎΠΌΠΎΡΡΡ Mongoose)
- Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ Node/Express.
ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Mongoose Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ°ΠΉΡΠ° LocalLibrary. Π ΡΡΠΎΠΊΠ΅ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π±Π°Π·ΠΎΠ²Π°Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ. Π’Π°ΠΊΠΆΠ΅ ΠΊΡΠ°ΡΠΊΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
- Π£ΡΠ΅Π±Π½ΠΈΠΊ Express ΡΠ°ΡΡΡ 4: ΠΠ°ΡΡΡΡΡΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ
- Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠ°ΡΡΡΡΡΡ (ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ URL) Ρ «ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΌ» ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π΄Π»Ρ ΡΠ°ΠΉΡΠ° LocalLibrary . ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΠΌΠ΅ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠ°ΡΡΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ . ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Express.
- Π£ΡΠ΅Π±Π½ΠΈΠΊ Express ΡΠ°ΡΡΡ 5: ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
- Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ
Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΊΠ½ΠΈΠ³ΠΈ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° LocalLibrary ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅.
Π‘ΡΡΠ°Π½ΠΈΡΡ Π±ΡΠ΄ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π³Π»Π°Π²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π·Π°ΠΏΠΈΡΠΈ. ΠΠΎ ΠΏΡΡΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΡΡ Π² ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΠ· Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ².
- Π£ΡΠ΅Π±Π½ΠΈΠΊ Express ΡΠ°ΡΡΡ 6: Π Π°Π±ΠΎΡΡ Ρ ΡΠΎΡΠΌΠ°ΠΌΠΈ
- Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ HTML ΡΠΎΡΠΌΠ°ΠΌΠΈ Π² Express, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Pug, ΠΈ Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
- Π£ΡΠ΅Π±Π½ΠΈΠΊ Express ΡΠ°ΡΡΡ 7: ΠΡΠΊΠ»Π°Π΄ΠΊΠ° Π² production
- Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π²ΠΎΡΡ ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ LocalLibrary, Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Π½Π° ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ Π΄Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΎΠ±Π·ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Ρ ΠΎΡΡ Π΄Π»Ρ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° ΠΈ ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ Π²Π°Ρ ΡΠ°ΠΉΡ ΠΊ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ.
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° LocalLibrary Π½Π° PWS/Cloud Foundry
- Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ LocalLibrary Π½Π° ΠΎΠ±Π»Π°ΠΊΠ΅ Pivotal Web Services PaaS β ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ Heroku, ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° PaaSΒ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² ΡΠ°ΡΡΠΈ 7 ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±Π½ΠΈΠΊΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅.
PWS/Cloud Foundry ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎ ΡΡΠΎΠΈΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠ΅ΡΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Heroku (ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΌΡ PaaS ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ), ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΡΠΎ Π²ΡΠ΅ ΡΡΠ°ΡΡΠΈ ΡΡΠ΅Π±Π½ΠΈΠΊΠ° (Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ). ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, Π΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅ΠΌΡ:
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΠΉ
- ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
- ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΡΠΎΠ²Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ°
- Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Express
- ΠΠ΅Π± Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Express.
Π, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΎΡΠ½ΡΠΉ ΡΠ΅ΡΡ Π·Π½Π°Π½ΠΈΠΉ!
ΠΠΎΠΊΠ΅ΡΠΈΠ·Π°ΡΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Node.js | Node.js
Edit on GitHubΠ¦Π΅Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° β ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node.js Π² Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π½ΠΎ Π½Π΅ Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π²Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Docker Π½Π° ΡΠ²ΠΎΠΉ ΠΠ ΠΈ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ Node.js ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ Node.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° package.json
, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ npm install
. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ npm
Π²Π΅ΡΡΠΈΠΈ 5 ΠΈΠ»ΠΈ Π²ΡΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» package-lock.json
, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ Π² Π²Π°Ρ docker-ΠΎΠ±ΡΠ°Π·.
ΠΠ°Π»Π΅Π΅ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» server.js
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Express.js:
'use strict';
const express = require('express');
const port = 8080;
const host = '0.0.0.0';
const app = express();
app.get('/', (req, res) => {
res.send('Hello World');
});
app.listen(port, host);
console.log(`running on http://${host}:${port}`);
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π· Docker’Π°. Π‘Π½Π°ΡΠ°Π»Π° Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Docker-ΠΎΠ±ΡΠ°Π· Ρ Π½Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΡΡΠΎΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Dockerfile
:
touch Dockerfile
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π² Π²Π°ΡΠ΅ΠΌ Π»ΡΠ±ΠΈΠΌΠΎΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅.
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·,
ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²Π·ΡΡ Π·Π° ΠΎΡΠ½ΠΎΠ²Ρ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π· node
ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ
LTS* (Π²Π΅ΡΡΠΈΠΈ Ρ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ) β 12
,
Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π½Π° Docker Hub.
* ΠΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°: Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ.
FROM node:12
ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ°Π·Π°. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΏΠ°ΠΏΠΊΠ° Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
WORKDIR /usr/src/app
ΠΠ±ΡΠ°Π·, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ Node.js ΠΈ NPM.
ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ npm
.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ npm
4 ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅, ΡΠ°ΠΉΠ» package-lock.json
Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½.
COPY package*.json ./ RUN npm install
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³,
ΠΌΡ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ» package.json
. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ
ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ»ΠΎΠ΅Π² Π² Docker. ΠΠ΄Π΅ΡΡ
bitJudo Π΄Π°Π» Ρ
ΠΎΡΠΎΡΠ΅Π΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ,
ΠΊΠΎΠΌΠ°Π½Π΄Π°
npm ci
, ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ
Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠ΅, Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅, Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°.
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π·Π΄Π΅ΡΡ.
Π§ΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΡ Docker-ΠΎΠ±ΡΠ°Π·Π°,
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ COPY
.
COPY . .
Π‘Π΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ 8080
ΠΏΠΎΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ EXPOSE
, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Docker ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅
ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡΠ΅Π΅ ΡΡΠΎΡ ΠΏΠΎΡΡ.
EXPOSE 8080
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° CMD
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ node server.js
Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°.
CMD [ "node", "server.js" ]
ΠΠ°Ρ Dockerfile
ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
FROM node:12
WORKDIR /usr/src/app
COPY package*.
json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "node", "server.js" ]
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» .dockerignore
Π² ΡΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΡΠΎ ΠΈ Dockerfile
,
ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
node_modules
npm-debug.log
ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ Π΄Π΅Π±Π°Π³-Π»ΠΎΠ³ΠΎΠ² Π² Docker-ΠΎΠ±ΡΠ°Π· ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ°Π·Π°.
Π‘Π±ΠΎΡΠΊΠ° ΠΎΠ±ΡΠ°Π·Π°
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π²Π°Ρ Dockerfile
ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅
ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΡΠΎΠ±ΡΠ°ΡΡ Docker-ΠΎΠ±ΡΠ°Π·. Π€Π»Π°Π³
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ
ΡΡΠ³ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π·Ρ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ docker images
:
docker build . -t <your username>/node-web-app
Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°Π· ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ²:
$ docker images
repository tag id created
node 12 1934b0b038d1 5 days ago
<your username>/node-web-app latest d64d3505b0d2 1 minute ago
ΠΠ°ΠΏΡΡΠΊ ΠΎΠ±ΡΠ°Π·Π°
ΠΠ°ΠΏΡΡΠΊ ΠΎΠ±ΡΠ°Π·Π° Ρ ΡΠ»Π°Π³ΠΎΠΌ -d
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. Π€Π»Π°Π³
-p
ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΏΠΎΡΡ Π½Π° ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΠΏΠΎΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π·, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π»ΠΈ:
docker run -p 49160:8080 -d <your username>/node-web-app
ΠΡΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ Π»ΠΎΠ³ΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
$ docker ps
$ docker logs <container_id>
running on http://localhost:8080
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡΡ Π²Π½ΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ exec
:
$ docker exec -it <container id> /bin/bash
ΠΡΠΎΠ²Π΅ΡΠΊΠ°
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΏΠΎΡΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ:
$ docker ps
id image command ... ports
ecce33b30ebf <your username>/node-web-app:latest npm start ... 49160->8080
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ docker ΡΠ²ΡΠ·Π°Π» ΠΏΠΎΡΡ 8080
Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Ρ ΠΏΠΎΡΡΠΎΠΌ 49160
Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ curl
(ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π΅, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: sudo apt-get install curl
):
$ curl -i localhost:49160
http/1.
1 200 ok
x-powered-by: express
content-type: text/html; charset=utf-8
content-length: 12
etag: w/"c-m6twob/y57lesdjquheb1p/qtv0"
date: mon, 13 nov 2017 20:53:59 gmt
connection: keep-alive
hello world
ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΡΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node.js Ρ ΠΏΠΎΠΌΠΎΡΡΡ Docker.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Docker ΠΈ Node.js Π² docker ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΡΡΠ»ΠΊΠ°ΠΌ:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Node.js Π² Ubuntu 20.04
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Node.js β ΡΡΠΎ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JavaScript Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript, ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌ ΠΏΠΎ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠΎΠ΄ Π±ΡΠ°ΡΠ·Π΅Ρ.
Π ΡΡΠΎΠΌ ΠΎΠ±ΡΡΠ°ΡΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ ΡΡΠΈ ΡΠ°Π·Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Node.js Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ubuntu 20.04:
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
apt
Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°nodejs
ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΠ Ubuntu ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
apt
Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ ΠΠ PPA Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅ΡΠ°nodejs
- ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ°
nvm
(Node Version Manager) ΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Π΅ΡΡΠΈΠΉ node ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌΠΈ
ΠΠ»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ apt
Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Π°Ρ (ΠΈΠ»ΠΈ ΡΡΠ°ΡΠ°Ρ) Π²Π΅ΡΡΠΈΡ Node, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ PPA. ΠΡΠ»ΠΈ Π²Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΠ΅ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Node, ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ
node
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ nvm
.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ»Ρ ΡΠ΅Π»Π΅ΠΉ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΠ‘ Ubuntu 20.04. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠ΅ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π΅Π· ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ root Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ sudo. Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΊΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡΠΌ ΠΎΠ±ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Β«ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° Ubuntu 20.04Β».
ΠΠ°ΡΠΈΠ°Π½Ρ 1 β Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Node.js Ρ ΠΏΠΎΠΌΠΎΡΡΡ Apt ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Π ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ
Ubuntu 20.04 ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π²Π΅ΡΡΠΈΡ Node.js, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ°Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ°Π·Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
. ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ
Ρ
ΡΠ°Π½ΠΈΡΡΡ Π²Π΅ΡΡΠΈΡ 10.19. ΠΡΠΎ Π½Π΅ ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ, Π½ΠΎ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡΡ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² Ρ ΡΠ·ΡΠΊΠΎΠΌ.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² apt
. ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Node.js:
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π·Π°ΠΏΡΠΎΡΠΈΠ² Ρ node
Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ:
Output
v10.19.0
ΠΡΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π²Π°ΡΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ, Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ Ρ Node.js Π½ΠΈΡΠ΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ npm
, Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Node.js. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ npm
Ρ ΠΏΠΎΠΌΠΎΡΡΡ apt
:
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ Node.js.
ΠΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Node.js ΠΈ npm
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ apt
ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΠ Ubuntu ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°Π·Π½ΡΡ
Π²Π΅ΡΡΠΈΠΉ Node. js.
ΠΠ°ΡΠΈΠ°Π½Ρ 2 β Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Node.js Ρ ΠΏΠΎΠΌΠΎΡΡΡ Apt ΡΠ΅ΡΠ΅Π· Π°ΡΡ ΠΈΠ² NodeSource PPA
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Node.js Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡ ΠΈΠ² PPA (Π°ΡΡ ΠΈΠ² ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²), ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ NodeSource. Π§Π΅ΡΠ΅Π· PPA ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Node.js, ΠΊΡΠΎΠΌΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ Ubuntu. ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²Π΅ΡΡΠΈΠΈ Node.js v10, v12, v13 ΠΈ v14.
ΠΠ½Π°ΡΠ°Π»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ PPA Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π² Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ curl
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ 14.x
ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π²Π΅ΡΡΠΈΠΈ (Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ).
- cd ~
- curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π²Π΅ΡΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ NodeSource.
ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Π² nano
(ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅):
Π£Π±Π΅Π΄ΠΈΠ²ΡΠΈΡΡ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ°, Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡ Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ sudo
:
- sudo bash nodesource_setup.
sh
ΠΡΡ ΠΈΠ² PPA Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² Π²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΈ ΠΊΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡ. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ Node.js, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΡΠ²Π°Π»ΠΎΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅:
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, Π·Π°ΠΏΡΡΡΠΈΠ² node
Ρ ΡΠ»Π°Π³ΠΎΠΌ Π²Π΅ΡΡΠΈΠΈ -v
:
Output
v14.2.0
ΠΠ°ΠΊΠ΅Ρ NodeSource nodejs
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄ node
ΠΈ npm
, ΡΠ°ΠΊ ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ npm
ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
ΠΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Node.js ΠΈ npm
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ apt
ΠΈ Π°ΡΡ
ΠΈΠ² NodeSource PPA. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ Π²Π΅ΡΡΠΈΠΉ Node Version Manager Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π²Π΅ΡΡΠΈΠΉ Node.js ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌΠΈ.
ΠΠ°ΡΠΈΠ°Π½Ρ 3 β Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Node Ρ ΠΏΠΎΠΌΠΎΡΡΡ Node Version Manager
ΠΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Node.js, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΈΠΌ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ nvm, ΠΈΠ»ΠΈ Node Version Manager. ΠΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ
Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ
Π²Π΅ΡΡΠΈΠΉ Node.js ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ Π½ΠΈΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Node.
Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ NVM Π½Π° Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ Ubuntu 20.04, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° GitHub. Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ curl
ΠΈΠ· ΡΠ°ΠΉΠ»Π° README, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² bash
, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΊΡΠΈΠΏΡ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ, Ρ ΡΠ΅ΠΌ Π²Ρ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ½Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΡΠ΄Π°Π»ΠΈΠ² ΡΠ΅Π³ΠΌΠ΅Π½Ρ | bash
Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ curl
:
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π½Π΅ Π²ΠΎΠ·ΡΠ°ΠΆΠ°Π΅ΡΠ΅ ΠΏΡΠΎΡΠΈΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π½ΠΎΡΠΈΡ ΡΠΊΡΠΈΠΏΡ. ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΅ΡΠ΅ ΡΠ°Π· Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ | bash
Π² ΠΊΠΎΠ½ΡΠ΅. URL-Π°Π΄ΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅, Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ NVM, Π½ΠΎ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
- curl -o- https://raw.
githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
ΠΠ½Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΊΡΠΈΠΏΡ nvm
Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΠ»Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²Π°Ρ ΡΠ°ΠΉΠ» .bashrc
:
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΡΠΎΡΠΈΡΡ Ρ NVM, ΠΊΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Node Π΄ΠΎΡΡΡΠΏΠ½Ρ:
Output
. . .
v12.13.0 (LTS: Erbium)
v12.13.1 (LTS: Erbium)
v12.14.0 (LTS: Erbium)
v12.14.1 (LTS: Erbium)
v12.15.0 (LTS: Erbium)
v12.16.0 (LTS: Erbium)
v12.16.1 (LTS: Erbium)
v12.16.2 (LTS: Erbium)
v12.16.3 (Latest LTS: Erbium)
v13.0.0
v13.0.1
v13.1.0
v13.2.0
v13.3.0
v13.4.0
v13.5.0
v13.6.0
v13.7.0
v13.8.0
v13.9.0
v13.10.0
v13.10.1
v13.11.0
v13.12.0
v13.13.0
v13.14.0
v14.0.0
v14.1.0
v14.2.0
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ! ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Node, Π²Π²Π΅Π΄Ρ Π»ΡΠ±ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ΅Π»ΠΈΠ·Π°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΈ 13.6.0 Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π²Π°ΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
nvm list
Output
-> v13.6.0
default -> v13.6.0
node -> stable (-> v13.6.0) (default)
stable -> 13.6 (-> v13.6.0) (default)
. . .
ΠΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ (-> v13.6.0
), Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ»Π΅Π΄ΡΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ ΠΈ Π²Π΅ΡΡΠΈΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΡΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²Π΅ΡΡΠΈΡ Node.js, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ apt
, Π·Π΄Π΅ΡΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
Π·Π°ΠΏΠΈΡΡ. ΠΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π²Π΅ΡΡΠΈΡ Node Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ nvm use system
βββ.
Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Π»ΠΈΠ·ΠΎΠ² Node Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ (LTS):
Output
. . .
lts/* -> lts/erbium (-> N/A)
lts/argon -> v4.
9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.20.1 (-> N/A)
lts/erbium -> v12.16.3 (-> N/A)
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅Π»ΠΈΠ· Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΈΡ
ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Ρ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ, erbium
, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Output
Downloading and installing node v12.16.3...
. . .
Now using node v12.16.3 (npm v6.14.4)
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ nvm use
:
nvm use v13.6.0
Now using node v13.6.0 (npm v6.13.4)
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ . ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Output
v13.6.0
ΠΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Node ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π½Π° Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΌΡ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ. Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ°Ρ Π²Π΅ΡΡΠΈΡ npm
ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Π°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Node.js Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ubuntu 20.04. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ². Π₯ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ubuntu β ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ nvm
ΠΈΠ»ΠΈ Π°ΡΡ
ΠΈΠ²Π° NodeSource PPA Π΄Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Node.js ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π½Π°ΡΠ΅ΠΉ ΡΠ΅ΡΠΈΠΈ ΠΎΠ±ΡΡΠ°ΡΡΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Β«ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Node.jsΒ».
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ Node.js. Node Hero: ΠΠ»Π°Π²Π° 1 | by Andrey Melikhov | devSchacht
ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Hello Node.js!
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° index.js
. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ²ΠΎΡ IDE (Atom, Sublime, Code β Π²ΡΠ±ΠΎΡ Π·Π° Π²Π°ΠΌΠΈ), ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ Π΅Π³ΠΎ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ index.js
. ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ, ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°:
// index.js
console.log('hello from Node.js')
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ», Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΡΡΡ ΡΠ²ΠΎΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡΠ½ index.
. js
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ΡΡ Π² Π½ΡΠΆΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ node index.js
. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΡΡΠΎ ΠΈ ΡΠ°Π½ΡΡΠ΅, Π²ΡΠ²ΠΎΠ΄Ρ ΡΡΡΠΎΠΊΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅.
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΉΠ» index.js
, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ! ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΠΎ-ΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅, ΡΠ°Π·Π΄Π΅Π»ΠΈΠ² Π½Π°Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ JavaScript-ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΡΠ΅Π»ΡΡ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡΠΈ. Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ, Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΡΠ²ΠΎΡ IDE ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² (Ρ ΠΏΡΡΡΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ), Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΡΡΠΎΠ³Π°ΠΉΡΠ΅ package.json
, ΠΌΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π³Π΅:
βββ app
| βββ calc.js
| βββ index.js
βββ index.js
βββ package.json
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Node.js Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° package.json
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΡΠΌΠ°ΡΡ ΠΎ Π½Π΅ΠΌ ΠΊΠ°ΠΊ ΠΎ JSON-ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π°Π²ΡΠΎΡΠ° (Π²Π°Ρ) ΠΈ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π·Π΄Π΅Π» Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΆΠ΅ Π² Π³Π»Π°Π²Π΅ Β«ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ NPMΒ».
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» package.json
Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ npm init
Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅. ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Π°Ρ ΠΏΠΎΠΏΡΠΎΡΡΡ Π²Π²Π΅ΡΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²Π΅ΡΡΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ, ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΆΠΈΠΌΠ°ΠΉΡΠ΅ Enter, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ JSON ΠΈ Π²ΠΎΠΏΡΠΎΡ is it ok?
. ΠΠ°ΠΆΠΌΠΈΡΠ΅ Enter Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π· ΠΈ Π²ΡΠ°Π»Ρ: Π²Π°Ρ package.json
Π±ΡΠ» Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ Π² ΠΏΠ°ΠΏΠΊΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π² ΡΠ²ΠΎΠ΅ΠΉ IDE, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° Π½ΠΈΠΆΠ΅.
// package.json
{
"name": "@risingstack/node-hero",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js"
},
"author": "", "license": "ISC"
}
Π₯ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Π² Π²Π°Ρ ΠΏΠ°ΠΊΠ΅Ρ package.
. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ json
npm start
. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ PaaS-ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°: ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ start
ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌΡ Π²Π°ΠΌΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ index.js
. Π― ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΎΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΌ: ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠ°ΠΉΠ» index.js
ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° /app
, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅). Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π² ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΠ» index.js
ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅:
// index.js
require('./app/index')
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» index.js
ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ /app
, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΡΠ΅Π». Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΠΉΠ» index.js
Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ»Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, Π° Π»ΠΎΠ³ΠΈΠΊΠ°, ΡΡΠ΅Π±ΡΡΡΠ°Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΡΡΠ°Π²ΡΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² ΡΠ°ΠΉΠ» index.js
Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /app
.
// app/index.js
const calc = require('./calc')
const numbersToAdd = [
3,
4,
10,
2
]const result = calc.sum(numbersToAdd)
console.log(`The result is: ${result}`)
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΡΠ°Π²ΡΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ Π² ΡΠ°ΠΉΠ» calc.js
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅.
// app/calc.js
function sum (arr) {
return arr.reduce(function(a, b) {
return a + b
}, 0)
}module.exports.sum = sum
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π²ΡΡ Π»ΠΈ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ npm start
ΠΈΠ»ΠΈ node index.js
. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΡΠ²Π΅Ρ: 19. ΠΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ, Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π»ΠΎΠ³ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Node.JS | JazzTeam Software Development Company
April 22, 2019 Jazz Team Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ°ΡΡΠΈ
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΡΡ ΠΏΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Selenium-Webdriver β ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Node. JS.
ΠΠ° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΌΠΈ Π±ΡΠ»Π° ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π·Π°Π΄Π°ΡΠ° β Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Web UI Π°Π²ΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΠΉ ΡΠ²Π»ΡΠ»ΠΎΡΡ β Π·Π°ΠΏΡΡΠΊ ΡΠ΅ΡΡΠΎΠ² Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ frontend ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΎΠ»ΡΠΊΠΎ Node.JS, Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠΆΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΡΠ°Π»ΠΎΠ½ΠΎΠΌ ΡΡΠΈΡΠ°Π»ΠΈΡΡ Java ΠΈ Python. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΎΠΏΡΠΎΡ ΡΡΠ΅Π΄ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΎΡΠΎΠ², ΡΠΎ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π΄ΠΎΠ»Π΅ΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΎΠ½ΠΈ Π²ΡΠ±Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΡΠ΅ΠΌΡ Π΄Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ Π²Π°ΠΆΠ½Π°? ΠΠ΅Π΄Ρ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ°ΡΠ΅ΠΉ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΏΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ UI ΡΠ΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Selenium-js. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΠΈΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΡ Π² Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠ΅, Π° Π²ΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ PageObject ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π°ΠΉΡΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠ΅ΡΡΡ ΡΠ·Π½Π°ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠΎ ΠΏΠΎΠ΅Ρ Π°Π»ΠΈ.
Π ΡΡΡΠ΄Π½ΠΎΡΡΡΡ Π²ΡΠ±ΠΎΡΠ°
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠΎΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΌΠΈ, ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π°Π²ΡΠΎΡΠ΅ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° Node. JS. ΠΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π² ΡΠΈΡΠΎΠΊΠΈΡ
ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
. ΠΠ΅ΡΠ²ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π½Π° Π½Π΅ΠΏΡΠΎΡΡΠΎΠΌ ΠΏΡΡΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π²ΡΠ±ΠΎΡ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°.
Mocha
ΠΠ»Ρ Node.JS Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΡΡΡΡ Π² ΡΡΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠΈ, ΠΌΡ Π²ΡΠ΄Π΅Π»ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠ΅Π±Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²:
- Cucumber β ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ open-source BDD ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ·ΡΠΊ Gherkin.
- Jasmine β ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ BDD ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ JS.
- Mocha β ΡΡΠΎ JS-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡΠΈΠΉ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Node.JS ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΈΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π’Π΅ΡΡΡ Π² Mocha ΠΈΠΌΠ΅ΡΡ ΡΠ»ΡΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡΡΡ ΡΠ΅ΡΠΈΡΠΌΠΈ.
- Protractor β ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ E2E Angular ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° WebDriverJS.
ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Java Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠΎΠ΄ΡΠ°Π»ΠΊΠΈΠ²Π°Π» Π½Π°Ρ ΠΈΡΠΊΠ°ΡΡ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° JS, ΠΈ ΠΌΡ Π²ΡΠ±ΡΠ°Π»ΠΈ Mocha. ΠΠΎΡΡΠΎΠΌΡ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ½ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΊΠ·ΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ².
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Mocha, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π»ΠΈΡΠ½Π΅Π³ΠΎ. ΠΡ Π° ΠΊΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, Mocha β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π΅ΠΉΡΠΈΡ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π½Π° Node.JS Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠΎ ΠΏΡΠΈ Π²ΡΠ΅Ρ
Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°Ρ
Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ β ΡΡΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ assert-ΠΎΠ².
ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Chai. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ β Π½ΡΠΆΠ½ΠΎ Π²Π²Π΅ΡΡΠΈ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ, Π° Π±ΠΎΠ½ΡΡΠΎΠΌ ΠΊ ΡΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΠ»Π΅ΠΉ assertions: assert, expect, should.
Selenium-webdriver
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠ±ΠΎΡΠ° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΌΡ ΠΎΡΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΎΡ Protractor, Π΄Π°Π»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠΎΡΠ»ΠΎ Π²ΡΠ±ΡΠ°ΡΡ βΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ΅Π½ΠΈΡβ ΡΠ΅ΡΡΠΎΠ² Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ. Π ΡΡΡ ΡΠΎΠΆΠ΅ JavaScript ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡ Π²Π°ΡΡΠ°ΡΡΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ΠΌ, Π²ΠΎΡ ΡΠ°ΠΌΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΡ:
- Selenium-webdriver β ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Selenium Π½Π° JS.
- WebdriverIO β ΠΏΠΎ ΡΡΡΠΈ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π°Ρ ΠΎΠ±ΡΡΡΠΊΠ° Π½Π°Π΄ Selenium-webdriver.
- Nightwatch.js β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΅ΡΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ: ΡΠ΅ΡΠ²Π΅Ρ, assert-Ρ ΠΈ Ρ.Π΄. ΠΡΠΈ ΡΡΠΎΠΌ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΈ Π² ΡΠΎΡΡΠ°Π²Π΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΡΠ±ΠΎΡ ΠΏΠ°Π» Π½Π° Selenium-webdriver, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, ΠΏΡΠΈΡΠΌΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΏΡΠΈΡΠΌΠΎΠ² Π² Selenium Π½Π° Java.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΎΠ±ΡΠ°Π·ΡΡ ΠΊΠΎΠ΄Π°, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Π·Π°Π΄Π°Π½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ .
BaseDialog
ΠΠ°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ PageObject ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π½ΡΠΌ ΠΎΠΏΠΈΡΠ°Π½Π° Π±Π°Π·ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠΆΠ΅ Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ BasePage, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½Π° Π²ΡΡ Π±Π°Π·ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π»ΡΠ±ΡΠΌΠΈ web-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ web-ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΡΠ°ΠΆΠ΅Π½ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ (ΡΡΡΠ°Π½ΠΈΡΡ, Π²ΠΊΠ»Π°Π΄ΠΊΠΈ, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Ρ.Π΄.).
SaveDialog
ΠΠ°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ PageObject, ΠΎΠ½ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ BaseDialog. ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΠΊΡΠΈΠ½Π°, Π² Π½ΠΎΠ²ΠΎΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ βSaveβ.
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ² BaseDialog ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΎΡΠΈΠ±ΠΊΠΈ, Π΄ΠΈΠ°Π»ΠΎΠ³ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈ Ρ.Π΄.).
BaseSteps
ΠΠ° ΡΡΠΎΠΌ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠ° BaseSteps. ΠΠ°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°Π±ΠΎΡ ΠΎΠ±ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: Π»ΠΎΠ³ΠΈΠ½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π»ΠΎΠ³Π°ΡΡ ΠΈ Ρ.Π΄.). ΠΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ ΡΠ»ΠΎΡ ΡΡΠ΅ΠΏΠΎΠ².
Π§Π°ΡΡΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΡΡΠ΅ΠΏΠΎΠ² Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ»ΠΎΠΉ ΡΡΠ΅ΠΏΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΠΠ ΠΌΠΎΠ΄Π΅Π»Ρ.
TestExample
ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΡΠΉ Π²ΠΈΠ΄ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ PageObject.
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅, ΡΠ°ΠΌ ΡΠ΅ΡΡ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ. Π Π½ΡΠΌ ΡΡΡΠΊΠΎ Π²ΠΈΠ΄Π½Ρ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π½Π΅ΠΊΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π½ΠΈΠΌΠΈ, ΠΈ Π² Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΎΠ΄Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Ρ Π²Π΅ΡΠ½ΠΎ.
ΠΡΠ²ΠΎΠ΄Ρ
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ web UI ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Node.JS? ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ:
- ΠΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΡΡΡ β ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΡΠ΅ΡΡΠ΅ Π±Π΅Π³ΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ ΠΏΠ°ΡΠΎΠ²ΠΎΠ·Π° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π²Π°ΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ ΠΈΡ
Π²Π²Π΅Π»ΠΈ.
Π Π΅ΡΠ°Π΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ β Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ²ΡΠΊΠ½ΡΡΡ.
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΠΠ Π² JS β ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π½ΡΠ΅Π²Π°ΡΡ Ρ Π±ΡΠ±Π½ΠΎΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
- ΠΠ·-Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ΠΌ ΠΠΠ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π΅ΠΏΡΠΎΡΡΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ PageObject ΠΌΠΎΠ΄Π΅Π»ΠΈ.
- Π₯ΠΎΡΡ Π² mocha Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Π³Π°ΠΌΠΈ, Π½ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ Π½Π΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ ΠΎΡΠ΅ΡΡΡ. ΠΡΠΎ Π²ΠΎΠΏΡΠΎΡ Π½Π΅ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ JS, Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΡ.
Π Π²ΠΎΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΠΈ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅:
- ΠΠ΅ΡΡ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Π° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠ°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Python ΠΈΠ»ΠΈ Java.
- ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ.
- Π£ΠΏΡΠΎΡΠ°Π΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ², ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΡΠΎΠ².
ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ
Node.JS, Selenium-js, UI-Π°Π²ΡΠΎΡΠ΅ΡΡΡ, Web UI, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ°ΡΡΡ
Cookie | Node.js Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π°
Cookie-ΡΠ°ΠΉΠ»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ Π·Π°Ρ ΠΎΠ΄Π΅ Π½Π° ΡΠ°ΠΉΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΠ΅ΡΡΠΈΠΈ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ Π·Π°ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π²ΡΠ°Ρ ΡΠ΅Π±Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π² Π²ΠΈΠ΄Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° (Local Storage), cookie-ΡΠ°ΠΉΠ»Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Ρ ΠΈ ΠΈΠ³ΡΠ°ΡΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ cookie-ΡΠ°ΠΉΠ»ΠΎΠ²:
- ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΡΡΡΠΎ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°;
- ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, Π»ΠΈΠ±ΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ;
- ΡΠ°ΡΡΠΎ cookie-ΡΠ°ΠΉΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ²Π°ΡΡΡΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ XSS-Π°ΡΠ°ΠΊ.
Π Node.js cookie ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π΄Π²ΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΡΠ²Π΅ΡΠ°:
cookie()
— ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»ΡΡΡ;clearCookie()
— ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΊΠ»ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π΅ΡΠ»ΠΈ ΠΊΠ»ΡΡ Π½Π΅ Π·Π°Π΄Π°Π½ — ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅.
ΠΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ ΡΠΏΠ΅ΡΠ²Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ cookie-parser
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ cookie Π² Express.
npm install cookie-parser
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Node.js cookie.
app.js
const express = require('express'),
app = express(),
cookieParser = require('cookie-parser')
const host = '127.0.0.1'
const port = 7000
app.use(cookieParser('secret key'))
app.get('/get-cookie', (req, res) => {
console.log('Cookie: ', req.cookies)
res.send('Get Cookie')
})
app.get('/set-cookie', (req, res) => {
res.cookie('token', '12345ABCDE')
res.send('Set Cookie')
})
app.
listen(port, host, () =>
console.log(`Server listens http://${host}:${port}`)
)
ΠΠ΅ΡΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ cookie-parser ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ΅Π»ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ cookie Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π΄Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΌΠ΅ΡΠΎΠ΄Ρ cookie()
Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ΅ΡΡΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ:
domain
— ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ cookie;path
— ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΡΡΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ cookie;maxAge
— ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΡΠ°ΠΉΠ»Π° Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ ;secure
— Π±ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈtrue
, ΡΠΎ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ΄ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΡHTTPS
;httpOnly
— Π±ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π²true
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ;signed
— Π±ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈtrue
, ΡΠΎ cookie-ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½.
res.cookie('token', '12345ABCDE', {
maxAge: 3600 * 24,
secure: true,
})
ΠΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ cookie-ΡΠ°ΠΉΠ»Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΠΈΡ ΡΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π½Π° Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ Π² Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ — ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°.
ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°
ΠΡ Π°Π²ΡΠΎΡΠ°: ΠΌΠΎΠ΄ΡΠ»Ρ OS Π² Node.js ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΄ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ.
os.tmpdir() β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² temp ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ Β«NodeJS. ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡΒ»
ΠΠ·ΡΡΠΈΡΠ΅ ΠΊΡΡΡ ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½ΡΠ»Ρ Π½Π° JavaScript Ρ NodeJS
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΡΡΡos.endianness() β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡ Π¦Π. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: Β«BEΒ» ΠΈΠ»ΠΈ Β«LEΒ».
os.hostname() β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠΌΡ Ρ
ΠΎΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
os.type() β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
os.platform() β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
os.arch() β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π¦Π ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: Β«x64Β», Β«armΒ» ΠΈ Β«ia32Β».
os.release() β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π»ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
os.uptime() β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ Π±Π΅Π·ΠΎΡΠΊΠ°Π·Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ .
os.loadavg() β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΠ΅Π΄Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π·Π° 1, 5 ΠΈ 15 ΠΌΠΈΠ½ΡΡ.
os.totalmem() β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π² Π±Π°ΠΉΡΠ°Ρ .
ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ Β«NodeJS. ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡΒ»
ΠΠ·ΡΡΠΈΡΠ΅ ΠΊΡΡΡ ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½ΡΠ»Ρ Π½Π° JavaScript Ρ NodeJS
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΡΡΡos.freemem() β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΌ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π² Π±Π°ΠΉΡΠ°Ρ .
os.cpus() β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ / ΡΠ΄ΡΠ΅: ΠΌΠΎΠ΄Π΅Π»Ρ, Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ (Π² ΠΠΡ) ΠΈ Π²ΡΠ΅ΠΌΡ (ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΠ΅ΠΌΡ Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄, Π·Π°ΡΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ / ΡΠ΄ΡΠΎΠΌ Π½Π°: user, nice, sys, idle ΠΈ irq).
os.networkInterfaces() β ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² OS. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» js Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ main.js ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅.
Π Π΅Π΄Π°ΠΊΡΠΈΡ: ΠΠΎΠΌΠ°Π½Π΄Π° webformyself.
ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ Β«NodeJS. ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡΒ»
ΠΠ·ΡΡΠΈΡΠ΅ ΠΊΡΡΡ ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½ΡΠ»Ρ Π½Π° JavaScript Ρ NodeJS
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΡΡΡhisschemoller / nwjs-tutorial: Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ NW.js
ΠΡΠΎ ΠΎΠ±Π·ΠΎΡ ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ Linux, Mac ΠΈ Windows Ρ ΠΏΠΎΠΌΠΎΡΡΡ NW.js.
(ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ Π΄Π΅ΠΊΠ°Π±ΡΡ 2020 Π³ .: ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ NW.js v50.1 Π² Mac OS v10.15 (Catalina), Ubuntu v20.04.1 LTS ΠΈ Windows 10 Pro v1709)
NW.js — ΡΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ HTML, CSS ΠΈ JavaScript.ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ JavaScript Ρ Node. js ΠΈ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Google Chromium Π² Π΅Π΄ΠΈΠ½ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π― ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ. ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±Π·ΠΎΡ ΠΌΠΎΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ². Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ NW.js ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠΈ. Π― Π½Π°ΠΏΠΈΡΠ°Π» ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ MacOS 10.14 (Mojave), Ubuntu 18.04 ΠΈ Windows 10.
NW.js Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠ»ΠΈ Electron
Electron — Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½Π΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΡΠ΅ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° requestAnimationFrame
Π΄Π»Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈ Ρ Π½Π΅ ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Electron ΠΈΠ·-Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² Chromium (ΡΠ°ΠΉΠΌΠ΅Ρ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΡΡΠΎ). Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², NW.js Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
ΠΡΠΎΠ΅ΠΊΡ Β«ΠΠ΅ΡΡΠΎΠ½ΠΎΠΌΒ»
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° — ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΠ΅ΡΡΠΎΠ½ΠΎΠΌ. ΠΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Ρ
ΡΠΎΠ½ΠΎΠΌΠ΅ΡΡΠ°ΠΆΠ°. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ
requestAnimationFrame
ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π·Π²ΡΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ Ρ NW.js ΡΠ°ΠΉΠΌΠ΅Ρ requestAnimationFrame
Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΡΡΠΎ Π·Π° Π΄ΡΡΠ³ΠΈΠΌΠΈ. Π‘ΠΌ. ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π΄Π΅ΡΡ: https://hisschemoller.github.io/nwjs-tutorial/src/.
ΠΠ±Π·ΠΎΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°
ΠΠ°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΏΡΠΎΠΉΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎΡ ΠΎΠ±Π·ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
ΠΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git Π΄Π»Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ https: // github.com / hisschemoller / nwjs-tutorial.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² package.json
.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http: // localhost: 3000
ΠΡΠΊΡΠΎΠΉΡΠ΅ URL-Π°Π΄ΡΠ΅Ρ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΡΡΠ΅ΡΡΠΈΠΊΠ°. ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ «ΠΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ». Π‘ΡΠ΅ΡΡΠΈΠΊ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ, ΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΠ°Π·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠΈΠ³Π½Π°Π».
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠ΅ΡΡΠΎΠ½ΠΎΠΌ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ΡΡ Π½Π° Π΄ΡΡΠ³ΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΊΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ.
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ NW.js ΠΏΡΡΠΌΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ NW ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π³ΠΎΠ²:
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ NW Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ NPM
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°
- ΠΠ°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² NW framework
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ NW ΠΊΠ°ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ NPM
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π΅ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ NW: ΠΠ»Ρ ΡΠ΅Π»Π΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²Π΅ΡΡΠΈΡ SDK, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Chrome.Π ΠΎΠ±ΡΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° ΠΌΠ΅Π½ΡΡΠ΅. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΡ SDK, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΡΡΡΠΎΠΊΡ Π²Π΅ΡΡΠΈΠΈ -sdk
.
ΠΠΎΠ±Π°Π²ΠΈΡΡ NW ΠΊΠ°ΠΊ devDependency Π² package.json
.
"devDependencies": { Β«nwΒ»: Β«0.38.0-sdkΒ» }
Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°
NW ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°. Π€Π°ΠΉΠ» ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° — ΡΡΠΎ ΡΠ°ΠΉΠ» JSON Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ package.json
. ΠΠ°ΠΊ Π½ΠΈ ΡΡΡΠ°Π½Π½ΠΎ, ΠΎΠ½ Π½Π°Π·Π²Π°Π½ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ NPM .json
. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°Π·Π½ΠΈΡΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΉΠ» ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΡΠΎ ΠΈ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΠΏΠ°ΠΊΠ΅Ρ NPM package.json
Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠΎΡΠ½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
+ - nwjs-ΡΡΠ΅Π±Π½ΠΈΠΊ
| + - package.json (NPM)
| + - src
| | + - index.html
| | + - package.json (ΡΠ°ΠΉΠ» ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° NW)
ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Ρ name
ΠΈ main
Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° NW. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ NW Π½Π° ΡΠΎΡΠΊΡ Π²Ρ
ΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ .html
.
ΠΠ΄Π½Π°ΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ. ΡΡΡΠ»ΠΊΡ Π½Π° Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° http://docs.nwjs.io/en/latest/References/Manifest%20Format/
ΠΡΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Metronome:
{ "name": "Metronome_manifest_name", "description": "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΠΌΠ΅ΡΡΠΎΠ½ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ.", "main": "index.html", "chromium-args": "--disable-raf-Π΄ΡΠΎΡΡΠ΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅", "ΠΎΠΊΠ½ΠΎ": { "icon": "img / icon.png", Β«Π²ΡΡΠΎΡΠ°Β»: 240, "ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ": Π»ΠΎΠΆΡ, Β«ΡΠΈΡΠΈΠ½Π°Β»: 400, "title": "Metronome_manifest_window_title" } }
ΠΠ°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² NW framework
Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠΊΡΠΈΠΏΡ Π² ΠΏΠ°ΠΊΠ΅Ρ .json
Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° NW, Π½ΠΎ Π΅Π³ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ, ΠΏΡΠΎΡΡΠΎ Π½Π°Π±ΡΠ°Π² yarn nw
Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
"scripts": { "start-nw": "nw --disable-raf-Π΄ΡΠΎΡΡΠ΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅" },
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° NW ΠΈΡΠ΅Ρ Β«ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅Β» ΠΏΠΎΠ»Π΅ Π² package.json
, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠΎΡΠΊΡ Π²Ρ
ΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈ ΠΈΡΠ΅Ρ ΡΠ°ΠΉΠ» ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΡΠΎ ΠΈ ΡΠΎΡΠΊΠ° Π²Ρ
ΠΎΠ΄Π°. ΠΠ°ΡΠ΅ΠΌ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ NW Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ --disable-raf-throttling
ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠΎΠ½ΠΎΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΡΡΡΠΎ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ NW.

ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ±ΠΎΡΠΊΡ NW ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ nwjs.io ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ https://nwjs.io/downloads/. Π‘Π±ΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ Π΄Π»Ρ Mac, Linux ΠΈ Windows, 32- ΠΈΠ»ΠΈ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅, Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ SDK ΠΈΠ»ΠΈ Π±Π΅Π· Π½Π΅Π΅.
ΠΠ±ΡΡΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΠ±ΠΎΡΠΊΡ NW, ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Mac, Linux ΠΈ Windows.ΠΠ΄Π΅ΡΡ Ρ NW.js Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Mac (ΡΠ°ΠΉΠ» .app)
- ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ Π²ΡΠΏΡΡΠΊ Mac Ρ https://nwjs.io/downloads/ ΠΈ ΡΠ°Π·Π°ΡΡ
ΠΈΠ²ΠΈΡΡΠΉΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΡ. Π ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΠΉΠ»
nwjs.app
(ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠΈΡ ). - Π£ΠΏΠ°ΠΊΡΠΉΡΠ΅ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°
/ src
Π² zip-ΡΠ°ΠΉΠ» ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ Π΅Π³ΠΎ Π²app.nw
. ΠΡΠ°ΠΊ, Π΄Π»Ρ ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄Π΅Ρ.nw
Π²ΠΌΠ΅ΡΡΠΎ.zip
, ΠΈ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ.
, ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈhtml
css
,js
ΠΈfonts
ΠΈ ΡΠ°ΠΉΠ» ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°package.json
. - ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅
app.nw
Π² Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ Π²ΡΠΏΡΡΠΊ Mac Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³nwjs.app/Contents/Resources/
. (ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π½Π° nwjs.app ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°Β», ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ) - Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π½Π°ΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅
/assets/icons/metronome.icns
Π²app.icns
ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ Π΅Π³ΠΎ Π²nwjs.app/Contents/Resources/
.Π€Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π‘ΠΌ. ΠΠΈΠΆΠ΅, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ».icns
. - Π’Π°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈΡΠ΅
nwjs.app/Contents/Resources/documents.icns
ΡΠ°ΠΉΠ»ΠΎΠΌ.icns
. - ΠΡΠΊΡΠΎΠΉΡΠ΅
nwjs.app/Contents/Info.plist
Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅. ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»ΡCFBundleDisplayName
ΠΈCFBundleName
, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅.
CFBundleDisplayName ΠΠ΅ΡΡΠΎΠ½ΠΎΠΌ CFBundleName ΠΠ΅ΡΡΠΎΠ½ΠΎΠΌ
Π€Π°ΠΉΠ» nwjs.
ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² Π·Π°Π³ΡΡΠ·ΠΊΠ΅. ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» Π² Metronome.app. ΠΠ²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ. app
.icns-ΡΠ°ΠΉΠ» Π΄Π»Ρ Mac
ΠΠ° Mac Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» .icns
Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ iconutil
. ΠΠΎΡ Π΄Π²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°:
- https://retifrav.github.io/blog/2018/10/09/macos-convert-png-to-icns/
- https://elliotekj.com/2014/05/27/how-to-create-high-resolution-icns-files/
Π MacOS Mojave Ρ ΡΠΎΠ·Π΄Π°Π» ΡΠ°ΠΉΠ»Ρ Π·Π½Π°ΡΠΊΠΎΠ², ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅, ΠΈ Π·Π°ΠΏΡΡΡΠΈΠ» iconutil
, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ.ΠΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. ΠΠ±ΡΠΈΠΉ ΠΎΠ±Π·ΠΎΡ ΡΠ°Π³ΠΎΠ²:
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅
png ΠΈ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. (ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΎΠ½ΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π²/assets/icons/metronome.iconset
). - ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠ°ΠΏΠΊΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π΅Π΅ ΠΈΠΌΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π»ΠΎΡΡ Π½Π°
.
. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅iconset
metronome.iconset
. - Start Terminal ΠΈ
cd
Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ.iconset
. - ΠΠ°ΠΏΡΡΡΠΈΡΠ΅
iconutil
, ΡΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ.icns
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
iconutil -c icns metronome.iconset
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Linux
Π― ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π» ΡΡΠΎ Π½Π° Ubuntu 18.04, Π½ΠΎ Π½Π΅ Π·Π½Π°Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Linux.
- ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ 32- ΠΈΠ»ΠΈ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Linux Ρ https://nwjs.io/downloads/ ΠΈ ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΡΠΉΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΡ.
- Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°
/ src
ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡnwjs-sdk-v0.38.0-linux-x64
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Π°ΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΡΠ°ΠΉΠ» ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°package.json
Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΡΡΠΎ ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»nw
. - Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»
/metronome.desktop
Π² ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΡΡΠΎ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ.Π‘ΠΌ. ΠΠΈΠΆΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ»
.desktop
.
Linux .desktop ΡΠ°ΠΉΠ»
Π GNOME ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π±ΠΎΡΠΈΡ ΡΡΠΎΠ»Π°Ρ , ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ freedesktop.org, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΌΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΠΈΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ.ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°. ΠΡΠΎΡ ΡΠ°ΠΉΠ» ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
- Π€Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ². ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
metronone.desktop
. - ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ:
-
/ usr / share / applications ΠΊΠ°ΡΠ°Π»ΠΎΠ³
Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° Π²ΡΠ΅ΠΌ ΠΈΠ»ΠΈ -
/.local/share/applications
, ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
-
Π Π΅ΡΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² Linux Π²ΡΡΡΠ½ΡΡ
ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ Linux ΠΈ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΠΈ ΡΠ°ΠΉΠ» Π·Π½Π°ΡΠΊΠ°, ΠΊΠ°ΠΊ Π² ΡΠ°Π³Π°Ρ
Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ LinuxΒ» Π²ΡΡΠ΅.
- ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ Π² ΠΌΠ΅ΡΡΠΎΠ½ΠΎΠΌ.
- Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³
/ opt
. - Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»
metronome.desktop
Π²/ usr / share / applications
.
Π§ΡΠΎΠ±Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°ΠΉΠ» ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cp
Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅:
$ sudo cp -r / ΠΏΡΡΡ / ΠΊ / ΠΌΠ΅ΡΡΠΎΠ½ΠΎΠΌ / opt $ sudo cp /path/to/metronome.desktop / usr / share / applications
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π»ΡΠ±ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π²Π°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.ΠΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΎ-ΡΠΎ Π΅ΡΠ΅
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Windows (ΡΠ°ΠΉΠ» .exe)
- ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ 32- ΠΈΠ»ΠΈ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Windows Ρ https://nwjs.io/downloads/ ΠΈ ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΡΠΉΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΡ.
- Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°
/ src
ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΡΠ°ΠΉΠ» ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°package.json
Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΡΠΎ ΠΈ ΡΠ°ΠΉΠ»nw.exe
. - ΠΠ½Π°ΡΠΎΠΊ nw.exe ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Resource Hacker, nw-builder ΠΈ node-winresourcer.(Π‘ΠΌ. ΠΠΈΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ Resource Hacker.)
ΠΠ²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ nw.exe, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Resource Hacker
Windows ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π·Π½Π°ΡΠΊΠΈ ΡΠΈΠΏΠ° ΡΠ°ΠΉΠ»ΠΎΠ² .ico
. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΠΎΠ½Π²Π΅ΡΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» .ico
ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ICOConvert Π½Π° https://icoconvert.com/.
- ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ Resource Hacker Ρ http://angusj.com/resourcehacker/ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅.
- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Resource Hacker.
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π€Π°ΠΉΠ»> ΠΡΠΊΡΡΡΡ … ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ nw.exe
- ΠΠ° Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΏΠ°ΠΏΠΊΡ Β«ΠΠ½Π°ΡΠΎΠΊΒ» ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΠ°ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠΎΠΊ …Β».
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ Β«ΠΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» Ρ Π½ΠΎΠ²ΡΠΌ Π·Π½Π°ΡΠΊΠΎΠΌ …Β» ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ°ΠΉΠ» assets / icons / metronome.ico.
- ΠΠ° ΠΏΡΠ°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π·Π½Π°ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ, ΠΎΠ±ΡΡΠ½ΠΎ Π²Π΅ΡΡ Π½ΠΈΠΉ Π² ΡΠΏΠΈΡΠΊΠ΅.
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ°ΠΌΠ΅Π½ΠΈΡΡΒ».
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ Π€Π°ΠΉΠ»> Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Ρ Π½ΠΎΠ²ΡΠΌ Π·Π½Π°ΡΠΊΠΎΠΌ. (Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΊ … ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ, ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡ ΠΎΠΏΡΡΡ)
- ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ Π² nw.exe Π² ΡΠ°ΠΉΠ» metronome.exe.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Resource Hacker:
Π£ΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠΈ
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ Π΄Π»Ρ Mac (ΡΠ°ΠΉΠ» .dmg)
Π― ΡΠ°Π·Π΄Π΅Π»ΠΈΠ» ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ. ΠΠ΅ΡΠ²ΡΠΉ — ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡΠ»ΡΠΊ Π΄Π»Ρ Applications
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Applications
.
ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ — ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ°.
Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½
- ΠΠ°ΠΏΡΡΡΠΈΡΡ Π΄ΠΈΡΠΊΠΎΠ²ΡΡ ΡΡΠΈΠ»ΠΈΡΡ.
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π€Π°ΠΉΠ»> ΠΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅> ΠΡΡΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ …
- ΠΠ°Π΄Π°ΠΉΡΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΎΠ±ΡΠ°Π·Π°
installerTemplate.dmg
. - ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π· Β«ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ ΠΌΠ΅ΡΡΠΎΠ½ΠΎΠΌΠ°Β».
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, 320 ΠΠ.
- ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΊΠ°ΠΊ Π΅ΡΡΡ.
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠ°ΠΏΠΊΡ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ°.
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β«Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡΒ», ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» DMG.
ΠΡΠΎ Π²ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΡΠ°Π±Π»ΠΎΠ½Π°. Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ ΠΈ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π΅Π³ΠΎ ΠΊΡΠ°ΡΠΈΠ²ΡΠΌ:
- ΠΠ²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅
installerTemplate.dmg
, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ. ΠΠ½ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Finder ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. - Π ΠΌΠ΅Π½Ρ Finder Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΡΠΎΡΠΌΠΎΡΡΒ»> Β«ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°Β».
- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΠ°ΠΏΠΊΠΈ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π·Π½Π°ΡΠΊΠΎΠ², Π·Π½Π°ΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ Ρ. Π.
- Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»
metronome.app
Π² ΠΏΠ°ΠΏΠΊΡ. - Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΡΠ»ΡΠΊ
Applications
Π² ΠΏΠ°ΠΏΠΊΡ. - Π Π°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ Π·Π½Π°ΡΠΊΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅.
- ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ°ΠΏΠΊΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°ΡΡ metronome.app Π² ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. (ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π΅Π³ΠΎ Π²
/assets/mac/mac-installer-background.jpg
.) - ΠΠ·Π²Π»Π΅ΡΡ ΠΎΠ±ΡΠ°Π· Π΄ΠΈΡΠΊΠ°.
ΠΠΎΡΡΡΠΎΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ DMG
- Π‘Π½ΠΎΠ²Π° Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΄ΠΈΡΠΊΠΎΠ²ΡΡ ΡΡΠΈΠ»ΠΈΡΡ.
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ Β«ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΒ»> Β«ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ …Β».
- ΠΡΠ±Π΅ΡΠΈΡΠ΅
installerTemplate.dmg
ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ. - ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π°:
metronome-installer_1.0.dmg
. - ΠΡΠ±Π΅ΡΠΈΡΠ΅ Β«Π‘ΠΆΠ°ΡΡΠΉΒ» Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΌΠ°ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β«ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡΒ», ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» DMG.
Π Π΅ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ DMG:
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ Linux (ΡΠ°ΠΉΠ» .deb)
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΏΡΠΎΡΡΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π·Π΄Π΅ΡΡ: https://ubuntuforums.org/showthread.php?t=
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ
control
Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Π΄Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊdpkg
, Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ.Π― ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²/ assets / linux /
. - Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ², Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ
<ΠΏΡΠΎΠ΅ΠΊΡ> _ <ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π²Π΅ΡΡΠΈΡ>. <ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ> - <Π²Π΅ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°>
. ΠΡΠ°ΠΊ, ΡΡΠΎmetronome-installer_1.0
. - ΠΠ½ΡΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΡΡΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅. Π‘ΠΌ. ΠΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅.
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π·Π½Π°ΡΠΎΠΊ
png
ΡΠ°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²metronome.desktop
. - Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ
deb
Ρ ΠΏΠΎΠΌΠΎΡΡΡdpkg-deb --build metronome-installer_1.0
.
ΠΡΠ°ΠΊ, ΡΡΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΡΡΡΠΊΡΡΡΠ°:
+ - ΠΌΠ΅ΡΡΠΎΠ½ΠΎΠΌ-ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ_1.0
| + - ΠΠΠΠΠΠ
| | + - ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
| + - usr
| | + - ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
| | | + - ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
| | | | + - metronome.desktop
| + - ΠΎΠΏΡ
| | + - ΠΌΠ΅ΡΡΠΎΠ½ΠΎΠΌ
| | | + - nw
| | | + - ΠΈΠ½Π΄Π΅ΠΊΡ.html
| | | + - package.json
| | | + - ... (ΠΈ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ)
ΠΠ°ΠΊ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» .deb
Ρ:
dpkg-deb --build metronome-installer_1.0
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ metronome-installer_1.0.deb
. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Metronome ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
ΡΡΠ΄ΠΎ dpkg -i ΠΌΠ΅ΡΡΠΎΠ½ΠΎΠΌ-ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ_1.0.deb
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΈ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ Π΅Π³ΠΎ:
dpkg -l | grep ΠΌΠ΅ΡΡΠΎΠ½ΠΎΠΌ sudo dpkg -P ΠΌΠ΅ΡΡΠΎΠ½ΠΎΠΌ
ΠΡΡΠ³ΠΎΠΉ ΡΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ deb
:
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ Windows (.exe ΡΠ°ΠΉΠ»)
INNO Setup ΠΏΡΠΈΠ·Π½Π°Π½ Π»ΡΡΡΠΈΠΌ Π½Π° Slant. ΠΠΎΡ ΡΡΠΎ Ρ ΡΠ΅ΡΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
- ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ Inno Setup Ρ http://www.jrsoftware.org/isdl.php (ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ — innosetup-5.6.1.exe)
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Inno Setup ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows.
- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Inno.
- Π ΠΎΠΊΠ½Π΅ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΡΡΠ΅Π½Π°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠ΅ΡΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²Β».
- ΠΠ°ΡΡΠ΅Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ Ρ ΡΠΊΡΠ°Π½ΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:
- ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Application name),
- Π΅Π³ΠΎ Π²Π΅ΡΡΠΈΡ (Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ),
- Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ (ΠΈΠ»ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π»ΠΈΡΠ°) (ΠΈΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ)
- ΡΠ°ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠ°ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ).
- ΠΠ°ΡΠ΅ΠΌ Π½Π°ΠΆΠΌΠΈΡΠ΅ Β«ΠΠ°Π»Π΅Π΅Β».
- ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΡΠ°Π½ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
- ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ΅Π»Π΅Π²ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΠ°ΠΏΠΊΡ Π² Β«Program Files folderΒ».
- ΠΈΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Β«ΠΠ΅ΡΡΠΎΠ½ΠΎΠΌΒ»
- Π€Π°ΠΉΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
- ΠΠ»Ρ Β«ΠΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ» ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ
metronome.exe
. - ΠΠ»Ρ Β«ΠΡΡΠ³ΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ» Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΠΏΠΊΡ …Β» ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π²Π΅ΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°.
- ΠΠ»Ρ Β«ΠΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ» ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ
- Π―ΡΠ»ΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΠ»ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ.
- ΠΠ½Π°ΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
- Β«ΠΠ΅Π½ΡΒ« ΠΡΡΠΊ Β»ΠΈΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ»: Β«ΠΠ΅ΡΡΠΎΠ½ΠΎΠΌΒ»
- ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ
- Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Β«ΠΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°Β» Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ°
/ ΠΠΠ¦ΠΠΠΠΠ―
. - ΠΡΡΠ°Π²ΡΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΏΡΡΡΡΠΌΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Β«ΠΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°Β» Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ°
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ·ΡΠΊΠΎΠ²
- ΠΡΡΠ°Π²ΡΡΠ΅ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΠΈΠ»ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ.
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
- ΠΠ»Ρ Β«ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΠΏΠ°ΠΏΠΊΠ° Π²ΡΠ²ΠΎΠ΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°Β» Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ.
- ΠΠ»Ρ Β«ΠΠΌΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°Β» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Β«metronome-installerΒ».
- ΠΠ»Ρ Β«Π€Π°ΠΉΠ» Π·Π½Π°ΡΠΊΠ° Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈΒ» Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ°ΠΉΠ»
metronome.ico
. ΠΡΠΎ ΡΠ½ΠΎΠ²Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ.ico
. - ΠΡΡΠ°Π²ΡΡΠ΅ ΠΏΠΎΠ»Π΅ Β«ΠΠ°ΡΠΎΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈΒ» ΠΏΡΡΡΡΠΌ.
- ΠΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Inno Setup
- ΠΡΡΠ°Π²ΡΡΠ΅ ΡΠ»Π°ΠΆΠΎΠΊ ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌ.
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β«ΠΠΎΡΠΎΠ²ΠΎΒ».
- ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Inno
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β«ΠΠ°Β», ΡΡΠΎΠ±Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ.
- Π‘ΠΎΠ³Π»Π°ΡΠΈΡΠ΅ΡΡ Π½Π° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π±Π΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ°.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ°, Π½ΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Β«ΠΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°Β» Inno Setup.
ΠΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠΉΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ — .exe
, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ Π·Π½Π°ΠΊΠΎΠΌΡ.
Π Π΅ΡΡΡΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ INNO:
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΏΡΠΎΡΠΈΡΠ°Π», ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ NW.js:
ΡΡΠ΅Π±Π½ΡΡ ΠΏΠΎΡΠΎΠ±ΠΈΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π²ΡΠ΅Ρ ΡΡΠΎΠ²Π½Π΅ΠΉ — Stackify
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Node.js, Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, Π° ΡΠ°ΠΊΠΆΠ΅ 30 Π½Π°ΡΠΈΡ Π»ΡΡΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΠΏΠΎ Node.js Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π²ΡΠ΅Ρ ΡΡΠΎΠ²Π½Π΅ΠΉ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Node.js?
Node.js ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ JavaScript Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΡ Π½Π° Π΄Π²ΠΈΠΆΠΊΠ΅ Google Chrome JavaScript V8.Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π Π°ΠΉΠ°Π½ΠΎΠΌ ΠΠ°Π»Π΅ΠΌ Π² 2009 Π³ΠΎΠ΄Ρ, Node.js ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ» ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΡΠ·ΡΠΊ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° JavaScript ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Node.js — 10.10.0.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Node.js
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π²Π½Π΅Π΄ΡΡΡΡ Node.js ΠΈΠ·-Π·Π° Π΅Π³ΠΎ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈ ΠΌΠΎΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Node.js:
- ΠΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
- ΠΡΡΠΎΠΊΠ°Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ
- ΠΠ΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ API
- ΠΠ΅Π· Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ, Node.js ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Node.js:
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ ΠΊ Π²Π²ΠΎΠ΄Ρ-Π²ΡΠ²ΠΎΠ΄Ρ
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ (DIRT)
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ JSON API
- Single -ΡΡΡΠ°Π½ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Node.js ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo !, IBM, Groupon, LinkedIn, Netflix ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅.
30 Π»ΡΡΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΠΏΠΎ Node.js
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ ΡΡΠΎ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠ΅ Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ·ΡΡΠ°ΡΡ Node.js.
- Guru99
- CodeBurst
- Tutorials Teacher
- RisingStack: Advanced Node.js tutorial
- JavaTpoint
- Sitepoint
- W3schools.com
- Tutorials Point
- Lynda.com
- Codeship
- UCodeship ΠΠ΅Π±-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ MDN
- ΠΠΎΠ΄ Π΄Π»Ρ Geek
- Airpair
- Ilovecoding
- Nodetuts
- CodeSchool
- NodeSchool
- GangBoard
- Mosh: Coding Made Simple
- ΠΠ»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠΎΠΌ
- GeeksForGraee ΠΡΡΡ
1. Guru99
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://www.guru99.com/node-js-tutorial.html
ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°- Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Node.js. Guru99 ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠ΅Π±Π½ΠΈΠΊΠ°. ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ΅ΠΌΠ° Ρ ΠΎΡΠΎΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ Π²Π°Ρ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π°ΡΠΏΠ΅ΠΊΡΠ°ΠΌΠΈ Node.js, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Express, promises ΠΈ MongoDB.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°: ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
- ΠΠΎΠ΄ΡΠ»ΠΈ: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ
2. CodeBurst
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://codeburst.io/25-node-js-tutorials-1db3b1da0260
Codeburst ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ 25 Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π³Π»ΡΠ±ΠΈΠ½Ρ Node.js framework. ΠΡΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ°ΡΠΈΡ ΡΡ, Π±ΡΠ΄Ρ ΡΠΎ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² Node.js ΠΈΠ»ΠΈ ΠΎΠΏΡΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΡΡΠΈΡΡ Node.js Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ². ΠΡΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π²Π°ΠΌ ΠΡΡΠ½Π΄ΠΎΠ½ΠΎΠΌ ΠΠΎΡΠ΅Π»Π»ΠΈ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
- ΠΡΠ½ΠΎΠ²Ρ
3. Π£ΡΠ΅Π±Π½ΠΈΠΊΠΈ Π΄Π»Ρ ΡΡΠΈΡΠ΅Π»Ρ
ΠΡΡΠΎΡΠ½ΠΈΠΊ: http: // www.tutorialsteacher.com/nodejs/nodejs-tutorials
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΈΠ·ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Node.js. ΠΠΎΠ»Π½ΡΠΉ ΠΊΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ΅ΠΌΡ ΠΈ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠΎΠ²Π΅ΡΠΎΠ² ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ²ΠΎΠΈ Π½Π°Π²ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Node.js, Π²Ρ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ° Node.js, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ.
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Node.js, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π²ΠΎΠ΄Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ², ΠΊΠ°ΠΊ HTML ΠΈ JavaScript.
Π ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ:
4. RisingStack: ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Node.js
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://blog.risingstack.com/tag/node-hero-getting-started- with-node-js /
RisingStack ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Node.js. Π’Π°ΠΌ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠ°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΠΎ Node.js.ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ Ρ ΡΡΠ΅Π±Π½ΠΈΠΊΠ° Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
Π ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ:
- ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ
- ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ
- ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ
5. JavaTpoint
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://www.javatpoint.com/nodejs-tutorial
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ JavaTpoint ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ JavaTpoint, Π²ΠΊΠ»ΡΡΠ°Ρ Node.js, ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ Node.js.
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Ρ Node.js. Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ HTML ΠΈ JavaScript.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
6. Sitepoint
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://learnnode.com/
Sitepoint — ΡΡΠΎ ΡΠ΅Π½ΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΈ ΠΎΠΏΡΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠΈΡΡΡΡ ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ Node.js. ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Node.js, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ.
ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠ½ΠΈΠ³Π°ΠΌ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠ°ΠΌ. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΡΠΈ Π²Π΅ΡΡ ΠΊΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΡΠ΅Π±Π½ΡΠΌΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌΠΈ. ΠΠΎΠΌΠΈΠΌΠΎ Node.js, ΡΡΠΎΡ Π²Π΅Π±-ΡΠ°ΠΉΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ HTML, CSS, Bootstrap, JavaScript ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄ΡΡΠ³ΠΈΠΌ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Node ΠΈ ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
- ΠΠ°ΡΠΈΠ½Π°ΡΡΠΈΠΉ ΡΡΠ°ΡΠΈΡΡΡ
- ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SSL / TLS
- ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ
7.W3schools.com
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://www.w3schools.com/nodejs/nodejs_intro.asp
Π’Π΅, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΡΡΠ°ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠΌ Π² ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ ΡΡΠ΄Π°, ΡΡΠΎΠ±Ρ Π²ΠΎΠΏΠ»ΠΎΡΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΌΠ΅ΡΡΡ Π² ΠΆΠΈΠ·Π½Ρ. W3schools.com — ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Node.js. ΠΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅ΠΌΠ΅, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ Node.js, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ².
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΌΡ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΡΠΎΠΌ Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Java, Python, JavaScript ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
- ΠΠΎΠ΄ΡΠ»ΠΈ
- ΠΠΎΠ΄ΡΠ»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
8. Π£ΡΠ΅Π±Π½ΡΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΡ Point
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://www.tutorialspoint.com/nodejs/ nodejs_introduction.htm
ΠΠ°ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, Tutorials Point ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΊΡΡΡΡ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ ΡΡΠ΅Π΄Π°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Node.js.Node.js — ΡΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ JavaScript.
Tutorials point ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , ΡΡΠ΅Π΄Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- HTTP-ΠΌΠΎΠ΄ΡΠ»Ρ
- URL-ΠΌΠΎΠ΄ΡΠ»Ρ
- MySQL
9. Lynda.com
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https: // www.lynda.com/Node-js-training-tutorials/1283-0.html
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠ΅ΡΠ΅ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠΌ Π² Node.js, ΡΠΎ Lynda.com — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡΡΡΠΈΡ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ Π²Π°Ρ. ΠΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΡΠ΅Π±Π½ΡΠ΅ ΠΊΡΡΡΡ ΠΏΡΠ΅ΠΌΠΈΡΠΌ-ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Node.js. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° Lynda.com, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌ ΠΊΡΡΡΠ°.
Lynda.com ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΌΠ΅ΡΡΡΠ½ΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ ΠΏΡΠΎΠ±Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅
- ΠΠΈΠ·Π°ΠΉΠ½ API
- ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΡΠΎΠΊΠ΅ΡΠΎΠΌ.io
10. ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://blog.codeship.com/node-js-tutorial/
ΠΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΠΏΠΎ Node.js, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Node.js. . Π Π½Π΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Node.js Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΠΌΡ, Codeship Π·Π½Π°ΠΊΠΎΠΌΠΈΡ Π²Π°Ρ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ. ΠΠ°Π²Π΅ΡΡΠΈΠ² Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Node.js.
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠ΅Π±Π½ΡΡ ΠΏΠΎΡΠΎΠ±ΠΈΠΉ, ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΊΠ½ΠΈΠ³. ΠΡΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- Π€Π°ΠΉΠ»ΠΎΠ²ΡΠΉ Π²Π²ΠΎΠ΄ / Π²ΡΠ²ΠΎΠ΄
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ HTTP-ΡΠ΅ΡΠ²Π΅ΡΠ°
11. Udemy
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https: //www.udemy. com / the-complete-nodejs-developer-course-2/
Udemy ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Node.js, ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠΌ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π·Π½Π°Π½ΠΈΠΉ.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡ Node.js Π·Π° ΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠ΄Π΅ΡΡ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Node.js.
ΠΡΡ ΡΡΠ΅Π±Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Π²ΠΈΠ΄Π΅ 135 Π²ΠΈΠ΄Π΅ΠΎ Π»Π΅ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΡΡΠΈ 27 ΡΠ°ΡΠΎΠ² ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΏΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΠΊΡΡΡΠ°.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΡΠ½ΠΎΠ²Ρ
- ΠΠ΅Π±-ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
- ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ
12.Mozilla: Π²Π΅Π±-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ MDN
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/Introduction
ΠΠ· ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎ Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Express. ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° JavaScript ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ Π² ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Node.js. ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡ .
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΠ±Π·ΠΎΡ Π²Π΅Π±-ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Express
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Express / Node
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Node
13.ΠΠΎΠ΄ Π΄Π»Ρ Geek
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://codeforgeek.com/category/nodejs/
ΠΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½Π° Π¨Π°Ρ ΠΈΠ΄ΠΎΠΌ Π¨Π΅ΠΉΡ ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠΌ-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ. ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π±Π»ΠΎΠ³Π°ΠΌ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠ΅ Node.js. ΠΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΊ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΎΠΏΡΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ².
ΠΠ° ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΡΡΠΈΡΡ ΠΎΡ Π±Π°Π·ΠΎΠ²ΡΡ Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JWT ΠΈ ΡΠΎΠΊΠ΅Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ
- Π‘ΠΆΠ°ΡΠΈΠ΅ HTTP-Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΎΡΠ²Π΅ΡΠ°
- ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Nginx Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²
14.Airpair
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://www.airpair.com/javascript/node-js-tutorial
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΡΠ°ΡΡ Ρ Π½ΡΠ»Ρ ΠΈ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΊΡΠΎ-ΡΠΎ ΠΏΡΠΎΠ²Π΅Π» Π²Π°Ρ ΡΠ΅ΡΠ΅Π· Π²Π΅ΡΡ ΠΏΡΡΡ Node.js, ΡΠΎΠ³Π΄Π° Airpair ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ Π΄Π»Ρ Π²Π°Ρ. ΠΡΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Node.js.
ΠΠ½ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ Π²Π°Ρ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠ΅ΠΌΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΡΡΠΎΠ²Π½ΠΈ. ΠΡΠΎΡ ΡΡΠΎΠΊ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ Π²Π°ΠΌ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ ΠΠ»Π°Π΄ΡΡΡ.
Π ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ:
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Node.js ΠΈ NPM
- ΠΡΠ½ΠΎΠ²Ρ
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
15. Ilovecoding
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://ilovecoding.org/courses/nodejs
ΠΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΡΡΠ΅Π±Π½ΡΠΉ ΠΏΠ»Π°Π½ Node. .js. ΠΡ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ²Π΅Π΄ΡΡ Π²Π°Ρ ΡΠ΅ΡΠ΅Π· Π²ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΊΡΡΡΠ°. ΠΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π½Π°ΠΊΠΎΠΌΠΈΡ Π²Π°Ρ Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ³ΡΠ°Π»ΠΈ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ Π² ΡΡΠΏΠ΅Ρ Π΅ Node.js.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡ ΠΏΠΎ Node Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΎΡΡΠΎΠΉ HTTP-ΡΠ΅ΡΠ²Π΅Ρ, Π²Π΅Π±-ΠΏΠ°ΡΡΠ΅Ρ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.js. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²ΡΠ΅Π³ΠΎ 10 ΡΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΡΠ½ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π°.
Π ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ:
- ΠΠΎΠ΄ΡΠ»ΠΈ
- HTTP
- ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠ·Π»ΠΎΠ² (NPM)
16. Nodetuts
ΠΡΡΠΎΡΠ½ΠΈΠΊ: http://nodetuts.com/
ΠΠ°ΠΌ Π½Π°Π΄ΠΎΠ΅Π»ΠΈ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ? ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌ Π²Π°Ρ Ρ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΎΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Π°ΠΌ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΡΡΠ½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠ΅Π±Ρ.Nodetuts ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠΈ ΠΏΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Node.js. ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π±Π½ΡΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΡ Π² Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΊΠ½ΠΈΠ³Π°ΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Β«ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ Β» ΠΈ Β«Π‘Π΅ΡΠ΅Π²ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΡΒ».
Π ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ:
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- HTTP-ΡΠ΅ΡΠ²Π΅ΡΡ API
- TCP-ΡΠ΅ΡΠ²Π΅ΡΡ
17. CodeSchool
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://www.pluralsight.com/courses / code-school-real-time-web-with-nodejs
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΠΡΠ΅Π³ΠΎΠΌ ΠΠΎΠ»Π»Π°ΠΊΠΎΠΌ ΠΈ ΠΠ°ΡΠ»ΠΎΡΠΎΠΌ Π‘ΠΎΡΠ·ΠΎΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°.com. CodeSchool ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΊΡΡΡΡ ΠΏΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Node.js. ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ Node.js ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ (ΠΈΠ»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ).
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. CodeSchool ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅Π±Π½ΡΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ jQuery, Angular, Ruby on Rails ΠΈ Ρ. Π.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
- Π‘ΠΎΠ±ΡΡΠΈΡ
- ΠΠΎΡΠΎΠΊΠΈ
- ΠΠΎΠ΄ΡΠ»ΠΈ
18.NodeSchool
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://nodeschool.io/?utm_campaign=free-traffic&utm_source=solutions-softonic-com&utm_medium=referral
NodeSchool ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠΎΠΊΠΈ, ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΡ, ΡΠ΅ΠΌΠΈΠ½Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΊΠ°ΠΊ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΎΠΏΡΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ². ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅, ΡΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Node.js ΠΈ Π΄ΡΡΠ³ΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ².
ΠΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΡΠ΅ΠΌΠΈΠ½Π°ΡΡ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ Π½ΠΎΠ²ΡΡ Π½Π°Π²ΡΠΊΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡ ΡΡ ΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ².Π£ΡΠΎΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , Π²ΠΊΠ»ΡΡΠ°Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ, Π½Π΅ΠΌΠ΅ΡΠΊΠΈΠΉ, ΠΈΡΠ°Π»ΡΡΠ½ΡΠΊΠΈΠΉ, ΠΈΡΠΏΠ°Π½ΡΠΊΠΈΠΉ, ΡΡΠ°Π½ΡΡΠ·ΡΠΊΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ NPM
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²
- ΠΠ°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Markdown
19. GangBoard
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https: //www.gangboard. com / app-programming-scripting-training / nodejs-training
Gangboard ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 200 ΠΊΡΡΡΠΎΠ².ΠΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΊΡΡΡΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΊΠ°ΠΊ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΎΠΏΡΡΠ½ΡΡ Π»ΡΠ΄Π΅ΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΡΡΠΈΡΡ Node.js Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΡΠΎ ΠΏΠ»Π°ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠ°Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π°Π½ΡΡΠΈΡ ΠΈ Π·Π°Π½ΡΡΠΈΡ Π² ΠΊΠ»Π°ΡΡΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ. ΠΠΎΠΌΠΈΠΌΠΎ Node.js, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ Π±ΠΎΠ»ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ , AWS, Π²Π΅Π±-Π΄ΠΈΠ·Π°ΠΉΠ½Π΅, Java ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ .
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ: Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
- ΠΡΠ»Π°Π΄ΠΊΠ°
20.Mosh: ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://codewithmosh.com/p/the-complete-node-js-course
Mosh ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Node.js. ΠΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²ΠΈΠ΄Π΅ΠΎΠΊΡΡΡΡ, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Node.js. ΠΠΎΡ ΡΠ΄Π΅Π»ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ, Π° Π½Π΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π·Π½Π°Π½ΠΈΡΠΌ. ΠΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ 15 ΡΠ°ΡΠΎΠ² ΠΈ 220 ΡΡΠΎΠΊΠΎΠ² Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Node.js.
ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Mosh, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΡΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ±Π½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΠΎΠ΄ΡΠ»ΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°
- ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠ·Π»ΠΎΠ²
- Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ CRUD
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π°
21. ΠΠ»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠΎΠΌ
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https: // stackabuse. com / learn-node-js-a-beginners-guide /
Stack Abuse — ΡΡΠΎ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Node.js. ΠΠ½ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΎΡΠ½ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Node.js Π΅ΡΡΡ. ΠΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Ρ ΠΎΡΠΎΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π°.
ΠΡΠΎ ΡΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ Python ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ .
Π ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ:
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Node.js?
- REPL
- ΠΠ°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ
22. GeeksForGeeks
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https: // www.geeksforgeeks.org/tag/node-js/
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡ Node.js. Π Π½Π΅ΠΌ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠ±ΠΎΡΠ½ΠΈΠΊ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΊΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ. ΠΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ°Π·Π²Π΅ΡΡΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΡΠΎΠΌΠ½Π΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Node.js.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ Π²ΠΎΠΏΡΠΎΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²Π°ΡΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π½Π°Π²ΡΠΊΠΎΠ², Ρ.Π΅. Π±Π°Π·ΠΎΠ²ΡΠΉ, Π»Π΅Π³ΠΊΠΈΠΉ, ΡΡΠ΅Π΄Π½ΠΈΠΉ, ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΈΠ»ΠΈ ΡΠΊΡΠΏΠ΅ΡΡΠ½ΡΠΉ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΠ°Π΅Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ·ΡΠΊΠ°ΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Java, Python, SQL ΠΈ Ρ. Π.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
23. Coursera
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://www.coursera.org/learn/server-side-nodejs
ΠΡΠΎ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π²Π΅Π±-ΡΠ·ΡΠΊΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ HTML, CSS ΠΈ JavaScript. ΠΡΠΎΡ ΠΊΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π² Node.js.
ΠΠ½ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ HTTP ΠΈ HTTP. ΠΠΎΠ·ΠΆΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎΠ± Express Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².Π ΠΊΠΎΠ½ΡΡ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Node.js.
ΠΠ°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ββ7-Π΄Π½Π΅Π²Π½Π°Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π½Π°Ρ Π²Π΅ΡΡΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ. Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌ ΠΊΡΡΡΠ° ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠ°ΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΡΠΈ ΡΡΠΎΡ ΠΊΡΡΡ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΎΠ± ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°
- Backend as a Service (BaaS)
- Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Ρ MongoDB
24.ΠΠ½ΠΈΠ³Π° Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΏΠΎ Node
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://www.nodebeginner.org/
ΠΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΏΠΎ Node.js, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΠ°Π½ΡΡΠ»Π΅ΠΌ ΠΠΈΡΡΠ»ΠΈΠ½Π³ΠΎΠΌ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ — ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡ Π²Π°Ρ Ρ ΠΌΠΈΡΠΎΠΌ Node.js ΠΈ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Node.js. ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΎΠ±ΡΡΡΠ½ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΊΠΎΠ΄Π°.
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Node.js, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π½Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ.
Π ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ:
- JavaScript ΠΈ Node.js
- ΠΠ΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΠΠ°Π·ΠΎΠ²ΡΠΉ HTTP-ΡΠ΅ΡΠ²Π΅Ρ
25. edX
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https: //www.edx .org / course / Introduction-to-nodejs-0
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Node.js Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΡΠ΅Π±Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Node.js ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π½ΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ.edX — ΠΎΠ΄Π½Π° ΠΈΠ· Π»ΡΡΡΠΈΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ»Π°ΡΡΠΎΡΠΌ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ Ρ Node.js.
ΠΠ½ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ» Π²Π΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΡΡΡΠ° Π½Π° 5 ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ΅ΠΌΡ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΠ±Π·ΠΎΡ
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΈΠΌΠΏΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ NPM
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π΄Ρ Express Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°
26. Toptal
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js
Toptal ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π»Π΅Π³ΠΊΡΡ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΠΈ ΠΏΡΠΎΡΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ°ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ Node.js. ΠΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½ΡΠ»Ρ Π΄ΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΠ½ ΡΠΈΡΠΎΠΊΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΡΡΠ΅Π΄ΠΈ Π²ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠ΅ΡΡΡΡΠΎΠ².
Π ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ:
- ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠ·Π»ΠΎΠ²
- ΠΠΎΡΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ
- ΠΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ
27. JavaScript Is Sexy
ΠΡΡΠΎΡΠ½ΠΈΠΊ: http://javascriptissexy.com/learn- node-js-ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈ-Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡΡ /
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ Π±Π»ΠΎΠ³ Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Node.js framework. ΠΠ½ ΡΠΎΠ·Π΄Π°Π½ Π ΠΈΡΠ°ΡΠ΄ΠΎΠΌ ΠΠΎΠ²Π΅Π»Π»ΠΎΠΌ, ΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ AI humanity ΠΈ Bov academy. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΠΌ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΊΡΡΡΠ°.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ
- ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
- Π€ΡΠ½ΠΊΡΠΈΠΈ
28. LiveEdu.tv
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://www.liveedu.tv/guides/ x / node-js /
ΠΡΠΎΡ ΡΡΠ΅Π±Π½ΠΈΠΊ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΊΡΡΡΡ, ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , ΡΡΠ΅Π΄Π½ΠΈΡ ΠΈ ΠΎΠΏΡΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ².ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ Ρ Node.js, ΡΡΠΎΡ ΡΠ΅ΡΡΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°Ρ. Π Π½Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Node.js Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΡΠΎΠ²Π½ΡΠΌΠΈ Π½Π°Π²ΡΠΊΠΎΠ². ΠΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΡΠ°Ρ Π²Π°Ρ ΡΠ°Π±ΠΎΡΠ΅ Ρ Node.js. ΠΠ΄Π΅ΡΡ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ:
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
- ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ
- ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²
29. ΠΠ·ΡΡΠΈΡΡ Node.js
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https: / / www.youtube.com/watch?v=b8ry4Q8KeLo
ΠΡΠΎ ΠΎΠ±ΡΡΠ°ΡΡΠ΅Π΅ Π²ΠΈΠ΄Π΅ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ Suppoman. ΠΠ½ Π½Π°ΡΡΠΈΡ Π²Π°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ Node.js. Π Π½Π΅ΠΌ Π΅ΡΡΡ Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ , ΠΎΡ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² ΠΈ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄ΠΎ ΠΎΠΏΡΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ².
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΡΠ½ΠΎΠ²Ρ
- Π€ΡΠ½ΠΊΡΠΈΠΈ
- ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡ
30. ChalkStreet
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https: // www.chalkstreet.com/learn-node-js-from-scratch-applications-tutorial-for-beginners/
ΠΡΠΎ Π²ΠΈΠ΄Π΅ΠΎ-ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ Π½Π°ΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Node.js. ΠΠ½ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½ΡΠ»Ρ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΠΎ ΠΏΠ»Π°ΡΠ½ΡΠΉ Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ
- ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Stackify, Retrace, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Node.js-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΡΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π°ΡΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΊΠΎΠ΄Π° Prefix ΠΎΡ Stackify, ΡΡΠΎΠ±Ρ ΠΏΠΈΡΠ°ΡΡ Π»ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ°Π½ΡΠΈΠΈ. ΠΡΠ΅ΡΠΈΠΊΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ .NET, Java, PHP, Node.js, Ruby ΠΈ Python.
Π Π‘Π°Π³Π°Ρ ΠΡΠΎΡΠ°
Π‘Π°Π³Π°Ρ ΠΡΠΎΡΠ° — ΠΎΠΏΡΡΠ½ΡΠΉ ΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΡΠΎ Π·Π½Π°Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠΎΠ² C, C ++, python, PHP, Java.ΠΠ³ΠΎ ΡΡΠ°ΡΡΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ iSkysoft, Keepvid, Xpo2, Stackify, Entrepreneurbus ΠΈ Ρ. Π.ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌ NW.js Π½Π° IssueHunt. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Nw.js? | ΠΠ²ΡΠΎΡ IssueHunt | IssueHunt
NW.js — ΡΡΠΎ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° Chromium ΠΈ node.js. ΠΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ HTML, , CSS ΠΈ JavaScript.
ΠΠ½ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π ΠΎΠ΄ΠΆΠ΅ΡΠΎΠΌ ΠΠ°Π½Π³ΠΎΠΌ ΠΈΠ· Π¦Π΅Π½ΡΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Intel Π² ΠΠΈΡΠ°Π΅ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π» ΠΏΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΡΠ΅Π΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Node.js Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Webkit ΠΎΡ Chromium.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ nwjs! ΠΈ ΡΡΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΏΡΠΎΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ html / css ΠΈ bootstrap. Node.js Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ Chrome, Π ΠΎΠ΄ΠΆΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π² ΠΎΠΊΠ½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΌΠΎΠ³ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ΅ΡΠ΅Π· JavaScript API.
ΠΡΠΎΡ JavaScript API ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π°ΡΠΏΠ΅ΠΊΡΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π°, ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ΅Π½Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅.ΠΡΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½Π°Ρ ΠΌΠ΅ΡΠ° Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ.
ΠΠ΅Π±-ΠΊΠΎΠ½ΡΠ΅Π½Ρ index.html ΠΏΠΎΡ ΠΎΠΆ Π½Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ — Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ΄ ΡΠ·ΡΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ HTML Π΄Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠ΅Π³ ΡΡΡΠ»ΠΊΠΈ Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ CSS ΠΈ ΡΠ΅Π³ ΡΠΊΡΠΈΠΏΡΠ° Π΄Π»Ρ JavaScript. ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΎΠ½ ΠΏΠΎΡ ΠΎΠΆ Π½Π° Π²Π΅Π±-ΡΠ°ΠΉΡ, ΠΈ Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ ΠΎΡΠΊΡΡΠ»ΠΈ Π΅Π³ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ , ΠΎΠ½ Π±Ρ ΡΠ°Π±ΠΎΡΠ°Π» Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π» Π±Ρ Π² NW.js.
Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΡΡΠΈΠ»Π΅ΠΉ CSS Π΄Π»Ρ ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° index.html ΠΈ ΡΠ°ΠΉΠ» app.js Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° JavaScript , Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ Β«from NW.jsΒ» Π²Π½ΡΡΡΠΈ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ NW.js Π³ΠΎΡΠΎΠ²ΠΎ ΠΊ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΏΡΡΠ΅ΠΌ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ. ΡΡΠΎ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° package.json, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ°ΠΉΠ» index.html Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, Π°ΡΡΠΎΡΠΈΠΈΡΡΠ΅Ρ degreed, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΎΡΠ½ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΡΠ°Π½ΠΈΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-Π±ΡΠ°ΡΠ·Π΅Ρ, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.ΠΡΠ±ΠΎΠΉ, ΠΊΡΠΎ Π·Π½Π°Π΅Ρ JS, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ Π·Π½Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Node.js Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ, ΠΎΡ Π»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ Π΄ΠΎ ΠΊΡΡΠΏΠ½Π΅ΠΉΡΠΈΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, Π²ΠΎΠΏΠ»ΠΎΡΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΌΠ΅ΡΡΡ Π² ΠΆΠΈΠ·Π½Ρ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Nw.js ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΌΠΈΡΡ ΠΎ ΡΠ²ΠΎΠΈΡ ΡΠ²ΠΎΡΠ΅Π½ΠΈΡΡ .
ΠΡΠΈΠΌΠ΅ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π±Π΅ΡΠ΅Π΄Ρ Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡΠΌΠΈ, ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Node.js. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Nw.js ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Nw.js.
Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠΎ Node.js ΠΎΡΠ΅Π»ΠΎΠΌΠ»ΡΠ΅Ρ. ΠΡΠ»ΠΎ ΡΠΊΠ°ΡΠ°Π½ΠΎ Π΄Π²Π°Π΄ΡΠ°ΡΡ ΠΏΡΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² Node.js Π² 2017 Π³ΠΎΠ΄Ρ, ΠΏΡΠΈΡΠ΅ΠΌ Π² Π΄Π΅Π½Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° ΠΈΠ· Π½ΠΈΡ . Π ΡΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° — ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ. Π‘ΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΡΠΈΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½Ρ.
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄Π°Π½Π½ΡΠΌ, ΡΠΎΠ±ΡΠ°Π½Π½ΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ builtinnode, ΡΠΏΡΠΎΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Node.js ΡΠΆΠ΅ ΠΏΡΠ΅Π²ΡΡΠΈΠ» ΡΠΏΡΠΎΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² java. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Nw.js ΡΠΆΠ΅ ΠΏΡΠΈΠ½ΡΡ ΠΈ ΠΏΡΠΎΠΏΠ°Π³Π°Π½Π΄ΠΈΡΡΠ΅ΡΡΡ ΠΊΡΡΠΏΠ½Π΅ΠΉΡΠΈΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠΌΠΈ Π½Π° ΠΠ΅ΠΌΠ»Π΅, Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΎΠΌΠ½Π΅Π½ΠΈΠΉ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π²Π΅Π΄ΡΡΠ΅ΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Π½Π° Π΄ΠΎΠ»Π³ΠΈΠ΅ Π³ΠΎΠ΄Ρ.
NW.js Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Chromium, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Chrome, Chrome.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, API ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΏΠ»Π°Π³ΠΈΠ½ NaCl ΠΈ Pepper, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡΡΠΈΠΊ PDF, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΏΠ΅ΡΠ°ΡΠΈ, ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΈ Ρ. Π.
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΠΌΠΎΠ΄Π½ΡΡ HTML5, CSS3, JS ΠΈ WebGL.
- ΠΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Node.js API.
- Π Π°Π·ΡΠΌΠ½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ: Node ΠΈ WebKit ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅.
- ΠΡΡΠΌΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ; ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΡΡΠ΅ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅
- ΠΡΠΎΡΡΡΠ΅ Π΄Π»Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΠ΅Π³ΠΊΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ windows, OS, linux
Π‘ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠ°ΠΊ ΡΡΠΎ, NW.js — ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Π·Π½Π°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ·Π½ΡΡΡΠΈ, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ.
ΠΠ½ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ GitHub, Π²ΠΊΠ»ΡΡΠ°Π΅Ρ:
- 34000+ Π·Π²Π΅Π·Π΄ΠΎΡΡΡΠΎΠ²
- 1800+ Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Π΅ΠΉ
- 3700+ ΡΠΎΡΠΊΠΎΠ²
- ΠΏΠΎΡΡΠΈ 2000 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
- 55 ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ²
ΠΡΡΡ 100+ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ NW.js.
- Π£Π·Π΅Π».js ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ
- Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ»Π°ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ
- Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅
- Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΈΠ½ΡΠ΅ΡΠΎΠ²)
- Π·Π½Π°ΡΠΊΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ
- Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²
- ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ (ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ URL-Π°Π΄ΡΠ΅ΡΠ° Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ )
- Π²ΡΠ±ΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²ΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π° (ΠΊΠ½ΠΎΠΏΠΊΠΈ Π·Π°ΠΊΡΡΡΠΈΡ, ΡΡΡΠΎΠΊΠ° ΠΌΠ΅Π½Ρ) ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ
Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ²Π½Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΡΠ΅ΠΌΡ Π±Ρ Π½Π°ΠΌ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠ½Π°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ NW.Π‘ΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² js? π
Learn Node — Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·ΡΡΠΈΡΡ Node.js, Express, MongoDB ΠΈ Π΄ΡΡΠ·Π΅ΠΉ
ΠΡΠΎ Π½ΠΎΠ²ΠΈΠ½ΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ ΠΎΡΠ·ΡΠ²ΠΎΠ². ΠΠΎ Π²ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡΡΠ½ΡΠ΅ Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΠ΄ΠΈ ΡΠΊΠ°Π·Π°Π»ΠΈ ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΌΠΎΠΈΡ ΠΊΡΡΡΠ°Ρ :
ΠΠ°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ» React For Beginners, ΠΈ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ Π΅Π³ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ. Π£ΡΡ ΠΏΠΎΡΡΡΡΠ°ΡΡΠΈΠΉ, ΠΈ ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ https://t.co/FbWwqxmVap
— ΠΡΠ½ ΠΠ΅Π½Π½ΠΈ (@dandenney) 21 ΠΌΠ°ΡΡΠ° 2017 Π³.
ΠΡΠ°ΠΊ, Ρ ΠΠΠΠ Π²ΠΈΠ΄Π΅ΠΎ Π² https: // t.co / 2oCAu8nwTk ΠΎΡ @wesbos, ΠΎΡΠ΄Π°ΠΉΡΠ΅ Π»ΡΡΡΠΈΠ΅ Π΄ΠΎΠ»Π»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΏΠΎΡΡΠ°ΡΠΈΠ» Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π³Π½ΠΈΠ΅Π½ΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ² Π·Π° Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ!
— ΠΠΈΠ»Π»ΠΎΠ½ ΠΠ΅ΠΉΠ»ΠΈ (@d__bailey) 5 Π΄Π΅ΠΊΠ°Π±ΡΡ 2016 Π³.
ΠΠΎΡΠΌΠΎΡΡΠ΅Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΡΡΡΠΎΠ² ΠΏΠΎ #reactjs, ΠΏΠΎΠΊΠ° Ρ Π½Π΅ ΠΎΡΠ²ΠΎΠΈΠ» ΠΊΡΡΡ @wesbos https://t.co/UKuLiRdTHh, ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π»ΠΊΠ°Π΅Ρ π
— nucube.io (@nuCubeDesign) 2 Π΄Π΅ΠΊΠ°Π±ΡΡ, 2016
ΠΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊΠΎΠ² es6.io, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ @wesbos, Ρ Π»ΡΠ±Π»Ρ ΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠΈ! πππ #js #learning
— Hinerangi Courtenay (@sky_maiden) 8 Π΄Π΅ΠΊΠ°Π±ΡΡ 2016 Π³.
Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠ½ΡΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΠ΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π₯ΠΠ ΠΠ¨ΠΠ ΠΊΡΡΡΡ @wesbos… ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΡΡΠ΄Π΅Π½Ρ, ΡΡΠΈ ΠΊΡΡΡΡ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½Ρ beyond
— ΠΡΠ²ΠΈΠ΄ ΠΡΡΠΈΡΠΎΠ½ (@mathesondavid) 13 Π΄Π΅ΠΊΠ°Π±ΡΡ 2016 Π³.
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ» ΠΊΡΡΡ @wesbos ES6, ΠΈ Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π±ΡΡΡ Π² ΠΊΡΡΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΠΎ Javascript. ΠΠ½ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΡΠΈΡΠ΅Π»Ρ.
— ΠΠ°ΡΡΠΈ Π ΠΈΠ²Π· (@pazzypunk) 15 Π΄Π΅ΠΊΠ°Π±ΡΡ 2016 Π³.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΡ ΡΠΎΠΆΠ΄Π΅ΡΡΠ²Π΅Π½ΡΠΊΠΎΠ³ΠΎ Π΄Π΅Ρ. ΠΏΠΎΠΊΡΠΏΠΊΠ° @wesbos ES6 Tuts
ΠΡΠΎΡ 30-Π΄Π½Π΅Π²Π½ΡΠΉ ΠΊΠΎΠ½ΠΊΡΡΡ JS Π²ΠΎΠ·ΡΠΎΠ΄ΠΈΠ» Π³Π»ΡΠ±ΠΎΠΊΡΡ Π»ΡΠ±ΠΎΠ²Ρ ΠΊ JavaScript # javascript
— ΠΠΆΠΎΡ TechDev Walker (@JWTechDev) 21 Π΄Π΅ΠΊΠ°Π±ΡΡ 2016 Π³.
ΠΠ½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΡΡ ΠΊΡΡΡ Es6 ΠΎΡ @wesbos.Π’ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ. ΠΡΠΈΠ½Π΅ΡΠΈΡΠ΅ ΡΠ΅Π°ΠΊΡΠΈΡ!
— ΠΠΈΠ½Ρ ΠΠΈ (@ vincelee888) 21 Π΄Π΅ΠΊΠ°Π±ΡΡ 2016 Π³.
ΠΠ΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΊΡΡΡ React For Beginners ΠΎΡ @ wesbos: https://t.co/0l4TXhkAwz ΠΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ, ΠΈ Π²Ρ ΡΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅ ΡΠ΅Π±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ.
— ΠΡΠ²ΠΈΠ΄ ΠΠ΅ΠΉΠ·Π΅Ρ (@davidyeiser) 21 Π΄Π΅ΠΊΠ°Π±ΡΡ 2016 Π³.
Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ @wesbos # js30 Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, Ρ ΠΏΠΎΠ΄Π½ΡΠ» ΡΠ²ΠΎΠΉ javascript Π² 10 ΡΠ°Π· Π²ΡΠ΅Π³ΠΎ Π·Π° Π½Π΅Π΄Π΅Π»Ρ: https://t.co/eJfnddbkTO
— ΠΠ΅Π½Π΄ΠΆΠ°ΠΌΠΈΠ½ Π ΠΎΠ±Π΅ΡΡΡΠΎΠ½ (@Banquos_Ghost) 11 ΡΠ½Π²Π°ΡΡ 2017 Π³.
ΠΠ΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡ ΡΡΠΎΡ ΠΊΡΡΡ ΠΎΡ @wesbos! ΠΠΎΠ²ΡΡΠ°ΠΉΡΠ΅ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π° ES6.https://t.co/8gXvZTISE5
— ΠΠΈΠΊΡΠΎΡ ΠΠ΅Ρ ΠΈΠ° γ (@_victormejia) 13 ΡΠ½Π²Π°ΡΡ 2017 Π³.
@wesbos Π²Π°Ρ ΠΊΡΡΡ es6.io Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡ! Π― ΡΠ½ΠΎΠ²Π° ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΠ» ΠΊΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ°ΠΌΡΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΡ ΡΠΎΠ²Π΅ΡΠΎΠ². ΠΡΠ΅ ΡΠ°Π· ΡΠΏΠ°ΡΠΈΠ±ΠΎ!
— Π Π°ΠΉΠ°Π½ Π£ΠΈΠ» (@ryan_weal) 13 ΡΠ½Π²Π°ΡΡ 2017 Π³.
ΠΡΠΎΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ js Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΡ Ρ Π±Ρ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠΎΠ³ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΡΡ Π½Π°Π·Π°Π΄. ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠΉΡΠ΅ @wesbos ΠΈ Π΅Π³ΠΎ https://t.co/FvSrWK9hDz ΠΊΡΡΡ.
— ΠΠΆΠ΅ΡΡΠΈ Π£ΡΠΉΡΡ (@JesseWaites) 18 ΡΠ½Π²Π°ΡΡ 2017 Π³.
Π½Π° ΠΏΠΎΠ»ΠΏΡΡΠΈ ΠΊ ΠΊΡΡΡΡ es6 Π΄Π»Ρ Π²ΡΠ΅Ρ (es6.io) ΡΠΏΠ°ΡΠΈΠ±ΠΎ @wesbos, ΡΡΠΎ Π·Π΄ΠΎΡΠΎΠ²ΠΎ
— ΠΠ°Π±ΠΎΡ ΠΠΎΠ»ΡΠ½Π°Ρ (@ gabormolnar92) 16 ΡΠ΅Π²ΡΠ°Π»Ρ 2017 Π³.
ΠΠ½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ ΠΈΠ·ΡΡΠ°ΡΡ ES6 JavaScript ΠΎΡ @wesbos https://t.co/TS0byfbfBV, ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΎΡ … ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π² ΡΠ²ΠΈΡΡΠ΅ΡΠ΅!
— ΠΡΡΠΈ ΠΠ΅ΠΉΠ½ (@lucykbain) 16 ΡΠ΅Π²ΡΠ°Π»Ρ 2017 Π³.
Π― Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΡΡΡ ΠΊΡΡΡΠΎΠΌ ES6 Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΡ @wesbos. Π‘ΡΠΏΠ΅Ρ ΡΠ΅ΡΠΊΠ°Ρ ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ https://t.co/w7shQv0t9f
— ΠΡΡΡ ΠΠΈΠ±Π±Ρ (@ mgibbs189) 20 ΠΈΡΠ»Ρ 2016 Π³.
ΠΠ½Π΅ ΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°Ρ JS, Π½ΠΎ ΡΡΠΎΡ ΠΊΡΡΡ ES6 ΠΎΡ @wesbos ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΠΎΡΠ°ΠΆΠ°Π΅Ρ ΠΌΠ΅Π½Ρ.Π― ΠΏΡΠΎΡΠ΅Π» ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅ΡΡ. ππ
— Π‘Π°ΠΉΠΌΠΎΠ½ ΠΡΠ°Ρ Π»ΠΈΠΎΡΠΈΡ (@simonswiss) 20 ΠΈΡΠ»Ρ 2016 Π³.
Π― ΠΊΡΠΏΠΈΠ» Π΅Π³ΠΎ ΠΈ ΠΏΡΠΎΡΠ΅Π» ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±ΠΎΡΠ°ΠΌΠΈ, ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ! @wesbos https://t.co/RGvbPlGeQC
— jonas (@jnsdls) 21 ΠΈΡΠ»Ρ 2016 Π³.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ # ES6 Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π³ΠΎΠ΄Π° ΠΈ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π²ΡΡΡΠΈΠ» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΡΡΠ½ΡΡ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² ΠΈΠ· Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² @ wesbos: https://t.co/wodHSSxNFL
— ΠΡΠΈΡ ΠΡΡ Π΅Π»Π΅Ρ (@cwbuecheler) 19 ΠΈΡΠ»Ρ , 2016
Π― Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ «ΠΡΡΡ ES6 Π΄Π»Ρ Π²ΡΠ΅Ρ » ΠΎΡ @wesbos, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π½ΡΡΡ Π²Π°ΡΠΈ Π½Π°Π²ΡΠΊΠΈ #javascript Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ https: // t.co / 7CViajmLiB #fan
— Raymon Schouwenaar (@rsschouwenaar) 26 ΠΈΡΠ»Ρ 2016 Π³.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π½Π°ΡΠ°Π» ΠΊΡΡΡ # ES6 ΠΎΡ @wesbos. ΠΠΎΠ»ΡΠ·ΡΡΡΡ ΠΈΠΌ ΡΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π², Π½ΠΎ ΠΊΠΎΠ΅-ΡΠ΅ΠΌΡ Π½Π°ΡΡΠΈΠ»ΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°Π½ΡΡΠΈΠΈ! https://t.co/Rx6B4Otazsπ
— Π‘ΡΠΌΡΡΠ» ΠΡΠ΄ΠΈ (@sgoudie) 21 ΠΈΡΠ»Ρ 2016 Π³.
@wesbos Π― ΠΏΠ°ΡΠ° Π²ΠΈΠ΄Π΅ΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΡΡΡΠ΅ ΡΠ΅Π°ΠΊΡΠΈΠΈ, ΡΠ½ΠΈΠΌΠ°Ρ ΡΠ»ΡΠΏΡ, Π΄ΡΡΠ³ ΠΌΠΎΠΉ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π°Π²ΡΠΊ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΡΠ½ΡΡΡ Π»ΡΠ΄ΡΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π²Π΅ΡΠΈ, ΡΡΠΎ ΠΏΡΠΈΡΡΠ½ΠΎ.
— ΠΠ°ΡΠΊΠΎ (@ultrox) 28 ΠΈΡΠ»Ρ 2016 Π³.
π₯π₯ ES6 For Every from @wesbos — ΡΡΠΎ Π²ΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ π
— ΠΡΠΌΠ΅Π½Π΄ ΠΠ°ΡΠΈ (@numproc) 2 Π°Π²Π³ΡΡΡΠ° 2016 Π³.
ΠΠΎΡΠΎΠ²ΠΈΠΌΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈΠ· JS / jQuery Π½Π° Π²ΡΠ΅ ES6 Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ @wesbos https: // t.co / w5fuTmz3wh
— ΠΠ°ΠΉΠ» ΠΠ°ΠΉΡ (@kyleknighted) 27 ΠΈΡΠ»Ρ 2016 Π³.
π₯ ΠΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΡΡΡ ES6 ΠΎΡ @wesbos … ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ Π»ΡΠ±ΠΈΠ» Π²ΡΠ΅ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΊΡΡΡΡ … ΠΈΠ΄ΠΈ https://t.co/viO2gBeXgk, ΠΎΠ½ΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠΈΡ!
— Π€Π°ΡΠ΅Ρ ΠΠ°ΡΠ΅ΠΊ (@faresite) 21 ΠΈΡΠ»Ρ 2016 Π³.
@wesbos Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ https://t.co/qrcx2Zd0Qu — ΡΡΠΎ Β«Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΊΡΠΈΠ½ΠΊΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π·Π°ΡΡΠ°Π²ΠΈΠ» ΠΌΠ΅Π½Ρ Π·Π°ΡΠ½ΡΡΡΒ», ΡΡΠΎ ΠΏΡΠ°Π²Π΄Π°, Ρ ΡΠΌΠΎΡΡΠ΅Π» Π²ΡΡ Π½ΠΎΡΡ! π
— ΠΡΡΠ½Π°Π½ Π‘ΠΊΠ°Π½ΡΠ°Π½ (@askalot) ΠΈΡΠ»Ρ 20, 2016
Π£Π·Π΅Π».js ΠΈ Raspberry Pi
Raspberry Pi — ΡΡΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ.
Π‘ Node.js Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΎΡΠΈΡΡ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΈ Ρ Raspberry Pi.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Raspberry Pi?
Raspberry Pi — Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ, Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ ΠΈ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΠΊΡΠ΅Π΄ΠΈΡΠ½Π°Ρ ΠΊΠ°ΡΡΠ°. ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°.
ΠΠ½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Raspberry Pi Foundation ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΌΡΠΌ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ.
Π¦Π΅Π»ΡΡ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»ΡΠΠ±Π΅Π½Π° ΠΠΏΡΠΎΠ½Π° Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΠΎΠ³ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ»ΡΡΡΠΈΠ»ΠΎ Π±Ρ Π½Π°Π²ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌ ΠΈ ΡΠ΅Π½Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΠ½ ΡΡΠ°Π» ΡΠ΅Π½ΡΡΠΎΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΌΠ°ΡΡΠ΅ΡΠΎΠ², ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΠ½ΡΡΠ·ΠΈΠ°ΡΡΠΎΠ² ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠΈ.
Raspberry Pi ΠΈ Node.js
Raspberry Pi ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΄ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² GPIO (Π²Π²ΠΎΠ΄ / Π²ΡΠ²ΠΎΠ΄ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ) ΠΈ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ΅Π°Π»ΡΠ½ΡΠΌ ΠΌΠΈΡΠΎΠΌ. ΠΡΠΎΡ ΡΡΠ΅Π±Π½ΠΈΠΊ ΠΌΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Ρ Node.js.
Π§ΡΠΎ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ?
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Raspberry Pi.Π Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Raspberry Pi 3, Π½ΠΎ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π²Π΅ΡΡΠΈΠΉ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅:
- ΠΠΎΠΌΠΏΡΡΡΠ΅Ρ Raspberry Pi
- ΠΠ°ΡΡΠ° ΠΏΠ°ΠΌΡΡΠΈ MicroSD (ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ 10 Ρ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ 16 ΠΠ ΠΈΠ»ΠΈ Π²ΡΡΠ΅)
- ΠΠ΄Π°ΠΏΡΠ΅Ρ ΠΊΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ MicroSD Π½Π° SD (ΠΎΠ±ΡΡΠ½ΠΎ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΊΠ°ΡΡΡ MicroSD) ΠΠ»ΠΎΠΊ ΠΏΠΈΡΠ°Π½ΠΈΡ
- Micro USB Π΄Π»Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ Raspberry Pi (2,5 Π ΠΈΠ»ΠΈ Π²ΡΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ)
- ΠΠ°Π±Π΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ WiFi / Ethernet Π΄Π»Ρ Raspberry Pi (Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ Raspberry Pi 3 ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ Wi-Fi)
- Π Π°Π±ΠΎΡΠΈΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Ρ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΠΌ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΡ ΠΏΠ°ΠΌΡΡΠΈ SD (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΠ‘ (ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°) Π΄Π»Ρ Raspberry Pi Π½Π° ΠΊΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ).Π Π½Π°ΡΠ΅ΠΌ ΡΡΠ΅Π±Π½ΠΈΠΊΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Windows, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Mac ΠΈΠ»ΠΈ Linux, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅
- HDMI-ΠΌΠΎΠ½ΠΈΡΠΎΡ, USB-ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° (ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° Raspberry Pi)
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π³Π»Π°Π²Π°Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°ΡΡΠΈΠΊΠΈ ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΡΡΠΎ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ Raspberry Pi. ΠΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΈΡ ΠΊΠ°ΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π³Π»Π°Π²Π°Ρ .
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ Raspberry Pi, Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Ρ Raspbian, ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ SSH, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ°Π³Ρ Β«Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Node.js Π½Π° Raspberry Pi Β».
ΠΠ°ΠΏΠΈΡΡ ΠΎΠ±ΡΠ°Π·Π° ΠΠ‘ Raspbian Π½Π° ΠΊΠ°ΡΡΡ MicroSD
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Raspberry Pi Π΄Π»Ρ ΡΠ΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΠ‘. ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ.
Raspbian — ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° Debian Linux, ΠΈ ΠΎΠ½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Raspberry Pi.
ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΎΠ±ΡΠ°Π· Raspbian Ρ https://www.raspberrypi.org/downloads/raspbian/ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ.
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΡ «LITE» Π² Π½Π°ΡΠ΅ΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Raspberry Pi ΠΊΠ°ΠΊ Π±Π΅Π·Π³ΠΎΠ»ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ (ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΡΠ΅ΡΠ΅Π· SSH, Π½Π΅ ΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ ΠΊ Π½Π΅ΠΌΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° / Π΄ΠΈΡΠΏΠ»Π΅ΠΉ).ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ Π²Π΅ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΎΡΠΈΡΠ΅, Π½ΠΎ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ «LITE» Π²Π΅ΡΡΠΈΠΈ.
ΠΡΡΠ°Π²ΡΡΠ΅ ΠΊΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ MicroSD Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ (ΡΠ΅ΡΠ΅Π· Π°Π΄Π°ΠΏΡΠ΅Ρ SD, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΡΠΉ). ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Etcher — ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΊΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ. Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Etcher Ρ: https://etcher.io/
ΠΡΡΠΊΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°:
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΡΠ±ΡΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅Β» ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ zip-ΡΠ°ΠΉΠ» Raspbian, Π²Ρ ΡΠΊΠ°ΡΠ°Π»ΠΈ.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΡΠ±ΡΠ°ΡΡ Π΄ΠΈΡΠΊΒ» ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΊΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ «Flash!» ΠΊΠ½ΠΎΠΏΠΊΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Etcher Π·Π°ΠΊΠΎΠ½ΡΠΈΡ Π·Π°ΠΏΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ΄Π°Π»ΠΈΡΠ΅ Π΅Π³ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°.
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Raspberry Pi
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ Raspberry Pi ΠΊ Π·Π°Π³ΡΡΠ·ΠΊΠ΅, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ:
- ΠΡΡΠ°Π²ΡΡΠ΅ ΠΊΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ MicroSD Π² Raspberry Pi
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ USB-ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΊΠ°Π±Π΅Π»Ρ HDMI
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ USB-Π°Π΄Π°ΠΏΡΠ΅Ρ Wi-Fi (ΠΈΠ»ΠΈ ΠΊΠ°Π±Π΅Π»Ρ Ethernet).ΠΡΠΎΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎΡ ΡΠ°Π³, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Raspberry Pi 3
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΏΠΈΡΠ°Π½ΠΈΡ micro USB
- Raspberry Pi ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ
ΠΠΎΠ³Π΄Π° Raspberry Pi Π·Π°Π²Π΅ΡΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΡ, Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: pi
ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ: raspberry
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠΈ Π½Π° Raspberry Pi
ΠΡΠ»ΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°Π±Π΅Π»Ρ Ethernet Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Raspberry Pi ΠΊ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ ΡΠ°Π³.
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Raspberry Pi 3 ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΠΠ°ΠΉ-ΡΠ°ΠΉ.
ΠΠ°ΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΡ ΡΠ΅ΡΠ΅ΠΉ:
pi @ raspberrypi: ~ $ sudo iwlist ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ wlan0
ΠΠ΄Π΅ΡΡ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΅ΡΠΈ Wi-Fi. (ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ Ρ Π²Π°Ρ WiFi ΡΠ°Π±ΠΎΡΠ°Π΅Ρ)
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» wpa-supplicant, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ:
pi @ raspberrypi: ~ $ sudo Π½Π°Π½ΠΎ / ΠΈ Ρ.Π΄. / wpa_supplicant / wpa_supplicant.conf
ΠΡΠΎ ΠΎΡΠΊΡΠΎΠ΅Ρ ΡΠ°ΠΉΠ» Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Nano. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π²Π½ΠΈΠ·Ρ
ΡΠ°ΠΉΠ»Π° (ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ wifiName
ΠΈ wifiPassword
Π½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ ΡΠ΅ΡΠΈ ΠΈ
ΠΏΠ°ΡΠΎΠ»Ρ):
ΡΠ΅ΡΡ = {
ssid = «wifiName»
psk = «wifiPassword»
}
ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β« Ctrl + x
Β», ΡΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ΄. ΠΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Β« y
Β» ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅ ΠΈΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Β« Enter
Β».
Π ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ Raspberry Pi:
pi @ raspberrypi: ~ $ sudo reboot
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ½ΠΎΠ²Π° Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ WiFi ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
pi @ raspberrypi: ~ $ ifconfig wlan0
ΠΡΠ»ΠΈ Wi-Fi ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΊΠ»ΡΡΠ°ΡΡ IP-Π°Π΄ΡΠ΅Ρ, ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π° ΡΡΠΎΡ:
inet Π°Π΄ΡΠ΅Ρ: 192.168.1.50
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠΎΡ IP-Π°Π΄ΡΠ΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Raspberry Pi. ΡΠ΅ΡΠ΅Π· SSH.
ΠΠΊΠ»ΡΡΠΈΡΡ SSH, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ Ρ ΠΎΡΡΠ° ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°Ρ Raspberry Pi ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΡ, ΠΏΠΎΡΠ° Π²ΠΊΠ»ΡΡΠΈΡΡ SSH.
SSH ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Raspberry Pi Π±Π΅Π· ΠΌΠΎΠ½ΠΈΡΠΎΡΠ° ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ Π½Π΅ΠΌΡ.
(ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ SSH-ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΌ ΠΎΡ Raspberry Pi. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ PuTTY Π΄Π»Ρ Windows)
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Raspberry Pi:
pi @ raspberrypi: ~ $ sudo raspi-config
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ΅Π½Ρ:
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΎΠΏΡΠΈΡ 5 ΠΠΏΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
:
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΎΠΏΡΠΈΡ P2 SSH
, ΡΡΠΎΠ±Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ SSH:
ΠΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ
, ΡΡΠΎΠ±Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ SSH:
SSH ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½, ΠΈ Π²Ρ ΡΠ½ΠΎΠ²Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ 1 ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΈ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ, Π½ΠΎ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ, ΡΡΠΎ Π²Ρ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅:
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠ°ΡΠΎΠ»Ρ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ 2 ΠΠΌΡ Ρ
ΠΎΡΡΠ°
ΠΈ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ Ρ
ΠΎΡΡΠ°:
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΠΌΡ Ρ ΠΎΡΡΠ°, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ.
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΊΡΠΎΠ΅ΠΌ ΠΌΠ΅Π½Ρ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ Finish
Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ.ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΠ°
, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ Raspberry Pi.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΎΡ Raspberry Pi, ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΠΉΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° SSH.
ΠΡΠΊΡΠΎΠΉΡΠ΅ PuTTY, Π²Π²Π΅Π΄ΠΈΡΠ΅ IP-Π°Π΄ΡΠ΅Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Raspberry Pi ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΡΠΊΡΡΡΡ
:
ΠΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ pi
ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΠΊΡΡ ββΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ: (ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ w3demopi Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ ΠΎΡΡΠ°)
pi @ w3demopi: ~ $
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Raspberry Pi Π² Β«ΡΠ΅ΠΆΠΈΠΌΠ΅ Π±Π΅Π· Π³ΠΎΠ»ΠΎΠ²ΡΒ», ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΈΠ»ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°.Π Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Wi-Fi, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΠΊΠ°Π±Π΅Π»Ρ Ethernet, ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°Π±Π΅Π»Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ!
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Node.js Π½Π° Raspberry Pi
ΠΠΎΡΠ»Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Raspberry Pi Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π· SSH ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Raspberry Pi Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ.
ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ:
pi @ w3demopi: ~ $ sudo apt-get update
ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ:
pi @ w3demopi: ~ $ sudo apt-get dist-upgrade
Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Raspberry Pi Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
Π§ΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Node.js, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pi @ w3demopi: ~ $ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash —
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ, Π·Π°ΠΏΡΡΡΠΈΠ²:
pi @ w3demopi: ~ $ sudo apt-get install -y nodejs
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΈ Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ Node.js Ρ:
pi @ w3demopi: ~ $ node -v
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ Raspberry Pi ΠΈ Node.js
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ Raspberry Pi Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ Node.js!
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Node.js, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ Π½Π°ΡΠ΅ΠΌΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ: https://www.w3schools.com/nodejs/
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ ΠΎ GPIO ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ Node.js.
node js Π΄Π»Ρ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΎΡ Slack. ΠΠ°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²Π°ΠΌΠΈ ΠΊΠΎΠ΄ JavaScript Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠ°ΠΊ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΡΠ°ΠΊ ΠΈ ΠΊ Node.js. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π‘ΡΠΊΠΎΠ½ΠΎΠΌΡΡΠ΅ Π΄ΠΎ 90% Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠ½ΠΈΠ³Π°Ρ ΠΏΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ΅ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΡΡΡ Π½Π° AWS Lift-and-Shift, 7 Π»ΡΡΡΠΈΡ ΠΊΡΡΡΠΎΠ² ΠΏΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ° Π² 2019 Π³ΠΎΠ΄Ρ, ΠΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π² 2019 Π³.), Lyft junior ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π·Π°ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ 200 000 Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π² Π³ΠΎΠ΄. ΠΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π½ΠΎ Node-WebKit ΡΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π±ΠΎΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Python Π·Π° 10 ΠΌΠΈΠ½ΡΡ. Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΎΡ Slack.Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: npm install —save express docxtemplater pizzip body-parser. ΠΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅, ΡΡΠΎΠ±Ρ: ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ°Π»Π΅ Azure. Express Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ … ΠΠΎ Π΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π·Π° Π²Π°Ρ. ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» node-webkit ΠΈ Π²ΡΠ·Π²Π°ΡΡ Π΅Π³ΠΎ ΡΠΎ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Electron, Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΎ Node.js (ΡΠ΅Π³ΠΎ ΠΌΠ½Π΅ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ). ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π― Ρ ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ ΠΌΠΎΠ³Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ, Π½ΠΎ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠ΅Π±Π½ΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠ²ΡΠ·Π°Π»ΠΈ Π·Π΄Π΅ΡΡ, Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ Google Cloud Platform Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Electron, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²Ρ ΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Microsoft Graph, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΡΠΎΠΊ ΠΊΠΎΠ΄Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Ρ PKCE.ΠΡΠ»ΠΈΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°! ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π° Π³Π΄Π΅-ΡΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΡΡ API ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°Π³ΡΡΠ·ΠΊΠ°, Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡβ¦ ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ (15 ΡΠ½Π²Π°ΡΡ 2015 Π³.) — Π§Π΅ΡΠ΅Π· Π½Π΅Π΄Π΅Π»Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° node-webkitβ¦ Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΏΠΎΠΊ. ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΠΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°, HTML, CSS, JavaScript. ΠΡΠΎ ΠΎΠ±Π·ΠΎΡ ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ Linux, Mac ΠΈ Windows Ρ ΠΏΠΎΠΌΠΎΡΡΡ NW.js. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Express, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ WebSQL, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ node-webkit. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅: ΡΡΠΎ ΠΎΡΠΊΡΠΎΠ΅Ρ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ node-webkit ΠΈ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΠΊΡΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅. Π€Π°ΠΉΠ» template.docx Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΡΠΌΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡΠΎΠΌΡ ΡΠ°ΠΉΡΡ, ΠΏΠΎΠ΄Π΅Π»ΠΈΠ²ΡΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ Π½ΡΠ°Π²ΡΡΡΡ Π² ΡΡΠΎΠΌ Π±Π»ΠΎΠ³Π΅, Π² Π²Π°ΡΠΈΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡΡ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Facebook ΠΈ Instagram, ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠΈΠ² ΡΠ²ΠΎΠΈΠΌ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΌ Π΄ΡΡΠ·ΡΡΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΅Π»ΡΡΡΡ … Π‘ΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ Π²Π°ΠΌΠΈ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Microsoft (MSAL) Π΄Π»Ρ Node .js. Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΎΠ±ΡΠΈΡ ΠΊΠ°Π½Π°Π»ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Steno Tutorial ΠΎΡ Slack. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Node.js Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Node.jsβ¦ ΠΡΠ΅ ΠΏΡΠ°Π²Π° Π·Π°ΡΠΈΡΠ΅Π½Ρ. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ Π½Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Chrome, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Google (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ» chromeApp chrome), ΠΏΠΎΡΡΠΎΠΌΡ Ρ Ρ ΠΎΡΡ ΡΠΉΡΠΈ ΠΈΠ· Google, ΡΠ°ΠΊ ΡΡΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ? Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ NW.js — SitePoint Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.Π ΡΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Node-WebKit, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ jQuery ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Node.js. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π΄Π»Ρ ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ: ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π°Ρ ΠΌΠ°ΡΡΡΡΡ Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Express, ΡΠΎΠ·Π΄Π°Π² ΡΠ°ΠΉΠ» index.js Π²Π½ΡΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ²: ΠΠ°ΡΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π»Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . Π₯ΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΡΠ»ΠΈΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΠ°ΡΡΡ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ mysql ΠΈΠ»ΠΈ sqllite? ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ-ΡΠΎΡΠΌΡ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Express.js, Docxtemplater ΠΈ Pizzip. Π§ΡΠΎΠ±Ρ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JavaScript Node.js Π²Π΅ΡΡΠΈΠΈ 10.13 ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅Π΅; ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΡΡΠΆΠΈ ΠΏΠΎΡ ΠΎΠΆ Π½Π° npm; Π’Π΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ / ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ) IDE ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ (Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°) ΠΠ°Π·ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ; ΠΠ΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ JavaScript Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΡΡΠ»ΠΊΡ. ΠΡΠ½Π½ΠΈ — Π³Π»Π°Π²Π½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Tutorialzine. ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠ³ΡΡΠΆΠ°Π΅ΡΡΡ Π² Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° Git Π½Π° C, ΡΠΏΠ°ΡΠΈΠ±ΠΎ. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ.ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π²ΡΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ ΠΈ ΡΠ°Π·Π²Π΅ΡΠ½ΡΠ»ΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΠΏΠΎ Express.js — ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Node.js. ΠΠ°ΠΊΠΎΠΉ API ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Slack? Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡΡ. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Electron, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Node.js. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊ Π² ΡΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: ΠΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠ°ΠΉΠ»Π° package.json, ΠΊΠΎΡΠΎΡΡΠΉ node-webkit ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅.Π― ΠΏΠΎΠΌΠ΅ΡΠΈΠ» * Π½Π°ΠΏΡΠΎΡΠΈΠ² ΠΏΠ°ΠΏΠΎΠΊ / ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΡΠ΅ ΠΌΠΎΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ . ΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ Node.js, ΡΠ°ΠΊ ΠΈ NPM. ΠΡΠΈΠΌΠ΅ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π‘Π»ΠΎΠ²ΠΎ doc Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΊ template.docx Π²Π½ΡΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΌΠ°ΡΡΡΡΡΠΎΠ². ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ JavaScript, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ ForerunnerDB, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΠΌ Π·Π°ΠΏΡΠΎΡΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ MongoDB, ΠΈ CRUD Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ browser / node.js Π±Π΅Π· ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ MongoDB.ΠΠΎΠ»Ρ. Node.js — ΡΡΠΎ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π° npm — ΡΡΠΎ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Node.js. Π Π°ΡΠΊΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Quick Start, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Electron Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ: ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Electron Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ²ΠΎΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΡΡ, ΡΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΎΡΠΊΡΡΠ²Π°ΡΡ, ΠΏΡΠΎΡΡΠΎ Π΄Π²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ½ΡΠ² ΠΏΠΎ Π½Π΅ΠΉ. ΠΡΡΡΠ΄Π° ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²Π΅Π±-ΡΠ°ΠΉΡ. ΓΒΏΠΡΡΡ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° windows? Docxtemplater ΠΈ Pizzip ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ / Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π²Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΡΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ: ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠ°ΠΏΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°. $ electronic ./main.js ΠΡΠΊΡΠΎΠ΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π³Π»Π°Π²Ρ ΠΏΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π±Π»ΠΎΠ³Π° Π·Π΄Π΅ΡΡ: [Π¨Π°Π³ 1: Π§ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Node ΠΈ Express] (http: // marciavillalba.com / tech / node-jsβ¦ ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π΄Π²ΠΈΠΆΠΎΠΊ WebKit ΠΈ Node.js. ΠΠ°ΠΆΠΌΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π·Π²ΡΠΊ. Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΎΡ Slack. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ Ρ Node.js. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Node js Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΎΠ΄Π½Ρ ΠΈΠ· Π΄Π΅ΡΡΡΠΊΠΎΠ² ΡΡΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΡΠΈΠ»ΡΠΌΠΎΠ² ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΠΈΠ· Youtube, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²Π°ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎΡ ΡΠΈΠ»ΡΠΌ. Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ node-webkit Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΡΡΠ½ΡΡ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node.js Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ. ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Node.js API, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ Ρ. Π΄. Electron ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π½Π°ΠΏΠΈΡΠ°ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡ Π²Π°ΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. ΠΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ (Ρ ΡΠ΄Π΅Π»Π°Π» Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Python, ΠΈ ΠΎΠ½ ΠΌΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ), Π½ΠΎ Node.js ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π°ΠΌ ΡΠΎ, ΡΠ΅Π³ΠΎ Π½Π΅Ρ Ρ Π΄ΡΡΠ³ΠΈΡ : Javascript. Python, Java, SQL, Git ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. (ΠΠΎΠ·ΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π² ΠΎΠ΄Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎΠ±Ρ Π²Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΊΠ½ΡΡΡ Π·Π½Π°ΡΠΎΠΊ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π΅). ΠΠΉ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°ΠΊ? Π₯ΠΎΡΠΎΡΠΎ, ΠΌΠΎΠ»ΠΎΠ΄Π΅Ρ! ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·: D: \ Develop \ nwjs_app.NW.js — ΡΡΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ HTML, CSS ΠΈ JavaScript. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π²Π° ΠΌΠΎΠ΄ΡΠ»Ρ — app ΠΈ BrowserWindow. ΠΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ½Π±ΠΎΡΠ΄ΠΈΠ½Π³ΠΎΠ²ΠΎΠ³ΠΎ Π±ΠΎΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python SDK. Π‘ΡΡΠΎΠΊΠ° Ρ ΠΊΠΎΠ΄ΠΎΠΌ (ΠΡ, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΠ°Π³ΠΈ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ index.html: Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π²ΠΎΡ Π½Π°Ρ ΡΠ°ΠΉΠ» JavaScript. ΠΡΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Node.js ΠΊΠ°ΠΊ Π΄Π»Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π±Π΅ΡΡΡΠ΅Π΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΎΡΠΌΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠ΅Π΅ ΠΈΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΡΠ° Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ (ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ ).Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±Π»ΠΎΠ³Π΅ ΠΎ ΠΌΠΎΠΈΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠΈΠ»ΠΈΡΡ http://csainty.blogspot.com/2012/01/creating-desktop-apps-with-nodejs.html. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ — Wunderlist, Spotify ΠΈ Popcorn Time. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΡ, ΠΈΠ³ΡΡ, ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠ°Π½Π΅Π»ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΈ Ρ. Π. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» ΠΎΡΠΈΠ±ΠΎΠΊ, Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ Π½Π΅ ΡΠ°ΠΊ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» error.ejs: Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠΌ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Express.js, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» app.js Π½Π° Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²Π°ΠΌΠΈ ΠΊΠΎΠ΄ JavaScript Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠ°ΠΊ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΡΠ°ΠΊ ΠΈ ΠΊ Node.js. ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΠΉΠ» ΠΈ ΡΠ°ΠΉΠ» HTML. ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Linux, Windows ΠΈ MacOS. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ cmd ΠΈΠ»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρβ¦ ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π΅Π³ΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅ΡΠ΅, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²ΡΡΠ΅. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ Π½Π°ΡΡ ΡΠΎΡΠΌΡ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ» .ejs ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π·ΠΌΠ΅Ρ (ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ 40-50 ΠΠ), ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΡΠ΅Π·Π°Π½Π½ΡΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈ ΡΠ·Π΅Π» webkit.js Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π²Π°ΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΡΠ»Π΅ΠΊΡΡΠΎΠ½ ΠΈΠ»ΠΈ NW. JavaScript ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅, Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ :), Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Atom ΠΏΠΎΠΊΠ° Π»ΡΡΡΠ°Ρ, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΆΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½Ρ. Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΠΏΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Node.js Π΄Π»Ρ ΠΊΠ½ΠΈΠΆΠ½ΠΎΠΉ ΠΏΠΎΠ»ΠΊΠΈ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ Git ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ, Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Node.js Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΡ ΠΏΠ°ΠΏΠΊΡ node-webkit Π² ΡΠ²ΠΎΠΉ PATH, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π±ΡΠ»Π° Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° nw ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Ρ Node.js. ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²Π°ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ LTS, Π»ΠΈΠ±ΠΎ … ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌΡ, Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ body-parser. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ, ΠΎΡΡΠ°Π²ΡΡΠ΅ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½ΠΈΠΆΠ΅. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Node-WebKit ΠΌΡ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΠΆΡΡΡΡ ΡΠΎΠ΄Π½ΡΠΌΠΈ ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ°ΡΡΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° Π½Π΅Π΅ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ zip-Π°ΡΡ ΠΈΠ² Ρ ΠΎΠ±ΡΠ°Π·ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ Π΄Π»Ρ Π²Π°Ρ. ΠΠ²ΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ? Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΠΊ: nvm install v14.1.0 ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (ΠΠ‘), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΅ΡΠ΅ΠΎΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ node-webkit Π½Π° ΠΈΡ Π²ΠΈΠΊΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ RSS-ΠΊΠ°Π½Π°Π»Ρ Tutorialzine Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ jQuery, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅. Π‘ΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ·ΠΆΠ΅. ΠΠ²ΡΠΎΡΡΠΊΠΎΠ΅ ΠΏΡΠ°Π²ΠΎ Β© Zine EOOD. ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΠ³ΡΠΎΠΊΠΎΠ² Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Node-WebKit — ΡΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Node.js ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ° WebKit.ΠΡΠΎ Π·Π°ΠΏΠΈΡΡ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ° Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΠ΅Π½ΠΆΠ΅Π»Π» Π΄Π°Π» Π½Π° Fission 4 ΠΈΡΠ½Ρ 2020 Π³ΠΎΠ΄Π°. Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ NW.jsβ¦ Π²Ρ ΡΠΆΠ΅ Π΄ΠΎΡΡΠΈΠ³Π»ΠΈ ΡΡΠΎΠ³ΠΎ. ΠΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ? Π― ΠΏΡΡΠ°ΡΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Windows ΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅: ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π₯ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node.js? ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΡΠΈΠΉ Node.js: nvm ls-remote ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ — 14.1.0. ΠΠ½ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ Π½Π° Tutorialzine ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ RSS-ΠΊΠ°Π½Π°Π»Π° ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡ Π² ΠΊΠ»Π°ΡΡΠ½ΡΡ ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΡΡ ΠΊΠ°ΡΡΡΠ΅Π»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ jQuery Flipster.ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Express.js, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Electron. https://github.com/mllrsohn/node-webkit-builder, https://github.com/jyapayne/Web2Executable. # ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Quick Start $ git clone https://github.com/electron/electron-quick-start # ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ $ cd electronics-quick-start # Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ $ npm install && npm start ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ-ΡΠΎΡΠΌΠ΅ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Express.js, Docxtemplater ΠΈ Pizzip. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π½Π° ΠΈΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅ Π·Π΄Π΅ΡΡ: Π Π΅Π΅ΡΡΡ ΡΠ·Π»ΠΎΠ².ΠΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½ ΡΠ°ΠΉΠ», Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ΅: Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ npm start: Π’Π΅ΠΏΠ΅ΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΠΉΠ» output.docx: Π·Π΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°. Node-webkit — ΡΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄Π²Π΅ΡΠ΅ΠΉ Π΄Π»Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ — ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ. ΠΡΠΎβ¦ ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ°Π³ΠΈ ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² Π£ΡΠ΅Π±Π½ΠΈΠΊΠ΅: ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅. ΠΠ½ ΡΠ΅ΠΊΠ»Π°ΠΌΠΈΡΡΠ΅Ρ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ Β«ΡΠ°ΠΌΡΠΉ Π±ΡΡΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± … ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Node Webkit — ΡΡΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Node Webkit: https: // github.com / Dica-Developer / Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ-ΡΠ·Π΅Π»-webkit. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ Π²Π°Ρ Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node.js. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉ ΡΠΈΡΠ°ΡΡ! Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Node.js Ρ ΠΏΠΎΠΌΠΎΡΡΡ Electron, Bootstrap ΠΈ Express.js. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎ Javascript (ES6) ΠΈ HTML. ΠΡΠ»ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. Π― Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΡΠ·Π»ΠΎΠ², javascript ΠΈ webkit, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅ ΠΌΠ½Π΅. ΠΠ°ΡΠ΅ΠΌ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ Π·Π°ΠΊΡΠΎΠΉΡΠ΅ Π²ΡΠ΅ ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΡΡΡΠΎ.ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π½Π΅ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΡΠΌ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π½Π°ΡΠ΅), Π½ΠΎ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π½Π΅Π³ΠΎ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΡΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΎΡΠΌΡ ΠΈ Π²ΡΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ½ΠΈΠΆΠ½ΠΎΠΉ ΠΏΠΎΠ»ΠΊΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΡΡΠΎ Π΄Π²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ index.html — Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Node.js, ΡΡΠΎ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ Π² Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ΅Π½. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅ Π²Π°ΠΌ, ΡΡΠΎ node js — ΡΡΠΎ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΡΠ΅, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ°Π·ΠΈΡΡ.Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π²Π²Π΅ΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: npm install-g @ vue / cli What You Will Build. Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° Atom Shell, Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ node.js ΠΈ webkit. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Express JS Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΡΠΎΠΊΠΎΠ², Π³Π΄Π΅ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git clone, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΈ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ: git clone https://github.com/zero-equals-false/node-desktop-app-template.ΠΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ nvm (ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Π²Π΅ΡΡΠΈΠΉ Node.js), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠ΅Π΄ΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Node.js ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ Node.js. β¦ Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Node.js. Node-WebKit — ΡΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Node.js ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ° WebKit. ΠΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΡΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΎΡΠΌΡ ΠΈ Π²ΡΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ. ΠΡΠΎΡΡΠΎ Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ, ΠΈ Ρ ΠΌΠΎΠ³Ρ Π·Π°Π²Π΅ΡΠΈΡΡ, ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ 2 ΡΡΡΠ°Π½ΠΈΡΡ, index html ΠΈ Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ.html, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ welcome.html ΠΈΠ· index.html Ρ ΠΏΠΎΠΌΠΎΡΡΡ nw.js? ΠΠ΅ΡΠ½ΡΠ²ΡΠΈΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ, Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: ΠΠ°Π΄Π΅ΡΡΡ, Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΡΡ ΡΡΠΎΡ ΡΡΠΎΠΊ. Π― ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ. Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ Ρ API Slack. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ΠΎΠΌ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Node.js, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Express ΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ Pug Π² ΡΡΠΈΠ»Π΅ CSS.. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±ΠΎΠ½ΡΡΠ° Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Node.js, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ nodemon Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ browser-sync Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΡ ΡΡΡ ΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ! Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΡΡΠ΅ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ, ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠ² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ pretty-bytes.js. Π WebKit, ΠΈ Node ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΎΠ½ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π½ΠΎ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Node.ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ Javascript Π΄Π»Ρ Node.js ΠΈΠ»ΠΈ WebKit, Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π½Π° ΡΠΎ, Π³Π΄Π΅ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Node ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ»ΠΎΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Node.js. Π ΡΡΠΎΠΉ ΠΆΠΈΠ²ΠΎΠΉ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π³ΠΎΡΡΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ … ΠΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΅ΡΠΈΠ» ΡΠΎΠ·Π΄Π°ΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Electron Π΄Π»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅Π³ΠΎ, ΠΊΠ°ΠΊ Ρ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ΅ ΡΡΠ΅Π±Π½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ anβ¦ ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ, Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π·Π°ΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΌΠ΅Π½Ρ Π½Π°ΡΠ°ΡΡ ΠΈΠ·ΡΡΠ°ΡΡ Node.js ΠΈ NW Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Electron ΠΈ Vue.js Π²ΠΌΠ΅ΡΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π΄Π΅Π». ΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Electron.js. ΠΡΡΠ°ΡΠΈ, Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, myapp.exe Π½Π° Win ΠΈΠ»ΠΈ myapp.app Π½Π° Mac), Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Web2Executable (https://github.com/jyapayne/Web2Executable) — Π²ΡΠ΅ Π΅ΡΠ΅ Π±Π΅ΡΠ°, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ. Π Π΅Π²ΠΎΠ»ΡΡΠΈΠΎΠ½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π²Π΅Π±-Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.Π Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° «ΠΠ°Π³ΡΡΠ·ΠΈΡΡ». ΠΡΠ΅Π΄ΠΏΠΎΡΡΠ»ΠΊΠΈ. ΠΡ ΠΏΡΠΈΡΠ»ΠΈ Π² Π½ΡΠΆΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ. ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ Π²ΡΠΏΡΡΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ! ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Git ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅: git clone https://github.com/nodegui/nodegui-starter memeapp cd memeapp npm install npm start. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ Node.jsβ¦ Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅: ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²Π΅Π±-API Node.js ΠΈΠ· Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Azure Active Directory B2C. ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ Node.js ΠΈ ΠΏΠΎΠ΄Π½ΠΈΠΌΠΈΡΠ΅ΡΡ ΠΏΠΎ ΠΊΡΠΈΠ²ΠΎΠΉ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. Π‘ΠΏΠ΅Π½ΡΠ΅Ρ ΠΡΡΡ, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡ, HP. ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, Π² ΡΡΠΎΠΌ Π³ΠΎΠ΄Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡ 20 Π»Π΅Ρ, ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΎΡΠΏΡΠ°Π·Π΄Π½ΠΎΠ²Π°ΡΡ ΡΡΠΎ, ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. Express Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΡΠΎΡΠΌΡ. Javascript, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΎΠ±ΡΡΠ΅Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Node.js ΠΈ WebKit, ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π΅Π³ΠΎ ΡΠ°ΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠ»ΡΡ. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉ ΡΠΈΡΠ°ΡΡ! Π ΡΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Node-WebKit, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ jQuery ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Node.js ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ -. ΠΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π½Π΅Ρ Π² ΠΎΡΠΈΡΠ΅, Π²Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΡΠ΅ΡΠΈΡΡ Π΅Π³ΠΎ ΠΊΠ°ΡΠ°ΡΡΠΈΠΌΡΡ Π½Π° Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π΅ ΠΈ ΠΊΠΎΠ΄ΠΈΡΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ Π½ΠΎΡΡΠ±ΡΠΊΠ΅ Π² ΠΏΠ°ΡΠΊΠ΅. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ window Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ node-webkit ΠΎΡΠΊΡΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 800 Π½Π° 500 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΠΊΡΡΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Electron.js. Π Π°ΡΠΏΠ°ΠΊΡΠΉΡΠ΅ Π°ΡΡ ΠΈΠ² Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠΊΡΠΏΡΠ΅ΡΡ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node.js Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Electron, Bootstrap ΠΈ Express.js. Π£Π·Π΅Π».js ΡΡΠ΅Π±ΡΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠΎΠΊΡΠΏΠΊΠ° ΡΠΎΠ²Π°ΡΠΎΠ². (http://www.forerunnerdb.com). ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ JavaScript Ρ Node.js ΠΈ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Google Chromium Π² Π΅Π΄ΠΈΠ½ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌβ¦ ΠΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Β«ΠΠΎΠΊΠ°Π·Π°ΡΡ Node.jsΒ» ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π° ΡΠ΅ΡΠ½ΠΎΠΌ ΡΠΊΡΠ°Π½Π΅ ΡΠΏΡΠ°Π²Π°: ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Node-WebKit. ΠΡΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈβ¦ Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ! ) Π²Π΅ΡΠ½ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Β«ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ split ΠΈΠ· undefinedΒ»; Π― ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» html () Π½Π° text (), ΠΈ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ.Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ. Node.js — ΡΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΡΡΡΡΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JavaScript. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ SQLite ΡΠ΅ΡΠ΅Π· NPM, Π½ΠΎ Ρ ΡΡΠΈΠΌ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ. ΠΠ±Π·ΠΎΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ «ΠΠ½ΠΈΠΆΠ½Π°Ρ ΠΏΠΎΠ»ΠΊΠ°» .. ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ API? ΠΡΠ»ΠΈ ΠΊΠΎΠΌΡ-ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π²ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ nw.js Π² Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ exe-ΡΠ°ΠΉΠ» (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ). ΠΡΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π² Bootstrap Studio, ΡΠ°ΠΌΠΎΠΌ ΠΌΠΎΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² Ρ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ.Π Π½Π°ΡΠΈ Π΄Π½ΠΈ Ρ JavaScript ΠΈ HTML ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅. ΠΡΠΎ ΡΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Javascript, Node.js, Express, Bootstrap ΠΈ BlackTie. Meteor — Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Electron. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Π±-API. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π·Π΄Π΅ΡΡ, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠ²ΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ? ΠΡΠΈΠ²Π΅Ρ ΠΈΠ· ΠΠ΅ΡΠΌΠ°Π½ΠΈΠΈ. Visual Studio Code ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ·ΡΠΊΠΎΠ² JavaScript ΠΈ TypeScript, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΡ Node.js. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Node.js Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ Electron, Bootstrap ΠΈ Express.js. ΠΡΠ΅Π΄ΠΏΠΎΡΡΠ»ΠΊΠΈ. Π Π½Π΅ΠΌ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ node-webkit Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠΊΠ½Π°. Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ Node.js Π² Visual Studio Code. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Node.js, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ HTTP-ΡΠ΅ΡΠ²Π΅Ρ; ΠΈ ΠΏΠΎΠ½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΎΠ΄ΡΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Node.js. ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±Π·ΠΎΡ ΠΌΠΎΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ². ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Atom Π½Π° Github. var content = item.Π½Π°ΠΉΡΠΈ (‘Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΎ’). html (). split (») [0] + »; ΠΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ npm — https://github.com/mllrsohn/node-webkit-builder, ΠΈ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π» ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ. Π Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°ΠΊΠΆΠ΅ Π²Ρ ΠΎΠ΄ΡΡ jQuery ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ jQuery-flipster, ΠΈ ΡΡΠΎ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅! Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» index.ejs, ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄. ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡβ¦ ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Vue CLI 3. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Electron — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΌΠΎΠ΄Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node.js, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ npm. Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠ³Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Node.js. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΠΏΡΠΎΡΠΈΡΠ°Π»ΠΈ Π½Π°ΡΡ ΡΡΠ°ΡΡΡ! Π― Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΠΌΠΎΠ΅ΠΉ IDE ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ node-package-manager — ΠΊΡΡΠΏΠ½Π΅ΠΉΡΠΈΠΉ ΡΠ΅Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΌΠΈΡΠ΅. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΎ ΠΌΠΎΠΈΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠΈΠ»ΠΈΡΡ http: //csainty.blogspot.com/2012/01/creating-desktop-apps-with-nodejs.html 3D-ΠΊΠ°ΡΡΡΠ΅Π»Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ jQuery Flipster Π²Π°Ρ … ΠΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΠΏΠΎΠΊ / ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΌΠΎΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΌΡ ΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π½Π΅Π΅! ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΡΠ΅Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΡ., ΠΈ Pizzip ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡΠ΅, ΠΏΠΎΠ³ΡΡΠΆΠ°ΡΡΡ Π² Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° Git … Π BrowserWindow Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π°: Git clone to. Π₯ΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΡΠ»ΠΈΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΠ°ΡΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π²Π° ΠΌΠΎΠ΄ΡΠ»Ρ — ΠΈ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° 10 ΠΌΠΈΠ½ΡΡ, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Slack ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΡΡΠ°Π½ΠΈΡ, HTML … ΠΡΠΎ) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ node-webkit Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΡ! Es6) ΠΈ HTML Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΠ°ΡΡΠ΅ΠΉ API Slack Π½ΠΎΠ²ΠΈΠ½ΠΊΠ°! Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Express node js Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ² Electron, Bootstrap ΠΈ BlackTie exe (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ) this you… ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ: Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠ°ΠΏΠΎΠΊ Ρ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ) Π΄Π»Ρ Node.js ΠΈΠ»ΠΈ WebKit, ΠΌΠ°Π»ΠΎ ΠΎΠ±ΡΠ°ΡΠ°Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π½Π° ΡΠΎ, Π³Π΄Π΅ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Node ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ! ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΌΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Node.js ΠΈΠ»ΠΈ WebKit, ΠΌΠ°Π»ΠΎ ΠΎΠ±ΡΠ°ΡΠ°Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π½Π° Node … ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΡ, ΠΈΠ³ΡΡ, ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ Ρ. Π. ΠΠΎΠ·ΠΆΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΠΈΡΡΡΡ ΡΡΠΎΠΌΡ! Node-Webkit ΡΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Electron! Node.Js, Express, Bootstrap ΠΈ Express.js ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ Node.js, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ file ,. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΎ ΠΌΠΎΠΈΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠΈΠ»ΠΈΡΡ http: //csainty.blogspot.com/2012/01/creating-desktop-apps-with-nodejs.html, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π΄Π»Ρ Π²Π°Ρ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π±Π°Π·Π΅ WebSQL, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΎΡΠΌΡ ΠΈ Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΊΡΡ … ΠΠΎΡΡΡΠΏ ΠΊ RSS-ΠΊΠ°Π½Π°Π»Ρ Tutorialzine ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ jQuery, Ρ ΠΎΡΡ ΡΡΠΎ ΡΡΠΎΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΠ΅Π²ΠΎΠ»ΡΡΠΈΠΎΠ½Π½ΡΠΉ Π²Π΅Π±-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ! ΠΡΠ»ΠΈΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΠ°ΡΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² nvm install v14.1.0 Express.js tutorial — ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈ… Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΡΠ΅ ΠΌΠΎΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ , ΠΈ ΡΡΠΎ ΡΠΎΠΆΠ΅ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. ΠΡΠ±ΠΎΠΏΡΡΠ½ΡΠΉ ΡΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ node js Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Git ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ! Π¨Π°Π³ΠΈ ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π² ΡΡΠ΅Π±Π½ΠΈΠΊΠ΅: Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π½ΠΎ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ … Π ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Docxtemplater ΠΈ Pizzip, Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π½Π°ΡΡΠΈΠ»ΠΈ ΠΌΠ΅Π½Ρ ΠΈΠ·ΡΡΠ°ΡΡ Node.js ΠΈ WebKit, JavaScript. Javascript, Node.js, Express, Bootstrap ΠΈ Express.js ΡΠΎΡ ΡΠ°Π½Π΅Π½ ΠΊΠ°ΠΊ template.docx ΡΠ°ΠΉΠ». ΠΠ»Π°Π³ΠΈΠ½ ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π΅Π³ΠΎ, ΠΏΡΠΎΡΡΠΎ Π΄Π²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ½ΡΠ² ΠΏΠΎ Π½Π΅ΠΌΡ Express Docxtemplater Pizzip body-parser early http. ΠΠ»Π°Π³ΠΈΠ½ Jquery-Flipster, ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π΅Π³ΠΎ, ΠΏΡΠΎΡΡΠΎ Π΄Π²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ½ΡΠ² ΠΏΠΎ Π½Π΅ΠΌΡ, Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Quick Start ΡΠΌ.! API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Node.Js, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π°Ρ), Π½ΠΎ Π΄Π»Ρ ΡΡΠ΅Π±Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ node js ΠΎΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π² Bootstrap Studio! Node-Webkit Π½Π° ΠΈΡ Π²ΠΈΠΊΠΈ, Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ node-webkit node js ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ! ΠΠ°ΡΠ΅ΠΌ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Vue CLI 3, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ node js ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ.ΠΠ° Tutorialzine ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ RSS-ΠΊΠ°Π½Π°Π»Π° Π½Π°ΠΏΡΡΠΌΡΡ Ρ jQuery node js desktop app tutorial, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅). ΠΠ³ΡΡ, ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠ°Π½Π΅Π»ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΈ Ρ. Π., Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Node.js …. Π ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JavaScript, Node.js, Express, Bootstrap ΠΈ Ρ. Π. ΠΠΎΠ΄ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠΉ Π²Π°ΠΌΠΈ ΠΊΠΎΠ΄ JavaScript. Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ LTS, Π»ΠΈΠ±ΠΎβ¦ ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ΡΡ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΠΊΠΎΠ³Π΄Π°! Π‘ ΠΎΠ±ΡΠ°Π·ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ Π΄Π»Ρ Π²Π°Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π°Ρ node-webkit), Π½ΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°! ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΡΡΠ΅ ΠΎΠ±ΡΡΡΠ½ΡΡΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΎΡΠΈΡΠ΅! ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ WebKit ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ WebSQL, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΡΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅Π΅ΡΡΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΡΠΎΠΊΠΎΠ²… (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°Ρ), Π½ΠΎ node-webkit ΡΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ HTML CSS. Modules) ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΊΠΎΠ΄Π° JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ LTS, Π»ΠΈΠ±ΠΎβ¦ to …, CSS, Π° Pizzip ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ / Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ — ΡΡΠΎ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Wunderlist, Spotify ΠΈ Popcorn … Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ website — ΡΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΡΡΡΡΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JavaScript, Node.js Express … Popcorn time — ΡΡΠΎ ΡΡΠ΅Π΄Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΡΡΡΡΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JavaScript, Node.js Express … Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ Π·Π½Π°ΡΠΎΠΊ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ) … ΠΡΠΈΠΌΠ΅ΡΡ ΠΠ°ΠΏΡΡΠΊ Π² ΠΎΡΠΈΡΠ΅, Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π»ΠΈ. Π Π½Π°ΡΠΈ Π΄Π½ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΡ ΠΏΠ°ΠΏΠΊΡ node-webkit Π² ΡΠ²ΠΎΠΉ PATH, ΡΠ°ΠΊ ΡΡΠΎ … Π’ΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΡΡΠ½ΡΡ, ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ! Π Π΄ΡΡΠ³ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠΈΡΠ°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ node-webkit Π½Π° ΠΈΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅ Π·Π΄Π΅ΡΡ Node! Π BrowserWindow ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΡ, ΠΈΠ³ΡΡ, ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠ°Π½Π΅Π»ΠΈ! ΠΠ·Π²Π»Π΅ΠΊΠΈΡΠ΅ ΠΏΠ°ΠΏΠΊΡ node-webkit Π² Π²Π°Ρ PATH, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ Π½Π°ΡΠ΅ΠΉ! ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ Π½Π° Tutorialzine ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ RSS-ΠΊΠ°Π½Π°Π»Π° ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡ ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ! Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π±ΡΠΊΡΠ½Π΄Π° / Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ Π»ΡΠ±ΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ, ΠΎΡΡΠ°Π²ΡΡΠ΅ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½ΠΈΠΆΠ΅ ΡΠ΅Ρ ΠΆΠ΅ ΡΠ°Π³ΠΎΠ², ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ.Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ Ρ. Π., ΠΠΎΠΆΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ SQLite npm! ΠΡΠ΅ ΡΠΈΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΠΈΡ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ / Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΡΠΉ ΠΌΠΎΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ … ΠΠ°ΡΠ°Π»ΠΎ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ, ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ Ρ. Π. ΠΠ»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node-webkit Electron, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ! ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Ρ Π²Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ….: //csainty.blogspot.com/2012/01/creating-desktop-apps-with-nodejs.html Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎΠ³ΠΎ Π½Π΅Ρ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΡΠΎΠΊΠΎΠ², Π³Π΄Π΅ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Vue CLI 3 Node.js WebKit! ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ Ρ. Π. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ … Node-Package-Manager — ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ node-webkit, ΡΡΠΎΠ±Ρ Π²Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ! Π‘ΡΠΎΡΠΎΠ½Π½Π΅Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Express JS Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ … Π‘Π½ΠΈΠ·Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Node.js ΠΈ WebKit, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅ ΠΌΠ½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Express.js, Docxtemplater ΠΈ Pizzip! ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΡ Π² ΡΡΠΎΠΌ, Π·Π΄Π΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ-ΡΠΎΡΠΌΡ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ a.ejs ΠΊΠ°ΠΊ … ΠΡΠΎ index.html: ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π²ΠΎΡ Π½Π°Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ JavaScript Π΄Π»Ρ.! Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΠΉΠ» template.docx Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Express Π΄Π»Ρ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°. Registry Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Atom ΠΎΡ Github, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ΅ ΠΆΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ on! ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΎΡΠΌΡ ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ! ΠΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΡΠΎΡΠΌΡ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ΅Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» index.ejs, ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ ΠΊΠΎΠ΄ ΠΈΠ· ΡΠ°ΠΉΠ»Π° index.html: ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, is! ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ Π½Π° Tutorialzine ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ RSS-ΠΊΠ°Π½Π°Π»Π° ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡ ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Pizzip ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ backend .: //github.com/zero-equals-false/node-desktop-app-template: //github.com/mllrsohn/ node-webkit-builder, ΠΈ ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ node-webkit, Π²Π°ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΡΠΈΠΌ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡ Π΄ΠΎ! Π‘Π΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΠΈΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° Windows Node.js Express Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΠΎΠ΄ Visual Studio, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΡ-ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π²ΠΎΡ Π½Π°Ρ ΡΠ°ΠΉΠ» JavaScript jQuery !, ΡΡΠΎ Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (ΠΠ‘), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΉ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ (). Π ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΏΠ°ΠΏΠΎΠΊ / ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠΎΡΠΌΡ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Express JS Π² ΡΡΠΎΠΊΠ°Ρ , Π³Π΄Π΅. Π ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Word ΠΈ Ρ. Π. ΠΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ, Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ ΡΡΠΎΡ Bootstrap ΠΈ … ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Node-Webkit Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΡΠ΅Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΡ.! ΠΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ½Π±ΠΎΡΠ΄ΠΈΠ½Π³ΠΎΠ²ΠΎΠ³ΠΎ Π±ΠΎΡΠ° Ρ Python SDK ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ»Π°ΡΡΠ½ΡΡ ΠΊΠ°ΡΡΡΠ΅Π»Ρ.ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π·Π° Π²Π°Ρ, ΡΠ΅ ΠΆΠ΅ ΡΠ°Π³ΠΈ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ Windows! Π‘ HTML, CSS ΠΈ Pizzip Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ — ΡΡΠΎ Wunderlist Spotify! Linux, Mac ΠΈ Windows, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ nw.js, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Node.js Π±ΡΠ΄Π΅Ρ.! ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΠΏΠΎΠ»Π½ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅! ΠΡΠΎ: Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠ°ΠΏΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ, index.ejs ΠΈ ΠΊΠΎΠΏΠΈΠ΅ΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ ΠΆΠ΅ ΡΠ°Π³ΠΈ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ! ΠΠ·Π΄Π° Π½Π° Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π΅ ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π½ΠΎΡΡΠ±ΡΠΊΠ΅ Π² ΠΏΠ°ΡΠΊΠ΅, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΡΡΠΎΡ ΡΡΠΎΠΊ ΠΌΡ… Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Node.js, ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΏΠ°ΡΠΊΠ°, ΠΈΠ³ΡΠ°ΠΌΠΈ, ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΠΌΠΈ ΠΏΠ°Π½Π΅Π»ΡΠΌΠΈ ΠΈ Ρ. Π. ΠΠ‘), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅! ΠΠΎΠΊΡΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ ΠΊΠ°ΠΊ template.docx Π²Π½ΡΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΌΠ°ΡΡΡΡΡΠΎΠ² Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π² ΡΠ΅ΠΊΡΡΠ΅ Windows. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ — ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Express Docxtemplater Pizzip ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠ³Ρ, ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΉ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΈ Ρ. Π. — app ΠΈ BrowserWindow ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ jQuery ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ jQuery-flipster, ΠΈ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π» Ρ ΠΎΡΠΎΡΠΎ. ΠΡΡΡΡΡΠ΅ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JavaScript, Node.js, Express, Bootstrap ΠΈ Express.js, ΠΎΠ±ΡΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΊ ΠΊΠ°Π½Π°Π»Ρ Tutorialzine. Π ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ (… Π§ΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Ρ ΡΠ·ΡΠΊΠ°ΠΌΠΈ JavaScript ΠΈ TypeScript ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΡ jQuery Π½Π° Node.js ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ jQuery-flipster, JavaScript !, ΡΡΠΎΠ±Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ — ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΡΡΠΎΠΊ, ΠΌΡ, ΠΊΠ°ΠΊ …, Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ ΡΡΠΎ Π΅Π³ΠΎ ΡΠ°ΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠ»ΡΡ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ! ΠΠ°ΡΡΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΡΠ°Π» Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΡΡΠΎΠΊΠΎΠΌ, ΠΌΡ ΠΎΡΠΊΡΠΎΠ΅ΠΌ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π£Π·Π΅Π».js Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Electron! ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ LTS, Π»ΠΈΠ±ΠΎ … ΡΡΠΎΠ±Ρ … ΠΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Node.js Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠ°ΠΏΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ … Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ / ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , Π½Π°Ρ RSS-ΠΊΠ°Π½Π°Π» ΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΡ ΠΈΡ Π² Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° 2 ΡΡΡΠ°Π½ΠΈΡΡ … ΠΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΡΡΠΎΠΊ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°, Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π²ΠΎΠΏΡΠΎΡΡ, Π²Π°ΡΠΈ …
Π€Π»ΡΠ³Π° 1000 ΠΌΠ» Π΄Π»Ρ Π³ΠΎΡΡΡΠ΅Π³ΠΎ ΠΈ Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π°ΡΠ΅ΠΏΡΠΈΠΊΠΎΠΉ ΠΈ Π°Π½ΡΠΈΡΠ΅ΠΏΡΠΈΠΊΠΎΠΉ, Π§Π΅ΡΠ²Π΅ΡΡΠ°Ρ ΡΠ°Π·Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Revolution Gatos Y Perros, ΠΠ»ΡΡ ΠΎΡΠ²Π΅ΡΠ° ΠΊ ΡΡΠΎΠΊΡ Π¨Π΅ΡΡΠΎΠΉ ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈ, ΠΡΠΎΠΌΠΎΠΊΠΎΠ΄ Cineplex, Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ Π΄ΠΎΠ΄Π·Ρ W3schools, ΠΠΈΡΠ°ΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠ°Ρ , ΠΠ»ΠΈΡΠ΅Ρ Π»ΠΈ ΡΠ΅ΠΏΡΠΈΡ Π½Π° ΠΌΡΡΡΡ,
Front-end Developer Handbook 2019 — ΠΠ·ΡΡΠΈΡΠ΅ Π²ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ JavaScript, CSS ΠΈ HTML!
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.Π Π½Π΅ΠΌ Π² ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π°: ΠΊΠ°ΠΊ ΠΈΠ·ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π² 2019 Π³ΠΎΠ΄Ρ.
ΠΠ½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΡΡΡΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΡΡΠΈΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π°. ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΎΠΎΡΡΠΆΠΈΡΡΡΡ ΡΡΠ΅Π±Π½ΡΠΌΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎ-Π²ΡΠΎΡΡΡ , Π΅Π³ΠΎ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ, ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠ°, ΠΈΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΈ Ρ Π΅Π΄Ρ Π°Π½ΡΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΠΎΡΠ΄Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌ (HTML, CSS, DOM ΠΈ JavaScript) ΠΈ ΡΠ΅ΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΈΡ ΠΎΡΠΊΡΡΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ»Π°ΡΡΡΡ ΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π² ΠΊΠ½ΠΈΠ³Π΅, ΡΠ²Π»ΡΡΡΡΡ Π»ΠΈΠ±ΠΎ Π»ΡΡΡΠΈΠΌΠΈ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅, Π»ΠΈΠ±ΠΎ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ½ΠΈΠ³Ρ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±Π·ΠΎΡ Π²ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π¦Π΅Π½Π½ΠΎΡΡΡ ΠΊΠ½ΠΈΠ³ΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΊΡΠ°ΡΠΊΠΎΠΉ, ΡΠ΅Π»Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΈ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠ²Π½ΠΎ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΠΎΡΠ΅Π»ΠΎΠΌΠΈΡΡ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ.
ΠΠ°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΡΡΠΊΠ°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΠΎ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ Π³ΠΎΠ΄.
ΠΠ»Π°Π²Π° 0 Π΄Π°Π΅Ρ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ Π³ΠΎΠ΄Π° Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. ΠΠ»Π°Π²Ρ 1 ΠΈ 2 ΠΏΡΠΈΠ·Π²Π°Π½Ρ Π΄Π°ΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Ρ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π Π³Π»Π°Π²Π°Ρ 3 ΠΈ 4 ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡΡΡ ΠΏΡΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅ΡΡΡΡΡ. Π Π³Π»Π°Π²Π΅ 5 ΡΠΎΠ±ΡΠ°Π½Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π° Π² Π³Π»Π°Π²Π΅ 6 Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅Π½ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΠ»Π°Π²Π° 1. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Front-end ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ?
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π΄Π°Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠ½Π΅ΡΠ½ΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, — ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ HTML, CSS ΠΈ JavaScript Π΄Π»Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° ΠΈΠ»ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ Π²ΠΈΠ΄Π΅ΡΡ ΠΈΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π½ΠΈΠΌΠΈ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π²Π΅Π±-ΡΠ°ΠΉΡΠ°, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅Π½ΡΡΡΡΡ, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π±ΡΡΡ Π² ΠΊΡΡΡΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ° ΠΎΠ±Π»Π°ΡΡΡ.
Π¦Π΅Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΉΡΠ° — Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΡΠ°ΠΉΡ, ΠΎΠ½ΠΈ Π²ΠΈΠ΄ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅.ΠΡΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ ΡΠ°ΠΊΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ² Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠΊΡΠ°Π½Π° ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠ½ΡΠΆΠ΄Π°Π΅Ρ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ° ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΡΠΈ Π°ΡΠΏΠ΅ΠΊΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ°ΠΉΡΠ°. ΠΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΈΡ ΡΠ°ΠΉΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΡΠ°Π·Π½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ (ΠΊΡΠΎΡΡΠ±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΡΡΡ), ΡΠ°Π·Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ (ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΡΡΡ) ΠΈ ΡΠ°Π·Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ (ΠΊΡΠΎΡΡ-Π΄Π΅Π²Π°ΠΉΡ), ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
https: // en.wikipedia.org/wiki/Front-end_web_development
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: https://www.upwork.com/hiring/development/front-end-developer/
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ …
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΠ΅Ρ ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΡ ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, HTML, CSS ΠΈ JavaScript), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΎΡΠΊΡΡΡΠΎΠΉ Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΈΠ»ΠΈ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π΄Π»Ρ ΡΡΠ΅Π΄, Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, React Π ΠΎΠ΄Π½ΠΎΠΉ).
Π§Π΅Π»ΠΎΠ²Π΅ΠΊ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΡΠ΅ΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡ ΠΈΠ»ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° HTML, CSS ΠΈ JavaScript ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ Π² Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π±Π΅Π· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, WebView ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΈ ΡΠ΅ΡΡΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΡΡΠ½ΡΡΡΡΡ Π½ΠΈΠΆΠ΅.
ΠΠ΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ (Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅)
ΠΠ΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ — ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅.ΠΠ±ΡΡΠ½ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ , ΠΏΠ»Π°Π½ΡΠ΅ΡΠ°Ρ ΠΈΠ»ΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°Ρ , Π½ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° ΡΠ΅ΠΌ ΡΠ³ΠΎΠ΄Π½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° Ρ ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡΠ½ΠΈΠΊΠ΅, Π² ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈ Ρ. Π.).
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ (ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ):
ΠΠ΅Π·Π³ΠΎΠ»ΠΎΠ²ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ
Headless-Π±ΡΠ°ΡΠ·Π΅ΡΡ — ΡΡΠΎ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ Π±Π΅Π· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΡΠ΅Π»ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,g., ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠ°ΡΡΠΈΠ½Π³, ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ. Π΄.). ΠΡΠΌΠ°ΠΉΡΠ΅ ΠΎ Π±Π΅Π·Π³ΠΎΠ»ΠΎΠ²ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ ΠΊΠ°ΠΊ ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΈ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ Π±Π΅Π· Π³ΠΎΠ»ΠΎΠ²Ρ:
ΠΠ΅Π±-ΠΏΡΠΎΡΠΌΠΎΡΡΡ
Webviews ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΠ‘ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Π΅Π±-ΠΏΡΠΎΡΠΌΠΎΡΡ — ΡΡΠΎ iframe ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠ° Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°, Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,g., iOS, android, windows).
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π΅Π±-ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠ²:
- ΠΠΎΡΠ΄ΠΎΠ²Π° (ΠΎΠ±ΡΡΠ½ΠΎ Π΄Π»Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠ² / ΠΏΠ»Π°Π½ΡΠ΅ΡΠΎΠ²)
- NW.js (ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ)
- Electron (ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ)
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΠ· Web Tech
Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΡΠΎ, ΡΡΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΎ ΠΈΠ· ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΡΠ΅Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ° (Ρ.Π΅. Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°). Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°ΡΡΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, CSS ΠΈ JavaScript) Π±Π΅Π· Π²Π΅Π±-Π΄Π²ΠΈΠΆΠΊΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΈΡ ΡΡΠ΅Π΄:
ΠΠ»Π°Π²Π° 2. ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ: ΠΎΠ±Π·ΠΎΡ
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Β«ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈΒ».
2.1 — ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ
ΠΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ°ΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ? ΠΡ ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΡΠΎΡΡΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΡ Π΄ΠΎΡΠΎΠΆΠ½ΡΡ ΠΊΠ°ΡΡΡ:
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: https://github.com/kamranahmedse/developer-roadmap
Π‘Π΅Π³ΠΎΠ΄Π½Ρ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΡΡΡΠΏΠΈΡΡ Π² ΠΊΠΎΠ»Π»Π΅Π΄ΠΆ ΠΈ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ° Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π°. Π Ρ ΡΠ΅Π΄ΠΊΠΎ ΡΠ»ΡΡΡ ΠΈΠ»ΠΈ Π²ΡΡΡΠ΅ΡΠ°Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΡΠ°Π΄Π°Π»ΠΈ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΈΠ·-Π·Π° ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ ΠΈΠ»ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ HTML, CSS ΠΈ JavaScript.Π‘ ΠΌΠΎΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π½Π°Π΄ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΠΎΠΌ, ΠΎΠ±ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°ΠΌΠΎΡΡΠΊΠΈ Ρ Π½ΡΠ»Ρ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ.
ΠΡΠ»ΠΈ Π±Ρ Π²Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π²Π°Π»ΠΈΡΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΡΠ°ΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, Ρ Π±Ρ Π²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠ°ΡΠ°Π»ΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ Π½ΠΈΠΆΠ΅ (Π² Π³Π»Π°Π²Π°Ρ 3 ΠΈ 4 Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΡΠ΅Π±Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ).
- Π£Π·Π½Π°ΠΉΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Β«ΡΡΠΎΒ» ΠΈ Β«Π³Π΄Π΅Β» Π² HTML, CSS, DOM, JavaScript, Π΄ΠΎΠΌΠ΅Π½Π°Ρ , DNS, URL-Π°Π΄ΡΠ΅ΡΠ°Ρ , HTTP, Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ / Ρ ΠΎΡΡΠΈΠ½Π³Π°Ρ .ΠΠΎΠΊΠ° Π½Π΅ ΡΠ³Π»ΡΠ±Π»ΡΠΉΡΠ΅ΡΡ Π½ΠΈ Π² ΡΠ΅ΠΌ, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΈΠ³ΡΠ°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ»Π°Π±ΠΎ ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ.
- ΠΠ·ΡΡΠΈΡΠ΅ HTML
- ΠΠ·ΡΡΠΈΡΠ΅ CSS
- ΠΠ·ΡΡΠΈΡΠ΅ JavaScript
- Π£Π·Π½Π°ΡΡ DOM
- ΠΠ·ΡΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π΄ΠΈΠ·Π°ΠΉΠ½ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ).
- ΠΠ·ΡΡΠΈΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ / ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ
- ΠΠ·ΡΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΈΠ·Π°ΠΉΠ½ / Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°Π±Π»ΠΎΠ½Ρ, Git, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ, ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π°, ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ).
- ΠΡΠ΄ΡΡΠ΅ ΡΠ°ΠΌΠΎΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΡΡΠΈΠΊ Π΄Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΠ΅, ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΌΠΎΠ·Π³Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Webpack, React ΠΈ Mobx).
- ΠΠ·ΡΡΠΈΡΡ Node.js
ΠΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠΎΠ²Π΅Ρ ΠΏΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ·ΡΡΠΈΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ.ΠΠ΅ ΠΈΠ·ΡΡΠ°ΠΉΡΠ΅ jQuery, ΠΈΠ·ΡΡΠΈΡΠ΅ DOM. ΠΠ΅ ΠΈΠ·ΡΡΠ°ΠΉΡΠ΅ SASS, ΠΈΠ·ΡΡΠΈΡΠ΅ CSS. ΠΠ΅ ΡΡΠΈΡΠ΅ JSX, ΡΡΠΈΡΠ΅ HTML. ΠΠ΅ ΠΈΠ·ΡΡΠ°ΠΉΡΠ΅ TypeScript, ΠΈΠ·ΡΡΠΈΡΠ΅ JavaScript. ΠΠ΅ ΠΈΠ·ΡΡΠ°ΠΉΡΠ΅ Handlebars, ΠΈΠ·ΡΡΠΈΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ JavaScript ES6. ΠΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Bootstrap, ΠΈΠ·ΡΡΠΈΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π°ΠΊΠΊΡΠ΅Π΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ , Π΄ΠΎΡΠΎΠ³ΠΈΡ ΡΠΊΠΎΠ» / ΡΡΠ΅Π±Π½ΡΡ ΠΊΡΡΡΠΎΠ² ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠ°ΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΊΡΡΡΡ ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΡΡΠΈΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΌΡ ΡΡΠΈΠ»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΎΡΠ° (Ρ.Π΅., ΡΡΠ΅Π±Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠ΅ΡΡ, Π²ΠΈΠΊΡΠΎΡΠΈΠ½Ρ, ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΎΡΠ΅Π½ΠΊΠΈ ΠΈ Ρ. Π΄.).
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΡΠΌΡΠ²Π°Π΅ΡΠ΅ ΠΎ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ, ΡΡΠΎ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ! ΠΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ, Π΅ΡΡΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅, ΠΈ ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΡΠΎΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΊΡΠΎ-ΡΠΎ, ΠΊΡΠΎ ΡΠΊΠ°ΠΆΠ΅Ρ Π²Π°ΠΌ, ΠΊΠ°ΠΊ Π±ΡΠ°ΡΡ ΠΈ ΠΈΠ·ΡΡΠΈΡΡ ΡΠΎ, ΡΡΠΎ ΡΡΠΎΠΈΡ Π½Π΅Π΄ΠΎΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ, ΠΈ Π²ΠΎΠ·Π»ΠΎΠΆΠΈΡΡ Π½Π° Π²Π°Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° ΡΡΠΎ, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΎΠ±ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ. Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ, Ρ Π½Π΅ Π·Π½Π°Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π²Π·ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΡ, ΠΏΠ°ΡΠΎΠΉ Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π² ΠΌΠ΅ΡΡΡ Π·Π° ΡΡΠ°ΡΡΠΈΠ΅ Π² ΡΠΊΡΠΈΠ½ΠΊΠ°ΡΡΠΈΠ½Π³Π΅ ΠΈ ΡΡΡΠ°ΡΡΠ½ΡΠΌ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π½ΠΈΠΆΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ:
ΠΠ½Π°ΡΠ°Π»Π΅ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΏΠ°ΡΠ°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π²Π΅ΡΠ΅ΠΉ, ΡΠΊΡΡΠ²Π°ΡΡΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ. ΠΠ±ΡΡΡΠ°ΠΊΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, jQuery) Π² ΡΡΠΆΠΈΡ ΡΡΠΊΠ°Ρ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ Π½Π°Π²ΡΠΊΠΎΠ², ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΊΡΡΠ²Π°Ρ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Ρ ΠΈΠ»ΠΈ Π»Π΅ΠΆΠ°ΡΠΈΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Π² ΡΡΠΎΠΌ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠΈ Π²Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΡΠ΅ΡΡ, Π½ΠΎ ΠΈ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ ΠΈΠ·ΡΡΠ°Π΅ΡΠ΅ ΠΈ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠΈΡΡΡΡ. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΡΡΡΡ Π΄Π΅Π»Π°ΡΡ. Π― ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π²Π°ΠΌ Π½Π°ΠΉΡΠΈ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π°Ρ ΠΌΠΎΠ·Π³, ΠΈ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ. ΠΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΌΠΈΠΊΡ! Π’Π°ΠΊ ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ°ΠΉΡΠ΅ ΠΎΠ± ΡΡΠΎΠΌ, Π° Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ. Π£ΡΠΈΡΡ, Π΄Π΅Π»Π°ΠΉ. Π£ΡΠΈΡΡ, Π΄Π΅Π»Π°ΠΉ. ΠΠΎΠ²ΡΠΎΡΡΠΉΡΠ΅ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ Π±ΡΡΡΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ², Π° Π½Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ.
2.2 — ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ
Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π»Π΅Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΎΡΠ΅Π½Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π°Π·ΡΠ΅Π²Π°Π» Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π·ΡΡΠ² Π² ΡΡΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° JavaScript, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΈΡΡΡ JavaScript Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ Π½Π°ΡΠΊ Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ½ΠΈ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ HTML ΠΈ CSS ΠΊΠ°ΠΊ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, JSX ΠΈ CSS Π² JS). Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Ρ Π²Π°Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Ρ Π½Π° HTML, CSS ΠΈ JavaScript, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. Π 2019 Π³ΠΎΠ΄Ρ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΈΠ»ΠΈ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π²Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΏΠΎΡΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅ ΡΡΠΎΡ ΡΠ°Π·ΡΡΠ².Π’Π΅ΡΠΌΠΈΠ½ Β«ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΒ» Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° Π³ΡΠ°Π½ΠΈ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΠΈ Π±Π΅Π· ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ², ΠΊΠ°ΡΠ°ΡΡΠΈΡ ΡΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΡΠ΄Π½Ρ). ΠΠ±ΡΡΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ (Ρ. Π. ΠΠ±ΡΠ΅Π΅) Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° — Β«ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΒ» ΠΈΠ»ΠΈ Β«ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΒ». ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π»ΡΠ±ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΡΠ»ΠΎΠ²Π° Β«ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΒ», Β«Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Β», Β«Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΒ», Β«HTMLΒ», Β«CSSΒ» ΠΈΠ»ΠΈ Β«JavaScriptΒ», ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π²Π»Π°Π΄Π΅Π΅Ρ HTML, CSS, ΠΠΎΡ-Ρ Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ² Π² ΠΎΠ±Π»Π°ΡΡΠΈ DOM ΠΈ JavaScript.
Front-End Developer : ΠΠ±ΡΠ΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠ΅Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ Π² HTML, CSS, DOM ΠΈ JavaScript ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΡΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π° Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅.
Front-End Engineer (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ JavaScript ΠΈΠ»ΠΈ Full-stack JavaScript Developer) : ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ, ΠΈΠΌΠ΅ΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ, ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΠΈ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΌΡ ΡΡΠΈ Π½Π°Π²ΡΠΊΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ.ΠΡΠ° ΡΠΎΠ»Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π½Π°Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΏΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° Π² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎ Β«ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ JavaScriptΒ», ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ JavaScript, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΠΌ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΠΌΠΈ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Ρ. Π. ΠΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅ΡΠ½ΠΈΠΉ ΠΎΠΏΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ). .
CSS / HTML Developer : Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠ΅Π³ΠΎ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ Π² HTML ΠΈ CSS, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ JavaScript ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎΡ-Ρ Π°Ρ.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ Π²Π΅Π±-Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ : ΠΠΎΠ³Π΄Π° ΡΠ»ΠΎΠ²ΠΎ Β«ΠΠΈΠ·Π°ΠΉΠ½Π΅ΡΒ» Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, HTML ΠΈ CSS), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ (ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΠΈΠ·Π°ΠΉΠ½) Π½Π°Π²ΡΠΊΠΈ.
UI (ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ) Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ / ΠΠ½ΠΆΠ΅Π½Π΅Ρ : ΠΠΎΠ³Π΄Π° ΡΠ»ΠΎΠ²ΠΎ Β«ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΒ» ΠΈΠ»ΠΈ Β«UIΒ» Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π½Π°Π²ΡΠΊΠ°ΠΌ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈΠ»ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° -ΠΊΠΎΠ½ΡΠΈΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ.
ΠΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ / ΠΏΠ»Π°Π½ΡΠ΅ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ : ΠΠΎΠ³Π΄Π° Π² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎ Β«ΠΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉΒ» ΠΈΠ»ΠΈ Β«ΠΠ»Π°Π½ΡΠ΅ΡΠ½ΡΠΉΒ», ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡΠ΅ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ (ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π° Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, Ρ. Π΅. Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅).
Front-End SEO Expert : ΠΠΎΠ³Π΄Π° ΡΠ»ΠΎΠ²ΠΎ Β«SEOΒ» Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ±ΡΠΈΡΠ½ΡΠΉ ΠΎΠΏΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π΄Π»Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ SEO.
Front-End Accessibility Expert : ΠΠΎΠ³Π΄Π° ΡΠ»ΠΎΠ²ΠΎ Β«AccessibilityΒ» Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ±ΡΠΈΡΠ½ΡΠΉ ΠΎΠΏΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ.
Front-End Dev. ΠΠΏΠ΅ΡΠ°ΡΠΈΡ : Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π° DevOps Π² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ±ΡΠΈΡΠ½ΡΠΉ ΠΎΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΉΡΡ ΠΊ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ, ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Ρ.
Front-End Testing / QA : ΠΠΎΠ³Π΄Π° ΡΠ»ΠΎΠ²ΠΎ Β«Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅Β» ΠΈΠ»ΠΈ Β«QAΒ» Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ±ΡΠΈΡΠ½ΡΠΉ ΠΎΠΏΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. , ΠΈ A / B-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ:
- ΠΡΠ»ΠΈ Π²Ρ Π²ΡΡΡΠ΅ΡΠΈΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ Β«ΠΠΎΠ»Π½ΡΠΉ ΡΡΠ΅ΠΊΒ» ΠΈΠ»ΠΈ ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΡΠΌΠΈΠ½ Β«ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΒ» Π² Π½Π°Π·Π²Π°Π½ΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΡΡΠΈ ΡΠ»ΠΎΠ²Π° ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠ»ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ / Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ.Π΅.Π΅., ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ (ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°Ρ Π΄ΠΈΠ·Π°ΠΉΠ½), ΡΠ°ΠΊ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ.
2.3 — ΠΠ°Π·ΠΎΠ²ΡΠ΅ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ (ΠΈΠ·ΡΡΠΈΡΠ΅ ΠΈΡ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅):
- Π―Π·ΡΠΊ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ (ΠΎΠ½ ΠΆΠ΅ HTML)
- ΠΠ°ΡΠΊΠ°Π΄Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ CSS)
- Π£Π½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ URL)
- ΠΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ° (ΠΎΠ½ ΠΆΠ΅ HTTP)
- Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ JavaScript (ΠΎΠ½ ΠΆΠ΅ ECMAScript 262)
- ΠΠΎΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² JavaScript (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ JSON)
- ΠΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ DOM)
- ΠΠ΅Π±-API (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ HTML5 ΠΈ Π΅Π³ΠΎ Π΄ΡΡΠ·ΡΡ ΠΈΠ»ΠΈ API Π±ΡΠ°ΡΠ·Π΅ΡΠ°)
- Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Π²Π΅Π±-ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ WCAG) ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ ARIA)
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π²Π΅Π±-ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΡΠΌ. ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅.html5.org ΠΈΠ»ΠΈ Π²Π΅Π±-API MDN.
ΠΠ΅Π²ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π½ΠΈΠΆΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.
Π―Π·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ° (ΠΎΠ½ ΠΆΠ΅ HTML)
Π―Π·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ°, ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ HTML, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ. ΠΠ΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΡΠΈΡΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ HTML ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΡ Π² Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ»ΠΈ ΡΠ»ΡΡΠΈΠΌΡΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ. HTML ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΡΡΠΊΡΡΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π΄Π΅Π»Π°Ρ Π΅Π³ΠΎ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, Π° Π½Π΅ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ / Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ:
ΠΠ°ΡΠΊΠ°Π΄Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ CSS)
Cascading Style Sheets (CSS) — ΡΡΠΎ ΡΠ·ΡΠΊ ΡΠ°Π±Π»ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π° ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ. Π₯ΠΎΡΡ ΡΡΠΎΡ ΡΠ·ΡΠΊ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΈΠ»Ρ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° HTML ΠΈ XHTML, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΡΠΈΠΏΡ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΡΡΠΎΠΉ XML, SVG ΠΈ XUL.ΠΠ°ΡΡΠ΄Ρ Ρ HTML ΠΈ JavaScript, CSS ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠ°Π΅ΡΠ³ΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ / Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ:
ΠΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ HTTP)
ΠΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ° (HTTP) — ΡΡΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π΄Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΡ Π³ΠΈΠΏΠ΅ΡΠΌΠ΅Π΄ΠΈΠΉΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.HTTP — ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½Π΅.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ:
Π£Π½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ URL)
ΠΠ΄ΠΈΠ½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ΅ΡΡΡΡΠ° (URL) (ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Π²Π΅Π±-Π°Π΄ΡΠ΅ΡΠΎΠΌ) — ΡΡΠΎ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠ΅ΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠ° Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ. URL-Π°Π΄ΡΠ΅Ρ — ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠΉ ΡΠΈΠΏ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠ΅ΡΡΡΡΠ° (URI), Ρ ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΈ Π΄Π²Π° ΡΠ΅ΡΠΌΠΈΠ½Π° ΠΊΠ°ΠΊ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ.URL-Π°Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ, ΡΡΠΎ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ URI. URL-Π°Π΄ΡΠ΅ΡΠ° ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ (http), Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² (ftp), ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ (mailto), Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ (JDBC) ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ:
ΠΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ DOM)
ΠΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° (DOM) — ΡΡΠΎ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ ΠΎΡ ΡΠ·ΡΠΊΠ° ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ HTML, XHTML ΠΈ XML.Π£Π·Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ DOM. Π ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Π² Π΄Π΅ΡΠ΅Π²Π΅ DOM ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΊΡΡΡΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ DOM ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (API).
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ / Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ:
Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ JavaScript (ΠΎΠ½ ΠΆΠ΅ ECMAScript 262)
JavaScript — ΡΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ, Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.ΠΠ½ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ·ΡΠΊΠ° ECMAScript. ΠΠ°ΡΡΠ΄Ρ Ρ HTML ΠΈ CSS, ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½Π΅; Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΅Π³ΠΎ, ΠΈ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ Π±Π΅Π· ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². JavaScript ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°Ρ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅, ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ API Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ, ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, Π΄Π°ΡΠ°ΠΌΠΈ ΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π½ΠΎ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ΅Π²ΡΠ΅, Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΈΠ»ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΡΠ΅Π΄Ρ Ρ ΠΎΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ Π²ΡΡΡΠΎΠ΅Π½.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ / Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ:
ΠΠ΅Π±-API (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ HTML5 ΠΈ Π΄ΡΡΠ³ΠΈΠ΅)
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JavaScript Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ API. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² (ΡΠΎ Π΅ΡΡΡ ΡΠΈΠΏΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²), ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ°ΠΉΡΠ°.
— Mozilla
Π‘Π°ΠΌΠ°Ρ Π²Π°ΠΆΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ:
ΠΠΎΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² JavaScript (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ JSON)
ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ (AJAJ), Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡΡΠΈΠΉ XML (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ AJAX).Π₯ΠΎΡΡ JSON ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ» Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ ΠΈΠ· ΡΠ·ΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² JavaScript, ΠΎΠ½ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ·ΡΠΊΠ°. ΠΠΎΠ΄ Π΄Π»Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ JSON Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π€ΠΎΡΠΌΠ°Ρ JSON Π±ΡΠ» ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½ ΠΡΠ³Π»Π°ΡΠΎΠΌ ΠΡΠΎΠΊΡΠΎΡΠ΄ΠΎΠΌ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π΄Π²ΡΠΌΡ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡΠΈΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ: RFC 7159 ΠΈ ECMA-404. Π‘ΡΠ°Π½Π΄Π°ΡΡ ECMA ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ RFC ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-Π½ΠΎΡΠΈΡΠ΅Π»Ρ Π΄Π»Ρ JSON — application / json.Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° JSON — .json.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ:
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Π²Π΅Π±-ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ WCAG) ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ ARIA)
ΠΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², ΡΡΡΡΠΎΠΉΡΡΠ², ΡΡΠ»ΡΠ³ ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ. ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ Β«ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏΒ» (Ρ. Π., Π±Π΅Π· ΠΏΠΎΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ ΠΏΠΎΠΌΠΎΡΠΈ) ΠΈ Β«Π½Π΅ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏΒ», ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΡΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ ΡΡΠ΅Π½ΠΈΡ Ρ ΡΠΊΡΠ°Π½Π°).
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
2.4 — ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: http://blog.naustud.io/2015/06/baseline-for-modern-front-end-developers.html
ΠΠ»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΠΎΠ»ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ HTML, CSS, DOM, JavaScript, HTTP / URL ΠΈ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ².
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ Π½Π°Π²ΡΠΊΠΎΠ², ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ²:
- Π‘ΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ CMS)
- Node.js
- ΠΡΠΎΡΡ-Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
- ΠΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ / WAI-ARIA
- ΠΠΎΠΈΡΠΊΠΎΠ²Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ (SEO)
- ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
- ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΎΠΏΡΡ
- Π£Π΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
- Π‘ΠΈΡΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠΈΠΈ
- ΠΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
- ΠΠ°ΡΠΊΠ°Ρ
- ΠΠ°ΠΊΠ΅Ρ CSS / ΡΠ΅ΡΠΊΠΈ
- DOM Manipulation (e.Π³., jQuery)
- ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°
- ΠΠ°Π³ΡΡΠ·ΠΎΡΠ½ΡΠ΅ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ
- Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
- ΠΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ / ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎΠ΅ ΡΡ ΡΠ΄ΡΠ΅Π½ΠΈΠ΅
- ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, GIT)
- MVC / MVVM / MV *
- Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- Π€ΠΎΡΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, JSON, XML)
- API Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Restful API)
- ΠΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π΅Π±-ΡΡΠΈΡΡΠΎΠ²
- ΠΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠ°Ρ Π²Π΅ΠΊΡΠΎΡΠ½Π°Ρ Π³ΡΠ°ΡΠΈΠΊΠ° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ SVG)
- Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- ΠΠΈΠΊΡΠΎΠ΄Π°Π½Π½ΡΠ΅ / ΠΌΠΈΠΊΡΠΎΡΠΎΡΠΌΠ°ΡΡ
- Π‘ΡΠ΅Π΄ΡΡΠ²ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
- ΠΠ΄Π°ΠΏΡΠΈΠ²Π½ΡΠΉ Π²Π΅Π±-Π΄ΠΈΠ·Π°ΠΉΠ½
- ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΠΠΎΠ΄ΡΠ»ΠΈ
- ΠΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
- ΠΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²
- ΠΠ½ΠΈΠΌΠ°ΡΠΈΡ JavaScript
- CSS-Π°Π½ΠΈΠΌΠ°ΡΠΈΡ
- ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ / ΠΡΠ°ΡΠΈΠΊΠΈ
- ΠΠΈΠ΄ΠΆΠ΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΠΎΠ΄
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠ°ΡΠ΅ΡΡΠ²Π°
- Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠΊΡΡΡΠΈΡ ΠΊΠΎΠ΄Π°
- ΠΠ½Π°Π»ΠΈΠ· ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° / CLI
- Π¨Π°Π±Π»ΠΎΠ½Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ
- Π¨Π°Π±Π»ΠΎΠ½Ρ Π΄Π²ΠΈΠΆΠΊΠΎΠ²
- ΠΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° / Π±ΡΠ°ΡΠ·Π΅ΡΠ°
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π±ΡΠ°ΡΠ·Π΅ΡΠ°
2.5 — Front-End ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π»Ρ …
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ·Π΄Π°Π΅Ρ HTML, CSS ΠΈ JS, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ΅) ΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ (ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΠ‘):
ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²:
- ΠΠ°ΡΡΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ
- ΠΠΎΡΡΠ±ΡΠΊ / Π½Π΅ΡΠ±ΡΠΊ
- ΠΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ΅Π»Π΅ΡΠΎΠ½
- ΠΠ»Π°Π½ΡΠ΅Ρ
- ΡΠ΅Π»Π΅Π²ΠΈΠ·ΠΎΡ
- Π§Π°ΡΡ
- ΠΠ΅ΡΠΈ (Ρ.Π΅., Π²ΡΠ΅, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, ΠΌΠ°ΡΠΈΠ½Ρ, Ρ ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡΠ½ΠΈΠΊ, ΡΠ°ΡΡ, ΡΠ΅ΡΠΌΠΎΡΡΠ°Ρ ΠΈ Ρ. Π΄.)
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: https://www.enterpriseirregulars.com/104084/roundup-internet-things-forecasts-market-estimates-2015/
ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
- ΠΠ΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ (ΠΏΡΠΈΠΌΠ΅ΡΡ: Chrome, IE, Safari, Firefox).
- ΠΠ΅Π·Π³ΠΎΠ»ΠΎΠ²ΡΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ (ΠΏΡΠΈΠΌΠ΅ΡΡ: Headless Chromium).
- ΠΠΊΠ»Π°Π΄ΠΊΠ° WebView / Π±ΡΠ°ΡΠ·Π΅ΡΠ° (ΠΏΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, iframe), Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ ΠΌΠΎΡΡΠΎΠΌ ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ API. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ WebView ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. (ΡΠΎ Π΅ΡΡΡ HTML, CSS ΠΈ JS). (ΠΏΡΠΈΠΌΠ΅ΡΡ: Apache Cordova, NW.js, Electron)
- ΠΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΡΡΠ° ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ API.ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ iOS), Π° Π½Π΅ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. (ΠΏΡΠΈΠΌΠ΅ΡΡ: NativeScript, React Native)
2.6 — Front-End Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΠ±ΡΡΠ½ΠΎ — ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ³ΡΠΎΠΊ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΠ΅Ρ ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΡ, Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.
ΠΡΠΎΡΡΠ°Ρ Π³ΡΡΠΏΠΏΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΎΠ»ΠΈ.
- ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΈΡΡΡ, ΡΠ²Π΅ΡΠ°, ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ, ΡΠΌΠΎΡΠΈΠΈ, Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ ΡΠ΅ΠΌΡ)
- UI / Interaction Designer / Information Architect (Ρ. Π. ΠΠ°ΡΠΊΠ°ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ Π²ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ UI, ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ)
- Front-End Developer (Ρ.Π΅. ΠΏΠΈΡΠ΅Ρ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ / Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅)
- Back-End Developer (Ρ.Π΅. ΠΏΠΈΡΠ΅Ρ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅)
Π ΠΎΠ»ΠΈ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΠΌΠΈΡΡ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ.ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΠ±ΡΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΡΡ Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° / Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ. Π§Π»Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΠ»ΠΈ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ Π½Π° ΡΠ΅Π±Ρ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠ΅ΠΉ ΡΠΎΠ»ΠΈ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° (ΡΠΎ Π΅ΡΡΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π»ΠΈΡΠΎ, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Ρ. Π.).
ΠΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½Π°Ρ Π²Π΅Π±-Π³ΡΡΠΏΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΎΠ»ΠΈ, Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²ΡΡΠ΅:
- SEO-ΡΡΡΠ°ΡΠ΅Π³ΠΈ
- DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ
- ΠΠ½ΠΆΠ΅Π½Π΅ΡΡ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
- Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ API
- ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
- QA-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ / ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ
2.7 — Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ / ΠΏΠΎΠ»Π½ΡΠΉ ΠΌΠΈΡ
Π’Π΅ΡΠΌΠΈΠ½ Β«Full-StackΒ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΈΠΎΠ±ΡΠ΅Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π° Π½Π΅ ΡΡΠ½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎΡΡΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π΄Π²ΡΡ ΠΎΠΏΡΠΎΡΠΎΠ², ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΡ Π½ΠΈΠΆΠ΅. ΠΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠ³ΡΡ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ²Π΅ΡΠΈΡΡ Π² ΡΠΎ, ΡΡΠΎ Π±ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° — ΠΎΠ±ΡΡΠ½ΠΎΠ΅ Π΄Π΅Π»ΠΎ. ΠΠΎ, ΡΡΠ΄Ρ ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡ ΠΏΠΎΡΡΠΈ 20-Π»Π΅ΡΠ½Π΅ΠΌΡ ΠΎΠΏΡΡΡ, ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ°ΠΊ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: https: // medium.freecodecamp.com/we-asked-15-000-people-who-they-are-and-how-theyre-learning-to-code-4104e29b2781#.ngcpn8nlz
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: https://insights.stackoverflow.com/survey/2017#developer-profile-specific-developer-types
Π ΠΎΠ»ΠΈ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° ΠΈΠ»ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΡΡ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π½Π°Π²ΡΠΊΠΎΠ² ΠΈ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° / Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.ΠΡΠ±ΠΎΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΡΡΠΈΡ 4 ΡΠΎΠ»Π΅ΠΉ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅Π΄ΠΊΠΈΠΌ ΡΠΎΠ²Π°ΡΠΎΠΌ.
Π‘ ΠΏΡΠ°Π³ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΡΠ΅ΠΌΠΈΡΡΡΡ Π±ΡΡΡ ΠΈΠ»ΠΈ Π½Π°Π½ΠΈΠΌΠ°ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠ° Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΠΎΠ»Π΅ΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ / IA, Front-end Dev, Back-end Dev). ΠΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ΅, ΠΊΡΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΠΊΡΠΏΠ΅ΡΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ· ΡΡΠΈΡ ΡΠΎΠ»Π΅ΠΉ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ JavaScript ΠΏΡΠΎΠ½ΠΈΠΊ Π½Π° Π²ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° (Ρ. Π. Node.js) ΠΏΠΎΠΈΡΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ JS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ°ΡΡΡ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΌΠ΅Π½Π΅Π΅ ΠΌΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ JavaScript. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ°ΡΡΡ, API ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠΆΠ΅ Π½Π΅ ΡΠ°ΠΊ Π°Π±ΡΡΡΠ΄Π΅Π½, ΠΊΠ°ΠΊ ΡΠ°Π½ΡΡΠ΅ (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ CSS). ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΌΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π½ΠΎ Π½Π΅ ΡΠ°ΠΊΠΎΠΉ Π½Π΅ΠΎΠ±ΡΡΠ½ΡΠΉ, ΠΊΠ°ΠΊ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ Π±Ρ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΡΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°. Π ΡΠ΅Π΄ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ.ΠΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΠ°ΡΡΠ΅ΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Ρ Π±Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠ»ΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ .
2.8 — Front-End ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°:
Π’Π΅ΡΡΡ:
ΠΠΎΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π·Π°Π΄Π°ΡΡ:
ΠΠΎΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π·Π°Π΄Π°Π΅ΡΠ΅:
2.9 — ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠ΅ Π΄ΠΎΡΠΊΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»ΡΠΆΠ± ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π²Π°ΠΊΠ°Π½ΡΠΈΠΉ. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ / ΠΊΠ°ΡΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π°.
2.10 — ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ Π·Π°ΡΠΏΠ»Π°ΡΠ°
Π ΡΡΠ΅Π΄Π½Π΅ΠΌ ΠΏΠΎ Π‘Π¨Π Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡ 65 Π΄ΠΎ 100 ΡΡΡΡΡ Π΄ΠΎΠ»Π»Π°ΡΠΎΠ².
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅, ΠΎΠΆΠΈΠ΄Π°ΠΉΡΠ΅, ΡΡΠΎ Π²Ρ Π²ΡΠΉΠ΄Π΅ΡΠ΅ Π½Π° ΠΏΠΎΠ»Π΅ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ 40 ΡΡΡΡΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΡΡΠ°.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ:
- ΠΠ΅Π΄ΡΡΠΈΠΉ / ΡΡΠ°ΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ / ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΆΠΈΡΡ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ (Ρ. Π. Π Π°Π±ΠΎΡΠ°ΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ) ΠΈ Π·Π°ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ 150 ΡΡΡΡΡ Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π² Π³ΠΎΠ΄ (ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ angel.co, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ Π½Π° ΡΡΠΌΠΌΡ Π±ΠΎΠ»Π΅Π΅ 150 ΡΡΡΡΡ Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ·ΡΡΠΈΡΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ Π·Π°ΡΠ°Π±ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅ Stack Overflow Jobs).
ΠΠ»Π°Π²Π° 3. ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Front-end Dev: ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ / ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠ°Ρ (Π²ΠΈΠ΄Π΅ΠΎ-ΡΡΠ΅Π½ΠΈΠ½Π³ΠΈ, ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ Ρ. Π.), ΠΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠ°ΡΡΠ΅ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ΅Π±Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ (ΡΡΠ°ΡΡΠΈ, ΠΊΠ½ΠΈΠ³ΠΈ, Π²ΠΈΠ΄Π΅ΠΎ, ΡΠΊΡΠΈΠ½ΠΊΠ°ΡΡΡ ΠΈ Ρ. Π..) Π±ΡΠ΄ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΠ°ΠΊ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ. ΠΠ»Π°ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ Π±ΡΠ΄ΡΡ ΠΎΡΠΌΠ΅ΡΠ΅Π½Ρ [$].
3.1. — ΠΠ·ΡΡΠΈΡΠ΅ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ / Π‘Π΅ΡΡ
ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ — ΡΡΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° (TCP / IP) Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ² ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ. ΠΡΠΎ ΡΠ΅ΡΡ ΡΠ΅ΡΠ΅ΠΉ, ΡΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ· ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΠ°ΡΡΠ½ΡΡ , Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΡ , Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ , Π΄Π΅Π»ΠΎΠ²ΡΡ ΠΈ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅ΡΠ΅ΠΉ ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±Π°, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΠΈΡΠΎΠΊΠΈΠΌ ΡΠΏΠ΅ΠΊΡΡΠΎΠΌ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ , Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΡ ΠΈ ΠΎΠΏΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ ΡΡΠ»ΡΠ³, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½Ρ (WWW), ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ°, ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΈΡ ΠΈ ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠΈ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»Π°ΠΌΠΈ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: https://www.helloitsliam.com/2014/12/20/how-the-internet-works-infographic/
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: http: // www.bitrebels.com/technology/find-out-who-runs-the-internet-chart/
3.2. — ΠΠ·ΡΡΠΈΡΠ΅ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ
ΠΠ΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ (ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ) — ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½Π΅. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΡΠ΅ΡΡΡΡΠ° (URI / URL) ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°. ΠΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ Π² ΡΠ΅ΡΡΡΡΠ°Ρ , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠ²ΠΎΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ ΠΊ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ.Π₯ΠΎΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½Ρ, ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ Π² ΡΠ°ΡΡΠ½ΡΡ ΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Π°ΠΌ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ (Π½Π° Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ):
- Chrome (Π΄Π²ΠΈΠΆΠΎΠΊ: Blink + V8)
- Firefox (Π΄Π²ΠΈΠΆΠΎΠΊ: Gecko + SpiderMonkey)
- Internet Explorer (Π΄Π²ΠΈΠΆΠΎΠΊ: Trident + Chakra)
- Safari (Π΄Π²ΠΈΠΆΠΎΠΊ: Webkit + SquirrelFish)
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: http: // gs.statcounter.com/browser-market-share
Π Π°Π·Π²ΠΈΡΠΈΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² ΠΈ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ (Ρ.Π΅. API)
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π±Π΅Π·Π³ΠΎΠ»ΠΎΠ²ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ:
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΡ
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ²:
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ²
Π₯Π°ΠΊΠΈ Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ²
Π ΠΏΡΠΎΡΠ»ΠΎΠΌ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΡΠ°ΡΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π» Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ .ΠΠΎΠ³Π΄Π°-ΡΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΡΠ΅ΠΌ ΡΠ΅Π³ΠΎΠ΄Π½Ρ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, React, Webpack, Post-CSS, Babel ΠΈ Ρ. Π.) Π ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ². ΠΠΎΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π΅ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° Π² ΡΠΎΠΌ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π±ΡΠ°ΡΠ·Π΅Ρ.
Evergreen Browsers
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² ΡΡΠΈΡΠ°ΡΡΡΡ Π²Π΅ΡΠ½ΠΎΠ·Π΅Π»Π΅Π½ΡΠΌΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ. Π’ΠΎ Π΅ΡΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π±Π΅Π· ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.ΠΡΠΎΡ ΡΠ°Π³ ΠΊ ΡΠ°ΠΌΠΎΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΠΈΠΌΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌ ΡΡΠ°Π» ΡΠ΅Π°ΠΊΡΠΈΠ΅ΠΉ Π½Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΡΠ±ΠΎΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Chrome ΠΈ Β«Chrome Dev ToolsΒ» Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΡΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡΠ±ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ — ΡΡΠΎ ΡΡΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π²ΡΠ±ΠΎΡ. ΠΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ — ΡΡΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΈ Π½Π° ΠΊΠ°ΠΊΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
3.3 — ΠΠ·ΡΡΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΠΈΠΌΠ΅Π½ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΊΠ°ΠΊ DNS)
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΠΈΠΌΠ΅Π½ (DNS) — ΡΡΠΎ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², ΡΠ»ΡΠΆΠ± ΠΈΠ»ΠΈ Π»ΡΠ±ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΊ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΡ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ. ΠΠ½ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Ρ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡΠ°ΡΡΠ²ΡΡΡΠΈΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΉ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΠ΄ΠΈ ΠΌΠΎΠ³ΡΡ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, Π² ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ IP-Π°Π΄ΡΠ΅ΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ»ΡΠΆΠ± ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ.Π‘ΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΠΈΠΌΠ΅Π½ — Π²Π°ΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ»ΡΠΆΠ±, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ»ΡΠΆΠ±Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: http://www.digital-digest.com/blog/DVDGuy/wp-content/uploads/2011/11/how_dns_works.jpg
3.4 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ HTTP / ΡΠ΅ΡΠ΅ΠΉ (Π²ΠΊΠ»ΡΡΠ°Ρ CORS ΠΈ WebSockets)
HTTP — ΠΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ° (HTTP) — ΡΡΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π΄Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ , ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΡ , Π³ΠΈΠΏΠ΅ΡΠΌΠ΅Π΄ΠΈΠΉΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.HTTP — ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½Π΅.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ HTTP
HTTP-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ
HTTP-Π²ΠΈΠ΄Π΅ΠΎ / ΡΡΠ°ΡΡΠΈ / ΡΡΠ΅Π±Π½ΡΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΡ
ΠΠΎΠ΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ HTTP
CORS — Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ (CORS) — ΡΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΈΡΡΡ) Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΎΠΌΠ΅Π½Π°, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΡΠ΅ΡΡΡΡ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
CORS Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ
CORS
WebSockets — WebSocket — ΡΡΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΠ»Π½ΠΎΠ΄ΡΠΏΠ»Π΅ΠΊΡΠ½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ ΡΠ²ΡΠ·ΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΡΠΎΡΠΎΠΊΠΎΠ» WebSocket Π±ΡΠ» ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ IETF ΠΊΠ°ΠΊ RFC 6455 Π² 2011 Π³ΠΎΠ΄Ρ, Π° API WebSocket Π² Web IDL ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ W3C.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ΅Π±-ΡΠΎΠΊΠ΅ΡΡ
3.5 — ΠΠ·ΡΡΠΈΡΠ΅ Π²Π΅Π±-Ρ ΠΎΡΡΠΈΠ½Π³
Π‘Π»ΡΠΆΠ±Π° Π²Π΅Π±-Ρ ΠΎΡΡΠΈΠ½Π³Π° — ΡΡΠΎ ΡΠΈΠΏ ΡΠ»ΡΠΆΠ±Ρ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-Ρ ΠΎΡΡΠΈΠ½Π³Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ Π»ΠΈΡΠ°ΠΌ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠΌ Π΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΈ Π²Π΅Π±-ΡΠ°ΠΉΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· World Wide Web. ΠΠ΅Π±-Ρ ΠΎΡΡΡ — ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ΅ΠΌ ΠΈΠ»ΠΈ Π°ΡΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π² ΡΠ΅Π½ΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ .
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: https: // firstsiteguide.ru / wp-content / uploads / 2016/06 / what-is-web-hosting-infographic.jpg
3.6 — ΠΠ·ΡΡΠΈΡΡ ΠΎΠ±ΡΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ
3.7 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° / Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ
ΠΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° — ΠΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (UI) ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° — ΡΡΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΌΠ°ΡΠΈΠ½ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ, Π±ΡΡΠΎΠ²Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ°, ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Ρ ΡΠΏΠΎΡΠΎΠΌ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΎΠΏΡΡ.Π¦Π΅Π»Ρ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° — ΡΠ΄Π΅Π»Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ).
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π¨Π°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ — Π¨Π°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ — ΡΡΠΎ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΄Π΅Ρ Π±ΡΠ»Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡΠΎΠΌ ΠΡΠΈΡΡΠΎΡΠ΅ΡΠΎΠΌ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠΎΠΌ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π³ΠΎΡΠΎΠ΄ΡΠΊΠΎΠΌ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Π·Π΄Π°Π½ΠΈΠΉ ΠΈ Π±ΡΠ»Π° Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π΄ΡΡΠ³ΠΈΡ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Π΄Π°Π³ΠΎΠ³ΠΈΠΊΡ, ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠΈΠ·Π°ΠΉΠ½ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ — ΠΠΈΠ·Π°ΠΉΠ½ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ (UXD, UED ΠΈΠ»ΠΈ XD) — ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π·Π° ΡΡΠ΅Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΡ ΠΎΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠΌ. ΠΠΈΠ·Π°ΠΉΠ½ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ (HCI) ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ, Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ Π²ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΈΠ»ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° — ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° (HCI) ΠΈΡΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΡΠ΄Π΅Π»ΡΡ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Π»ΡΠ΄ΡΠΌΠΈ (ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ) ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠΈ.ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ HCI Π½Π°Π±Π»ΡΠ΄Π°ΡΡ, ΠΊΠ°ΠΊ Π»ΡΠ΄ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠΈ, ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»ΡΠ΄ΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠΈ ΠΏΠΎ-Π½ΠΎΠ²ΠΎΠΌΡ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, Ρ Π±Ρ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π» ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΊΡΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
3.8 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ HTML ΠΈ CSS
HTML — Π―Π·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ°, ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ HTML, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ.ΠΠ΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΡΠΈΡΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ HTML ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΡ Π² Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ»ΠΈ ΡΠ»ΡΡΠΈΠΌΡΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ. HTML ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΡΡΠΊΡΡΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π΄Π΅Π»Π°Ρ Π΅Π³ΠΎ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, Π° Π½Π΅ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
CSS — ΠΠ°ΡΠΊΠ°Π΄Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ (CSS) — ΡΡΠΎ ΡΠ·ΡΠΊ ΡΠ°Π±Π»ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π° ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ. Π₯ΠΎΡΡ ΡΡΠΎΡ ΡΠ·ΡΠΊ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΈΠ»Ρ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° HTML ΠΈ XHTML, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΡΠΈΠΏΡ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΡΡΠΎΠΉ XML, SVG ΠΈ XUL.ΠΠ°ΡΡΠ΄Ρ Ρ HTML ΠΈ JavaScript, CSS ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠ°Π΅ΡΠ³ΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΡΡΠ²Ρ Π΄ΠΎΠΌΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ HTML ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°ΠΌΠ»Π΅Π½ΠΈΠ΅, Π° CSS — ΠΊΠ°ΠΊ ΡΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ΄Π΅Π»ΠΊΡ.
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
ΠΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ CSS:
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ / ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ:
ΠΠ»ΠΎΡΡΠ°ΡΠΈΠΉ / Π‘Π»ΠΎΠ²Π°ΡΡ:
Π‘ΡΠ°Π½Π΄Π°ΡΡΡ / ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° CSS:
Π‘ΠΎΠ±ΡΠ°Π½ΠΈΠ΅ Π°Π²ΡΠΎΡΠΎΠ² / Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡΠΎΠ²:
3.9. ΠΠ·ΡΡΠΈΡΠ΅ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ
ΠΠΎΠΈΡΠΊΠΎΠ²Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ (SEO) — ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° ΠΈΠ»ΠΈ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ Π² Π½Π΅ΠΎΠΏΠ»Π°ΡΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Β«Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈΒ», Β«ΠΎΡΠ³Π°Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈΒ» ΠΈΠ»ΠΈ Β«Π·Π°ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌΠΈΒ» ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ. Π ΡΠ΅Π»ΠΎΠΌ, ΡΠ΅ΠΌ ΡΠ°Π½ΡΡΠ΅ (ΠΈΠ»ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π» Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΠ΅ΠΉΡΠΈΠ½Π³ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΠΎΠΈΡΠΊΠ°) ΠΈ ΡΠ°ΡΠ΅ ΡΠ°ΠΉΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΠΎΠΈΡΠΊΠ°, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅ΠΉ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. SEO ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ΅Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²ΠΈΠ΄Ρ ΠΏΠΎΠΈΡΠΊΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠΈΡΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ, ΠΏΠΎΠΈΡΠΊ Π²ΠΈΠ΄Π΅ΠΎ, Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠΈΡΠΊ, ΠΏΠΎΠΈΡΠΊ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ ΠΈ ΠΎΡΡΠ°ΡΠ»Π΅Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: https://visual.ly/community/infographic/computers/how-does-seo-work
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
3.10 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ JavaScript
JavaScript — ΡΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ, Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠ½ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ·ΡΠΊΠ° ECMAScript. ΠΠ°ΡΡΠ΄Ρ Ρ HTML ΠΈ CSS, ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½Π΅; Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΅Π³ΠΎ, ΠΈ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ Π±Π΅Π· ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ².JavaScript ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°Ρ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅, ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ API Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ, ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, Π΄Π°ΡΠ°ΠΌΠΈ ΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π½ΠΎ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ΅Π²ΡΠ΅, Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΈΠ»ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΡΠ΅Π΄Ρ Ρ ΠΎΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ Π²ΡΡΡΠΎΠ΅Π½.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ:
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
ΠΠ°ΡΡΠ΅ΡΠΈΠ½Π³:
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ JavaScript:
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ / ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ:
ΠΠ»ΠΎΡΡΠ°ΡΠΈΠΉ / ΠΠ½ΡΠΈΠΊΠ»ΠΎΠΏΠ΅Π΄ΠΈΡ / ΠΠ°ΡΠ³ΠΎΠ½:
Π‘ΡΠ°Π½Π΄Π°ΡΡΡ / ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
Π‘ΡΠΈΠ»Ρ:
Π£ΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΡΡΠ΅Π±Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ JS:
ΠΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΠ΅Π»ΠΈ / Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ JS:
3.11. ΠΠ·ΡΡΠΈΡΠ΅ DOM, BOM, CSSOM ΠΈ jQuery
DOM — ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° (DOM) — ΡΡΠΎ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ ΠΎΡ ΡΠ·ΡΠΊΠ° ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ HTML, XHTML ΠΈ XML. Π£Π·Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ DOM. Π ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Π² Π΄Π΅ΡΠ΅Π²Π΅ DOM ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΊΡΡΡΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ DOM ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (API).
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
BOM — ΠΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ° (BOM) — ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠ΅ Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠ½ΠΎΡΡΡΠ΅Π΅ΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π·Π΄Π΅ΡΡ Π½Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΡΡΠΎΠ³ΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π»ΡΠ±ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
jQuery — jQuery — ΡΡΠΎ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² HTML.jQuery — ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, Π΅Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π° 65% ΠΈΠ· 10 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΠ°ΠΉΡΠΎΠ² Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΠΎΡΠ΅ΡΠ°Π΅ΠΌΠΎΡΡΡΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅. jQuery — Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌΠΎΠ΅ ΠΏΠΎ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ MIT.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ, Π½ΠΎ, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΡΠ°ΠΌΡΠΉ ΡΠ»ΠΎΠΆΠ½ΡΠΉ, — ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠ·ΡΡΠΈΡΡ JavaScript, Π·Π°ΡΠ΅ΠΌ DOM, Π° Π·Π°ΡΠ΅ΠΌ jQuery. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠΎ, ΡΡΠΎ ΡΠ°Π·ΡΠΌΠ½ΠΎ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΌΠΎΠ·Π³Π°. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠ·ΡΡΠ°ΡΡ JavaScript, Π° Π·Π°ΡΠ΅ΠΌ DOM, ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠ·ΡΡΠ°Ρ jQuery.ΠΠ°ΠΊΠΎΠΉ Π±Ρ ΠΏΡΡΡ Π²Ρ Π½ΠΈ Π²ΡΠ±ΡΠ°Π»ΠΈ, ΠΏΡΠΎΡΡΠΎ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ JavaScript, DOM ΠΈ jQuery Π½Π΅ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΠΈΡΡ Π² ΡΠ΅ΡΠ½ΡΠΉ ΡΡΠΈΠΊ.
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
ΠΠ°ΡΡΠ΅ΡΠΈΠ½Π³:
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ / ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ:
Π‘ΡΠ°Π½Π΄Π°ΡΡΡ / ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
3.12 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π²Π΅Π±-Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
Π‘ΡΠ°Π½Π΄Π°ΡΡΡ / ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
3.13 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π²Π΅Π±-ΡΡΠΈΡΡΠΎΠ², Π·Π½Π°ΡΠΊΠΎΠ² ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π±-ΡΠΈΠΏΠΎΠ³ΡΠ°ΡΠΈΠΊΠ° ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½Π΅.ΠΠΎΠ³Π΄Π° HTML Π±ΡΠ» Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½, ΡΡΠΈΡΡΡ ΠΈ ΡΡΠΈΠ»ΠΈ ΡΡΠΈΡΡΠΎΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΈΡΡΠΎΠ², ΠΏΠΎΠΊΠ° Netscape Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»Π° Π² 1995 Π³ΠΎΠ΄Ρ ΡΠ΅Π³
, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ Π±ΡΠ» ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ HTML 3.2. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΈΡΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΡΠ΅Π³Π΅, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΠ½Π°ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠΉ ΡΡΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΈΡΡ Π±Π΅Π· Π·Π°ΡΠ΅ΡΠ΅ΠΊ ΠΈΠ»ΠΈ ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ΅ΡΠ²Π°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΡ ΡΠ°Π±Π»ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ Π±ΡΠ»Π° ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π² 1996 Π³ΠΎΠ΄Ρ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π»Π° ΡΠ΅ ΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ CSS2 Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° Π² 1998 Π³ΠΎΠ΄Ρ ΠΈ Π±ΡΠ»Π° ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΠ° ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠ±ΠΎΡΠ° ΡΡΠΈΡΡΠ°, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΡΡΠΎΠ², ΡΠΈΠ½ΡΠ΅Π· ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΡ. ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π±ΡΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Ρ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ CSS2.1. ΠΠ΄Π½Π°ΠΊΠΎ Internet Explorer Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΠΈΡΡΠΎΠ² Π² Π²Π΅ΡΡΠΈΠΈ 4.0, Π²ΡΠΏΡΡΠ΅Π½Π½ΠΎΠΉ Π² 1997 Π³ΠΎΠ΄Ρ. ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΡΠΈΡΡΠΎΠ² Π±ΡΠ»Π° ΠΏΠΎΠ·ΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΠΈΡΡΠΎΠ² CSS3 ΠΈ Ρ ΡΠ΅Ρ ΠΏΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Safari 3.1, Opera 10 ΠΈ Mozilla Firefox 3.5. ΠΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΡΡΠΎ ΠΏΠΎΠ²ΡΡΠΈΠ»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΊ Π²Π΅Π±-ΡΠΈΠΏΠΎΠ³ΡΠ°ΡΠΈΠΊΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΠΈΡΡΠΎΠ².
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π¨ΡΠΈΡΡΠΎΠ²:
ΠΠΊΠΎΠ½ΠΊΠΈ:
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ:
3.14 — ΠΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
ΠΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², ΡΡΡΡΠΎΠΉΡΡΠ², ΡΡΠ»ΡΠ³ ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ. ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ Β«ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏΒ» (Ρ.Π΅., Π±Π΅Π· ΠΏΠΎΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ ΠΏΠΎΠΌΠΎΡΠΈ) ΠΈ Β«Π½Π΅ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏΒ», ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΡΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ ΡΡΠ΅Π½ΠΈΡ Ρ ΡΠΊΡΠ°Π½Π°).
ΠΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ Β«Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ°Β» ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ³ΠΎΠ΄Ρ ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΠΎΠΊΡΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΎΡΠΎΠ±ΡΠΌΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ; ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ.
ΠΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΡΠ°ΡΡ Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΡΡΠ΅ΠΏΠ΅Π½ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΡΡΠ»ΡΠ³Π° ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Π°) ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ΅Π»Π΅ΠΉ Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ, ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΡΡ ΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π»ΡΠ΄ΡΠΌΠΈ Ρ ΡΠ°ΠΌΡΠΌ ΡΠΈΡΠΎΠΊΠΈΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌΠΈ Π² ΡΠ°ΠΌΠΎΠΌ ΡΠΈΡΠΎΠΊΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΡΠΈΡΡΠ°ΡΠΈΠΉ. Π Π΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π΅ΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ Π»ΡΠ΄Π΅ΠΉ (Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π΅ΡΡΡ Ρ Π½ΠΈΡ ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ).
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
Π‘ΡΠ°Π½Π΄Π°ΡΡΡ / ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
3.15 — ΠΠ·ΡΡΠΈΡΠ΅ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π²Π΅Π± / Π±ΡΠ°ΡΠ·Π΅ΡΠ°
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: http://www.evolutionoftheweb.com/
BOM (ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°) ΠΈ DOM (ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°) — Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Π²Π½ΡΡΡΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ². ΠΡΠ΅, ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ DOM ΠΈΠ»ΠΈ BOM, Π½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ»ΠΈ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° (ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ
API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π°Π·ΡΠ²Π°Π»ΠΈΡΡ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ HTML5, ΡΡΠΎ ΠΏΡΡΠ°Π΅Ρ ΠΈΡ
ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ / ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΡ Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ HTML5. ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠ·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ HTML5).ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈΠ»ΠΈ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Navigator.getBattery ()
), ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅ΡΠ΅Π· Π±ΡΠ°ΡΠ·Π΅Ρ Π½Π° ΠΏΠ»Π°Π½ΡΠ΅ΡΠ°Ρ
ΠΈ ββΡΠ΅Π»Π΅ΡΠΎΠ½Π°Ρ
.
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π½Π°ΡΡ ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ, Π³Π΄Π΅ ΡΡΠΎ ΡΠΌΠ΅ΡΡΠ½ΠΎ, Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ / API Π±ΡΠ°ΡΠ·Π΅ΡΠ°. Π₯ΠΎΡΠΎΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΡΠΈΠΌΠΈ API — ΡΡΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² HTML5test.com Π΄Π»Ρ 5 ΡΠ°ΠΌΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ².
MDN ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ Π²Π΅Π± / Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ².
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ API ΡΠΊΠ°Π·Π°Π½Ρ W3C ΠΈΠ»ΠΈ WHATWG.
ΠΠΎΠΌΠΈΠΌΠΎ MDN, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ, ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π±ΡΠ°ΡΠ·Π΅ΡΠ°:
3.16 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ JSON (Π½ΠΎΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² JavaScript)
JSON (ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π½ΠΎΡΠΈΡΡΡ ΠΊΠ°ΠΊ Π½ΠΎΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² JavaScript) — ΡΡΠΎ ΠΎΡΠΊΡΡΡΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΡΠΎΡΡΠΎΡΡΠΈΡ ΠΈΠ· ΠΏΠ°Ρ Π°ΡΡΠΈΠ±ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ (AJAJ), Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡΡΠΈΠΉ XML (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ AJAX).
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ JSON ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ» Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ ΠΈΠ· ΡΠ·ΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² JavaScript, ΠΎΠ½ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ·ΡΠΊΠ°. ΠΠΎΠ΄ Π΄Π»Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ JSON Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π€ΠΎΡΠΌΠ°Ρ JSON Π±ΡΠ» ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½ ΠΡΠ³Π»Π°ΡΠΎΠΌ ΠΡΠΎΠΊΡΠΎΡΠ΄ΠΎΠΌ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π΄Π²ΡΠΌΡ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡΠΈΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ: RFC 7159 ΠΈ ECMA-404. Π‘ΡΠ°Π½Π΄Π°ΡΡ ECMA ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ RFC ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-Π½ΠΎΡΠΈΡΠ΅Π»Ρ Π΄Π»Ρ JSON — application / json. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° JSON — .json.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ / ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ:
Π‘ΡΠ°Π½Π΄Π°ΡΡΡ / ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
ΠΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡ:
3.17 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² JS
ΠΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ JavaScript, Π½ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ MV * Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ (Ρ.Π΅.Π΄., ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ) ΠΈΠ· Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ (Ρ. Π΅. Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ JSON).
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² JavaScript 2015 (ΠΎΠ½ ΠΆΠ΅ ES6) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Β«Π‘ΡΡΠΎΠΊΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²Β». ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ Π±ΡΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ ΡΠ°ΠΊΠΈΠΌΠΈ Π²Π΅ΡΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ JSX, ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ HTML.
ΠΡΠ»ΠΈ Π±Ρ Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» React ΠΈ JSX, Ρ Π±Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΠ°ΡΠΈΠ»ΡΡ ΠΊ JavaScript Β«Π‘ΡΡΠΎΠΊΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²Β», Π° ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΠ³ΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π»ΠΎ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ» Π½Π° Π½Π°Π½Π΄ΠΆΠ°ΠΊΠΈ.
3.18 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΡΠΎΠ²
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΡΠΎΠ², ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (Ρ.Π΅.e., ruby, php, python, nodeJS ΠΈ Ρ. Π΄.), ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ HTML ΠΈΠ· ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ² / Π΄Π°Π½Π½ΡΡ + ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π±Π΅Π· Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ°.
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
3.19 — ΠΠ·ΡΡΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JS
3.20 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
Π£ΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΡΡΠ΅Π±Π½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ:
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅.ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ / SPA / JavaScript-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Π²Ρ Π²ΡΠ±ΡΠ°Π»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠ°ΠΊ Angular, Ember, React ΠΈΠ»ΠΈ Aurelia.
ΠΠΎΠΉ ΡΠΎΠ²Π΅Ρ, Π² 2019 ΠΈΠ·ΡΡΠ°ΠΉΡΠ΅ React, Mobx ΠΈ Apollo / graphql.
3.21 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, JSON) API Design
3.22 — ΠΠ·ΡΡΠΈΡΠ΅ React
Π Π΅Π°ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ:
ΠΠ°ΡΡΠ΅ΡΠΈΠ½Π³-ΡΠ΅Π°ΠΊΡΠΈΡ:
ΠΠΎΠ³Π΄Π° Π²Ρ Ρ
ΠΎΡΠΎΡΠΎ ΠΎΡΠ²ΠΎΠΈΡΠ΅ React, ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΠ΅ ΠΊ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ MobX.ΠΡΠ»ΠΈ Π²Ρ ΠΎΠΏΡΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎ Π·Π½Π°Π½ΠΈΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Redux. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΏΠΎΠΌΠΎΡΡ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΡΠΎΠ»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΠΎΠΌΠΈΠΌΠΎ React , ΡΠΌΠΎΡΡΠΈΡΠ΅ setState
Β«Π Π°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π² React (Ρ ΡΡΠ°ΡΡΠΈΠ΅ΠΌ Redux ΠΈ MobX)Β».
3.23 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
3.24 — ΠΠ·ΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π³ΠΈΠ±ΡΠΈΠ΄ ΠΎΠ±ΡΡΠ½ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ (ΠΈΠ»ΠΈ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ²) ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.ΠΡΠ° Π½ΠΎΠ²Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ², Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
Π 2015 Π³ΠΎΠ΄Ρ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ Π€ΡΡΠ½ΡΠΈΡ ΠΠ΅ΡΡΠΈΠΌΠ°Π½ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Google Chrome ΠΠ»Π΅ΠΊΡ Π Π°ΡΡΠ΅Π» ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½ Β«ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ» Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ΅ΡΠ²ΠΈΡ-Π²ΠΎΡΠΊΠ΅ΡΠΎΠ² ΠΈ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΏΠ΅ΡΠ²ΠΎΠΊΠ»Π°ΡΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠΎΠ΄Π½ΠΎΠΉ ΠΠ‘.
ΠΠΎ Π΄Π°Π½Π½ΡΠΌ Google Developers, ΡΡΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ:
- Progressive — Π Π°Π±ΠΎΡΠ°ΠΉΡΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π²ΡΠ±ΠΎΡΠ° Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ Ρ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΠΌ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ.
- ΠΠ΄Π°ΠΏΡΠΈΠ²Π½ΡΠΉ — ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΎΡΠΌ-ΡΠ°ΠΊΡΠΎΡΠ°: Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ΅Π»Π΅ΡΠΎΠ½, ΠΏΠ»Π°Π½ΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ.
- ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ — ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΠ»ΠΈ Π² ΡΠ΅ΡΡΡ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°.
- App-like — ΠΠΎΡΡΠ²ΡΡΠ²ΡΠΉΡΠ΅ ΡΠ΅Π±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠ΅ΠΉ Π² ΡΡΠΈΠ»Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- Fresh — ΠΡΠ΅Π³Π΄Π° Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡ-Π²ΠΎΡΠΊΠ΅ΡΠ°.
- Safe — ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· HTTPS, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π½Π΅ Π±ΡΠ» ΠΏΠΎΠ΄Π΄Π΅Π»Π°Π½.
- Discoverable — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ Β«ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ» Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°ΠΌ W3C [6] ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²ΠΈΡ-Π²ΠΎΡΠΊΠ΅ΡΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΈΡ .
- ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ Π²ΠΎΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ — ΡΠΏΡΠΎΡΡΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ Π²ΠΎΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠ°ΠΊ push-ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ.
- Installable — ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Β«ΡΠΎΡ ΡΠ°Π½ΡΡΡΒ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΡΡΠΈΡΠ°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ, Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠΊΡΠ°Π½Π΅ Π±Π΅Π· Ρ Π»ΠΎΠΏΠΎΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
- Linkable — ΠΠ΅Π³ΠΊΠΎ Π΄Π΅Π»ΠΈΡΡΡ ΡΠ΅ΡΠ΅Π· URL ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
3.25 — ΠΠ·ΡΡΠΈΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½ JS API
3.26 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π±ΡΠ°ΡΠ·Π΅ΡΠ°
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄. ΠΠ½ΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² ΠΈ IDE ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ, Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π²Π΅Π±-ΡΠ°ΠΉΡΠ° ΠΈΠ»ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΈΠ»ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ. Π‘Π°ΠΌΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Google Chrome, Firefox, Opera, Internet Explorer ΠΈ Safari, ΠΈΠΌΠ΅ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠ΅ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅Π½ΡΡΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ HTML, CSS, DOM, JavaScript ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ.ΠΠ·-Π·Π° ΡΠ°ΡΡΡΡΠ΅Π³ΠΎ ΡΠΏΡΠΎΡΠ° ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ Π±ΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π₯ΠΎΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² ΠΎΡΠ½Π°ΡΠ΅Π½Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Chrome Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ²Π»ΡΡΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌΡΠΌΠΈ ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ.
Π― Π±Ρ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π» ΠΈΠ·ΡΡΠΈΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Chrome ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π»ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ Chrome DevTools.
ΠΠ·ΡΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Chrome:
Chrome Web Developer Tools ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ:
3.27 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (ΠΎΠ½Π° ΠΆΠ΅ CLI)
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° (CLI), ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (CUI), ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ) ) Π²ΡΠ΄Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ ΡΠ΅ΠΊΡΡΠ° (ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊ).
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
ΠΠ°ΡΡΠ΅ΡΠΈΠ½Π³:
3.28 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Node.js
Node.js — ΡΡΠΎ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½Π°Ρ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Node.js Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° JavaScript ΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Node.js Π² OS X, Microsoft Windows, Linux, FreeBSD, NonStop, IBM AIX, IBM System z ΠΈ IBM i.ΠΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ½Π΄ΠΎΠΌ Node.js, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Linux Foundation.
Node.js ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ, ΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ API Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π²ΠΈΠΆΠΎΠΊ Google V8 JavaScript Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ Π±Π°Π·ΠΎΠ²ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° JavaScript. Node.js ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Π±Π΅Π· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Apache HTTP Server, Nginx ΠΈΠ»ΠΈ IIS.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
3.29 — ΠΠΎΠ΄ΡΠ»ΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ / ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ:
3.30 — ΠΠ·ΡΡΠΈΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ / ΡΠ±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
Webpack:
ΠΠ°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ:
ΠΠΎΡΡΠ»ΠΊΠ°
3.31 — ΠΠ·ΡΡΠΈΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²
ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ — ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°.ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²Π΅ΡΡΠΈΡΡ , ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
3.32 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, — ΡΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ , ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ , ΠΊΡΡΠΏΠ½ΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°Ρ ΠΈ ββΠ΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌ ΠΈΠ»ΠΈ Π±ΡΠΊΠ²Π΅Π½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌ Β«Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΡΠ΅Π²ΠΈΠ·ΠΈΠΈΒ», Β«ΡΡΠΎΠ²Π½Π΅ΠΌ ΡΠ΅Π²ΠΈΠ·ΠΈΠΈΒ» ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Β«ΡΠ΅Π²ΠΈΠ·ΠΈΠ΅ΠΉΒ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ² — Β«Π²Π΅ΡΡΠΈΡ 1Β». ΠΠΎΠ³Π΄Π° ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Β«Π²Π΅ΡΡΠΈΡ 2Β» ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ΅Π²ΠΈΠ·ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΌΠ΅ΡΠΊΠΎΠΉ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π»ΠΈΡΠΎΠΌ, Π²Π½ΠΎΡΡΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. Π Π΅Π΄Π°ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ, Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΠΏΠΎΠ².
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΡΠ²Π»ΡΠ΅ΡΡΡ Git.Π£Π·Π½Π°ΡΡ Π΅Π³ΠΎ!
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
ΠΠ°ΡΡΠ΅ΡΠΈΠ½Π³:
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ / ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ:
3.33 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Π·Π°Π΄Π°Ρ
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ — ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π² Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΡΠΎΠ².
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ / ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ:
Gulp ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ.ΠΠ΄Π½Π°ΠΊΠΎ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ npm run
. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΡ ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠΌ Π² ΡΡΠ΅ΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΏΡΠΎΡΠΈΡΠ΅ ΡΠ΅Π±Ρ, ΡΠΏΡΠ°Π²ΠΈΡΡΡ Π»ΠΈ Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ npm run
. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Gulp.
Π§ΡΠ΅Π½ΠΈΠ΅:
3.34 — ΠΠ·ΡΡΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΉΡΠ°
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π²Π΅Π±-ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, WPO ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² — ΡΡΠΎ ΠΎΠ±Π»Π°ΡΡΡ Π·Π½Π°Π½ΠΈΠΉ ΠΎΠ± ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ Π² Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ΅Π΄Π½ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡΠ΅, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌ ΠΈ Π²Π΅Π±-ΠΌΠ°ΡΡΠ΅ΡΠ°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°ΠΌ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
3.35 — ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ — Π ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ — ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΡΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π°Π±ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ³ΠΎΠ΄Π½Ρ Π»ΠΈ ΠΎΠ½ΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.ΠΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΊΠ°ΠΊ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΡΡ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ — Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ — ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° (QA) ΠΈ ΡΠΈΠΏ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Β«ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ°Β», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΡΡΠΈΡΡΡΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΠ΄Π°ΡΠΈ ΠΈΠΌ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , Π° Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ΅Π΄ΠΊΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π±Π΅Π»ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ°).Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ°.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ — ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎ I&T) — ΡΡΠΎ ΡΡΠ°ΠΏ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΠΈ ΡΠ΅ΡΡΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ Π³ΡΡΠΏΠΏΠ°. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΠ²Π΅ΡΠΎΡΠ½ΡΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π³ΡΡΠΏΠΏΠΈΡΡΠ΅Ρ ΠΈΡ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΠ΅ Π°Π³ΡΠ΅Π³Π°ΡΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ΅ΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΠΏΠ»Π°Π½Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊ ΡΡΠΈΠΌ Π°Π³ΡΠ΅Π³Π°ΡΠ°ΠΌ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π³ΠΎΡΠΎΠ²ΡΡ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
3.36 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π·Π³ΠΎΠ»ΠΎΠ²ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ²
ΠΠ΅Π·Π³ΠΎΠ»ΠΎΠ²ΡΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ — ΡΡΠΎ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ Π±Π΅Π· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Headless-Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ Π² ΡΡΠ΅Π΄Π΅, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌ, Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠ΅ΡΠΈ. ΠΠ½ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ HTML ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π±ΡΠ°ΡΠ·Π΅Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠΈΠ»Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠ²Π΅Ρ, Π²ΡΠ±ΠΎΡ ΡΡΠΈΡΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ JavaScript ΠΈ AJAX, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.Π 2009 Π³ΠΎΠ΄Ρ Google Π·Π°ΡΠ²ΠΈΠ», ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΈΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ AJAX.
— ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
PhantomJS Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ, Π²ΠΌΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Headless Chrome.
3.37 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠ²ΡΠΎΠ½ΠΎΠΌΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° (ΠΈΠ»ΠΈ ΡΠ½Π°ΡΠ°Π»Π° Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½Π°Ρ) — ΡΡΠΎ ΠΎΠ±Π»Π°ΡΡΡ Π·Π½Π°Π½ΠΈΠΉ ΠΈ Π΄ΠΈΡΠΊΡΡΡΠΈΠΉ ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΡ ΠΈΠ»ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ ΠΏΠΈΡΠ°Π½ΠΈΡ.
ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
3.38 — ΠΠ·ΡΡΠΈΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² / Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² / ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
3.39 — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: http://bradfrost.com/blog/post/this-is-the-web/
ΠΠ΅Π±-ΡΠ°ΠΉΡ ΠΈΠ»ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ , Π½ΠΎΡΡΠ±ΡΠΊΠ°Ρ , ΠΏΠ»Π°Π½ΡΠ΅ΡΠ°Ρ ΠΈ ββΡΠ΅Π»Π΅ΡΠΎΠ½Π°Ρ , Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½ΠΎΠ²ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ (ΡΠ°ΡΡ, ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΡ, Ρ ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡΠ½ΠΈΠΊΠΈ ΠΈ Ρ. Π.). Π’ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ², Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΡΡΡΠ°ΡΠ΅Π³ΠΈΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Β».ΠΠΈΠΆΠ΅ Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ .
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° / ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ².
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΡΠΉ / ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ Π²Π΅Π±-ΡΠ°ΠΉΡ / ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ².
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡ, Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΡ ΡΡΡΡΠΎΠΉΡΡΠ².
- ΠΠΎΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ Π²Ρ ΡΠΆΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΠ»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΡΡΠΈ ΠΈ Π΄Π΅ΡΠ°Π»ΠΈ ΠΈΠ· ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ 1, 2 ΠΈΠ»ΠΈ 3.