Hi, Π₯Π°Π±Ρ!
ΠΠ°ΡΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΊΠ»Π°Ρ ERP, Π² ΠΊΠΎΠΈΡΠΎ Π»ΡΠ²ΡΠΊΠΈΡΡ Π΄ΡΠ» ΡΠ΅ Π·Π°Π΅ΠΌΠ° ΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π² ΡΡΠΈΠ» EDMS. Π‘ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ ΡΠ° Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° JavaEE ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½ΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°ΠΌΠ΅ Ρ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ. ΠΠ΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΡΡ ΡΡΡΠ΅Π΄Π½ΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ. ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ° Π½ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π»ΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ Π³Π»Π°Π²ΠΎΠ±ΠΎΠ»ΠΈΠ΅, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈΡΠ΅ ΡΡΠΈΠ»ΠΎΠ²Π΅, ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΈ ΡΡΠ΅ΠΊΠΎΠ²Π΅ ΠΈ ΡΠ°ΠΌΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅, Π½ΠΎ Π½Π°ΠΏΠΎΡΠ»Π΅Π΄ΡΠΊ ΠΈΠΌΠ° Π½Π°ΠΏΡΠ΅Π΄ΡΠΊ Π² ΡΠ΅ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
Π ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π°ΡΠ° Π½Π° Π²Π°ΡΠ΅ΡΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ Π·Π° ΠΎΠΏΠΈΡΠ° ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΡΡΠ²Π°Π½ΠΈΡ Π½Π° ΠΠΠ ΠΡΠΈΡΡΠ° Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠΎΠ½. Π©Π΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΏΡΠΎΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° ΠΎΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΡΠΈΠ΅ Π·Π°Π΄ ΡΠ°Π·ΠΈ ΠΏΡΠΎΡΡΠΎΡΠ°.
ΠΠΏΡΠΎΠ²Π΅ΡΠΆΠ΅Π½ΠΈΠ΅
ΠΠΏΠΈΡΠ°Π½ΠΈΡΠ΅ Π² ΡΡΠ°ΡΠΈΡΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΎΡ ΠΌΠ΅Π½ Π½Π° Π±Π°Π·Π° Π»ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ. Π’Π΅Π·ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΠΈΡΠ°Ρ Π·Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΎΡΡ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ° ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΡΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°.
ΠΠ°ΠΊΠ²ΠΎ ΠΎΠ±ΡΠΎ ΠΈΠΌΠ° BPM Ρ ΡΠΎΠ²Π°?
ΠΠ° Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π½Π° ΡΠΎΠ·ΠΈ Π²ΡΠΏΡΠΎΡ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠΈΠΌ ΠΌΠ°Π»ΠΊΠΎ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° Π½Π°ΡΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π² Π½Π°ΡΠ°ΡΠ° ΡΠΈΠΏΠΈΡΠ½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π΅ Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π· ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ, ΡΡΡΠ½Π° ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ΡΠΎ ΠΈΠΌ ΠΏΡΠ΅Π· Π½ΡΠΊΠ°ΠΊΡΠ² ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΠΎΡΠΎΠΊ, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ΡΠΎ ΠΈΠΌ Π² Π΄ΡΡΠ³Π° ΡΠΈΡΡΠ΅ΠΌΠ° / Π°Π½Π°Π»ΠΈΡΠΈΡΠ½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ / Π°ΡΡ ΠΈΠ², Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΡΠ΅ΡΠΈ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΊΠ»ΡΡΠΎΠ²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ Π²ΡΡΡΠ΅ΡΠ½ΠΈ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ.
ΠΠ° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π° "Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ" Π² ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΡΠ° ΠΊΠ°ΡΠΎ Π½ΡΠΊΠ°ΠΊΠ²Π° Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ ΠΎΡ Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ ΠΎΡ ΠΎΠ±Ρ ΠΊΠ»ΡΡ, ΠΊΡΠΌ ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ "ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ΅Π½" ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ.
ΠΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ°? Π ΠΊΡΠ°Ρ Π½Π° ΠΊΡΠ°ΠΈΡΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ°ΡΠ° Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΎΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ Π΅ βΠ½Π°ΡΡΠ·Π°Π½Π°β Π½Π° ΡΠ°ΡΡΠΈ ΠΠ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π° ΠΏΠΎΠ΄ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΠΊΡΠΎΡΠΈ:
- ΠΏΠΎΠ΄ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°ΠΊΠΎΠ½Π° Π½Π° ΠΠΎΠ½ΡΠ΅ΠΉ;
- Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π·Π° Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ;
- ΠΏΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠ°, Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π½Π΅ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ.
ΠΠΌΠ° Π³ΠΎΠ»ΡΠΌΠΎ ΠΈΠ·ΠΊΡΡΠ΅Π½ΠΈΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΡ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ, Π·Π° Π΄Π° Π½Π΅ ΡΠ΅ Π·Π°ΠΌΡΡΡΡΠ²Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ ΠΈ Π΄Π° ΡΠ΅ ΡΠΏΠ΅ΡΡΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΡΠΎΠ²ΠΈ Π² ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈΡ ΠΏΠ΅ΠΉΠ·Π°ΠΆ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΠΌΠ° ΡΠ΅Π΄ΠΈΡΠ° ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°, Π½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΡΠ° ΠΏΠΎΠΊΠ°Π·Π²Π° Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π½Π΅Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ:
- ΡΠ΅ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π² ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ (ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΏΠΎ-Π΄ΠΎΠ»Ρ);
- ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΏΡΠΎΠ½ΠΈΠΊΠ²Π°Ρ Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ° ΠΎΡ Π΄ΡΡΠ³Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°;
- ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π²Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° Ρ ΠΏΡΠ΅ΠΊΡΡΠ½Π΅, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ;
- ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΡΠ΅ΡΡΠ°Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π΅Π΄Π½ΠΎ ΡΡΠ»ΠΎ ΠΎΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, "ΡΠ΅Π²ΠΎΠ²Π΅ΡΠ΅" ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ ΡΡΠ°Π²Π°Ρ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΈ, ΠΏΠΎΡΠ²ΡΠ²Π°Ρ ΡΠ΅ ΠΈΠ·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ½ΠΈΡΠΈΠΈΡΠ°Ρ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Π΅Π΄Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΡΠΌ Π΄ΡΡΠ³Π°.
ΠΡΡΠ³ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠ°ΡΠΎ Π½Π΅ΡΠ°Π·Π΄Π΅Π»Π½Π° ΡΠ°ΡΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ. ΠΠ° Π΄Π° ΠΏΡΠ΅Π΄ΠΏΠ°Π·ΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° ΡΠΌΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΡΠΊΠΎΠΊ, ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π»Π΅ΡΠ½ΠΎ ΠΈ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ, Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎ-ΡΡΡΠ΄Π½ΠΎ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°: ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ ΡΡΡΠ±Π²Π° Π΄Π° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΌΠΎΡΠ΅Π½, Π·Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΎΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΡΡΡΠ΅Π»ΡΠ½ Π² ΠΊΡΠ°ΠΊΠ°. ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΡΠΎΡΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ Π΅Π΄ΠΈΠ½ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ, Π½ΠΎ Π·Π° ΠΊΠΎΠΈΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΈΡΠ»ΠΈ Π² Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Π°ΡΠ° ΡΠΈ ΡΠ°Π±ΠΎΡΠ°: Π³ΡΠ°Π½ΠΈΡΠΈ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ, Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡ, ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅, Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅, ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅, ΠΌΠ°ΡΡΠ°Π»ΠΈΠ½Π³, ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΈ ΠΈ Ρ.Π½. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ°Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΠ° ΠΏΡΠΎΡΡΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π²ΡΠΏΡΠΎΡΠΈ Π²Π΅ΡΠ΅ ΡΠ° ΡΠΊΡΠΈΡΠΈ. Π’Π΅Π·ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΡΠΈΠ³ΡΡΠ½ΠΈ: Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° ΡΠΈΡΠΊΠ° ΠΎΡ Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΡΠ΅Π½Π°ΡΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΡΠ°Π½Π΅ Π½Π° ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΎ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ.
ΠΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ, ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ±ΡΠΎ ΠΈΠΌΠ° BPM Ρ ΡΠΎΠ²Π°? ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ ...
ΠΠ°ΠΈΡΡΠΈΠ½Π°, Π΄ΡΡΠ³Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π° Π² Π½Π°ΡΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ - ΡΡΠ΅Π· Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° ΠΏΡΠ΅Ρ
ΠΎΠ΄Π° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ ΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ Ρ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΊΡΠΌ ΠΏΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΠ΅. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΡ Π½Π° "Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°" Π² Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ°, Π΅ Π°ΡΡΠΈΠ±ΡΡ Π½Π° ΡΠ°ΠΌΠΈΡ "Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ".
ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡΠΎΡΠ΅ΡΡΡ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠ°ΠΊΠΎΠ²Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΡΠ΅ Π΄ΡΠ»ΠΆΠΈ Π½Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΏΡΠΎΡΡΠΎΡΠ° ΠΈ ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΈ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΡΠ°Π²Π°Ρ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π°ΡΠ°ΡΡΠ²Π° ΠΈ ΡΡΠ°Π²Π° ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½Π°. ΠΠΌΠ° Π½ΡΠΆΠ΄Π° ΠΎΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°ΡΡΠΈ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ°Π·ΠΊΠ»ΠΎΠ½ΡΠ²Π°ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΠΎΠ½ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ. ΠΡΠΈ ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ ΡΡΠ°Π²Π° Π½Π΅ΡΠ΄ΠΎΠ±Π΅Π½ ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° ΠΏΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π³ΡΠ±ΠΈ ΡΠ²ΠΎΠ΅ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ (ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ ΡΠ΅ ΠΎΡΡΠ°Π·ΡΠ²Π°Ρ Π² Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ°).
ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ Π½Π° ΠΈΠ·ΡΡΠ½ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ°
ΠΠ·Ρ
ΠΎΠ΄ΡΡ ΠΎΡ ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ Π±Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ
ΠΠ°Π»ΠΊΠ° ΡΠ°ΡΡ ΠΎΡ ΡΠ»ΠΎΠΆΠ΅Π½ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ
Π Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ΅Π½ ΠΏΠ»Π°Π½ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ ΠΎΠΏΡΠ°Π²Π΄Π° ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈΡΡΠ°: Π²ΠΈΡΠΎΠΊΠ°ΡΠ° ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΎΡΡ Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ ΡΡΠ΅Π· Π²ΠΈΠ·ΡΠ°Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, Π° ΡΠ°ΠΌΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΡΠ°Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-Π½Π΅Ρ Π°ΡΠ΅ΡΠ²Π°Π½ΠΈΡΠ΅ ΡΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅. ΠΠΌΠ°ΡΠ΅ ΠΈ ΠΎΠΏΠ»Π°ΠΊΠ²Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠ½Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ, ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ βΠΊΡΡΠΏΠΊΠΈβ ΠΈ βΠΏΠ°ΡΠ΅ΡΠΈΡΠΈβ.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π΅Π½ Π°ΡΠΏΠ΅ΠΊΡ ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° jBPM Π±Π΅ΡΠ΅ ΠΎΡΡΠ·Π½Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ»Π·ΠΈΡΠ΅ ΠΈ Π²ΡΠ΅Π΄ΠΈΡΠ΅ ΠΎΡ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π·Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ. ΠΠΈΠ΄ΡΡ ΠΌΠ΅ ΡΡΡΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π·Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΡΠ΅Π· ΡΠΈΠ³Π½Π°Π»ΠΈ ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ΅ΡΡΠΈΡΡΠΈΡΠ°ΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΠ°Π΅ ΡΠ΅ΡΠ°Π²Π°ΡΠ° ΡΠΎΠ»Ρ Π² ΡΠΎΠ²Π°.
ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π³ΠΎΡΠ½ΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°ΠΊΠ»ΡΡΠΈΠΌ: ΠΡΠΎΡΠ΅ΡΠ½ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π² ΡΡΠΈΠ»Π° Π½Π° BPM Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ΡΠ°Π²Π°ΠΌΠ΅ ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΡΡ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠ΅ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ, Ρ Π°ΡΠΌΠΎΠ½ΠΈΡΠ½ΠΎ Π²ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π΄Π΅ΠΉΠ½ΠΎΡΡΠΈ Π² ΡΠ΅Π·ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π·Π° Π²ΠΈΠ·ΡΠ°Π»Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π² ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π½ΠΎΡΠ°ΡΠΈΡ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΠΌΠΎΠ΄Π΅Π»
Π‘ΠΈΠ½Ρ ΡΠΎΠ½Π½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΎΡΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠΎ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅. ΠΠ΄Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π΅ΠΉΡΡΠ²Π° ΠΊΠ°ΡΠΎ ΡΡΡΠ°Π½Π° Π½Π° ΡΡΡΠ²ΡΡΠ° ΠΈ ΠΈΠ·Π»Π°Π³Π° API Ρ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄. ΠΡΡΠ³Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π΅ΠΉΡΡΠ²Π° ΠΊΠ°ΡΠΎ ΡΡΡΠ°Π½Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π² ΡΠΎΡΠ½ΠΈΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ Ρ ΠΎΡΠ°ΠΊΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°Ρ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°ΡΠ° ΠΈ ΡΡΡΠ²ΡΡΠ½Π°ΡΠ° ΡΡΡΠ°Π½Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Ρ ΠΎΡΡΠ²Π°Π½ΠΈ ΠΈΠ»ΠΈ Π² Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅Ρ, ΠΈΠ»ΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ. ΠΡΠ² Π²ΡΠΎΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° RPC ΠΈ Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈΡΠ΅ ΠΌΠ°ΡΡΠ°Π»ΠΈΠ½Π³ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ.
Π’Π°ΠΊΡΠ² ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΠΌΠΎΠ΄Π΅Π» ΠΈΠΌΠ° Π΄ΠΎΡΡΠ° Π³ΠΎΠ»ΡΠΌ Π½Π°Π±ΠΎΡ ΠΎΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ, Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠΎΠΊΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ²ΠΎΡΡΠ° ΠΏΡΠΎΡΡΠΎΡΠ°. Π‘ΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΠΏΠ»Π΅Π½ΡΠ²Π° ΠΈ Π²ΠΈ ΠΊΠ°ΡΠ° Π΄Π° Π³ΠΎ ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ° Π½Π° "ΠΈΠ·Π³Π°ΡΡΡΠΈ" ΡΡΠΎΠΊΠΎΠ²Π΅, Π·Π°ΠΏΠΈΡΠ²Π°ΠΉΠΊΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ Π΄ΡΠ»Π³. ΠΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π½Π΅ΠΎΠΏΠΈΡΠ½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½Π΅ΡΡΠ·Π½Π°ΡΠ΅Π»Π½ΠΎ, ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΎΡΡΠ·Π½Π°Π²Π°ΠΉΠΊΠΈ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΈΡΠΈ.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Π½Π°ΠΉ-ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ²ΡΡΠ·Π°Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅, ΠΈΠΌΠ° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ βΡΠ°Π·ΠΏΡΡΡΠΊΠ²Π°Π½Π΅ΡΠΎβ ΠΈ βΡΠ°Π·ΡΡΠ³Π°Π½Π΅ΡΠΎβ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅. ΠΡΡΡΠ½ΠΎΡΡ, Π°ΠΊΠΎ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΠΏΡΠ°Π²ΠΈ Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΠΎΠ³Π°Π²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ ΡΠ° Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠΈ, Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π·Π°ΡΠ΅Π³Π½Π°ΡΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. Π’ΠΎΠ΅ΡΡ, Π΄ΠΎΠΊΠ°ΡΠΎ Π΅Π΄Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΠΈΠ·ΡΠ°ΠΊΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΠΎΡ Π΄ΡΡΠ³Π°, ΡΡ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π²ΡΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° ΠΈ Π΄Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈ ΠΊΠ»ΡΡΠ°Π»ΠΊΠΈ. Π’ΠΎΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° ΡΠΈΡΠΊΠ° ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅ΡΠ΅ΠΊΡΠΈ:
- ΠΎΡΠ·ΠΈΠ²ΡΠΈΠ²ΠΎΡΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅ Π³ΡΠ±ΠΈ, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΠ°ΠΊΠ°Ρ Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ;
- ΡΡΡΠ²ΡΡΡΡ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠΏΠΈΡΠ° Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Ρ ΠΏΡΠ» ΠΎΡ Π½ΠΈΡΠΊΠΈ: ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ Π½ΠΈΡΠΊΠΈΡΠ΅ βΡΡΠΎΡΡβ Π½Π° ΠΊΠ»ΡΡΠ°Π»ΠΊΠ°ΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠ°, Π·Π°Π΅Ρ ΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°;
- Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π°Ρ Π·Π°Π΄ΡΠ½Π΅Π½ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ: Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΡ Π½ΠΎΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Π½Π΅ ΡΠΈΠ»Π½ΠΎ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°;
- ΠΏΠΎΡΠ²ΡΠ²Π°Ρ ΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°;
- ΡΡΡΠ²ΡΡΡΡ "ΠΏΠ°Π΄Π°" Π½Π° OutOfMemory, Π°ΠΊΠΎ Π·Π°Π΄Π°ΡΠ°ΡΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄Π°Π½Π½ΠΈ, Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΏΡΠ°Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΄Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° "ΠΏΠΎ-Π»Π΅ΠΊΠΈ" ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
ΠΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½Π° Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π·Π°Π³ΡΠ±Π° Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈ: Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π°Ρ ΡΠ΅Π»ΠΈ Π·Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π·Π° Π΅Π΄Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΎ ΠΎΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈΡΠ΅ Π·Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π·Π° Π΄ΡΡΠ³Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠΊΠΎ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Ρ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅ΠΊΠΈΠΏΠΈ, ΡΠΎΠ²Π° Π΅ Π³ΠΎΠ»ΡΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΠ΅ΡΠ°ΡΠ° ΡΡΠ°Π²Π°Ρ ΠΎΡΠ΅ ΠΏΠΎ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ, Π°ΠΊΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ° Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ°Π²ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΎΡ Π΄Π²Π΅ΡΠ΅ ΡΡΡΠ°Π½ΠΈ. ΠΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈ?
ΠΠΊΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΡΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΡΡΠ°Π±ΠΈΠ»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΡΠΎΠ²Π° Π½Π°ΠΏΡΠ»Π½ΠΎ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ - ΠΏΡΠΎΡΡΠΎΡΠ°ΡΠ°.
Π Π°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΡΡΠΎ ΠΈΠ΄Π²Π°Ρ Π½Π° ΡΠΌ, Π½ΠΎ Π½ΠΈΠ΅ Π½Π΅ Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² Π½Π°ΡΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ: ΡΡΡΠ΄Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ.
"Π‘Π°Π³Π°" ΠΊΠ°ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅
Π‘ Π½Π°ΡΠ°ΡΡΠ²Π°ΡΠ°ΡΠ° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡ Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈΡΠ΅, ΠΈΠΌΠ° Π½Π°ΡΠ°ΡΡΠ²Π°ΡΠΎ ΡΡΡΡΠ΅Π½Π΅ Π½Π°
Π’ΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π» ΠΏΠ΅ΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ΅ΡΠ°Π²Π° Π³ΠΎΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° Π΄ΡΠ»Π³ΠΈΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ°Π·ΡΠΈΡΡΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°: ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° ΡΠ»Π΅Π΄ Π½Π΅ΡΡΠΏΠ΅ΡΠ½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π²ΡΡΠ½Π΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π΄ΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎΡΠΎ ΠΉ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, Π½ΠΎ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΠΌΠ°ΡΡΡΡΡ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π½Π΅ ΠΏΠΎΠ²ΡΠ°ΡΡΡΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°Π²ΡΡΡΠ΅Π½ΠΈ ΡΡΡΠΏΠΊΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠ° Π΄ΠΎ βΠ΄ΠΎΠ±ΡΡβ ΠΊΡΠ°ΠΉ.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΡΠΎ Π΅, ΡΠ΅ Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π» Π΅ ΡΠΌΠ΅ΡΡΠ΅Π½ ΠΈ ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ»Π°Π±ΠΎ ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ ΠΈΠΌΠ° ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΈ Π΅ΡΠ΅ΠΊΡΠΈ, ΠΏΡΠΈΡΠΈΠ½Π΅Π½ΠΈ ΠΎΡ Π΄ΡΠ»Π³ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ΅ΡΡΡΡΠΈ.
ΠΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΈΡΠ΅ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ Π² ΡΡΠΈΠ» BPM ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π²Π½Π΅Π΄ΡΡΡ Sagas: ΠΎΡΠ΄Π΅Π»Π½ΠΈΡΠ΅ ΡΡΡΠΏΠΊΠΈ Π½Π° Sagas ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΊΠ°ΡΠΎ Π΄Π΅ΠΉΠ½ΠΎΡΡΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ°, Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ, ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΈ Π½Π΅ΡΠ°, Π²ΡΡΡΠ΅ΡΠ½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΡΠ°Π³ΠΈΡΠ΅. Π’ΠΎΠ΅ΡΡ Π½ΡΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΠΎΠ½Π΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ. ΠΡΠΈΡΠΊΠΎ, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅, Π΅ Π±ΡΠΎΠΊΠ΅Ρ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π³Π°ΡΠ°Π½ΡΠΈΠΈ βΠΏΠΎΠ½Π΅ Π²Π΅Π΄Π½ΡΠΆβ ΠΊΠ°ΡΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡ.
ΠΠΎ ΡΠ°ΠΊΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ° ΠΈ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° "ΡΠ΅Π½Π°":
- Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΡΡΠ°Π²Π° ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½Π°: ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠ°ΡΠΈΡ;
- ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΎΡΡΠ°Π²ΠΈ ΠΏΡΠ»Π½Π°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½Π° Π·Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ;
- Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ΡΡΠ°Π²Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½Π°, ΠΈΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° Π½ΡΠΆΠ΄Π° ΠΎΡ Π±ΡΠΎΠΊΠ΅Ρ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ;
- ΡΠ΅ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ (Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΠΎΠ²Π° Π΅ Π΄ΠΎΡΠΈ Π΄ΠΎΠ±ΡΠ΅: ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° ΡΡΠ»ΡΠ³Π° ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠΈ).
ΠΠ° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° "Sags" Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ. ΠΠ° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ SOA, ΠΊΡΠ΄Π΅ΡΠΎ Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ° Π±ΡΠΎΠΊΠ΅Ρ ΠΈ ΠΏΡΠ»Π½Π°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ Π΅ ΠΏΠΎΠΆΠ΅ΡΡΠ²Π°Π½Π° Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΏΠΎΠ»Π·ΠΈΡΠ΅ ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π» ΠΌΠΎΠ³Π°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° Π½Π°Π΄Ρ Π²ΡΡΠ»ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ° ΡΠ΄ΠΎΠ±Π΅Π½ API Π² Π½ΠΈΠ²ΠΎ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°.
ΠΠ°ΠΏΡΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π² ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ
ΠΠΎΠ³Π°ΡΠΎ Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°ΠΌΠ΅ Ρ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ, Π²ΡΠ·Π½ΠΈΠΊΠ½Π° ΡΠ°Π·ΡΠΌΠ΅Π½ Π²ΡΠΏΡΠΎΡ: ΠΊΡΠ΄Π΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° Π²ΡΠ² Π²ΡΡΠ·ΠΊΠ° Ρ ΡΡΠ»ΡΠ³Π°ΡΠ°, ΠΊΠΎΡΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π°?
ΠΠΎΠ³Π°ΡΠΎ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ BPMS, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°Π·ΡΠΌΠ½ΠΎ Π΄Π° ΠΎΡΠ΄Π΅Π»ΠΈΠΌ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΠΎΡ ΠΏΠΎΡΡΠΎΡΠ½ΡΡΠ²ΠΎΡΠΎ: ΡΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ»ΠΎΠΉ ΠΎΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠΎΡΠΌΠΈΡΠ°Ρ ΡΡΠ΅Π΄Π°ΡΠ° ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π°, ΠΈ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½ΡΡΠ²ΠΎΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠ»ΠΎΠΉ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΈ ΠΈ Π»Π΅ΠΊΠΈ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ. ΠΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Ρ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π½Π° ΡΠ»ΠΎΡ Π·Π° ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ.
Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»ΡΠΌ ΠΏΠ»ΡΡ: ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ ΠΈ ΡΠ°ΠΌΠΎ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΡ ΡΠ»ΠΎΠΉ ΠΎΡ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΡΠ΅ βΠ½Π°ΠΏΡΠ»Π½Π΅Π΅β ΠΎΡ ΡΠΎΠ²Π°. ΠΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΎΡ Π²ΡΠ΅ΠΊΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ Π²Π΅Π΄Π½Π°Π³Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½ΠΎΠ²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°, Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ Π½Π΅ΠΉΠ½ΠΎΡΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅.
ΠΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΡΠΎΡΡΠ²Π°Π½Π΅ ΡΠ°Π·ΠΊΡΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄:
- ΡΡΠ»ΡΠ³Π° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠΎΡΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ Π½Π°Π²Π΅Π΄Π½ΡΠΆ, Π½ΠΎΡΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠΈΡΠΊΠΎΠ²Π΅ ΠΊΠ°ΡΠΎ Π΅Π΄Π½Π° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΠ²ΡΠ΅Π΄Π°. Π§Π΅ΡΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Ρ ΡΠΈΡΠΊΠ° ΠΎΡ Π³ΡΠ΅ΡΠΊΠΈ, Π²ΠΎΠ΄Π΅ΡΠΈ Π΄ΠΎ ΡΡΠΈΠ²ΠΎΠ²Π΅ Π² ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°;
- ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°: Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠΈ ΡΡΡ ΡΠ²ΠΎΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π· ΡΠ΅ΡΠ΅Π½ ΠΈ Π±Π°Π²Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
- Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΠΈ ΠΈΠ·ΠΏΠΎΠΌΠΏΠ²Π°Π½ΠΈ ΠΏΡΠ΅Π· ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ΅ΠΊ;
- ΡΡΠ»ΡΠ³Π°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° ΡΠ΅ΡΡΠΎ ΡΠ΅ Π²ΡΡΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π½Π° Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° Π²ΡΠ½ΡΠ½ΠΈΡ API Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°;
- Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ ΡΠ°ΡΡΠΈ ΠΎΡ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΠΌΠΎΠ³Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΌΠ΅ΠΊΡΠΈΡΠ΅ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠ°ΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΠΉΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΡΠΎΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ΠΈ ΡΡΠ·Π΄Π°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π°ΠΊΡΡΠ°Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈ Π°Π½ΡΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ΅ΡΠ°);
- ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ:
- Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ ΠΎΡ ΡΡΠ»ΡΠ³Π°ΡΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°, Π½Π΅ ΡΠ° Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° ΠΈ Π½ΡΠΌΠ° Π»Π΅ΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ;
- ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° ΠΈΠ·Π²ΡΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°: Π°ΠΊΠΎ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΡΡΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΠ° Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½Π° ΠΏΡΠΎΠΌΡΠ½Π° Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ. ΠΡΠ½ΡΠ½ΠΎΡΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ ΡΠ°ΠΊΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΡΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠΈΡΠΊΠΎΠ²Π΅ ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΡΠ»ΠΎΡΡΠ½Π°ΡΠ° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°;
- Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅: Π² Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΠΎΡΠ½ΡΡΠ²ΠΎ ΠΈ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ ΠΈΠ»ΠΈ Π² ΡΡΡΠΎΠ³Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ.
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π° ΠΊΡΠΌ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅: Π΄Π° ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°ΠΌ Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° ΠΈ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° Π² Π΅Π΄Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΠΏΡΠΎΡΡΡΠ²Π° Π²ΡΠ·ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° ΠΊΠ°ΡΠΎ Π½Π΅ΡΠ°Π·Π΄Π΅Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ Π½Π΅ ΠΏΠΎΡΠ°ΠΆΠ΄Π° Π³ΠΎΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. Π’ΠΎΠ²Π° ΡΡΡΠΎ Π½Π΅ Π΅ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ:
- Π‘ΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° API Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° (ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, Π·Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π΄Π΅ΠΉΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ) ΠΈ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π½Π° API ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°; ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ΅ ΠΏΠΎ-Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² API, ΠΏΡΠ΅Π΄Π½Π° ΠΈ ΠΎΠ±ΡΠ°ΡΠ½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ;
- ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ runtime Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π·Π° Π΄Π° ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΠΊΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ Π²ΡΡΠΊΠ° ΡΠ°ΠΊΠ°Π²Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΡΠ°ΠΆΠ΄Π° Π½ΠΎΠ²ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ ΠΊΡΠΌ ΡΠ°ΠΊΠΈΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ: Π»Π΅ΠΊΠΎΡΠ° ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΏΡΠ΅Ρ ΠΎΠ΄Π½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ;
- ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ»Π΅Π΄ΡΡ Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅: Π°ΠΊΠΎ Π΄Π°Π΄Π΅Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Π½Π΅ Π΅ ΡΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΡΠΎΠ³Π°Π²Π° Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° ΠΎΡΡΠ°ΡΡΠ»Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π΅ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΎ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΠ΅ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΡΠ°ΡΠ°ΡΠ° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° ΡΠ°ΠΊΠ°Π²Π° ΡΡΠ»ΡΠ³Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠΈΠ³ΡΠΈΡΠ°Π½Π° ΠΊΡΠΌ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅, Π°ΠΊΠΎ Π΅ ΠΈΠΌΠ°Π»ΠΎ Π½Π΅ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΠΈΡΠ΅.
Π‘Π»ΠΎΠΉ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΡΡΡΠΎ ΠΏΡΠΈΡΡΡΡΠ²Π° Π² ΡΠ°ΠΊΠ°Π²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Π½ΠΎ ΡΠΎΠ·ΠΈ ΡΠ»ΠΎΠΉ Π²Π΅ΡΠ΅ Π½Π΅ ΡΠΎΡΠΌΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π°, Π° ΡΠ°ΠΌΠΎ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΡΡΠ΅Π΄Π°, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΠΉΠΊΠΈ ΡΠΏΠΎΠΌΠ°Π³Π°ΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° "ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°". Π’Π°ΠΊΡΠ² ΡΠ»ΠΎΠΉ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° Π»Π΅ΠΊΠΎΡΠ°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈΡΠ΅, Π½ΠΎ ΠΈ Π·Π° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π² Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ Π·Π°Π΄Π°ΡΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΡΡΡ Π·Π°Π΄Π°ΡΠΈ, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° Π²ΠΈΠΆΠ΄Π° Π·Π°Π΄Π°ΡΠΈ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ Π² ΠΎΠ±ΡΠΈΡ ΡΠΏΠΈΡΡΠΊ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° ΡΡΠ»ΡΠ³Π° Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½Π° Π·Π°Π΄Π°ΡΠΈ, ΠΈΠ·ΡΠΈΡΡΠ΅Π½Π° ΠΎΡ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π°. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π² ΡΠΎΠ·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π΅ Π΄ΠΎΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈ ΡΠΎΠ²Π° Π΅ Π΄ΡΡΠ³ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡ Π½Π° ΡΠ°Π·ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°.
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΏΡΠ΅Π· ΠΏΠΎΠ³Π»Π΅Π΄Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΊΡΠΎ Π²Π΅ΡΠ΅ Π±Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΎ ΠΏΠΎ-Π³ΠΎΡΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π°Π±ΡΡΡΠ°Ρ ΠΈΡΠ° ΠΎΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π·ΡΠΈΡΠ° Π½Π° Π΄ΠΎΠ±ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°.
ΠΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ Π΅Π΄ΠΈΠ½ Π΄ΠΎΡΡΠ° ΡΡΡΠ΄Π΅Π½ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΠΈΠ·ΠΌΠΈΡΠ»Π΅Π½ Π·Π° ΡΡΠ°ΡΠΈΡΡΠ°. Π’ΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ "ΠΈΠ³ΡΠ°" Π·Π°Π΄Π°ΡΠ°, Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ° ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΡΠ΄Π΅ΡΠΎ Π²ΡΡΠΊΠΎ ΠΎΡ ΡΡΡ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΠΈΠΌΠ΅ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½: "app1", "app2", "app3".
ΠΡΡΡΠ΅ Π²ΡΠ² Π²ΡΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° βΠΈΠ³ΡΠ°ΡΡ ΡΠΎΠΏΠΊΠ°ΡΠ°β ΠΏΡΠ΅Π· ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΠ½Π°. Π‘ΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° Ρ ΠΈΠΌΠ΅ βΠ’ΠΎΠΏΠΊΠ°β ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²Π°Ρ ΠΊΠ°ΡΠΎ ΡΠΎΠΏΠΊΠ°ΡΠ°.
ΠΡΠ°Π²ΠΈΠ»Π° Π½Π° ΠΈΠ³ΡΠ°ΡΠ°:
- ΠΏΡΡΠ²ΠΈΡΡ ΠΈΠ³ΡΠ°Ρ Π΅ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΎΡ. Π’ΠΎΠΉ ΠΊΠ°Π½ΠΈ Π΄ΡΡΠ³ΠΈ ΠΈΠ³ΡΠ°ΡΠΈ Π² ΠΈΠ³ΡΠ°ΡΠ°, Π·Π°ΠΏΠΎΡΠ²Π° ΠΈΠ³ΡΠ°ΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈ ΠΏΠΎ Π²ΡΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅;
- Π΄ΡΡΠ³ΠΈ ΠΈΠ³ΡΠ°ΡΠΈ Π·Π°ΡΠ²ΡΠ²Π°Ρ ΡΡΠ°ΡΡΠΈΠ΅ΡΠΎ ΡΠΈ Π² ΠΈΠ³ΡΠ°ΡΠ°, βΠ·Π°ΠΏΠΎΠ·Π½Π°Π²Π°Ρ ΡΠ΅β ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ ΠΈ Ρ ΠΏΡΡΠ²ΠΈΡ ΠΈΠ³ΡΠ°Ρ;
- ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈ ΡΠΎΠΏΠΊΠ°ΡΠ°, ΠΈΠ³ΡΠ°ΡΡΡ ΠΈΠ·Π±ΠΈΡΠ° Π΄ΡΡΠ³ ΡΡΠ°ΡΡΠ²Π°Ρ ΠΈΠ³ΡΠ°Ρ ΠΈ ΠΌΡ ΠΏΠΎΠ΄Π°Π²Π° ΡΠΎΠΏΠΊΠ°ΡΠ°. ΠΡΡΠΈΡΠ° ΡΠ΅ ΠΎΠ±ΡΠΈΡΡ Π±ΡΠΎΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠΈ;
- Π²ΡΠ΅ΠΊΠΈ ΠΈΠ³ΡΠ°Ρ ΠΈΠΌΠ° "Π΅Π½Π΅ΡΠ³ΠΈΡ", ΠΊΠΎΡΡΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π° Ρ Π²ΡΡΠΊΠΎ ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠΏΠΊΠ°ΡΠ° ΠΎΡ ΡΠΎΠ·ΠΈ ΠΈΠ³ΡΠ°Ρ. ΠΠΎΠ³Π°ΡΠΎ Π΅Π½Π΅ΡΠ³ΠΈΡΡΠ° ΡΠ²ΡΡΡΠΈ, ΠΈΠ³ΡΠ°ΡΡΡ ΡΠ΅ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ° ΠΎΡ ΠΈΠ³ΡΠ°ΡΠ°, ΠΎΠ±ΡΠ²ΡΠ²Π°ΠΉΠΊΠΈ ΠΏΠ΅Π½ΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ ΡΠΈ;
- Π°ΠΊΠΎ ΠΈΠ³ΡΠ°ΡΡΡ ΠΎΡΡΠ°Π½Π΅ ΡΠ°ΠΌ, ΡΠΎΠΉ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΎΠ±ΡΠ²ΡΠ²Π° Π½Π°ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ ΡΠΈ;
- ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ³ΡΠ°ΡΠΈ ΡΠ° Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°Π½ΠΈ, ΠΏΡΡΠ²ΠΈΡΡ ΠΈΠ³ΡΠ°Ρ ΠΎΠ±ΡΠ²ΡΠ²Π° ΠΊΡΠ°Ρ Π½Π° ΠΈΠ³ΡΠ°ΡΠ°. ΠΠΊΠΎ Π΅ Π½Π°ΠΏΡΡΠ½Π°Π» ΠΈΠ³ΡΠ°ΡΠ° ΠΏΠΎ-ΡΠ°Π½ΠΎ, ΡΠΎΠ³Π°Π²Π° ΠΎΡΡΠ°Π²Π° Π΄Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈ ΠΈΠ³ΡΠ°ΡΠ°, Π·Π° Π΄Π° Ρ Π·Π°Π²ΡΡΡΠΈ.
ΠΠ° Π΄Π° ΡΠ΅ΡΠ° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Π½Π°ΡΠΈΡ DSL Π·Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΠΏΠΈΡΠ΅ΡΠ΅ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π² Kotlin ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎ, Ρ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΠ°Π±Π»ΠΎΠ½.
Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ app1 Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΠΏΡΡΠ²ΠΈΡ ΠΈΠ³ΡΠ°Ρ (ΡΠΎΠΉ Π΅ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΎΡΡΡ Π½Π° ΠΈΠ³ΡΠ°ΡΠ°) ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ:
ΠΊΠ»Π°Ρ InitialPlayer
import ru.krista.bpm.ProcessInstance
import ru.krista.bpm.runtime.ProcessImpl
import ru.krista.bpm.runtime.constraint.UniqueConstraints
import ru.krista.bpm.runtime.dsl.processModel
import ru.krista.bpm.runtime.dsl.taskOperation
import ru.krista.bpm.runtime.instance.MessageSendInstance
data class PlayerInfo(val name: String, val domain: String, val id: String)
class PlayersList : ArrayList<PlayerInfo>()
// ΠΡΠΎ ΠΊΠ»Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ°: ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅
class InitialPlayer : ProcessImpl<InitialPlayer>(initialPlayerModel) {
var playerName: String by persistent("Player1")
var energy: Int by persistent(30)
var players: PlayersList by persistent(PlayersList())
var shotCounter: Int = 0
}
// ΠΡΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°: ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠΈ
// ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°
val initialPlayerModel = processModel<InitialPlayer>(name = "InitialPlayer",
version = 1) {
// ΠΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ, ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ³ΡΠΎΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΎΡΠΎΠΌ ΠΈΠ³ΡΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ
uniqueConstraint = UniqueConstraints.singleton
// ΠΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
ΡΠΎΡΡΠΎΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡ
val sendNewGameSignal = signal<String>("NewGame")
val sendStopGameSignal = signal<String>("StopGame")
val startTask = humanTask("Start") {
taskOperation {
processCondition { players.size > 0 }
confirmation { "ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΎΡΡ ${players.size} ΠΈΠ³ΡΠΎΠΊΠΎΠ². ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ?" }
}
}
val stopTask = humanTask("Stop") {
taskOperation {}
}
val waitPlayerJoin = signalWait<String>("PlayerJoin") { signal ->
players.add(PlayerInfo(
signal.data!!,
signal.sender.domain,
signal.sender.processInstanceId))
println("... join player ${signal.data} ...")
}
val waitPlayerOut = signalWait<String>("PlayerOut") { signal ->
players.remove(PlayerInfo(
signal.data!!,
signal.sender.domain,
signal.sender.processInstanceId))
println("... player ${signal.data} is out ...")
}
val sendPlayerOut = signal<String>("PlayerOut") {
signalData = { playerName }
}
val sendHandshake = messageSend<String>("Handshake") {
messageData = { playerName }
activation = {
receiverDomain = process.players.last().domain
receiverProcessInstanceId = process.players.last().id
}
}
val throwStartBall = messageSend<Int>("Ball") {
messageData = { 1 }
activation = { selectNextPlayer() }
}
val throwBall = messageSend<Int>("Ball") {
messageData = { shotCounter + 1 }
activation = { selectNextPlayer() }
onEntry { energy -= 1 }
}
val waitBall = messageWaitData<Int>("Ball") {
shotCounter = it
}
// Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΡΠ΅ΠΌ Π³ΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ· ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ
Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠ΅ΠΉ
startFrom(sendNewGameSignal)
.fork("mainFork") {
next(startTask)
next(waitPlayerJoin).next(sendHandshake).next(waitPlayerJoin)
next(waitPlayerOut)
.branch("checkPlayers") {
ifTrue { players.isEmpty() }
.next(sendStopGameSignal)
.terminate()
ifElse().next(waitPlayerOut)
}
}
startTask.fork("afterStart") {
next(throwStartBall)
.branch("mainLoop") {
ifTrue { energy < 5 }.next(sendPlayerOut).next(waitBall)
ifElse().next(waitBall).next(throwBall).loop()
}
next(stopTask).next(sendStopGameSignal)
}
// ΠΠ°Π²Π΅ΡΠ°Π΅ΠΌ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄Π»Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
sendNewGameSignal.onExit { println("Let's play!") }
sendStopGameSignal.onExit { println("Stop!") }
sendPlayerOut.onExit { println("$playerName: I'm out!") }
}
private fun MessageSendInstance<InitialPlayer, Int>.selectNextPlayer() {
val player = process.players.random()
receiverDomain = player.domain
receiverProcessInstanceId = player.id
println("Step ${process.shotCounter + 1}: " +
"${process.playerName} >>> ${player.name}")
}
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°, Π³ΠΎΡΠ½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΠΎΠ±Π΅ΠΊΡΠ΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°. ΠΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠΌΠ΅ Π²Π½Π΅Π΄ΡΠΈΠ»ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΎΡΠ΄Π΅Π»ΠΈΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ΅ΡΡΠ°Π½Π΅ (ΡΡΠΊ Π»Π΅ΠΊΠΎ ΠΎΠΏΡΠΎΡΡΠΈΡ Π½ΠΎΡΠ°ΡΠΈΡΡΠ° Π½Π° BPMN ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠ°ΡΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡ ΡΡΠ³Π»Π°ΡΡΠ²Π°Π½ΠΎΡΡΡΠ° Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° Ρ Π³ΠΎΡΠ½ΠΈΡ ΠΊΠΎΠ΄):
app2 ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ Π½Π° Π΄ΡΡΠ³ ΠΈΠ³ΡΠ°Ρ:
ΠΊΠ»Π°Ρ RandomPlayer
import ru.krista.bpm.ProcessInstance
import ru.krista.bpm.runtime.ProcessImpl
import ru.krista.bpm.runtime.dsl.processModel
import ru.krista.bpm.runtime.instance.MessageSendInstance
data class PlayerInfo(val name: String, val domain: String, val id: String)
class PlayersList: ArrayList<PlayerInfo>()
class RandomPlayer : ProcessImpl<RandomPlayer>(randomPlayerModel) {
var playerName: String by input(persistent = true,
defaultValue = "RandomPlayer")
var energy: Int by input(persistent = true, defaultValue = 30)
var players: PlayersList by persistent(PlayersList())
var allPlayersOut: Boolean by persistent(false)
var shotCounter: Int = 0
val selfPlayer: PlayerInfo
get() = PlayerInfo(playerName, env.eventDispatcher.domainName, id)
}
val randomPlayerModel = processModel<RandomPlayer>(name = "RandomPlayer",
version = 1) {
val waitNewGameSignal = signalWait<String>("NewGame")
val waitStopGameSignal = signalWait<String>("StopGame")
val sendPlayerJoin = signal<String>("PlayerJoin") {
signalData = { playerName }
}
val sendPlayerOut = signal<String>("PlayerOut") {
signalData = { playerName }
}
val waitPlayerJoin = signalWaitCustom<String>("PlayerJoin") {
eventCondition = { signal ->
signal.sender.processInstanceId != process.id
&& !process.players.any { signal.sender.processInstanceId == it.id}
}
handler = { signal ->
players.add(PlayerInfo(
signal.data!!,
signal.sender.domain,
signal.sender.processInstanceId))
}
}
val waitPlayerOut = signalWait<String>("PlayerOut") { signal ->
players.remove(PlayerInfo(
signal.data!!,
signal.sender.domain,
signal.sender.processInstanceId))
allPlayersOut = players.isEmpty()
}
val sendHandshake = messageSend<String>("Handshake") {
messageData = { playerName }
activation = {
receiverDomain = process.players.last().domain
receiverProcessInstanceId = process.players.last().id
}
}
val receiveHandshake = messageWait<String>("Handshake") { message ->
if (!players.any { message.sender.processInstanceId == it.id}) {
players.add(PlayerInfo(
message.data!!,
message.sender.domain,
message.sender.processInstanceId))
}
}
val throwBall = messageSend<Int>("Ball") {
messageData = { shotCounter + 1 }
activation = { selectNextPlayer() }
onEntry { energy -= 1 }
}
val waitBall = messageWaitData<Int>("Ball") {
shotCounter = it
}
startFrom(waitNewGameSignal)
.fork("mainFork") {
next(sendPlayerJoin)
.branch("mainLoop") {
ifTrue { energy < 5 || allPlayersOut }
.next(sendPlayerOut)
.next(waitBall)
ifElse()
.next(waitBall)
.next(throwBall)
.loop()
}
next(waitPlayerJoin).next(sendHandshake).next(waitPlayerJoin)
next(waitPlayerOut).next(waitPlayerOut)
next(receiveHandshake).next(receiveHandshake)
next(waitStopGameSignal).terminate()
}
sendPlayerJoin.onExit { println("$playerName: I'm here!") }
sendPlayerOut.onExit { println("$playerName: I'm out!") }
}
private fun MessageSendInstance<RandomPlayer, Int>.selectNextPlayer() {
val player = if (process.players.isNotEmpty())
process.players.random()
else
process.selfPlayer
receiverDomain = player.domain
receiverProcessInstanceId = player.id
println("Step ${process.shotCounter + 1}: " +
"${process.playerName} >>> ${player.name}")
}
ΠΠΈΠ°Π³ΡΠ°ΠΌΠ°:
Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ app3 ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΈΠ³ΡΠ°ΡΠ° Ρ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅: Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΈΠ·Π±ΠΈΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΠΈΠ³ΡΠ°Ρ, ΡΠΎΠΉ ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²Π° ΡΠΏΠΎΡΠ΅Π΄ ΠΊΡΡΠ³ΠΎΠ²ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ:
ΠΊΠ»Π°Ρ RoundRobinPlayer
import ru.krista.bpm.ProcessInstance
import ru.krista.bpm.runtime.ProcessImpl
import ru.krista.bpm.runtime.dsl.processModel
import ru.krista.bpm.runtime.instance.MessageSendInstance
data class PlayerInfo(val name: String, val domain: String, val id: String)
class PlayersList: ArrayList<PlayerInfo>()
class RoundRobinPlayer : ProcessImpl<RoundRobinPlayer>(roundRobinPlayerModel) {
var playerName: String by input(persistent = true,
defaultValue = "RoundRobinPlayer")
var energy: Int by input(persistent = true, defaultValue = 30)
var players: PlayersList by persistent(PlayersList())
var nextPlayerIndex: Int by persistent(-1)
var allPlayersOut: Boolean by persistent(false)
var shotCounter: Int = 0
val selfPlayer: PlayerInfo
get() = PlayerInfo(playerName, env.eventDispatcher.domainName, id)
}
val roundRobinPlayerModel = processModel<RoundRobinPlayer>(
name = "RoundRobinPlayer",
version = 1) {
val waitNewGameSignal = signalWait<String>("NewGame")
val waitStopGameSignal = signalWait<String>("StopGame")
val sendPlayerJoin = signal<String>("PlayerJoin") {
signalData = { playerName }
}
val sendPlayerOut = signal<String>("PlayerOut") {
signalData = { playerName }
}
val waitPlayerJoin = signalWaitCustom<String>("PlayerJoin") {
eventCondition = { signal ->
signal.sender.processInstanceId != process.id
&& !process.players.any { signal.sender.processInstanceId == it.id}
}
handler = { signal ->
players.add(PlayerInfo(
signal.data!!,
signal.sender.domain,
signal.sender.processInstanceId))
}
}
val waitPlayerOut = signalWait<String>("PlayerOut") { signal ->
players.remove(PlayerInfo(
signal.data!!,
signal.sender.domain,
signal.sender.processInstanceId))
allPlayersOut = players.isEmpty()
}
val sendHandshake = messageSend<String>("Handshake") {
messageData = { playerName }
activation = {
receiverDomain = process.players.last().domain
receiverProcessInstanceId = process.players.last().id
}
}
val receiveHandshake = messageWait<String>("Handshake") { message ->
if (!players.any { message.sender.processInstanceId == it.id}) {
players.add(PlayerInfo(
message.data!!,
message.sender.domain,
message.sender.processInstanceId))
}
}
val throwBall = messageSend<Int>("Ball") {
messageData = { shotCounter + 1 }
activation = { selectNextPlayer() }
onEntry { energy -= 1 }
}
val waitBall = messageWaitData<Int>("Ball") {
shotCounter = it
}
startFrom(waitNewGameSignal)
.fork("mainFork") {
next(sendPlayerJoin)
.branch("mainLoop") {
ifTrue { energy < 5 || allPlayersOut }
.next(sendPlayerOut)
.next(waitBall)
ifElse()
.next(waitBall)
.next(throwBall)
.loop()
}
next(waitPlayerJoin).next(sendHandshake).next(waitPlayerJoin)
next(waitPlayerOut).next(waitPlayerOut)
next(receiveHandshake).next(receiveHandshake)
next(waitStopGameSignal).terminate()
}
sendPlayerJoin.onExit { println("$playerName: I'm here!") }
sendPlayerOut.onExit { println("$playerName: I'm out!") }
}
private fun MessageSendInstance<RoundRobinPlayer, Int>.selectNextPlayer() {
var idx = process.nextPlayerIndex + 1
if (idx >= process.players.size) {
idx = 0
}
process.nextPlayerIndex = idx
val player = if (process.players.isNotEmpty())
process.players[idx]
else
process.selfPlayer
receiverDomain = player.domain
receiverProcessInstanceId = player.id
println("Step ${process.shotCounter + 1}: " +
"${process.playerName} >>> ${player.name}")
}
Π ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ³ΡΠ°ΡΠ° Π½Π΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎΡΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ.
Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΠ΅ΡΡ, Π·Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ Π²ΡΠΈΡΠΊΠΎ. Π©Π΅ Π΄Π°ΠΌ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°ΠΌΠΈΡ ΡΠ΅ΡΡ, Π·Π° Π΄Π° Π½Π΅ ΠΏΡΠ΅ΡΡΡΠΏΠ²Π°ΠΌ ΡΡΠ°ΡΠΈΡΡΠ° Ρ ΡΠ°Π±Π»ΠΎΠ½ (Π²ΡΡΡΠ½ΠΎΡΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ΅ΡΡΠΎΠ²Π°ΡΠ° ΡΡΠ΅Π΄Π°, ΡΡΠ·Π΄Π°Π΄Π΅Π½Π° ΠΏΠΎ-ΡΠ°Π½ΠΎ, Π·Π° Π΄Π° ΡΠ΅ΡΡΠ²Π°ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° Π½Π° Π΄ΡΡΠ³ΠΈ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ):
testGame()
@Test
public void testGame() throws InterruptedException {
String pl2 = startProcess(app2, "RandomPlayer", playerParams("Player2", 20));
String pl3 = startProcess(app2, "RandomPlayer", playerParams("Player3", 40));
String pl4 = startProcess(app3, "RoundRobinPlayer", playerParams("Player4", 25));
String pl5 = startProcess(app3, "RoundRobinPlayer", playerParams("Player5", 35));
String pl1 = startProcess(app1, "InitialPlayer");
// Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ, ΠΏΠΎΠΊΠ° ΠΈΠ³ΡΠΎΠΊΠΈ "ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΡΡ" Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ.
// ΠΠ΄Π°ΡΡ ΡΠ΅ΡΠ΅Π· sleep - ΠΏΠ»ΠΎΡ
ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π·Π°ΡΠΎ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅.
// ΠΠ΅ Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ°ΠΊ Π² ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ
ΡΠ΅ΡΡΠ°Ρ
!
Thread.sleep(1000);
// ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΈΠ³ΡΡ, Π·Π°ΠΊΡΡΠ²Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ
assertTrue(closeTask(app1, pl1, "Start"));
app1.getWaiting().waitProcessFinished(pl1);
app2.getWaiting().waitProcessFinished(pl2);
app2.getWaiting().waitProcessFinished(pl3);
app3.getWaiting().waitProcessFinished(pl4);
app3.getWaiting().waitProcessFinished(pl5);
}
private Map<String, Object> playerParams(String name, int energy) {
Map<String, Object> params = new HashMap<>();
params.put("playerName", name);
params.put("energy", energy);
return params;
}
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅ΡΡΠ°, ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π΄Π½Π΅Π²Π½ΠΈΠΊΠ°:
ΠΊΠΎΠ½Π·ΠΎΠ»Π΅Π½ ΠΈΠ·Ρ ΠΎΠ΄
ΠΠ·ΡΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠ»ΡΡΠ° lock://app1/process/InitialPlayer
Let's play!
Π‘Π½ΡΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠ»ΡΡΠ° lock://app1/process/InitialPlayer
Player2: I'm here!
Player3: I'm here!
Player4: I'm here!
Player5: I'm here!
... join player Player2 ...
... join player Player4 ...
... join player Player3 ...
... join player Player5 ...
Step 1: Player1 >>> Player3
Step 2: Player3 >>> Player5
Step 3: Player5 >>> Player3
Step 4: Player3 >>> Player4
Step 5: Player4 >>> Player3
Step 6: Player3 >>> Player4
Step 7: Player4 >>> Player5
Step 8: Player5 >>> Player2
Step 9: Player2 >>> Player5
Step 10: Player5 >>> Player4
Step 11: Player4 >>> Player2
Step 12: Player2 >>> Player4
Step 13: Player4 >>> Player1
Step 14: Player1 >>> Player4
Step 15: Player4 >>> Player3
Step 16: Player3 >>> Player1
Step 17: Player1 >>> Player2
Step 18: Player2 >>> Player3
Step 19: Player3 >>> Player1
Step 20: Player1 >>> Player5
Step 21: Player5 >>> Player1
Step 22: Player1 >>> Player2
Step 23: Player2 >>> Player4
Step 24: Player4 >>> Player5
Step 25: Player5 >>> Player3
Step 26: Player3 >>> Player4
Step 27: Player4 >>> Player2
Step 28: Player2 >>> Player5
Step 29: Player5 >>> Player2
Step 30: Player2 >>> Player1
Step 31: Player1 >>> Player3
Step 32: Player3 >>> Player4
Step 33: Player4 >>> Player1
Step 34: Player1 >>> Player3
Step 35: Player3 >>> Player4
Step 36: Player4 >>> Player3
Step 37: Player3 >>> Player2
Step 38: Player2 >>> Player5
Step 39: Player5 >>> Player4
Step 40: Player4 >>> Player5
Step 41: Player5 >>> Player1
Step 42: Player1 >>> Player5
Step 43: Player5 >>> Player3
Step 44: Player3 >>> Player5
Step 45: Player5 >>> Player2
Step 46: Player2 >>> Player3
Step 47: Player3 >>> Player2
Step 48: Player2 >>> Player5
Step 49: Player5 >>> Player4
Step 50: Player4 >>> Player2
Step 51: Player2 >>> Player5
Step 52: Player5 >>> Player1
Step 53: Player1 >>> Player5
Step 54: Player5 >>> Player3
Step 55: Player3 >>> Player5
Step 56: Player5 >>> Player2
Step 57: Player2 >>> Player1
Step 58: Player1 >>> Player4
Step 59: Player4 >>> Player1
Step 60: Player1 >>> Player4
Step 61: Player4 >>> Player3
Step 62: Player3 >>> Player2
Step 63: Player2 >>> Player5
Step 64: Player5 >>> Player4
Step 65: Player4 >>> Player5
Step 66: Player5 >>> Player1
Step 67: Player1 >>> Player5
Step 68: Player5 >>> Player3
Step 69: Player3 >>> Player4
Step 70: Player4 >>> Player2
Step 71: Player2 >>> Player5
Step 72: Player5 >>> Player2
Step 73: Player2 >>> Player1
Step 74: Player1 >>> Player4
Step 75: Player4 >>> Player1
Step 76: Player1 >>> Player2
Step 77: Player2 >>> Player5
Step 78: Player5 >>> Player4
Step 79: Player4 >>> Player3
Step 80: Player3 >>> Player1
Step 81: Player1 >>> Player5
Step 82: Player5 >>> Player1
Step 83: Player1 >>> Player4
Step 84: Player4 >>> Player5
Step 85: Player5 >>> Player3
Step 86: Player3 >>> Player5
Step 87: Player5 >>> Player2
Step 88: Player2 >>> Player3
Player2: I'm out!
Step 89: Player3 >>> Player4
... player Player2 is out ...
Step 90: Player4 >>> Player1
Step 91: Player1 >>> Player3
Step 92: Player3 >>> Player1
Step 93: Player1 >>> Player4
Step 94: Player4 >>> Player3
Step 95: Player3 >>> Player5
Step 96: Player5 >>> Player1
Step 97: Player1 >>> Player5
Step 98: Player5 >>> Player3
Step 99: Player3 >>> Player5
Step 100: Player5 >>> Player4
Step 101: Player4 >>> Player5
Player4: I'm out!
... player Player4 is out ...
Step 102: Player5 >>> Player1
Step 103: Player1 >>> Player3
Step 104: Player3 >>> Player1
Step 105: Player1 >>> Player3
Step 106: Player3 >>> Player5
Step 107: Player5 >>> Player3
Step 108: Player3 >>> Player1
Step 109: Player1 >>> Player3
Step 110: Player3 >>> Player5
Step 111: Player5 >>> Player1
Step 112: Player1 >>> Player3
Step 113: Player3 >>> Player5
Step 114: Player5 >>> Player3
Step 115: Player3 >>> Player1
Step 116: Player1 >>> Player3
Step 117: Player3 >>> Player5
Step 118: Player5 >>> Player1
Step 119: Player1 >>> Player3
Step 120: Player3 >>> Player5
Step 121: Player5 >>> Player3
Player5: I'm out!
... player Player5 is out ...
Step 122: Player3 >>> Player5
Step 123: Player5 >>> Player1
Player5: I'm out!
Step 124: Player1 >>> Player3
... player Player5 is out ...
Step 125: Player3 >>> Player1
Step 126: Player1 >>> Player3
Player1: I'm out!
... player Player1 is out ...
Step 127: Player3 >>> Player3
Player3: I'm out!
Step 128: Player3 >>> Player3
... player Player3 is out ...
Player3: I'm out!
Stop!
Step 129: Player3 >>> Player3
Player3: I'm out!
ΠΡ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΡΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Π°ΠΆΠ½ΠΈ ΠΈΠ·Π²ΠΎΠ΄Π°:
- Π°ΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΎΡΠΊΡΡΠ²Π°Ρ ΠΎΡ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°;
- ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠ° (ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΡΡΡΠ°) Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½Π° Π·Π°Π΄Π°ΡΠ°, ΠΊΠΎΡΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΈ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠΈΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠΊΡΠΈΡΠ° Π²ΡΡΡΠ΅ Π² ΡΠ°ΠΌΠΊΠ°ΡΠ°, Π°ΠΊΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ Π·Π°Π»ΠΎΠΆΠ΅Π½Π° Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ°ΠΌΠΊΠ°ΡΠ°. Π’ΡΡΠ΄Π½ΠΎΡΡΡΠ° Π½Π° Π·Π°Π΄Π°ΡΠ°ΡΠ° (ΡΡΡΠ΄Π½ΠΎΡΡΡΠ°) Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠΊΡΠΈΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΠ΄Π½Π° Π·Π°Π΄Π°ΡΠ° Π² ΠΊΠΎΠ΄Π° ΡΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ;
- ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ Π²Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π΅Π²Π΅Π½ΡΡΠ°Π»Π½Π°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ ΠΈ Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΌΡΠ½Π°ΡΠ° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ Π² ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ°. Π’ΠΎΠ²Π° Π½ΠΈ ΠΏΡΠΈΠ½ΡΠΆΠ΄Π°Π²Π° Π΄Π° ΡΡΠ»ΠΎΠΆΠ½ΠΈΠΌ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°, Π·Π° Π΄Π° Ρ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π½Π΅ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½Π° ΠΊΡΠΌ ΡΠ΅Π΄Π°, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°Ρ Π²ΡΠ½ΡΠ½ΠΈΡΠ΅ ΡΡΠ±ΠΈΡΠΈΡ. Π Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ³ΡΠ°ΡΡΡ Π΅ ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ Π΄Π° ΡΡΠ°ΡΡΠ²Π° Π² ΠΈΠ³ΡΠ°ΡΠ°, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΎΠ±ΡΠ²ΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ ΡΠΈ ΠΎΡ ΠΈΠ³ΡΠ°ΡΠ°: Π΄ΡΡΠ³ΠΈ ΠΈΠ³ΡΠ°ΡΠΈ ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Ρ Π΄Π° ΠΌΡ ΠΏΠΎΠ΄Π°Π²Π°Ρ ΡΠΎΠΏΠΊΠ°ΡΠ°, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π΅ ΠΈ Π±ΡΠ΄Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ. Π’Π°Π·ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π΅ ΡΠ»Π΅Π΄Π²Π° ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π½Π° ΠΈΠ³ΡΠ°ΡΠ° ΠΈ Π΅ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΈΠ·Π±ΡΠ°Π½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½Π΅ΠΊΠ° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΠΎΡΡΠΈ Π½Π° Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠΎΡΠΊΠΈ.
ΠΡΠΈΡΠΊΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π΅Π΄Π½Π° ΠΎΠΏΠ°ΡΠΊΠ°
ΠΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡΡ Ρ Π΅Π΄Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΠ½Π°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ ΠΊΠ°ΡΠΎ Π²ΡΠ½ΡΠ΅Π½ Π±ΡΠΎΠΊΠ΅Ρ, Π΅Π΄Π½Π° BPMQueue Π·Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ Π΅Π΄Π½Π° BPMTopic ΡΠ΅ΠΌΠ° Π·Π° ΡΠΈΠ³Π½Π°Π»ΠΈ (ΡΡΠ±ΠΈΡΠΈΡ). ΠΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π· Π΅Π΄Π½Π° ΠΎΠΏΠ°ΡΠΊΠ° ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ Π΅ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡ. ΠΠ° Π½ΠΈΠ²ΠΎ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°ΡΠ΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π½ΠΎΠ²ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅, Π±Π΅Π· Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Π’ΠΎΠ²Π° Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅, Π½ΠΎ Π½ΠΎΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠΈΡΠΊΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠΈΠΏΠΈΡΠ½ΠΈΡΠ΅ Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ Π½ΠΈ ΡΠ΅ ΡΡΡΡΠ²Π°Ρ Π° Π½Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΡΡΠ΅ΡΡΠ²Π΅Π½ΠΈ.
Π’ΡΠΊ ΠΎΠ±Π°ΡΠ΅ ΠΈΠΌΠ° Π΅Π΄Π½Π° ΡΡΠ½ΠΊΠΎΡΡ: Π²ΡΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠ»ΡΡΠΈΡΠ° "ΡΠ²ΠΎΠΈΡΠ΅" ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΎΠΏΠ°ΡΠΊΠ°ΡΠ° Π½Π° Π²Ρ ΠΎΠ΄Π°, ΠΏΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ²ΠΎΡ Π΄ΠΎΠΌΠ΅ΠΉΠ½. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ Π² ΡΠΈΠ³Π½Π°Π»ΠΈΡΠ΅, Π°ΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ "ΠΎΠ±Ρ Π²Π°ΡΠ°" Π½Π° ΡΠΈΠ³Π½Π°Π»Π° Π΄ΠΎ Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠΈ ΡΠ΅ΡΡΠΎΡΠ½Π°ΡΠ° Π»Π΅Π½ΡΠ° Π½Π° ΡΠΈΠ½Π°ΡΠ°, Π½ΠΎ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π²Π΅ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΈΠΌΠ΅Π½Π° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ: Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ Π·Π° Π°Π΄ΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΆΠ΅Π»Π°ΡΠ΅Π»Π½ΠΎ Π·Π° ΡΠΈΠ³Π½Π°Π»ΠΈ.
ΠΠ°ΡΠ°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΠ½Π°
ΠΠ°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡΡΠ° ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π΅ΡΠ°:
- ΠΠ·Π±ΡΠ°Π½ΠΈΡΡ Π±ΡΠΎΠΊΠ΅Ρ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΅ ΠΊΡΠΈΡΠΈΡΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΠ²ΡΠ΅Π΄Π°: ΡΠΎΠΉ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΡΡΡΠΎΠΉΡΠΈΠ² Π½Π° Π³ΡΠ΅ΡΠΊΠΈ. Π’ΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ Π΄ΠΎΠ±ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΈ Π³ΠΎΠ»ΡΠΌΠ° ΠΎΠ±ΡΠ½ΠΎΡΡ;
- Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π·Π° ΠΊΠΎΠ΅ΡΠΎ ΡΠΎΠΉ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΎΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Π²ΠΈΡΠΎΠΊΠ°ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΡΡΡΠ΄Π½Π° ΠΈ ΡΠΊΡΠΏΠ° Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅);
- Π±ΡΠΎΠΊΠ΅ΡΡΡ Π΅ Π΄Π»ΡΠΆΠ΅Π½ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ "ΠΏΠΎΠ½Π΅ Π²Π΅Π΄Π½ΡΠΆ" Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ°. Π’ΠΎΠ²Π° Π΅ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π΅ Π·Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΠ½Π°. ΠΡΠΌΠ° Π½ΡΠΆΠ΄Π° ΠΎΡ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π½Π° Π½ΠΈΠ²ΠΎ βΡΠΎΡΠ½ΠΎ Π²Π΅Π΄Π½ΡΠΆβ: Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π½Π΅ ΡΠ° ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ ΠΊΡΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΡΠΎ ΠΏΡΠΈΡΡΠΈΠ³Π°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ±ΠΈΡΠΈΡ ΠΈ ΠΏΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ, Π΅ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΡΠΌ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄ΠΎΡΡΠ° "ΡΠΊΡΠΏΠΈ" Π³Π°ΡΠ°Π½ΡΠΈΠΈ;
- ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠΈΠ³Π½Π°Π»ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² ΠΎΠ±ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Ρ ΠΏΡΠΎΠΌΡΠ½Π° Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π°. ΠΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π±ΠΈ Π±ΠΈΠ» Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π°
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½Π° ΠΈΠ·Ρ ΠΎΠ΄ΡΡΠ° ΠΊΡΡΠΈΡ , Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠ΅Π»Π΅. Π JEE ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΎΠΏΡΠΎΡΡΠ΅Π½ΠΎ ΡΡΠ΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π»ΠΎΠΊΠ°Π»Π΅Π½ JTA ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ, Π½ΠΎ Π²ΡΡΠ·ΠΊΠ°ΡΠ° Ρ ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ Π±ΡΠΎΠΊΠ΅Ρ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌXA ; - ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈΡΠ΅ Π½Π° Π²Ρ ΠΎΠ΄ΡΡΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ±ΠΈΡΠΈΡ ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ°: Π°ΠΊΠΎ ΡΠ°ΠΊΠ°Π²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π±ΡΠ΄Π΅ Π²ΡΡΠ½Π°ΡΠ° Π½Π°Π·Π°Π΄, ΡΠΎΠ³Π°Π²Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠΌΠ΅Π½Π΅Π½ΠΎ;
- ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ Π³ΡΠ΅ΡΠΊΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅
D.L.Q. (ΠΠΏΠ°ΡΠΊΠ° Π·Π° ΠΌΡΡΡΠ²ΠΈ ΠΏΠΈΡΠΌΠ°). ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π°, ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΌΠ΅ ΠΎΡΠ΄Π΅Π»Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠΎΡΡΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠ΅ΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ° Π³ΠΈ ΠΏΠΎ Π°ΡΡΠΈΠ±ΡΡΠΈ (Π·Π° Π±ΡΡΠ·ΠΎ Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ ΠΈ ΡΡΡΡΠ΅Π½Π΅) ΠΈ ΠΈΠ·Π»Π°Π³Π° API Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π΄ΠΎ Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΌΠ΅ΡΡΠΎΠ½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Ρ ΡΠ°Π·ΠΈ ΡΡΠ»ΡΠ³Π° ΡΡΠ΅Π· ΡΠ²ΠΎΡ ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ; - Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠ΅ Π±ΡΠΎΡ Π½Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΈΡΠ΅ ΠΎΠΏΠΈΡΠΈ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° ΠΈ Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅, Π·Π° Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡΠ΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΠ° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π½Π°Ρ Π² DLQ (ΠΏΠΎΡΡΠΈ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄Π΅ΠΉΡΡΠ²Π°ΡΠ΅ Π΅ΠΌΠΏΠΈΡΠΈΡΠ½ΠΎ ΠΈ Π΄Π° Π³ΠΈ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ);
- Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° DLQ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ²Π΅Π΄ΠΎΠΌΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅Π°Π³ΠΈΡΠ°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-Π±ΡΡΠ·ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ Π½Π΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π’ΠΎΠ²Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ βΠ·ΠΎΠ½Π°ΡΠ° Π½Π° ΠΏΠΎΠ²ΡΠ΅Π΄Π°β ΠΎΡ ΠΏΠΎΠ²ΡΠ΅Π΄Π° ΠΈΠ»ΠΈ Π³ΡΠ΅ΡΠΊΠ° Π² Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°;
- ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΠ½Π° ΡΡΡΠ±Π²Π° Π΄Π° Π΅ Π½Π΅ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½Π° ΠΊΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΡΠΎ ΠΎΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° ΡΠ΅ΠΌΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ° ΡΡΠ°ΠΉΠ½ΠΈ, Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π΅ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½ΡΠΊΠΎΠΉ Π΄ΡΡΠ³ Π΄Π° Π½Π΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΌΡ ΠΎΡ ΠΎΠΏΠ°ΡΠΊΠ°ΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΡΡΡΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
ΠΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ Π½Π° Π½ΠΈΡΠΊΠ°ΡΠ° Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°
ΠΠ΄Π½ΠΎ ΠΈ ΡΡΡΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ±ΠΈΡΠΈΡ Π½Π°Π²Π΅Π΄Π½ΡΠΆ, ΡΠΈΡΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠΈΡΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π΅ ΠΏΡΠΎΡΡΠΎ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π·Π° Π½ΠΈΡΠΊΠΈ.
ΠΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π²ΡΡΠΊΠΎ Π²ΡΠ½ΡΠ½ΠΎ ΡΡΠ±ΠΈΡΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π·Π°ΡΡΠ³Π° ΡΠΎΠ·ΠΈ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»Π½ΠΎ. Π’Π΅Π·ΠΈ ΡΡΠ±ΠΈΡΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ:
- ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ;
- ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ Π΄Π΅ΠΉΠ½ΠΎΡΡ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ;
- ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΈΠ³Π½Π°Π», Π·Π° ΠΊΠΎΠΈΡΠΎ Π΅ Π°Π±ΠΎΠ½ΠΈΡΠ°Π½ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ;
- ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠΌΠ΅ΡΠ°, Π·Π°Π΄Π°Π΄Π΅Π½ ΠΎΡ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ°;
- ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΡΠ΅Π· API (Π½Π°ΠΏΡ. ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°).
ΠΡΡΠΊΠΎ ΡΠ°ΠΊΠΎΠ²Π° ΡΡΠ±ΠΈΡΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ: Π½ΡΠΊΠΎΠΈ Π΄Π΅ΠΉΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠΈΠΊΠ»ΡΡΠ°Ρ ΠΈ Π΄ΡΡΠ³ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π°Ρ, ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ. ΠΠ°ΡΠ²Π°ΡΡΠ½Π΅ΡΠΎ Π½Π° Π²ΡΡΠΊΠ° Π΄Π΅ΠΉΠ½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΅Π΄Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΠ½ΠΎΡΡΠΈ. Π’Π΅ ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠΏΡΠ°Ρ Π΄Π° ΡΠ°ΠΊΠ°Ρ Π΄ΡΡΠ³ΠΈ ΡΡΠ±ΠΈΡΠΈΡ ΠΈΠ»ΠΈ, Π°ΠΊΠΎ Π½Π΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π·Π°Π²ΡΡΡΠ°Ρ ΡΡΡΠ°ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. ΠΡΠ΅Π΄ΠΈ Π·Π°ΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°, Π½ΠΎΠ²ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΡΠ°ΠΊΠ° ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ Π²ΡΠ½ΡΠ½ΠΎ ΡΡΠ±ΠΈΡΠΈΠ΅.
ΠΠΎΡΡΠΎΡΠ½Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ Π² ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½Π° ΡΠΎΡΠΊΠ° Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΠΠΠΠ ΠΠ ΠΠΠ’Π£ΠΠΠΠΠΠ ΠΠΠ. ΠΠΊΠΎ Π΅Π΄Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π΅ ΡΡΠΏΡΠ»Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ° ΠΎΡ Π±Π°Π·Π°ΡΠ°, Π·Π° Π΄Π° Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΠΎΠ³Π°Π²Π° Π½ΠΈΠΊΠΎΡ Π΄ΡΡΠ³Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΡΡΡΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π·Π° Π΄ΡΡΠ³Π° ΠΏΡΠΎΠΌΡΠ½Π° ΠΈ ΡΠ»Π΅Π΄ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΡΠ²Π°ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π²ΡΠΎΡΠ°ΡΠ° Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½ΠΎ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ Π²Π΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΠ΅ΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΠΈ ΠΊΠ»ΡΡΠ°Π»ΠΊΠΈ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° Π‘Π£ΠΠ, Π½ΠΈΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΏΠ΅ΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΠΈΡΠ΅ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ Π½ΠΈ Π·Π°ΠΏΠ»Π°ΡΠ²Π°Ρ Ρ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ΠΈΡ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΠΠΠΠ ΠΠ’Π ΠΠ ΠΠΠ’Π£ΠΠΠΠΠΠ ΠΠΠ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ Π΄ΠΎ Π½ΡΠΊΠ°ΠΊΠ²ΠΎ ΡΠ°Π·ΡΠΌΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠΈ Π³ΡΡΠ±ΠΈ ΡΠ»ΡΡΠ°ΠΈ Π² Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°.
ΠΡΡΠ³ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ°. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½ΡΠΌΠ° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ, Π½ΡΠΌΠ° ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΎΠ±Ρ Π²Π°Ρ, ΡΠΎΠ³Π°Π²Π° ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π½ΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ ΠΎΠ±Π΅ΠΊΡ Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ, ΡΠ²ΡΡΠ·Π°Π½ Ρ ΠΊΠ»Π°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΠΎΠ±Ρ Π²Π°Ρ. ΠΠ° Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅, ΠΊΠΎΠΉΡΠΎ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π·Π°ΠΊΠ»ΡΡΠΈΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΡΠ΅ΡΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΎΡ ΠΊΠ»ΡΡ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ URI ΡΡΠ΅Π· Π²ΡΠ½ΡΠ½Π° ΡΡΠ»ΡΠ³Π°.
Π Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ InitialPlayer ΡΡΠ΄ΡΡΠΆΠ° Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ
uniqueConstraint = UniqueConstraints.singleton
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π΄Π½Π΅Π²Π½ΠΈΠΊΡΡ ΡΡΠ΄ΡΡΠΆΠ° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠ°Π»ΠΊΠ°ΡΠ° Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΠΊΠ»ΡΡ. ΠΡΠΌΠ° ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° Π΄ΡΡΠ³ΠΈ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ: uniqueConstraint Π½Π΅ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅
ΠΠΎΠ½ΡΠΊΠΎΠ³Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π΅ ΡΠ°ΠΌΠΎ ΠΏΠΎΠΌΠ°Π³Π°, Π½ΠΎ ΠΈ Π½Π°ΠΈΡΡΠΈΠ½Π° Π²ΡΠ·ΠΏΡΠ΅ΠΏΡΡΡΡΠ²Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Π·Π°ΠΏΠΎΡΠ²Π°Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΠΈ / ΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ°. ΠΠΈΡΠΎ Π΅Π΄Π½Π° ΡΠ°ΠΊΠ°Π²Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π΅ Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° ΡΡΡ ΡΡΠ°ΡΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅. ΠΠΊΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ "ΠΆΠΈΠ²ΠΈ" ΠΊΠΎΠΏΠΈΡ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΡΠΎΠ³Π°Π²Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΡΠΈΠ½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°ΠΌΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ jBPM.
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π΄ΡΠ»Π±ΠΎΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΡΠΎΠΌΡΠ½Π°ΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄Π΅ΠΉΡΡΠ²Π°ΡΠ΅ ΠΏΠΎ Π΄Π²Π° Π½Π°ΡΠΈΠ½Π°:
- ΡΡΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ² ΡΠΈΠΏ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅Ρ, Π·Π° Π΄Π° Π½Π΅ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π½Π΅ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΡΠ°ΡΠΈΡ, ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½ΠΎΠ²ΠΈ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈ. Π‘ΡΠ°ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ "ΠΏΠΎ ΡΡΠ°ΡΠΈΡ Π½Π°ΡΠΈΠ½";
- ΠΌΠΈΠ³ΡΠΈΡΠ°ΠΉΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΏΡΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°.
ΠΡΡΠ²ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π΅ ΠΏΠΎ-ΠΏΡΠΎΡΡ, Π½ΠΎ ΠΈΠΌΠ° ΡΠ²ΠΎΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
- Π΄ΡΠ±Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π² ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΌΠ° Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°;
- ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ ΠΏΡΠ΅Ρ ΠΎΠ΄ ΠΊΡΠΌ Π½ΠΎΠ²Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° (ΠΏΠΎΡΡΠΈ Π²ΠΈΠ½Π°Π³ΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ);
- ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π½Π΅ Π·Π½Π°Π΅ Π² ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΠΈΠ·ΡΡΠΈΠ΅ΡΠ΅ ΠΎΡΡΠ°ΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΈ Π΄Π²Π°ΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°, Π½ΠΎ ΡΠΌΠ΅ Π²Π·Π΅Π»ΠΈ ΡΠ΅Π΄ΠΈΡΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π·Π° Π΄Π° ΠΎΠΏΡΠΎΡΡΠΈΠΌ ΠΆΠΈΠ²ΠΎΡΠ° ΡΠΈ:
- Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π² Π»Π΅ΡΠ½Π° Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈ Π»Π΅ΡΠ½Π° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΡΠΌΠ°: Π² Π½ΠΈΠ· Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ JSON. Π’ΠΎΠ²Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΠΊΡΠΎ Π²ΡΡΡΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ°ΠΊΠ° ΠΈ ΠΈΠ·Π²ΡΠ½ Π½Π΅Π³ΠΎ. Π Π΅ΠΊΡΡΡΠ΅ΠΌΠ½ΠΈ ΡΠ»ΡΡΠ°ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° Π³ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΠ΅ Ρ Π΄ΡΡΠΆΠΊΠΈ (ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ);
- ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠΌΠ΅Π½Π° Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΠΎ Π²ΡΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΠ°ΡΡΠ²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ Ρ Π½ΠΎΠ², Ρ Π½ΠΎΠ²ΠΎ ΠΈΠΌΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ βInitialPlayerV2β). ΠΠ±Π²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ ΡΡΠ°Π²Π° ΡΡΠ΅Π· ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° ΠΈ ΡΠΈΠ³Π½Π°Π»ΠΈΡΠ΅;
- ΠΌΠΎΠ΄Π΅Π»ΡΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΠΈΠΌΠ° Π½ΠΎΠΌΠ΅Ρ Π½Π° Π²Π΅ΡΡΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°ΠΌΠ΅, Π°ΠΊΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π½Π΅ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π», ΠΈ ΡΠΎΠ·ΠΈ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π·Π°Π΅Π΄Π½ΠΎ ΡΡΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°;
- ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΡΠ΅ ΡΠ΅ΡΠ΅ ΠΏΡΡΠ²ΠΎ ΠΎΡ Π±Π°Π·Π°ΡΠ° Π² ΡΠ΄ΠΎΠ±Π΅Π½ ΠΎΠ±Π΅ΠΊΡΠ΅Π½ ΠΌΠΎΠ΄Π΅Π», Ρ ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΡΠ° Π·Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ, Π°ΠΊΠΎ Π½ΠΎΠΌΠ΅ΡΡΡ Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»;
- ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΡΠ° Π·Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Ρ Π΄ΠΎ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΠΈ ΡΠ΅ Π½Π°ΡΠΈΡΠ° "ΠΌΡΡΠ·Π΅Π»ΠΈΠ²Π°" Π·Π° Π²ΡΠ΅ΠΊΠΈ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ° Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ΡΠΎ ΠΌΡ ΠΎΡ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ;
- Π°ΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΈΠ³ΡΠΈΡΠ°ΡΠ΅ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈ Π±ΡΡΠ·ΠΎ ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎ-ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΠΌΠΈΠ³ΡΠΈΡΠ°Π½Π΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΡΠ°ΠΌ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ JSON.
ΠΠΌΠ°ΠΌ Π»ΠΈ Π½ΡΠΆΠ΄Π° ΠΎΡ Π΄ΡΡΠ³Π° ΡΠ°ΠΌΠΊΠ° Π·Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ?
Π Π΅ΡΠ΅Π½ΠΈΡΡΠ°, ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π² ΡΡΠ°ΡΠΈΡΡΠ°, Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΠΎΠΏΡΠΎΡΡΠΈΠΌ ΠΆΠΈΠ²ΠΎΡΠ° ΡΠΈ, Π΄Π° ΡΠ°Π·ΡΠΈΡΠΈΠΌ ΠΎΠ±Ρ Π²Π°ΡΠ° Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, ΡΠ΅ΡΠ΅Π½ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΈΠ΄Π΅ΡΡΠ° Π·Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π² ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ ΠΏΠΎ-ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»Π½Π°. ΠΠ° ΡΠΎΠ²Π° Π΅ ΡΠ²ΡΡΡΠ΅Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°, ΡΡΠ·Π΄Π°Π΄Π΅Π½Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ βΠ»Π΅ΠΊΠ°β ΡΠ°ΠΌΠΊΠ° Π·Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΡΡ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠΌΠ°ΠΌΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ ΡΠ΅Π·ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ, Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΎΠ±ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π² ΠΎΡΠ²ΠΎΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ ΠΏΠΎΠ΄ Π±Π΅Π·ΠΏΠ»Π°ΡΠ΅Π½ Π»ΠΈΡΠ΅Π½Π·. Π’ΠΎΠ²Π° ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ ΡΡΠΈΠ»ΠΈΡ. Π Π°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΡΡΠΈΠΌΡΠ» Π·Π° Π½Π°Ρ. Π ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΠΎΠ±ΡΡΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ°ΠΌΠ°ΡΠ° ΡΠ°ΠΌΠΊΠ°, Π½ΠΎ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΡΡΡ ΡΠ° Π²ΠΈΠ΄ΠΈΠΌΠΈ ΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΈ. ΠΠΊΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌΠ΅ Π½Π°ΡΠ°ΡΠ° ΡΠ°ΠΌΠΊΠ°, Π½Π° Π½Π΅Ρ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½Π° ΠΎΡΠ΄Π΅Π»Π½Π° ΡΡΠ°ΡΠΈΡ. ΠΠ΅ΠΆΠ΄ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ Π²ΠΈ Π±ΡΠ΄Π΅ΠΌ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΈ, Π°ΠΊΠΎ ΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ ΠΎΡΠ·ΠΈΠ²ΠΈ, ΠΊΠ°ΡΠΎ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Π½Π° Π²ΡΠΏΡΠΎΡΠ°:
Π Π°Π½ΠΊΠ΅ΡΠ°ΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°ΡΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
ΠΠΌΠ°ΠΌ Π»ΠΈ Π½ΡΠΆΠ΄Π° ΠΎΡ Π΄ΡΡΠ³Π° ΡΠ°ΠΌΠΊΠ° Π·Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ?
-
18,8%ΠΠ°, ΠΎΡΠ΄Π°Π²Π½Π° ΡΡΡΡΡ Π½Π΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ.
-
12,5%ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΅ Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Π²Π°ΡΠ°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ2
-
6,2%ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΅Π΄Π½Π° ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΡΠ°ΠΌΠΊΠΈ, Π½ΠΎ ΠΎΠ±ΠΌΠΈΡΠ»ΡΠΌΠ΅ Π΄Π° Ρ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ1
-
18,8%ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΅Π΄Π½Π° ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΡΠ°ΠΌΠΊΠΈ, Π²ΡΠΈΡΠΊΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠΆΠ΄Π°3
-
18,8%ΡΠΏΡΠ°Π²ΡΠ½Π΅ Π±Π΅Π· ΡΠ°ΠΌΠΊΠ°3
-
25,0%Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π°4
16 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π³Π»Π°ΡΡΠ²Π°Ρ
Π°. 7 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ Π²ΡΠ·Π΄ΡΡΠΆΠ°Ρ
Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com