ΠΡΠΈΠ²Π΅Ρ, Π₯Π°Π±Ρ!
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ ΡΠ°ΡΡΠΊΠ°Π· ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Π° Π²Π½ΡΡΡΠΈ
ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ ΡΡΠΈΡΠ°Π΅ΠΌ, ΡΡΠΎ ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ? ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Β«1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ 8Β» β ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ (Π±ΠΎΠ»Π΅Π΅ 10 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° C++ (ΠΊΠ»ΠΈΠ΅Π½Ρ, ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Ρ.Π΄.), JavaScript (Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ), ΠΈ, Ρ Π½Π΅Π΄Π°Π²Π½ΠΈΡ
ΠΏΠΎΡ Π΅ΡΠ΅ ΠΈ
ΠΡΠ°ΠΊ, ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±Π·ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, ΠΎΠ±ΡΠΈΡΡΠ΅ΠΌ Π»Π°Π½Π΄ΡΠ°ΡΡ, Π±Π΅Π· Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ΅Π΄Ρ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΠ°ΡΡΠΊΠ°Π· ΠΏΠΎΡΡΠ½Π΅Ρ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ°ΡΡΡ, Π° Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
β Π½Π° ΡΠ΅Π»ΡΡ ΠΊΠ½ΠΈΠ³Ρ!
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΡΠΎΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡΡ Ρ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ Π²Π΅ΡΠ°ΠΌΠΈ β ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Β«1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅Β» ΠΈ ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΎΠ½Π° ΡΠΎΡΡΠΎΠΈΡ. ΠΡΠ²Π΅Ρ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡ, Π²Π΅Π΄Ρ ΠΏΠΎΠ΄ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ Β«ΠΠ»Π°ΡΡΠΎΡΠΌΠ°Β» (Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ Π΅Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ) ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΈ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ ΡΡΠ΅Π΄Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π£ΡΠ»ΠΎΠ²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅:
- ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²
- Β«ΡΠΎΠ½ΠΊΠΈΠΉΒ» ΠΊΠ»ΠΈΠ΅Π½Ρ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΠΎ http ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ
- ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² Π΄Π²ΡΡ Π·Π²Π΅Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Ρ ΠΠ, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ Π½Π° ΠΆΠ΅ΡΡΠΊΠΎΠΌ Π΄ΠΈΡΠΊΠ΅ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅
- Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ
- ΡΡΠ΅Π΄ΡΡΠ²Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
- ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡ)
- ΡΡΠ΅Π΄Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ iOS, Android ΠΈ Windows Phone (ΠΌΠΎΠ±ΠΈΠ»ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° 1Π‘)
ΠΡΠ΅ ΡΡΠΈ ΡΠ°ΡΡΠΈ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° C++. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π°Π½ΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ
ΠΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΡΠΈΠ²Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ C++03. ΠΠΎΠ΄ Windows Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Microsoft Visual C++ 12 (ΠΏΡΠΎΡΠΈΠ»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ Windows XP), Π° ΠΏΠΎΠ΄ Linux ΠΈ Android β gcc 4.8, Π΄Π»Ρ iOS β clang 5.0. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½Π°Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΠ‘ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² β STLPort. ΠΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ
Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ STL. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ STL, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Ρ CLang, ΡΠ°ΠΊ ΠΊΠ°ΠΊ STLPort ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΠ» ΡΠ²ΠΎΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΈ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ C++11 Π² gcc.
ΠΠΎΠ΄ΠΎΠ²Π°Ρ Π±Π°Π·Π° ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±ΡΠ°Ρ Π½Π° 99%, ΠΊΠ»ΠΈΠ΅Π½ΡΠ° β ΠΏΡΠΎΡΠ΅Π½ΡΠΎΠ² Π½Π° 95%. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π΄Π°ΠΆΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΡ ΠΆΠ΅ C++ ΠΊΠΎΠ΄, ΡΡΠΎ ΠΈ Β«Π±ΠΎΠ»ΡΡΠ°ΡΒ», Ρ
ΠΎΡΡ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅Π½Ρ ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΠΈΠΆΠ΅.
ΠΠ°ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π‘++ ΠΌΡ Π½Π΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΠ΅ΠΌ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ 100% Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ° ΠΈ Π΅Π³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. Π’Π°ΠΊ, Ρ Π½Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Boost, Π° ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ° β Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ². ΠΡΠΈ ΡΡΠΎΠΌ ΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ:
- STL (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ)
- ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, Π² Ρ.Ρ. ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
- ΡΠ°Π±Π»ΠΎΠ½Ρ
- ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
- ΡΠΌΠ½ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ (ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ)
ΠΠ° ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² (ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²) ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ, ΡΠ΅ΡΡ ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠΉΠ΄Π΅Ρ Π½ΠΈΠΆΠ΅.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΠΈ Π²Π΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΈΠ· ΡΠ΅Π±Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (*.dll ΠΏΠΎΠ΄ Windows, *.so β ΠΏΠΎΠ΄ Linux). ΠΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»ΡΡΠΎΡΠ° ΡΠΎΡΠ΅Π½, ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ· Π½ΠΈΡ :
backend
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Β«Π΄Π²ΠΈΠΆΠΎΠΊΒ» ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ
accnt
ΠΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π±ΡΡ
Π³Π°Π»ΡΠ΅ΡΡΠΊΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ° (ΠΏΠ»Π°Π½Ρ ΡΡΠ΅ΡΠΎΠ² ΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ Π±ΡΡ
Π³Π°Π»ΡΠ΅ΡΠΈΠΈ)
bsl
ΠΠ²ΠΈΠΆΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°
nuke
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π»Π»ΠΎΠΊΠ°ΡΠΎΡΠ° ΠΏΠ°ΠΌΡΡΠΈ
dbeng8
ΠΠ²ΠΈΠΆΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ. ΠΡΠΎΡΡΠ°Ρ ΡΠ°ΠΉΠ»-ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Π±Π°Π· Π΄Π°Π½Π½ΡΡ
, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° ISAM, Π²ΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΡΡΠΎΠΉ SQL-ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ
wbase
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Windows β ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, Π΄ΠΎΡΡΡΠΏ ΠΊ GDI ΠΈ Ρ. ΠΏ.
Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΡΠ΅ΠΊ Π·ΡΠ΅Π½ΠΈΡ:
- Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ Π»ΡΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π»ΡΡΡΠ΅ΠΉ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π°
- ΠΠ· Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ:
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ wbase, Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ backend
- Π° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ wbase, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π½Π΅ Π±ΡΠ΄Π΅Ρ
- ΠΎΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° Π±ΡΠ΄ΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ nuke ΠΈ bsl
ΠΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ SCOM-ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ΅ΡΡ ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ Π½ΠΈΠΆΠ΅.
SCOM
ΠΠ»Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° SCOM β ΡΡ
ΠΎΠΆΠ°Ρ ΠΏΠΎ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ ATL Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. ΠΠ»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ Ρ ATL Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π», ΠΊΡΠ°ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ.
ΠΠ»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° SCOM:
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π±ΡΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π·Π½Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ (Π±Π΅Π· ΡΠ°ΡΠΊΡΡΡΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ)
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΡΠΌΠ½ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠΎΠΌ ΡΡΡΠ»ΠΎΠΊ. ΠΠ° Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ SCOM-ΠΊΠ»Π°ΡΡΠ° Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π²ΡΡΡΠ½ΡΡ
- ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ·Π½Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ-ΡΠ΅ΡΠ²ΠΈΡ, Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄ get_service ΠΈ Ρ.Π΄.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ json.dll ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ JSON (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, JSONStreamReader).
ΠΠ»Π°ΡΡΡ, ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½ΡΠΆΠ½ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² SCOM-ΠΌΠ°ΡΠΈΠ½Π΅:
SCOM_CLASS_ENTRY(JSONStreamReader)
ΠΡΠΎΡ ΠΌΠ°ΠΊΡΠΎΡ ΠΎΠΏΠΈΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ-ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΎΡ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΡ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅:
IJSONStreamReaderPtr jsonReader = create_instance<IJSONStreamReader>(SCOM_CLSIDOF(JSONStreamReader));
ΠΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² SCOM ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. Π¦Π΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΌ Π² Π½Π΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ SCOM-ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»ΡΠΆΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ Π΄Π»Ρ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² (Ρ.Π΅. Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ»Ρ Service Locator), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ. SCOM ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊ ΠΏΠΎΡΠΎΠΊΡ ΠΠ‘. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡ ΡΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ:
SCOM_Process* process = core::current_process();
if (process)
return get_service<IMyService>(process);
ΠΠΎΠ»Π΅Π΅, ΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ (SCOM) ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ ΠΏΠΎΡΠΎΠΊΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. Π’Π°ΠΊ ΡΡΡΡΠΎΠ΅Π½ Π½Π°Ρ ΡΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ β Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΠ‘ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π΄Π²Π° SCOM-ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΎΠ΄ΠΈΠ½ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, Π° Π²ΡΠΎΡΠΎΠΉ β Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅, ΡΠ°ΠΊ ΠΈ Π² Β«Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΒ» ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅. Π¦Π΅Π½Π° Π·Π° ΡΠ°ΠΊΠΎΠ΅ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ β Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ, Π½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠΎΠ³ΠΎ ΡΡΠΎΡΡ.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ SCOM ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΈ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½Π°Ρ ΡΠ°ΡΡΡ 1Π‘: ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
ΠΡΡΠ°ΡΠΈ, ΠΎΠ± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
. ΠΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Windows, Π½Π°ΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π°ΠΏΡΡΠΌΡΡ Π½Π° Windows API. ΠΠ»Ρ Linux-Π²Π΅ΡΡΠΈΠΈ ΡΠ΄Π΅Π»Π°Π½Π° ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ ΡΠ΅ΡΠ΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ wxWidgets.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ
ΡΠ°ΡΡΠ΅ΠΉ Β«1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡΒ» ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π°ΠΌΠΈ Π΅ΡΠ΅ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
ΡΡΠΈΠ»ΠΈΡΠ°Ρ
.
ΠΠ° Π³ΠΎΠ΄Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΎΠ² ΠΌΠ΅Π½ΡΠ»ΡΡ, Π½ΠΎ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π² 2009 Π³ΠΎΠ΄Ρ, Ρ Π²ΡΡ
ΠΎΠ΄ΠΎΠΌ Π²Π΅ΡΡΠΈΠΈ 8.2 ΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Β«ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ
ΡΠΎΡΠΌΒ». ΠΠΎΠΌΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π°, ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΡΠΎΡΠΌΡ β ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΠΎΡΠΊΠ°Π· ΠΎΡ ΠΏΠΎΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΏΠΎΠ»ΡΠ·Ρ flow-ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Π½ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π½Π°ΠΏΡΡΠΌΡΡ Ρ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Π° ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ DTO (
ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ Β«1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡΒ», ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠΉ Π‘++ Π»ΠΎΠ³ΠΈΠΊΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΎΠ² Π½Π° JavaScript. ΠΡ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ½ΠΊΠΈΠΌ ΠΈ Π²Π΅Π± ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ. Π ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·-Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΈΠ· JavaScript API (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΎΡΠ΅Π½Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ), ΠΌΡ ΡΠ°ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ
Π½Π° C++. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌ Internet Explorer ΠΈ Microsoft Edge (Windows), Google Chrome(Windows), Firefox (Windows ΠΈ Linux) ΠΈ Safari (MacOS).
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΠΎΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ 1Π‘. ΠΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Β«ΡΠΎΠ΄Π½ΡΡ Β» Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π½ΠΎ ΡΠΆΠ΅ Π΄Π»Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΡΠΎΡΠΌΡ ΠΈ ΡΠ΅Π°ΠΊΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ΄, ΡΡΠΎ ΠΈ Π² Β«Π±ΠΎΠ»ΡΡΠΎΠΉΒ» ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Β«1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅Β».
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ 1Π‘ Π½Π° ΠΠ‘ Linux
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ 1Π‘ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ 1Π‘ Π½Π° Π΄ΡΡΠ³ΠΈΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ 1Π‘ Π½Π° ΠΠ‘ Windows
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ 1Π‘ β Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ
Open source
Π₯ΠΎΡΡ ΠΌΡ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π΄Π»Ρ Π‘++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠ΄ Windows (MFC, ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈΠ· WinAPI), Π½Π΅ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΡΠ°ΠΌΠΈ. Π£ΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
cURL Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ HTTP ΠΈ FTP.OpenSSL Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠ΅ΠΉ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ TLS ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉlibxml2 ΠΈ libxslt Π΄Π»Ρ ΡΠ°Π·Π±ΠΎΡΠ° XMLlibetpan Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΡΠΎΠ²ΡΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ (POP3, SMTP, IMAP)mimetic Π΄Π»Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡsqllite Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉICU Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
Π‘ΠΏΠΈΡΠΎΠΊ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠ»ΡΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΠΈ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈ Π°Π΄Π°ΠΏΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΎ SCOM-ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΡΡΡ 1Π‘ Π΄Π΅Π»Π°Π΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π½Π° ΠΏΡΠΎΡΠ½ΠΎΡΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
Π² Π½Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. Π Π°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π±ΡΡΡΡΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ Π΄Π°ΠΆΠ΅ Π² ΡΠ°ΠΌΡΡ
ΡΠ΅Π΄ΠΊΠΎΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΡΡΠ°ΡΡΠ°Ρ
ΠΊΠΎΠ΄Π°. ΠΡ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΈΡ
Ρ ΡΠ΅Π±Ρ ΠΈ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΎΡΠ΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π°Π²ΡΠΎΡΠ°ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΠΏΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ°Π·Π½ΡΠΉ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΊΠΎΡΠ½ΡΠ»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Β«1Π‘: ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅Β». Π ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ΅ ΡΡΠ°ΡΡΠΈ ΠΌΡ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅, Π½Π° Π½Π°Ρ Π²Π·Π³Π»ΡΠ΄, Π°ΡΠΏΠ΅ΠΊΡΡ.
ΠΠ±ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ
ΠΠ°ΠΊΠΈΠ΅ ΡΠ΅ΠΌΡ Π±ΡΠ»ΠΈ Π±Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ ΠΠ°ΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΡΠ°ΡΡΡΡ
?
ΠΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° 1Π‘?
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°?
ΠΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΠ°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠ±ΠΎΡΠ° ΡΠΈΡ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ
ΡΠ΅Π»ΠΈΠ·ΠΎΠ², ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ?
ΠΠΈΡΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
!
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com