ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ web-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Pusa Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡΠ΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΡ ΡΡΠΎΠ½ΡΡΠ½Π΄Π°, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ JavaScript, Π½Π° ΡΡΠΎΡΠΎΠ½Ρ Π±ΡΠΊΠ΅Π½Π΄Π° — ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ ΠΈ DOM ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΠΈΠ·Π½Π΅ΡΠ»ΠΎΠ³ΠΈΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° Π±ΡΠΊΠ΅Π½Π΄Π΅. ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° JavaScript ΠΊΠΎΠ΄ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΡ, Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Π±ΡΠΊΠ΅Π½Π΄Π°. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JavaScript Π΄Π»Ρ ΡΡΠΎΠ½ΡΡΠ½Π΄Π° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. ΠΡΠ°Π»ΠΎΠ½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Pusa Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° ΡΠ·ΡΠΊΠ΅ PHP ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPLv3. ΠΡΠΎΠΌΠ΅ PHP ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° Π»ΡΠ±ΠΎΠΌΡ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ JavaScript/Node.js, Java, Python, Go ΠΈ Ruby.
PusΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΎΠ±ΠΌΠ΅Π½Π° Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄. ΠΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π±ΡΠ°ΡΠ·Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ DOM ΠΈ JavaScript-ΡΠ΄ΡΠΎ Pusa-Front. Pusa-Front ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Ajax-Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° (ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ click, blur, focus ΠΈ keypress) ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ° (ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²ΡΠ·Π²Π°Π²ΡΠΈΠΉ ΡΠΎΠ±ΡΡΠΈΠ΅, Π΅Π³ΠΎ Π°ΡΡΠΈΠ±ΡΡΡ, URL ΠΈ Ρ.ΠΏ.) Π² ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Pusa-Back. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ Pusa-Back ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ ΠΈ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΎΡΠ²Π΅ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠΎΠ»ΡΡΠΈΠ² ΠΎΡΠ²Π΅Ρ Π·Π°ΠΏΡΠΎΡΠ° Pusa-Front Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ DOM ΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠΎΠ½ΡΡΠ½Π΄Π° ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π½ΠΎ Π½Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π»Ρ Pusa ΡΡ ΠΎΠΆΠ΅ΠΉ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΡ ΠΈΠ»ΠΈ Canvas, Π³Π΄Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π±Π°Π·Π΅ Canvas ΠΈ onmousemove ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² JavaScript Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠ· Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΡΠ°ΡΡΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Ρ ΡΡΠΎΠ½ΡΡΠ½Π΄Π° Π½Π° Π±ΡΠΊΠ΅Π½Π΄ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎΡΡ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ.
Π‘ΡΠ΅Π΄ΠΈ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ² Π²ΡΠ΄Π΅Π»ΡΡΡΡΡ: ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΠ°ΡΡΠΈΡ JavaScript-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠΎΠ½ΡΡΠ½Π΄Π°, ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ (11ΠΊΠ±), Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠΎΠ½ΡΡΠ½Π΄Π°, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ REST ΠΈ Π² ΡΡΠ΅Π΄ΡΡΠ²Π°Ρ
ΡΠΈΠΏΠ° gRPC, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΎΠ½ΡΡΠ½Π΄ΠΎΠΌ ΠΈ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠΌ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru