ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β» β€” Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ?

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€!
Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ рассказ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ устроСна Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Β«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8Β» ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° «1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» — Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ считаСм, Ρ‡Ρ‚ΠΎ это интСрСсно? Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Β«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8Β» β€” это большоС (Π±ΠΎΠ»Π΅Π΅ 10 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² строк ΠΊΠΎΠ΄Π°) ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° C++ (ΠΊΠ»ΠΈΠ΅Π½Ρ‚, сСрвСр ΠΈ Ρ‚.Π΄.), JavaScript (Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚), ΠΈ, с Π½Π΅Π΄Π°Π²Π½ΠΈΡ… ΠΏΠΎΡ€ Π΅Ρ‰Π΅ ΠΈ Java. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π±Ρ‹Π²Π°ΡŽΡ‚ интСрСсны хотя Π±Ρ‹ Π² силу ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°, вСдь вопросы, Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ Π² малСнькой ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅, Π² Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π²ΡΡ‚Π°ΡŽΡ‚ Π² ΠΏΠΎΠ»Π½Ρ‹ΠΉ рост. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Β«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β» β€” это Ρ‚ΠΈΡ€Π°ΠΆΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ, Β«ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉΒ» ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π° статСй ΠΏΡ€ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Π₯Π°Π±Ρ€Π΅ совсСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ. А Π΅Ρ‰Π΅ всСгда интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ‚Π°ΠΌ ΠΆΠΈΠ²ΡƒΡ‚ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΠΈ Ρ„ΠΈΡ€ΠΌΠ°Ρ….

Π˜Ρ‚Π°ΠΊ, приступим. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±Π·ΠΎΡ€ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, обрисуСм Π»Π°Π½Π΄ΡˆΠ°Ρ„Ρ‚, Π±Π΅Π· Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ погруТСния Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. Π’Π΅Π΄ΡŒ для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ рассказ потянСт Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ, Π° для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… β€” Π½Π° Ρ†Π΅Π»ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ!
Для Π½Π°Ρ‡Π°Π»Π° стоит ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ Π²Π΅Ρ‰Π°ΠΌΠΈ β€” Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Β«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β» ΠΈ ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΎΠ½Π° состоит. ΠžΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос Π½Π΅ Ρ‚Π°ΠΊ прост, вСдь ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ Β«ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Β» (для краткости Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ) ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΈ срСдство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ срСду исполнСния, ΠΈ срСдства администрирования. Условно ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅:

  • кластСр сСрвСров
  • Β«Ρ‚ΠΎΠ½ΠΊΠΈΠΉΒ» ΠΊΠ»ΠΈΠ΅Π½Ρ‚, способный ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ сСрвСру ΠΏΠΎ http ΠΈ собствСнному Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ
  • ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π΄Π²ΡƒΡ…Π·Π²Π΅Π½Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ с Π‘Π”, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠΉ Π½Π° ТСстком дискС ΠΈΠ»ΠΈ сСтСвой ΠΏΠ°ΠΏΠΊΠ΅
  • Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚
  • срСдства администрирования сСрвСра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
  • срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (извСстная ΠΊΠ°ΠΊ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€)
  • срСда исполнСния для iOS, Android ΠΈ Windows Phone (мобильная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘)

ВсС эти части, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, написаны Π½Π° C++. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сущСствуСт Π½Π΅Π΄Π°Π²Π½ΠΎ анонсированный ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ Π½ΠΎΠ²ΠΎΠ³ΠΎ поколСния, написанный Π½Π° Java.

НативныС прилоТСния

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 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 (Data Transfer Objects).
Π­Ρ‚ΠΈ измСнСния ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Β«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡΒ», ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ Π‘++ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΎΠ² Π½Π° JavaScript. ΠœΡ‹ стараСмся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΎΠ½ΠΊΠΈΠΌ ΠΈ Π²Π΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ. Π’ Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° это Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ доступных ΠΈΠ· JavaScript API (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, возмоТности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹), ΠΌΡ‹ часто Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π½ΡƒΠΆΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², написанных Π½Π° C++. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌ Internet Explorer ΠΈ Microsoft Edge (Windows), Google Chrome(Windows), Firefox (Windows ΠΈ Linux) ΠΈ Safari (MacOS).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, тСхнология управляСмых Ρ„ΠΎΡ€ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания интСрфСйса ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘. На ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах отрисовка ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° с использованиСм Β«Ρ€ΠΎΠ΄Π½Ρ‹Ρ…Β» для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π½ΠΎ ΡƒΠΆΠ΅ для Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ интСрфСйса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎ ΠΈ Π² «большой» ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Β«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β».

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° «1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» — Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ?
Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ 1Π‘ Π½Π° ОБ Linux

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° «1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» — Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ?
Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ 1Π‘ Π½Π° мобильном устройствС

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ 1Π‘ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° «1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» — Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ?
Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ 1Π‘ Π½Π° ОБ Windows

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° «1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» — Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ?
Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ 1Π‘ β€” Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚

Open source

Π₯отя ΠΌΡ‹ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ стандартныС для Π‘++ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄ Windows (MFC, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Ρ‹ ΠΈΠ· WinAPI), Π½Π΅ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΡ‹ пишСм сами. Π£ΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»Π°ΡΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° wxWidgets, Π° Π΅Ρ‰Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ:

  • cURL для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с HTTP ΠΈ FTP.
  • OpenSSL для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠ΅ΠΉ ΠΈ установки TLS соСдинСний
  • libxml2 ΠΈ libxslt для Ρ€Π°Π·Π±ΠΎΡ€Π° XML
  • libetpan для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ (POP3, SMTP, IMAP)
  • mimetic для Ρ€Π°Π·Π±ΠΎΡ€Π° сообщСний элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹
  • sqllite для хранСния ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
  • ICU для ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Бписок Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ.
ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ сильно ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ вСрсии Google Test ΠΈ Google Mock ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡŽΠ½ΠΈΡ‚-тСстов.
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ для совмСстимости со SCOM-модСлью ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.
Π Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒ 1Π‘ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π½Π° ΠΏΡ€ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ для ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Π½Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ сцСнариСв быстро ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ошибки Π΄Π°ΠΆΠ΅ Π² самых Ρ€Π΅Π΄ΠΊΠΎΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… участах ΠΊΠΎΠ΄Π°. ΠœΡ‹ исправляСм ΠΈΡ… Ρƒ сСбя ΠΈ стараСмся ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ΠžΠΏΡ‹Ρ‚ взаимодСйствия оказываСтся ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΉ.
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ cURL ΠΈ libetpan быстро ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°ΡŽΡ‚ΡΡ Π½Π° pull-request, Π½ΠΎ ΠΏΠ°Ρ‚Ρ‡, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² OpenSSL Π½Π°ΠΌ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΎΡ‚Π΄Π°Ρ‚ΡŒ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΊΠΎΡΠ½ΡƒΠ»ΠΈΡΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… основных аспСктов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β». Π’ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΌ объСмС ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΌΡ‹ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ интСрСсныС, Π½Π° наш взгляд, аспСкты.
ΠžΠ±Ρ‰Π΅Π΅ описаниС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΡƒΡ‚.
КакиС Ρ‚Π΅ΠΌΡ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹ интСрСсны Π’Π°ΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ…?

Как Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° мобильная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘?
ОписаниС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ устройства Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°?
Или, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π’Π°ΠΌ интСрСсСн процСсс Π²Ρ‹Π±ΠΎΡ€Π° Ρ„ΠΈΡ‡ для Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ², Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ тСстирования?

ΠŸΠΈΡˆΠΈΡ‚Π΅ Π² коммСнтариях!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com