ΡΠΊΡΠΈΠΏΡΡ Π½Π° Π²ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΆΠΈΠ·Π½ΠΈ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΊΡΠΈΠΏΡ
ΠΠ±ΡΠ΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ°
Π‘ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΡΠ»ΠΎΠ²ΠΎ Β«ΡΠΊΡΠΈΠΏΡΒ» ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠ°ΠΊ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΈΠ· ΡΠ΅Π³ΠΎ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ. ΠΡΠΎ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΎ Π΅ΡΡΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΡΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ. ΠΠ»Ρ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΊΡΠΈΠΏΡΡ. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΌΠΈ ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° Π·Π°ΠΏΡΡΠΊ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΠΏΡΠΎΡΡΡΡ ΡΠ»ΡΠΆΠ± ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊ ΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ½ΡΠΌΠΈ, ΡΡΠ°Π²Π½ΠΈΠ²Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ Π²ΡΠ²ΠΎΠ΄Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π° ΡΠ°ΠΉΡΠ΅.
Π‘ΠΊΡΠΈΠΏΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ. ΠΡΠΎΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅ΠΏΠΎΡΠΊΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½Π° Π² ΡΠΊΡΠΈΠΏΡΠ΅. ΠΡΠ»ΠΈ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈ ΡΠ΅Π»Π΅Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ΄Π°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ, Π·Π°Π΄Π°ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΈ ΡΠΊΡΠΈΠΏΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ.
Π‘ΠΊΡΠΈΠΏΡΡ ΡΠ΅ΠΉΡΠ°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΡΡΡΡ Π½Π° ΡΠ°ΠΉΡΠ°Ρ , Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ β JavaScript. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ.
ΠΡΡΠΎΡΠΈΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²
ΠΠ»Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΊΡΠ½ΡΡΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅. ΠΠ°ΡΠ°Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Unix Π΅ΡΠ΅ 50 Π»Π΅Ρ Π½Π°Π·Π°Π΄. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠ΅ΠΊ Π±ΡΠ»Π° sh, Π² Π½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ shell scripts, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°ΠΌΡΠ΅ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
ΠΠΈΠΆΠ΅ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠ΄, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ· JPG Π² PNG:
ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ Π·Π½Π°ΠΊΠΎΠ² # ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ ΠΈ Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠΊΡΠΈΠΏΡΡ, ΠΎΠ½ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π±ΡΠ» Π²Π·ΡΡ ΠΈΠ· ΠΎΡΠΊΡΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΌΠ΅Π½ΠΈΠ² Π΅Π³ΠΎ ΡΠΎΡΠΌΠ°Ρ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ. Π‘Π΅ΠΉΡΠ°Ρ ΡΠΊΡΠΈΠΏΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ°ΡΡΠΈΠ²Π½ΡΠΌΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ»ΠΎΠΆΠ½Π΅Π΅.
Π‘ΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²
Π‘ΠΊΡΠΈΠΏΡΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π° Π²Π΅Π±-ΡΠ°ΠΉΡΠ°Ρ . Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ ΠΏΠΈΡΡΡΡΡ Π½Π° ΡΠ·ΡΠΊΠ°Ρ PHP ΠΈ JavaScript. ΠΠ΅ΡΠ²ΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ°ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ, ΡΠΎ Π΅ΡΡΡ Π±ΡΠΊΠ΅Π½Π΄Π°, Π° Π²ΡΠΎΡΠΎΠΉ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²ΠΈΠ·ΡΠ°Π», ΡΠΎ Π΅ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ, ΠΏΠ»Π°Π²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (ΡΡΠΎΠ½ΡΡΠ½Π΄).
ΠΡΠ»ΠΈ Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ Π²ΡΠ΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΠΎ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π³Π»Π°Π·Π° ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ ΡΠΊΡΠΈΠΏΡΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΡΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΡΠΎΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π‘ΠΊΡΠΈΠΏΡΡ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΎΠ»Ρ (ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ), ΠΌΠΎΠ³ΡΡ Π²Π»ΠΈΡΡΡ Π½Π° ΠΎΡΠΊΡΡΡΠΈΠ΅ ΡΠ»ΡΠΆΠ± ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (Π²ΠΈΡΡΡΡ ΡΠ°ΠΊ ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ).
ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ Windows, ΡΠΎ Π² Π½Π΅ΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ CMD (PowerShell), ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ², Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ BAT.
Π‘Π°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Windows. ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π²Π°Ρ ΡΡΠΎΠΈΡ Π·Π°Π΄Π°ΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΠ°ΠΉΡΠΎΠΌ Π±Π΅Π· Π·Π°ΠΏΡΡΠΊΠ° Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠ°Ρ ΡΠ΅ΡΠ΅Π· ΠΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ. Π Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π΅ΡΠ΅ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΡΡΠ΅Ρ ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ΄ΠΎΠ±Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π·Π°Π΄Π°ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°Π· Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ ΠΈΠ»ΠΈ ΡΠ°ΡΠ΅. Π’ΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ BAT-ΡΠ°ΠΉΠ» Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠΊΡΠΈΠΏΡΡ ΠΈ Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ. ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΌΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π½ΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ
ΡΠ΅Π»ΡΡ
ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π²ΡΡΡΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΡ
ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Bash-ΡΠΊΡΠΈΠΏΡΡ, ΡΠ°ΡΡΡ 10: ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°Ρ ΠΌΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ bash-ΡΠΊΡΠΈΠΏΡΠΎΠ², Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ , Π½ΠΎ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ Π»ΠΈΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π°. ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ°ΡΡΡΠ°Π±Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². Π ΠΈΠΌΠ΅Π½Π½ΠΎ, Π·Π΄Π΅ΡΡ Π²Ρ Π½Π°ΠΉΠ΄ΡΡΠ΅ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°. ΠΠ΅ΡΠ²ΡΠΉ β ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π²ΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΡΠΊΡΠΈΠΏΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°.
ΠΠ»Π°Π²Π½Π°Ρ ΡΠ΅Π½Π½ΠΎΡΡΡ ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΈΠ·ΡΡΠ°Π΅Ρ bash, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ Π²ΡΡΠ°ΡΡ Π·Π°Π΄Π°ΡΠ° ΠΏΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅Π³ΠΎ Π±Ρ ΡΠΎ Π½ΠΈ Π±ΡΠ»ΠΎ, Π΅Π³ΠΎ ΠΏΡΡΡ ΡΠ΅Π΄ΠΊΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΏΡΡΠΌΡΠΌ ΠΈ Π±ΡΡΡΡΡΠΌ. ΠΠ°Π΄Π°ΡΡ Π½Π°Π΄ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° ΡΠ°ΡΡΠΈ, Π½Π°ΠΉΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ, Π° ΠΏΠΎΡΠΎΠΌ ΡΠΎΠ±ΡΠ°ΡΡ ΠΈΠ· ΡΠ°ΡΡΠ΅ΠΉ Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π·Π°Π΄Π°ΡΠ°: Β«ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅Β», ΠΏΡΠΈ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅ΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ, ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π·Π°Π΄Π°ΡΠ΅ΠΉ: Β«ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΈ, Π΅ΡΠ»ΠΈ Π½Π΅Ρ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΠΉ, ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎΒ». ΠΠ°ΠΉΠΌΡΠΌΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°ΡΠΈ, ΡΠΎ Π΅ΡΡΡ β ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ bash-ΡΠΊΡΠΈΠΏΡΠ°.
βΠΠΎΠΌΠ°Π½Π΄Ρ who ΠΈ mesg
Π―Π΄ΡΠΎΠΌ ΡΠΊΡΠΈΠΏΡΠ° ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π΅ΡΡ Π½Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ. ΠΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΠΎ ΠΏΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ who
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠ²Π΅Π»Π° Β«is yΒ», ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π² Π΅Π³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π». Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ mesg Π²ΡΠ²Π΅Π΄Π΅Ρ Β«is nΒ».
ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΡΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΡΡΡΠΎΡΠΊΡ (-), ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΏΡΠ΅ΡΠΈΠ» Π·Π°ΠΏΠΈΡΡ Π² ΡΠ²ΠΎΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π», ΡΠΎ Π΅ΡΡΡ, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΅ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π½Π΅Π»ΡΠ·Ρ. Π ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π³ΠΎΠ²ΠΎΡΠΈΡ Π·Π½Π°ΠΊ Β«ΠΏΠ»ΡΡΒ» (+).
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΡΠΈΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡΠΊΠ»ΡΡΡΠ½, Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π²Π°ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΡΠΌΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
ΠΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΡΠΌΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ mesg Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Β«is yΒ».
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π½ΡΠΆΠ½Ρ Π΄Π²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ, ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Π²Ρ
ΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈΡΡ ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΏΠΎ ssh. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ.
βΠΠΎΠΌΠ°Π½Π΄Π° write
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ write ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, Π²ΠΎΡΠ΅Π΄ΡΠΈΠΌ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ (KDE, Gnome, Cinnamon, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅), Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
ΠΠΎΡ ΡΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡ Π² ΡΠ²ΠΎΡΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΡΠ΅Π΄ΡΠ΅Π΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»
ΠΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
βΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ° Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π²ΠΎΡΡΠ» Π»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠΉ Π½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠΈΡΡΠ΅ΠΌΡ. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠ°ΡΡΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
βΠΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠ°ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΏΠΎΡ ΠΎΠΆΠ°Ρ Π½Π° ΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π²ΡΡΠ΅:
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
βΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π²ΡΠ·ΠΎΠ²Π° ΡΠΊΡΠΈΠΏΡΠ°
ΠΠ΅ΡΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΠΊΡΠΈΠΏΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎΡΡΠΌ β ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ Π»ΠΈ ΡΠΊΡΠΈΠΏΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠΊΡΠΈΠΏΡΠ°
Π’ΡΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠΊΡΠΈΠΏΡΠ° Π΅ΠΌΡ Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ, ΠΌΡ ΡΠΎΠΎΠ±ΡΠ°Π΅ΠΌ ΠΎΠ± ΡΡΠΎΠΌ ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β ΠΈΠ΄ΡΠΌ Π΄Π°Π»ΡΡΠ΅.
βΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠΌΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ ΡΠ°ΠΊ:
Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ±ΡΠ°Π½Ρ, ΠΎΡΡΠ°Π»ΠΎΡΡ Π»ΠΈΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
ΠΡΠ·ΠΎΠ² Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π£ΡΠΏΠ΅ΡΠ½Π°Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ bash-ΡΠΊΡΠΈΠΏΡΠ°
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π»ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠΎΡΡΠΎΡΡΠΈΠ΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°. Π₯ΠΎΡΠΎΡΠΎ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
βΠΡΠΏΡΠ°Π²ΠΊΠ° Π΄Π»ΠΈΠ½Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΠΎΠΏΡΡΠΊΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
ΠΠΎΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ:
Π£ΡΠΏΠ΅ΡΠ½Π°Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ:
ΠΠ»ΠΈΠ½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π΄ΠΎΡΠ»ΠΎ Π΄ΠΎ Π°Π΄ΡΠ΅ΡΠ°ΡΠ°. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.
Π‘ΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°
ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π΅Ρ Π½ΠΎΠΌΠ΅Ρ, ΠΏΠΎΡΠΎΠΌ ΠΈΠ΄ΡΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ ΠΈ Π·Π½Π°ΠΊ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ, Π΄Π°Π»Π΅Π΅ β ΠΎΠ±ΡΡΠΌ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°, ΡΠ»Π΅Π΄ΠΎΠΌ β Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ ΠΈ ΠΈΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ.
Π‘ΠΎΠ±Π΅ΡΡΠΌ Π²ΠΌΠ΅ΡΡΠ΅ Π²ΡΡ ΡΠΎ, ΠΎ ΡΡΠΌ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ:
ΠΡΠ²ΠΎΠ΄ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΊΠΎΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ MY_DIRECTORIES ΠΈ Π²Π½Π΅ΡΡΠΌ Π² Π½Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΡ Π½Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ:
ΠΠ΅ΡΠ΅Π±Π΅ΡΡΠΌ ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for ΠΈ Π²ΡΠ·ΠΎΠ²Π΅ΠΌ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ°. ΠΠΎΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅:
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡ
ΠΡΠΎΠ³ΠΈ
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΡΠΎ Π²ΡΡ. Π ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π· ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ expect.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΡΡΡ Π»ΠΈ Ρ Π²Π°Ρ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡΠ΅ (Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠ΅, Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅) bash-ΡΠΊΡΠΈΠΏΡΡ, ΡΠ°Π·Π±ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ?
Π Π»ΡΠ±ΠΎΠΉ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ β ΠΏΠΈΡΠΈ ΡΠΊΡΠΈΠΏΡΡ
Π‘ΠΊΡΠΈΠΏΡΡ β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ, Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΡΡΠΌΠΎ Π½Π° Ρ ΠΎΠ΄Ρ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π΅ΡΡΡ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΏΡΠΎ Π±Π°Π»Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΡΡΡΡ. ΠΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΡΠΆΠ΄Π°ΡΡ βΠ² ΠΎΠ±ΡΠ΅ΠΌβ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΏΠ»ΡΡΠΎΠ² ΠΈ ΠΌΠΈΠ½ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° Spring Framework.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π²ΠΎΠ΄Π½ΡΡ ΡΠ»ΠΎΠ²
ΠΠΎΠ³Π΄Π° Ρ ΠΎΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ΅Π½ΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, ΡΠΎ ΡΠΊΡΠΈΠΏΡΡ β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΌ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ. ΠΠ°ΡΠ°ΡΡΡΡ, ΡΠΊΡΠΈΠΏΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π½Π΅ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΊ Π±ΡΠ»ΠΎ Π·Π°Π΄ΡΠΌΠ°Π½ΠΎ, Π° ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΅ΡΡΡ ΡΠ°ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΡΠ½Π°, Π½ΠΎ, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΡΠ°ΡΠΈΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΠ°ΡΡ Π΄Π½Π΅ΠΉ (Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ Π΄ΠΎΠ»ΡΡΠ΅) Π½Π° Π°Π½Π°Π»ΠΈΠ·, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎΡΠΊΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡ β Π·Π°Π³Π»ΡΡΠΊΡ. Π ΠΏΠΎΡΠΎΠΌ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎΡ ΡΠΊΡΠΈΠΏΡ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠ½ΡΡΡΡ.
Π‘ΠΏΠΎΡΠΎΠ± Π½Π΅ Π½ΠΎΠ²ΡΠΉ, ΠΈ Π΅Π³ΠΎ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ: Π³ΠΈΠ±ΠΊΠΎΡΡΡ β ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ΅Π΄Π΅ΠΏΠ»ΠΎΠ΅, Π½ΠΎ, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠΊΡΠΈΠΏΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΎΡΡΡΠ΄Π° β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ Ρ.Π΄.
Π’Π΅ ΠΏΡΠΈΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π΄Π°Π»Π΅Π΅, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΊΡΠΈΠΏΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΡΠ°ΠΊ ΠΈ ΡΠ΅ΠΌ, ΠΊΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΡΠΌΠ°Π΅Ρ ΠΎΠ± ΡΡΠΎΠΌ.
ΠΠΈΡΠ΅Π³ΠΎ Π»ΠΈΡΠ½ΠΎΠ³ΠΎ, ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³
Π‘ JSR-233 ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³ Π² Java ΡΡΠ°Π» ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΠΌ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ², ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΡΠΎΠΌ API (Nashorn, JRuby, Jython ΠΈ Π΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅), ΡΠ°ΠΊ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΠΎΠΉ ΠΌΠ°Π³ΠΈΠΈ Π² ΠΊΠΎΠ΄ β Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°:
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΊΠΈΠ΄Π°Π½ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ ΠΎΠ½ΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ Π²ΠΎ ΡΡΠΎ. Π, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠΊΡΠΈΠΏΡΠ°, ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ. ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΉΡΠΈ Π΅ΡΡ Π΄Π°Π»ΡΡΠ΅ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ²Ρ evaluateGroovy() Π² ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Java ΠΌΠ΅ΡΠΎΠ΄Ρ. Π ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠΉ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π°Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β ΡΡΠ°Π·Ρ Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ, ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ½ΠΈ ΡΠΈΠΏΠ° ΠΈ ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ. ΠΠ»Π°Π²Π½ΠΎΠ΅ β Π½Π΅ Π·Π°Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π·Π°ΠΏΡΠ΅Ρ Π½Π° Π²ΡΠ·ΠΎΠ² ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π΅ ΠΈΠ· ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²!
ΠΡΠΎΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΡΠΊΡΠΈΠΏΡΡ
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΊΡΠΈΠΏΡΡ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΈΡ
ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π²Ρ ΠΈΡ
ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅, ΡΠΎ Π΅ΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΠ°Π½Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΡΡΠ° groovy ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΡΡΠ΅ΡΠΎΠ² ΠΈ Π²Ρ ΠΈΡ
Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ Π² ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΡΡΠΎ ΡΡΠ°Π½Π΅Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ·ΠΊΠΈΡ
ΠΌΠ΅ΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΡΡΠΎΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π΄Π΅Π»Π°ΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠΈ Π½Π°Π΄ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ API Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ, ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ
ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΡ
ΡΠ·ΡΠΊΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ Ρ.Π΄.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² CUBA Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Ρ ΠΈΡΡΠΎΡΠΌΠ½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ:
Π Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ Π½Π΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ GraalVM β ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΌΠ΅Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ (JVM ΠΈ Π½Π΅-JVM) ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΠ°Π²Π»ΡΡΡ Π² Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° ΡΡΠΈΡ ΡΠ·ΡΠΊΠ°Ρ . Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ Nashorn ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΡΠΉΠ΄Π΅Ρ Π² ΠΈΡΡΠΎΡΠΈΡ, ΠΈ Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ΅. ΠΠΎ ΡΡΠΎ ΠΏΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡ.
Spring Framework: ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ?
Π Spring Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π½Π° Π±Π°Π·Π΅ API JDK. Π ΠΏΠ°ΠΊΠ΅ΡΠ΅ org.springframework.scripting.* ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² β Π²ΡΠ΅, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ API Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³Π° Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°, ΠΎΠ½Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π° Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠΊΡΠ°ΡΡΠ΅ β Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ»Π°ΡΡ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Groovy) ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π±ΠΈΠ½ ΡΠ΅ΡΠ΅Π· XML ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΠΈΠ½ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΡΠ²ΠΎΠΈ ΠΊΠ»Π°ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ IoC. Spring ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΠ° Π² ΡΠ°ΠΉΠ»Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ°ΡΡ Π°ΡΠΏΠ΅ΠΊΡΡ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ Ρ.Π΄.
ΠΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ, Π½ΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ βΠ½Π°ΡΡΠΎΡΡΠΈΠ΅β ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ, ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΡΠΊΡΠΈΠΏΡΠ΅ Π½Π΅ Π½Π°ΠΏΠΈΡΠ΅ΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΊΡΠΈΠΏΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΠ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π»Π΅Π·ΡΡ Π²Π½ΡΡΡΡ Spring. ΠΠ° ΠΈ XML ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠΈΡΠ°ΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠΆΠ΅ Π²ΡΠ΅ Π½Π° Π°Π½Π½ΠΎΡΠ°ΡΠΈΡΡ . ΠΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΠΊΡΡΠΎΠ²ΡΠΈΠ½Π°, Π½ΠΎ Ρ Π½Π΅ΠΉ Π·Π°ΡΠ°ΡΡΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΈΡΠ°ΡΡΡΡ.
Π‘ΠΊΡΠΈΠΏΡΡ: ΡΡΡΠ΄Π½ΠΎΡΡΠΈ ΠΈ ΠΈΠ΄Π΅ΠΈ
ΠΡΠ°ΠΊ, Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΅ΡΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π½Π°, ΠΈ, Π΅ΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΡΠΊΡΠΈΠΏΡΠ°Ρ Π² Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΡΠΎ ΠΏΡΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ:
ΠΠ΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΡΠΈΠΏΡ Π±ΡΠ΄Π΅Ρ ΡΠ²ΡΠ·Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΡΠΎΡΠΊΠΈ Π²ΡΠ·ΠΎΠ²Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅Π½Ρ βFind Usagesβ ΠΈΠ· IDE ΠΈ ΠΏΠΎΠ½ΡΡΡ ΠΌΠ΅ΡΡΠΎ ΡΠΊΡΠΈΠΏΡΠ° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ.
Π£ΠΏΡΠΎΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΠΎΠ½ΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² βΠΎΠ±ΡΡΠ½ΠΎΠ΅β ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ², Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², mockβΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠΈΠΌ.
ΠΡΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΠΎΡΠ΅Π½Ρ ΡΠΎΠ·Π²ΡΡΠ½ΠΎ Ρ ΠΈΠ΄Π΅Π΅ΠΉ, ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠΉ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ°ΡΡΠΈ β βΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅β ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ. Π ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³ ΠΈ ΡΠΊΡΡΡΡ Π²Π΅ΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠΉ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ² ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΏΡΠΎ ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ Π΄ΡΠΌΠ°Π» (Π½Ρ, ΠΏΠΎΡΡΠΈ)?
Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² β ΠΊΠΎΠ½ΡΠ΅ΠΏΡ
ΠΠ°Π΄ΡΠΌΠΊΠ° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ° ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π·Π½Π°ΠΊΠΎΠΌΠ° ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΡ ΡΠ°Π· ΡΠ°Π±ΠΎΡΠ°Π» ΡΠΎ Spring, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠΎ Spring JPA. Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ β ΡΠ΄Π΅Π»Π°ΡΡ Java ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡ. Π JPA, ΠΊΡΡΠ°ΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ β Π²ΡΠ·ΠΎΠ² CrudRepository ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅ΡΡΡ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ ΠΠ.
Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡ?
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° β Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΡΡΠΎΠ²Π½Ρ ΠΊΠ»Π°ΡΡΠ°, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΉΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ β ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΠΈΠ½ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅.
Π’Π°ΠΊΠΆΠ΅, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΠΏΡΠΈΠ³ΠΎΠ΄ΡΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅, Π½ΡΠΆΠ½ΡΠ΅ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ β ΠΎΡΠΊΡΠ΄Π° Π±ΡΠ°ΡΡ ΡΠ΅ΠΊΡΡ ΡΠΊΡΠΈΠΏΡΠ° ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠΎΠ»Π΅Π·Π½ΡΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ (a.k.a. default) β ΡΡΠΎΡ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΏΠΎΠΊΠ° Π±ΠΈΠ·Π½Π΅Ρ-Π°Π½Π°Π»ΠΈΡΠΈΠΊ Π½Π΅ Π²ΡΠ²Π΅Π΄Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π΅ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΠΊΡΠΈΠΏΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅
ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ»ΠΈ ΠΏΡΡΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊ ΡΠΊΡΠΈΠΏΡ ΠΏΠΈΡΠ΅Ρ, Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ π
ΠΡΠ°ΠΊ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠΊΠΈΠ΄ΠΎΠΊ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π½ΠΎ Π±ΠΈΠ·Π½Π΅Ρ-Π°Π½Π°Π»ΠΈΡΠΈΠΊ ΠΊΠ»ΡΠ½Π΅ΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ΠΌ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΠΊΠΈΠ΄ΠΊΠ° 10%, ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠ½ Π²ΡΡΡΠ½ΠΈΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π΄Π΅Π»ΠΈ Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°. Π‘Π΅ΡΠ²ΠΈΡ Π½ΡΠΆΠ΅Π½ ΠΏΡΡΠΌΠΎ Π·Π°Π²ΡΡΠ° β ΡΠ΅Π·ΠΎΠ½ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ?
Π ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠ΄ΠΎΡΠΏΠ΅Π΅Ρ ΠΈ ΡΠ°ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° groovy, ΡΠ°ΠΌ ΡΠΊΠΈΠ΄ΠΊΠΈ Π±ΡΠ΄ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ:
ΠΡΠ·ΠΎΠ² ΡΠΈΡΠ°Π΅ΠΌΡΠΉ, ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ, ΠΈ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π½Π΅ Π½Π°Π΄ΠΎ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΎΡΠΎΠ±ΡΠΌΠΈ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ.
ΠΡΠΎ Π±ΡΠ»ΠΈ ΠΈΠ΄Π΅ΠΈ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ»Π° ΡΠ΄Π΅Π»Π°Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ. ΠΠ½Π° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ Spring ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π Π½Π΅ΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ API Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΡΡΠ²Π°Π΅Ρ ΡΡΡΠΈΠ½Π½ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΌΠΈ Π΄Π²ΠΈΠΆΠΊΠ°ΠΌΠΈ.
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΠ±ΡΠ΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅. Π‘ΠΈΠ½ΠΈΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π±Π΅Π»ΡΠΌ β ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π΅ΡΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅. ΠΠ½Π°ΡΠΊΠΎΠΌ Spring ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Spring.
ΠΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (ΠΏΠΎ ΡΠ°ΠΊΡΡ β ΠΏΡΠΎΠΊΡΠΈ-ΠΎΠ±ΡΠ΅ΠΊΡΠ°), Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΡΠ·ΠΎΠ²Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡΠ΅Ρ Π΄Π²Π° Π±ΠΈΠ½Π°: ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΡΠ΅ΠΊΡΡ ΡΠΊΡΠΈΠΏΡΠ°, ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ. ΠΠΎΡΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ·Π²Π°Π²ΡΠ΅ΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ.
ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ @ScriptParam β ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΈΡ Π² ΡΠΊΡΠΈΠΏΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Java ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΡΠΈΡΠ°Π΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² (Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΡΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ, Π½ΠΎ Π»ΡΡΡΠ΅ Π½Π° ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ). ΠΠΎΠΆΠ½ΠΎ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, Π½ΠΎ, Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π² ΡΠΊΡΠΈΠΏΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ βarg0β, βarg1β, ΡΡΠΎ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠ°Π΅Ρ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΊΡΠΈΠΏΡΡ ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°ΡΡΠΎ ΠΈ Π»Π΅Π³ΠΊΠΎ, Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π»ΠΎΠΌΠ°ΡΡ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ JUnit, ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΡΠΎΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π² ΡΠΎΡΡΠ°Π²Π΅ ΡΠ½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ°. Mock Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ, Π² ΡΠ΅ΡΡΠ°Ρ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ mock Π½Π° ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΈΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΈΠ· Git, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ. Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΊΠ°Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ Π²Π΅ΡΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΡΠΎΠ³ΠΎ
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Π² Spring ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:
Π‘ΠΈΡΠ°Π΄ΠΌΠΈΠ½Ρ: ΠΠΈΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΡ Π½Π° Π²ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΆΠΈΠ·Π½ΠΈ
ΠΠ°ΠΆΠ΄ΡΠΉ, ΠΊΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π» ΡΠΈΡΠ°Π΄ΠΌΠΈΠ½ΠΎΠΌ UNIX-ΡΠΈΡΡΠ΅ΠΌ, ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
ΠΠ°ΠΏΠΈΡΠ°Π½Ρ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π° ΡΡΠΌ ΡΠ³ΠΎΠ΄Π½ΠΎ β ΠΎΡ bash’Π° Π΄ΠΎ tcl. ΠΠ°ΠΆΠ΅Π½ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΡ Π²ΠΊΡΠ°ΡΡΠ΅ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ΅ΠΌΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΠΎΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ?
1. ΠΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ 1000 ΡΠ²ΠΈΡΡΠ΅ΠΉ, ΡΠ°Π·ΠΎΡΠ»Π°ΡΡ ΡΠΏΠ°ΠΌ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΠ°ΡΡ Π±Π°Π·Ρ MAC-Π°Π΄ΡΠ΅ΡΠΎΠ² β ΡΠΊΡΠΈΠΏΡΡ Π½Π°ΡΠΈ Π»ΡΡΡΠΈΠ΅ Π΄ΡΡΠ·ΡΡ.
2. ΠΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ.
ΠΡΡ
ΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ
ΠΊΠΎΠΏΠΈΠΉ, ΠΎΡΠΈΡΡΠΊΠ° mysql-Π±Π°Π·Ρ ΠΎΡ ΠΌΡΡΠΎΡΠ° ΠΈΠ»ΠΈ ΡΠ±ΠΎΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ β ΡΠ΅ ΡΠ°ΠΌΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ.
3. ΠΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅, Π½ΠΎ Π»Π΅Π½ΠΈΠ²ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Β«ΠΏΠΎ ΡΠ΅ΡΡΡΠ·Π½ΠΎΠΌΡΒ».
ΠΡΠΈΠΌΠ΅ΡΡ β ΠΌΠΈΠΊΡΠΎΠ±ΠΈΠ»Π»ΠΈΠ½Π³ΠΈ, ΡΡΠ΅ΡΡΠΈΠΊΠΈ ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΈΠΊΠΎΠ².
ΠΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° C/C++. ΠΠΎ Π½Π°ΡΠ°Π»ΡΡΡΠ²ΠΎ ΡΠΊΠ°Π·Π°Π»ΠΎ: Β«Π‘Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ!Β». Π ΡΠ½ΠΎΠ²Π° ΡΠΊΡΠΈΠΏΡΡ β ΠΈ ΠΌΡΡΠ»Ρ Β«ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΒ». π
ΠΠΎΠ³Π΄Π° Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ?
ΠΡΠ΅Π³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡΡΠΌ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΡΠ½ΠΊΡΠ°ΠΌ.
Π₯ΠΎΡΡ Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅ β ΠΏΠΈΡΠΈΡΠ΅. ΠΡΠ΅ΠΌΡ Π²Π°ΡΠ΅. π
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΠ· Π»ΠΈΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ
1. Π‘ΠΊΡΠΈΠΏΡ ΠΏΠΎΡΠΈΠ½ΠΊΠΈ Π²ΡΠ΅Ρ
ΡΠ°Π±Π»ΠΈΡ mysql. Π‘ΡΠ°Π²ΠΈΠ» Π½Π° Ρ
ΠΎΡΡΠΈΠ½Π³ ΠΏΠΎ ΠΊΡΠΎΠ½Ρ β ΡΡΠ°Π·Ρ ΠΏΡΠΎΠΏΠ°Π»ΠΈ Π·Π²ΠΎΠ½ΠΊΠΈ Π°Π±ΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° ΡΠ΅ΠΌΡ Π½Π΅ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ
ΡΠ°ΠΉΡΠΎΠ² Π½Π° mysql. [bash]
2. ΠΠ°ΡΡΠΎΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° ΡΠ²ΠΈΡΡΠ°Ρ AT-8000S. [perl]
iplist.txt β ΡΠΏΠΈΡΠΎΠΊ ΡΠ²ΠΈΡΡΠ΅ΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ip:login:password
command.txt β ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄.
3. ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π±ΠΎΡΡ Π΄Π΅ΠΌΠΎΠ½Π° β ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΠ°Π΄ΡΡΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΠΎΠΆΠ½ΠΎ ΡΠ±ΡΠ°ΡΡ while ΠΈ Π·Π°ΠΏΠΈΡ
Π½ΡΡΡ Π² ΠΊΡΠΎΠ½ΡΠ°Π±.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΠΊΡΠΈΠΏΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ. Π‘ΠΊΡΠΈΠΏΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ. Π£Π΄Π°ΡΠΈ. π
ΠΠ°Π³ΠΈΡ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ 2. ΠΠ°ΠΏΠ°ΡΠ°Π΅ΠΌΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π½Π° Π²ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΆΠΈΠ·Π½ΠΈ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ
ΠΠ΅ ΡΠ°ΠΊ Π΄Π°Π²ΒΠ½ΠΎ ΠΌΡ ΡΠΆΠ΅ ΠΏΡΠ±ΒΠ»ΠΈΠΊΠΎΠ²Π°ΒΠ»ΠΈ ΠΌΠΎΡ Π±ΠΎΠ»ΡΒΡΡΡ ΠΏΠΎΠ΄ΒΠ±ΠΎΡΠΊΡ ΡΡΠ»Π· Π΄Π»Ρ Π°Π²ΡΠΎΒΠΌΠ°ΡΠΈΒΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ. ΠΠ΄ΠΎΡ ΒΠ½ΠΎΠ²ΠΈΠ²ΒΡΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠ²ΒΠ½ΡΠΌΠΈ ΠΎΡΠ·ΡΒΠ²Π°ΠΌΠΈ, Ρ ΡΠ½ΠΎΒΠ²Π° ΠΏΠ΅ΡΠ΅ΡΡΠ» Π²ΡΠ΅ Π·Π°Π³Π°ΡΒΠ½ΠΈΠΊΠΈ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊ Π΅ΡΠ΅ ΠΏΠ°ΡΡ Π΄Π΅ΡΡΡΒΠΊΠΎΠ² Π³ΠΎΠ΄ΒΠ½ΡΡ ΠΈΠ½ΡΒΡΡΡΒΠΌΠ΅Π½ΒΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΒΡΡ ΠΆΠΈΠ·Π½Ρ ΠΏΡΠΈΒΡΡΠ½Π΅Π΅ Π² ΠΌΠ΅Π»ΠΎΡΠ°Ρ . ΠΠ΅ΠΊΠΎΡΠΎΒΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΡΠ°Π· Π²ΡΡΡΡΠ°ΒΠ»ΠΈ ΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³ΒΠ΄Π° Π½ΡΠΆΒΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅ΒΠ»Π°ΡΡ ΡΡΠΎβΡΠΎ Π±ΡΡΒΡΡΠΎ ΠΈ Π½Π΅ ΠΈΠ·ΠΎΠ±ΒΡΠ΅ΡΠ°Ρ Π²Π΅Π»ΠΎΡΠΈΒΠΏΠ΅Π΄.
Netfilter
ΠΠ°ΠΆΒΠ΄ΡΠΉ Π°Π΄ΠΌΠΈΠ½ Π² ΠΆΠΈΠ·ΒΠ½ΠΈ Π΄ΠΎΠ»ΒΠΆΠ΅Π½ ΠΏΠΎΡΒΡΡΠΎΒΠΈΡΡ ΡΠ΅ΡΡ, ΠΎΠ±ΡΡΒΠ³Π°ΡΡ Π±ΡΡ ΒΠ³Π°Π»ΡΠ΅ΒΡΠ° ΠΈ Π½Π°ΡΒΡΡΠΎΒΠΈΡΡ ΡΠ°ΠΉΒΡΠ²ΠΎΠ». Π‘ ΠΏΠ΅ΡΒΠ²ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΡΡ ΡΠΏΡΠ°ΒΠ²ΠΈΡΡΒΡΡ ΡΠ°ΠΌ, Π²ΡΠΎΒΡΠ°Ρ β ΠΏΠΎΠ»ΒΠ½ΠΎΡΡΡΡ ΠΎΠΏΡΠΈΒΠΎΠ½Π°Π»ΡΒΠ½Π°, Π° ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΒΡΠΈΠΌ ΠΎ ΡΠ°ΠΉΒΡΠ²ΠΎΒΠ»Π΅.
ΠΡΡΡ ΠΏΠΎΠ΄ΒΠ΄Π΅ΡΒΠΆΠΊΠ° Π½Π΅ΡΒΠΊΠΎΠ»ΡΒΠΊΠΈΡ Π°ΠΏΠ»ΠΈΠ½ΠΊΠΎΠ² ΠΈ VPN. Π Π΅ΡΠ΅ Π°Π²ΡΠΎΡ ΡΠΏΠ΅ΒΡΠΈΠ°Π»ΡΒΠ½ΠΎ ΡΡΠ°ΒΡΠ°Π΅ΡΒΡΡ Π΄Π΅ΡΒΠΆΠ°ΡΡ ΡΠΊΡΠΈΠΏΒΡΡ Π΄Π»Ρ iptables ΠΈ nftables ΠΌΠ°ΠΊΒΡΠΈΠΌΠ°Π»ΡΒΠ½ΠΎ ΠΏΠΎΡ ΠΎΠΆΠΈΒΠΌΠΈ, ΡΡΠΎΒΠ±Ρ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΌΠΈΠ³ΒΡΠ°ΡΠΈΡ ΡΠ΅ΠΌ, ΠΊΡΠΎ Π΅ΡΠ΅ ΡΡΠΎΒΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅ΒΠ»Π°Π».
Π€ΡΠ°Π³ΒΠΌΠ΅Π½Ρ ΡΠΊΡΠΈΠΏΒΡΠ°
adbwebkit
Adbwebkit β ΡΡΠΎ Ρ ΠΎΡΠΎΡΠ°Ρ Π²Π΅Π±βΠΌΠΎΡΒΠ΄Π° Π΄Π»Ρ Π²Π·Π°ΒΠΈΠΌΠΎΒΠ΄Π΅ΠΉΒΡΡΠ²ΠΈΡ Ρ ΡΡΡΡΠΎΠΉΒΡΡΠ²ΠΎΠΌ Π½Π° Android ΠΏΠΎ ADB. ΠΡΠ΅Π΄ΒΡΡΠ°Π²ΒΠ»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠ°ΡΒΠΊΡ ΡΠΊΡΠΈΠΏΒΡΠΎΠ² Π½Π° PHP, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΡΒΡΡΡ Π²ΡΠ²ΠΎΠ΄ ΡΡΠ°ΡΒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΒΠ΅Π½ΡΠ° ADB Π² ΡΠΈΡΒΡΠ΅ΠΌΠ΅ ΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡ ΡΠ΅Π·ΡΠ»ΡΒΡΠ°Ρ Π² Π²Π΅Π±βΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ½Π΅ ΠΏΡΠΈΒΠ³ΠΎΠ΄ΠΈΒΠ»ΠΎΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Π»Π΅ΡΠΎΒΠ½ΠΎΠΌ, Ρ ΠΊΠΎΡΠΎΡΠΎΒΠ³ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΒΡ ΠΎ ΡΠ°Π±ΠΎΡΠ°Π» ΡΠ΅Π½ΒΡΠΎΡ, Π° Π΄ΠΎΡΒΡΡΠΏ ΠΊ ΡΠΈΡΒΡΠ΅ΠΌΠ΅ Π±ΡΠ» Π½ΡΠΆΠ΅Π½.
Π£ΡΒΡΠ°Π½ΠΎΠ²ΒΠΊΠ° Π΄Π΅Π»Π°ΒΠ΅ΡΡΡ Π² ΡΠ΅ΡΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½ΒΠ΄Ρ, Π²ΠΊΠ»ΡΒΡΠ°Ρ ΡΡΡΠ°ΒΠ½ΠΎΠ²ΒΠΊΡ Π·Π°Π²ΠΈΡΠΈΒΠΌΠΎΡΒΡΠ΅ΠΉ:
ΠΠΎΡΒΠ»Π΅ ΡΡΠΎΒΠ³ΠΎ Π²Π΅Π±βΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΡΠ°ΒΠ½Π΅Ρ Π΄ΠΎΡΒΡΡΠΏΠ΅Π½ ΠΏΠΎ Π°Π΄ΡΠ΅ΒΡΡ localhost:8000.
ΠΠ΅ΒΠΌΠΎ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΒΡΠΎΡΠΈΡ ΠΏΡΠΎΒΠ΅ΠΊΡΠ°
ΠΠ°ΡΠ±ΠΎΡΠ΄Ρ
Cockpit
Cockpit β ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΒΡΠ΅ΠΌ Π΄Π°ΡΒΠ±ΠΎΡΠ΄. ΠΡΠΎ Π±ΠΎΠ»ΡΒΡΠ°Ρ Π²Π΅Π±βΠΊΠΎΠ½ΒΡΠΎΠ»Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅ΒΠ½ΠΈΡ ΡΠ΅ΡΒΠ²Π΅ΡΠΎΠΌ.
Π£ΡΒΡΠ°Π½ΠΎΠ²ΒΠΊΠ° ΠΌΠ°ΠΊΒΡΠΈΠΌΠ°Π»ΡΒΠ½ΠΎ ΠΏΡΠΎΡΒΡΠ°:
ΠΠ°ΒΡΠ΅ΠΌ Π½ΡΠΆΒΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΠΏΠΎΡΡ 9090 Π½Π° ΡΠ°ΠΉΒΡΠ²ΠΎΒΠ»Π΅:
ΠΠ°Π»ΡΒΡΠ΅ ΠΌΠΎΠΆΒΠ½ΠΎ Π½Π°ΡΒΡΡΠΎΒΠΈΡΡ Π΄ΠΎΡΒΡΡΠΏ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π²Π΅ΡΡβΠΏΡΠΎΠΊΒΡΠΈ nginx ΠΏΠΎ ΠΈΠΌΠ΅ΒΠ½ΠΈ Ρ ΠΎΡΒΡΠ° Ρ Π½ΠΎΡΒΠΌΠ°Π»ΡΒΠ½ΡΠΌΠΈ SSL-ΡΠ΅ΡΒΡΠΈΡΠΈΠΊΠ°ΒΡΠ°ΠΌΠΈ ΠΈ Π½Π° ΠΏΡΠΈΒΠ²ΡΡΒΠ½ΡΡ ΠΏΠΎΡΒΡΠ°Ρ .
ΠΠΎΡΒΠ»Π΅ Π²ΡΠ΅Ρ ΠΌΠ°Π½ΠΈΠΏΡΒΠ»ΡΡΠΈΠΉ Π·Π°Ρ ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠ²ΠΎΠΉ-Ρ ΠΎΡΡ>: 9090 ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΠΎΠΊΠ½ΠΎ Π»ΠΎΠ³ΠΈΠ½Π°. Π Π½Π΅Π³ΠΎ Π²Π±ΠΈΒΠ²Π°Π΅ΠΌ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΒΠ·ΠΎΠ²Π°ΡΠ΅ΒΠ»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π΅ΠΉΒΡΡΠ²ΠΈΒΡΠ΅Π»ΡΒΠ½ΠΎΠΉ ΡΡΠ΅ΡΒΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π½Π° ΡΠ΅ΡΒΠ²Π΅ΡΠ΅ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ Π΄Π°ΡΒΠ±ΠΎΡΠ΄.
ΠΠ° ΡΠΏΠ°Π²ΒΡΠΈΠΉ ΡΠ΅ΡΒΠ²ΠΈΡ Π½Π΅ ΠΏΠΈΠ½Π°ΠΉ β ΡΠ°ΠΊ Π·Π°Π΄ΡΠΌΠ°ΒΠ½ΠΎ
Cockpit ΡΠΌΠ΅ΒΠ΅Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠ°ΒΡΠΈΠΊΠΈ Π±ΠΎΠ»ΡΒΡΠΈΠ½ΡΒΡΠ²Π° ΠΈΠ½ΡΠ΅ΒΡΠ΅ΡΒΠ½ΡΡ ΠΌΠ΅ΡΒΡΠΈΠΊ β Π² ΡΠ°ΡΒΡΠ½ΠΎΡΒΡΠΈ, Π·Π°Π³ΒΡΡΠ·ΠΊΠΈ Π΄ΠΈΡΒΠΊΠ°.
Disk I/O graph
ΠΠ° Π²ΠΊΠ»Π°Π΄ΒΠΊΠ΅ Host Π΄ΠΎΡΒΡΡΠΏΠ½Ρ Π΄Π΅ΠΉΒΡΡΠ²ΠΈΡ Ρ ΡΠ΅ΡΒΠ²Π΅ΡΠΎΠΌ: ΡΡΡΠ°ΒΠ½ΠΎΠ²ΒΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅ΒΠ½ΠΈΠΉ, ΡΡΠ»Π΅ΠΆΒΠΊΠ° ΡΠ΅ΡΒΠ²ΠΈΡΠ°ΠΌΠΈ, ΡΠΏΡΠ°Π²Π»Π΅ΒΠ½ΠΈΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΒΠ΅ΠΌ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠ°ΒΡΠΈΠ½Π°ΒΡΡΠ΅ΒΠΌΡ Π°Π΄ΠΌΠΈΒΠ½Ρ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π΄ΠΎΒΡΠΎΠ²ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΆΠΈΠ·Π½Ρ.
ΠΠΎΠΌΒΠ½ΠΈΡΡ bashtop ΠΈΠ· ΠΏΡΠΎΡΒΠ»ΠΎΠΉ ΡΠ΅ΡΠΈΠΈ? Btop++ β ΡΡΠΎ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΒΠ·Π°ΡΠΈΡ Π½Π° C++ Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΒΠ½ΠΎΠΉ ΠΏΡΠΎΒΠΈΠ·Π²ΠΎΒΠ΄ΠΈΡΠ΅Π»ΡΒΠ½ΠΎΡΡΡΡ. Π£ΠΌΠ΅Π½ΡΒΡΠ΅Π½ΒΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅ΒΠ½ΠΈΡ Π³ΡΠ°ΒΡΠΈΠΊΠΎΠ² Π½Π΅ ΠΏΡΠΈΒΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π·Π½Π°ΒΡΠΈΡΠ΅Π»ΡΒΠ½ΠΎΠΌΡ ΠΏΠΎΠ²ΡΡΠ΅ΒΠ½ΠΈΡ Π½Π°Π³ΒΡΡΠ·ΠΊΠΈ Π½Π° ΠΏΡΠΎΒΡΠ΅ΡΒΡΠΎΡ. ΠΡΠΈ ΡΡΠΎΠΌ Π΄Π°ΡΒΠ±ΠΎΡΠ΄ Π²ΡΠ³ΒΠ»ΡΠ΄ΠΈΡ ΡΡΠΎΠ»Ρ ΠΆΠ΅ ΠΊΡΠ°ΒΡΠΎΡΒΠ½ΠΎ ΠΈ ΡΡΡΠ΅ΠΊΒΡΠ½ΠΎ Π΄Π»Ρ Π½Π΅ΠΈΡΒΠΊΡΡΠ΅Π½ΒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅ΡΠΈΒΡΠ΅Π»Ρ ΡΠ²ΠΎΒΠ΅ΠΉ ΡΠ΅ΡΒΠ²Π΅ΡΠ½ΠΎΠΉ!
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌ
ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²ΡΠΏΡΡΠΊΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· Π΄Π²Π° ΠΌΠ΅ΡΡΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΡΠ΅Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ°ΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° Β«Xakep.ruΒ».
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΡ ΠΊ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ Β«Xakep.ruΒ»!
Π§Π»Π΅Π½ΡΡΠ²ΠΎ Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° ΠΎΡΠΊΡΠΎΠ΅Ρ ΡΠ΅Π±Π΅ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ ΠΠ‘ΠΠ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌ Β«Π₯Π°ΠΊΠ΅ΡΠ°Β», ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ Π²ΡΠΏΡΡΠΊΠΈ Π² PDF, ΠΎΡΠΊΠ»ΡΡΠΈΡ ΡΠ΅ΠΊΠ»Π°ΠΌΡ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΡ Π»ΠΈΡΠ½ΡΡ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΊΠΈΠ΄ΠΊΡ! ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅