ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° β€ž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++ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊΡŠΠ²Ρ‚ΠΎ ΠΈ 'голямата', Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ‚Π°ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΡŠΡ‚ Π½Π° унификация Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-нисък.
ΠšΠ°ΠΊΡ‚ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π½Π° C++, Π½ΠΈΠ΅ Π½Π΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΠΈΡ€Π°ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° 100% ΠΎΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. НапримСр, практичСски Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Boost, Π° ΠΎΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° β€” Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°ΠΌΠ΅:

  • STL (Π² частност, стринговС, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ)
  • мноТСствСно наслСдяванС, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ мноТСствСно наслСдяванС Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
  • шаблони
  • ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ
  • ΡƒΠΌΠ½ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ (собствСна рСализация)

Π§Ρ€Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° мноТСствСни наслСдявания Π½Π° интСрфСйси (напълно абстрактни класовС) става възмоТна ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Π° ΠΌΠΎΠ΄Π΅Π», Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ.

FAudio

Π—Π° осигуряванС Π½Π° модулност, цСлият Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ, прСдставляващи Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (*.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(SCOM_CLSIDOF(JSONStreamReader));

Π—Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° сСрвиситС SCOM ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π°, доста слоТна инфраструктура. Π¦Π΅Π½Ρ‚Ρ€Π°Π»Π½ΠΎ Π² нСя Π΅ понятиСто SCOM процСс, ΠΊΠΎΠΉΡ‚ΠΎ слуТи ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π·Π° стартирани услуги (Ρ‚.Π΅. изпълнява роля Π½Π° Service Locator) ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π²Ρ€ΡŠΠ·ΠΊΠ° с Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ рСсурси. SCOM ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ с ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° ОБ. Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΠ²Π°, Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ услугитС ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

SCOM_Process* process = core::current_process();
if (process)
         return get_service(process);

ОсвСн Ρ‚ΠΎΠ²Π°, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚Π΅ логичСскитС (SCOM) процСси, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ практичСски нСзависими прилоТСния ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΡ‚ΠΎ пространство, ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰ΠΈ сС Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ. Π’Π°ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° Π½Π°ΡˆΠΈΡΡ‚ Ρ‚ΡŠΠ½ΡŠΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π° β€” Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄ΠΈΠ½ процСс Π½Π° ОБ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π΄Π²Π° SCOM процСса, Π΅Π΄ΠΈΠ½ ΡΠ²ΡŠΡ€Π·Π°Π½ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π° вторият β€” със ΡΡŠΡ€Π²ΡŠΡ€Π°. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволява унификация Π½Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π°, Ρ‚Π°ΠΊΠ° ΠΈ Π² β€žΠΈΡΡ‚ΠΈΠ½ΡΠΊΠ°Ρ‚Π°β€œ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-ΡΡŠΡ€Π²ΡŠΡ€ вСрсия. Π¦Π΅Π½Π°Ρ‚Π° Π·Π° Ρ‚Π°Π·ΠΈ хомогСнност са Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅, Π½ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ‚Π° ΠΏΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ си струват.

На Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Π°Ρ‚Π° ΠΌΠΎΠ΄Π΅Π» SCOM Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΈ бизнСс Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π°, ΠΈ интСрфСйсната част Π½Π° 1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅.

ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΠΊΠΈ интСрфСйс

ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, Π·Π° интСрфСйситС. НиС Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ стандартнитС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈ Π½Π° Windows, Π½Π°ΡˆΠΈΡ‚Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π° Windows API. Π—Π° Linux вСрсията Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ слой, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Ρ‡Ρ€Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° wxWidgets.
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° с Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ зависи ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ части Π½Π° Β«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β» ΠΈ Π½ΠΈΠ΅ я ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΡ‰Π΅ Π² няколко ΠΌΠ°Π»ΠΊΠΈ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ.

ΠŸΡ€Π΅Π· Π³ΠΎΠ΄ΠΈΠ½ΠΈΡ‚Π΅ Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅, Π²ΠΈΠ΄ΡŠΡ‚ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ‚Π΅ сС Π΅ промСнял, Π½ΠΎ сСриозната промяна Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΡ‚Π΅ сС Π΅ случила само вСднъТ, ΠΏΡ€Π΅Π· 2009 Π³ΠΎΠ΄ΠΈΠ½Π°, с ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅Ρ‚ΠΎ Π½Π° вСрсия 8.2 ΠΈ появата Π½Π° «управляСми Ρ„ΠΎΡ€ΠΌΠΈΒ». ОсвСн промяната Π½Π° външния Π²ΠΈΠ΄, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡŠΡ‚ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° сС Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ» ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΎ β€” ΠΎΡ‚ΠΊΠ°Π·Π°Π½ΠΎ Π΅ ΠΎΡ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΏΠΎ пиксСли Π² ΠΏΠΎΠ»Π·Π° Π½Π° flow ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅. ОсвСн Ρ‚ΠΎΠ²Π°, Π² новия ΠΌΠΎΠ΄Π΅Π», Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ работят Π½Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΎΠ²ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, Π° със спСциални DTO (Data Transfer Objects).
Π’Π΅Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ…Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° Β«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β», повтарящ C++ Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ‚Π΅ Π½Π° 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Π‘ β€” ΡƒΠ΅Π± ΠΊΠ»ΠΈΠ΅Π½Ρ‚

Π‘ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ стандартнитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° C++ ΠΏΠΎΠ΄ 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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster