ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ Π½ΡΠ»Ρ, Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ (Π’Π) Π½Π° ΠΏΠΎΠΈΡΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° WebSocket (P2C-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°) ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°: Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΄Π»Ρ Π·Π°Ρ
Π²Π°ΡΠ° Π·Π°ΡΠ²ΠΎΠΊ ΡΠ΅ΡΠ΅Π· WebSocket P2C-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. 1. Π‘ΡΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ P2C (peer-to-client) ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, Π³Π΄Π΅ Π·Π°ΡΠ²ΠΊΠΈ Π½Π° Π²ΡΠΏΠ»Π°ΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ. Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΡΠΊΡΠΈΠΏΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Go, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΏΠΎ WebSocket, ΡΠ»ΡΡΠ°Π΅Ρ Π·Π°ΡΠ²ΠΊΠΈ ΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΈΡ
“Π·Π°Π±ΡΠ°ΡΡ“. ΠΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΠ°Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΡΠΈΠΏΡ Π½Π° Go ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π΅Ρ Π² ΡΠΊΠΎΡΠΎΡΡΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° Π² Π΄Π΅ΡΡΡΠΊΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»ΡΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ, ΡΡΠΎΠ±Ρ Π΄ΠΎΡΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΡΠΊΠ»ΠΈΠΊΠ°. 2. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ (ΠΊΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ β “ΡΠ΅ΡΠ΅Π²ΠΈΠΊ“) ΠΠ°ΠΌ Π½ΡΠΆΠ΅Π½ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Ρ Π³Π»ΡΠ±ΠΎΠΊΠΈΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ². ΠΡΠΎ ΠΠ ΡΠΈΠΏΠΈΡΠ½ΡΠΉ Π²Π΅Π±- ΠΈΠ»ΠΈ Π±ΡΠΊΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠΈΠΈ: β’ Π―Π·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ C++ ΠΈ/ΠΈΠ»ΠΈ Rust. ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ β Π½Π° ΡΠΌΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°ΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ, ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ΄. ΠΠ½Π°Π½ΠΈΠ΅ Go β ΠΊΠ°ΠΊ ΠΏΠ»ΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ. β’ ΠΠ»ΡΠ±ΠΎΠΊΠΈΠ΅ Π·Π½Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ°: ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ TCP/IP, WebSocket Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΡΠ΅ΠΉΠΌΠΎΠ², handshake, ping/pong. β’ ΠΠΏΡΡ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ: Π Π°Π±ΠΎΡΠ° Ρ ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ (socket, epoll/kqueue, io_uring), ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ (latency). β’ ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ: Π£ΠΌΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡΡ ΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ. β’ ΠΠ½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΊΠ»Π°Π΄ ΡΠΌΠ° ΠΈ Π΄ΠΎΡΠΎΡΠ½ΠΎΡΡΡ: Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ°ΡΠΈΠΊ (Wireshark, tcpdump), Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ°ΠΏ ΡΠ°Π±ΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡ “ΡΠ·ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠ°“ (bottlenecks) β Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠΎΠ΄Π΅, Π½ΠΎ ΠΈ Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ. β’ ΠΠΎΠ½ΡΡΠΎΠΌ (ΡΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π» Π² Π²ΠΈΠ΄Ρ Π²Π°Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊ): ΠΠΏΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ Π³Π»ΡΠ±ΠΎΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΏΡΠΎΠΊΡΠΈ, VPN, ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΡ
TCP-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² (ΠΏΡΠΈΠΎΡΠΈΡΠΈΠ·Π°ΡΠΈΡ, QoS Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ). 3. Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠ΅ΠΊ ΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ β’ Π¦Π΅Π»Π΅Π²ΡΠ΅ ΡΠ·ΡΠΊΠΈ: C++ (17/20) ΠΈΠ»ΠΈ Rust. β’ ΠΡΠΎΡΠΎΠΊΠΎΠ»: WebSocket (Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ws:// ΠΈΠ»ΠΈ wss://). ΠΡΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ “ΡΡΡΡΠΌΠΈ“ ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. β’ ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ: Π Π°Π±ΠΎΡΠ° Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ Π΄Π»Ρ WebSocket, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ½ΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, boost::beast Π΄Π»Ρ C++ ΠΈΠ»ΠΈ tungstenite/tokio-tungstenite Π΄Π»Ρ Rust). β’ ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π°Π½Π°Π»ΠΈΠ·Π°: Wireshark, perf, strace, tcpdump, Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈ. β’ ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: Linux (ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΄ΡΠ° Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΈΡ
Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ β sysctl ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ). 4. ΠΠ°Π΄Π°ΡΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° 1 ΠΠ½Π°Π»ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ: ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Go-ΡΠΊΡΠΈΠΏΡΠ°, Π²ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π°Π±ΡΡ
ΠΌΠ΅ΡΡ (Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΡ
, ΡΠ΅ΡΠ΅Π²ΡΡ
, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ
). 2 ΠΠ½Π°Π»ΠΈΠ· ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°: ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ P2C-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ ΠΎ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΡΠ²ΠΊΠ΅ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ “Π·Π°Ρ
Π²Π°ΡΠ°“. 3 Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π° C++/Rust, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡΡΡ (Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ) ΠΈ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°Π½Π°Π». 4 ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ (ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΡΠ°ΠΏ): ? ΠΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ
ΡΠ°ΡΡ
ΠΎΠ΄ΠΎΠ² ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ? ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΠ°ΡΡΠΈΠ½Π³Π° Π²Ρ
ΠΎΠ΄ΡΡΠΈΡ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ? Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ° Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ? ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ, Π°Π½Π°Π»ΠΈΠ· Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠ°ΠΏΠ΅. ? ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΠ‘ ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ. 5 Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: ΠΠ°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ. 6 ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ: ΠΡΠ°ΡΠΊΠΈΠΉ ΠΎΡΡΠ΅Ρ ΠΎ ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½ΡΡ
ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡ
ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ°ΠΊΡΠΎΡΠ°Ρ
, Π²Π»ΠΈΡΡΡΠΈΡ
Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ. 5. Π£ΡΠ»ΠΎΠ²ΠΈΡ ΡΠ°Π±ΠΎΡΡ β’ Π€ΠΎΡΠΌΠ°Ρ: Π£Π΄Π°Π»Π΅Π½Π½ΠΎ. β’ ΠΠΏΠ»Π°ΡΠ°: 40 000 ΡΡΠ±Π»Π΅ΠΉ Π·Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° ΡΠ°Π±ΠΎΡ (Π·Π° ΠΏΡΠΎΠ΅ΠΊΡ). β’ ΠΠΎΠΌΠΏΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ°ΡΡ
ΠΎΠ΄ΠΎΠ²: ΠΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°ΡΡ
ΠΎΠ΄Ρ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ Ρ.Π΄. β Π·Π° Π½Π°Ρ ΡΡΠ΅Ρ ΠΏΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ΅ΠΊΠ°/Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. β’ ΠΠ°ΡΠ° ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ: ΠΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ ? ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΈΠ»ΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ? Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Go-ΡΠΊΡΠΈΠΏΡ. ? ΠΠΎΡΡΡΠΏ ΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠΉ ΠΏΠΎ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ΅. 6. Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ»ΡΡΠΎΠΌ (ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΎΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ°) β’ Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈΠ΄Π΅ΠΈ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, “ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΡΠ΅Π»Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ?“). β’ ΠΠΏΡΡ Π² ΡΠ΅Π²Π΅ΡΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² (Π½Π΅ Π΄Π»Ρ Π²Π·Π»ΠΎΠΌΠ°, Π° Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ). β’ ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΡΠ΅ΠΌΠΎΠΉ low-latency trading ΠΈΠ»ΠΈ high-frequency trading (HFT), Π΄Π°ΠΆΠ΅ Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. β’ ΠΠΎΡΠΎΠ²Π½ΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π°ΡΠ΄ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° (Π·Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ»Π°ΡΡ ΠΈΠ»ΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ) ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΠΏΠ»Π°Π½ ΡΠ°Π±ΠΎΡ. 7. ΠΠ°ΠΊ ΠΎΡΠΊΠ»ΠΈΠΊΠ½ΡΡΡΡΡ Π ΠΎΡΠΊΠ»ΠΈΠΊΠ΅ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° ΡΠΊΠ°ΠΆΠΈΡΠ΅: 1 ΠΡΠ°ΡΠΊΠΈΠΉ ΡΠ°ΡΡΠΊΠ°Π· ΠΎ Π²Π°ΡΠ΅ΠΌ ΠΎΠΏΡΡΠ΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π²ΡΡΠ΅ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ). 2 ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° C++/Rust, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ. 3 ΠΠ°ΡΡ Π³ΠΈΠΏΠΎΡΠ΅Π·Ρ: ΠΊΠ°ΠΊΠΈΠ΅, Π½Π° Π²Π°Ρ Π²Π·Π³Π»ΡΠ΄, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΏΡΠΎΠΈΠ³ΡΡΡΠ° Π² ΡΠΊΠΎΡΠΎΡΡΠΈ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅? (ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΌΠΈΠ½ΠΈ-ΡΠ΅ΡΡΠΎΠΌ Π½Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ). 4 Π‘ΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΡΠΎΡΠΈΠ»ΠΈ Π½Π° GitHub, Stack Overflow ΠΈ Ρ.Π΄.