Platform "1C: Enterprise" - inona no ao ambanin'ny saron-tava?

Hey Habr!
Ato amin'ity lahatsoratra ity isika dia hanomboka ny tantara momba ny fomba miasa ao anatiny sehatra "1C: Enterprise 8" ary inona ny teknolojia ampiasaina amin'ny fivoarany.

Platform "1C: Enterprise" - inona no ao ambanin'ny saron-tava?

Nahoana isika no mihevitra fa mahaliana izany? Voalohany, satria ny sehatra 1C: Enterprise 8 dia fampiharana lehibe (mihoatra ny 10 tapitrisa andalana) amin'ny C ++ (mpanjifa, mpizara, sns.), JavaScript (mpanjifa tranonkala), ary, vao haingana, And Java. Ny tetikasa lehibe dia mety hahaliana farafaharatsiny noho ny habeny, satria ny olana izay tsy hita ao amin'ny fototra code kely dia mipoitra amin'ny hery feno amin'ny tetikasa toy izany. Faharoa, "1C:Enterprise" dia vokatra azo averina, "boaty", ary vitsy dia vitsy ny lahatsoratra momba ny fivoarana toy izany ao amin'ny HabrΓ©. Mahaliana foana koa ny mahafantatra ny fiainan'ny ekipa sy orinasa hafa.

Andeha Γ ry isika hanomboka. Ato amin'ity lahatsoratra ity dia hanome topimaso ny sasany amin'ireo teknolojia ampiasaina amin'ny lampihazo sy manoritra ny tontolo iainana, nefa tsy mitsoraka lalina amin'ny fampiharana. Eny tokoa, ho an'ny mekanika maro, ny tantara amin'ny antsipiriany dia mitaky lahatsoratra manokana, ary ho an'ny sasany, boky iray manontolo!
Hanombohana dia ilaina ny manapa-kevitra amin'ny zavatra fototra - inona ny sehatra 1C: Enterprise ary inona ny singa ao anatiny. Tsy dia tsotra loatra ny valin'io fanontaniana io, satria ny teny hoe "Platform" (raha fohifohy, hiantsoana azy io izahay) dia manondro fitaovana iray amin'ny fampivoarana ny rindranasa fandraharahana, tontolo iainana mandritra ny fotoana maharitra, ary fitaovana fitantanana. Ireto singa manaraka ireto dia azo avahana amin'ny ankapobeny:

  • cluster mpizara
  • Ny mpanjifa "manify" afaka mifandray amin'ny mpizara amin'ny alΓ lan'ny http sy ny protocole binary azy manokana
  • mpanjifa amin'ny fiasana amin'ny maritrano misy ambaratonga roa miaraka amin'ny angon-drakitra hita ao amin'ny kapila mafy na lahatahiry tambajotra
  • mpanjifa web
  • fitaovana fitantanana ny serivisy fampiharana
  • tontolo iainana fampandrosoana (fantatra amin'ny anarana hoe Configurator)
  • tontolo iainana ho an'ny iOS, Android ary Windows Phone (sehatra finday 1C)

Ireo ampahany rehetra ireo, afa-tsy ny mpanjifa web, dia voasoratra ao amin'ny C ++. Ankoatra izany, misy ny nambara vao haingana Configurator taranaka vaovao, voasoratra amin'ny Java.

Fampiharana teratany

C++ 03 dia ampiasaina amin'ny famolavolana rindranasa teratany. Ho an'ny Windows, Microsoft Visual C++ 12 (profil mifanaraka amin'ny Windows XP) dia ampiasaina ho compiler, ary ho an'ny Linux sy Android - gcc 4.8, ho an'ny iOS - clang 5.0. Ny trano famakiam-boky mahazatra ampiasaina dia mitovy amin'ny rafitra miasa rehetra sy ny compiler - STLPort. Ity vahaolana ity dia mampihena ny mety hisian'ny fahadisoana manokana amin'ny fampiharana STL. Mikasa ny hifindra monina any amin'ny fampiharana STL nalefa miaraka amin'ny CLang izahay amin'izao fotoana izao, satria natsahatra ny STLPort ary tsy mifanaraka amin'ny fomba fiasa C++11 an'ny gcc.
Ny fototry ny kaody an'ny mpizara dia 99% mahazatra, ny mpanjifa - 95%. Ankoatr'izay, na ny sehatra finday aza dia mampiasa kaody C ++ mitovy amin'ny "lehibe", na dia somary ambany kokoa aza ny isan-jaton'ny fampiraisana.
Tahaka ny ankamaroan'ny mpampiasa C++, tsy milaza izahay fa mampiasa 100% ny fahaizan'ny fiteny sy ny tranomboky. Noho izany, saika tsy mampiasa Boost izahay, ary ny iray amin'ireo endri-pitenenana dia ny fanariana karazana mavitrika. Amin'izay fotoana izay ihany koa dia mampiasa mavitrika izahay:

  • STL (tady manokana, fitoeran-javatra ary algorithms)
  • lova maro, anisan'izany. lova fampiharana maro
  • iombonana
  • maningana
  • tondro marani-tsaina (fampiharana manokana)

Amin'ny alΓ lan'ny fampiasana lova maromaro amin'ny interface (kilasy abstract tanteraka), dia azo atao ny modely singa iray, izay horesahina etsy ambany.

singa

Mba hiantohana ny modularity dia zaraina ho singa avokoa ny fiasa rehetra, izay tranomboky mavitrika (*.dll ho an'ny Windows, *.so ho an'ny Linux). Misy singa dimampolo amby zato mahery amin'ny fitambarany; ireto ny famaritana ny sasany amin'izy ireo:

backend
Ahitana ny motera metadata sehatra

accnt
Zavatra ampiasain'ny mpamorona fampiharana hanamboarana firaketana momba ny kaonty (sarin'ny kaonty sy rejisitra kaonty)

bsl
Motera famonoana teny voapetaka

nokleary
Fampiharana manokana ny mpizara fahatsiarovana

dbeng8
motera angona rakitra. Motera angon-drakitra mpizara rakitra tsotra mifototra amin'ny ISAM, izay misy ihany koa processeur SQL tsotra

wbase
Ahitana ny kilasy fototra sy ny fiasa amin'ny fampiharana ny mpampiasa interface tsara Windows - kilasy varavarankely, fidirana GDI, sns.

Ny fizarana ho singa maromaro dia ilaina amin'ny fomba fijery maro:

  • Ny fisarahana dia mampiroborobo ny famolavolana tsara kokoa, indrindra ny fitokanana kaody tsara kokoa
  • Avy amin'ny fitambarana singa iray dia azonao atao ny manangana safidy fanaterana samihafa:
    • Ohatra, ny fametrahana mpanjifa manify dia misy wbase, saingy tsy hanana backend
    • fa amin'ny mpizara wbase, ny mifanohitra amin'izany, dia tsy ho izany
    • Ny safidy roa dia mazava ho azy fa misy nuke sy bsl

Ny singa rehetra ilaina amin'ity safidy fandefasana ity dia entina rehefa manomboka ny programa. Izany, indrindra, dia ilaina amin'ny fisoratana anarana kilasy SCOM, izay horesahina etsy ambany.

SCOM

Ho an'ny fanimbana amin'ny ambaratonga ambany dia ampiasaina ny rafitra SCOM, tranomboky mitovy amin'ny ideolojia amin'ny ATL. Ho an'ireo izay tsy niara-niasa tamin'ny ATL, dia mitanisa fohifohy ireo fahaiza-manao sy endri-javatra fototra.
Ho an'ny kilasy SCOM natao manokana:

  • Manome fomba orinasa ahafahanao mamorona kilasy iray avy amin'ny singa hafa tsy mahalala afa-tsy ny anarany (tsy manambara ny fampiharana)
  • Manome fotodrafitrasa fanondro marani-tsaina fanisana reference. Ny androm-piainan'ny kilasy SCOM dia tsy mila fanaraha-maso tanana
  • Mamela anao hamantatra raha toa ny zavatra iray mampihatra interface tsara ary mamadika ho azy ny tondro ho amin'ny zavatra ho tondro ho amin'ny interface.
  • Mamorona zavatra serivisy izay azo idirana foana amin'ny alΓ lan'ny fomba get_service, sns.

Ohatra, azonao atao ny mamaritra kilasy iray hamakiana JSON (ohatra, JSONStreamReader) ao amin'ny singa json.dll.
Ny kilasy sy ohatra dia azo noforonina avy amin'ny singa hafa; mila misoratra anarana ao amin'ny milina SCOM izy ireo:

SCOM_CLASS_ENTRY(JSONStreamReader)

Ity macro ity dia hamaritra kilasy firaketana static manokana, izay hiantsoana ny mpanamboatra azy rehefa ampidirina ao anaty fitadidiana ilay singa.
Aorian'izany dia azonao atao ny mamorona ohatra amin'ny singa iray hafa:

IJSONStreamReaderPtr jsonReader = create_instance<IJSONStreamReader>(SCOM_CLSIDOF(JSONStreamReader));

Mba hanohanana ny serivisy, SCOM dia manolotra fotodrafitrasa fanampiny, somary sarotra. Ny ivon'izany dia ny foto-kevitry ny fizotry ny SCOM, izay miasa ho fitoeran'ny serivisy (izany hoe, mitana ny andraikitry ny Mpitarika Serivisy), ary misy ihany koa ny fatorana amin'ny loharano eo an-toerana. Ny dingana SCOM dia mifamatotra amin'ny kofehy OS. Noho izany, ao anatin'ny fampiharana dia afaka mahazo serivisy toy izao ianao:

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

Ankoatr'izay, amin'ny alΓ lan'ny famadihana ny fizotran'ny lojika (SCOM) mifamatotra amin'ny kofehy iray, azonao atao ny mahazo fampiharana izay tsy miankina amin'ny fomba fijerin'ny habaka fampahalalana, mandeha ao anatin'ny kofehy iray ihany. Izany no fomba fiasan'ny mpanjifa manify amin'ny angon-drakitra rakitra - ao anatin'ny fizotry ny OS iray dia misy dingana roa SCOM, ny iray mifandray amin'ny mpanjifa, ary ny faharoa amin'ny mpizara. Ity fomba fiasa ity dia ahafahantsika manambatra ny fanoratana ny kaody izay hiasa ao amin'ny tahiry tahiry eo an-toerana sy amin'ny dikan-teny mpanjifa-server "tena". Ny vidin'ny fanamiana toy izany dia ambony, saingy ny fampiharana dia mampiseho fa mendrika izany.

Miorina amin'ny modelin'ny singa SCOM, ny lojika fandraharahana sy ny ampahany amin'ny interface an'ny 1C: Enterprise dia ampiharina.

Mpampiasa interface

Raha ny marina, momba ny interface. Tsy mampiasa fanaraha-maso Windows mahazatra izahay; ny fanaraha-maso anay dia ampiharina mivantana amin'ny Windows API. Ho an'ny dikan-teny Linux dia nisy sosona natao izay miasa amin'ny alΓ lan'ny tranomboky wxWidgets.
Ny tranombokin'ny fanaraha-maso dia tsy miankina amin'ny ampahany hafa amin'ny 1C: Enterprise ary ampiasaintsika amin'ny kojakoja anatiny kely hafa.

Nandritra ny taona maro ny fampandrosoana ny 1C: Enterprise dia niova ny endriky ny fanaraha-maso, fa ny fiovana lehibe eo amin'ny fitsipika nitranga indray mandeha ihany, tamin'ny 2009, miaraka amin'ny famoahana ny dikan-8.2 sy ny fahatongavan'ny "endrika fitantanana". Ho fanampin'ny fanovana ny endrika, niova tanteraka ny fitsipiky ny famolavolana endrika - nisy ny fandavana ny fametrahana ny singa amin'ny piksel-by-pixel ho fanohanana ny fikorianan'ny singa. Ankoatra izany, ao amin'ny modely vaovao, ny fanaraha-maso dia tsy miasa mivantana amin'ny sehatra sehatra, fa amin'ny DTO manokana (Zavatra famindrana angona).
Ireo fanovana ireo dia nahafahana namorona mpanjifa tranonkala 1C: Enterprise izay mamerina ny lojika C++ amin'ny fanaraha-maso JavaScript. Miezaka mitazona ny fitovian'ny fiasa eo amin'ny mpanjifa manify sy tranonkala izahay. Amin'ny toe-javatra izay tsy azo atao izany, ohatra noho ny famerana ny JavaScript API misy (ohatra, ny fahafahana miasa amin'ny rakitra dia tena voafetra), matetika izahay no mampihatra ny fampiasa ilaina amin'ny alΓ lan'ny fanitarana navigateur voasoratra ao amin'ny C++. Manohana Internet Explorer sy Microsoft Edge (Windows), Google Chrome (Windows), Firefox (Windows sy Linux) ary Safari (MacOS) izahay ankehitriny.

Ho fanampin'izany, ny teknΓ΄lΓ΄jian'ny endrika mitantana dia ampiasaina hamoronana interface tsara ho an'ny fampiharana finday amin'ny sehatra 1C. Amin'ny fitaovana finday, ny fanaraha-maso dia atao amin'ny alΓ lan'ny teknolojia teratany ao amin'ny rafitra fiasana, fa ho an'ny lojika fandrindrana endrika sy ny valin'ny interface, ny fehezan-dalΓ na mitovy amin'ny ao amin'ny sehatra "lehibe" 1C: Enterprise.

Platform "1C: Enterprise" - inona no ao ambanin'ny saron-tava?
1C interface tsara amin'ny Linux OS

Platform "1C: Enterprise" - inona no ao ambanin'ny saron-tava?
1C interface tsara amin'ny fitaovana finday

1C interface tsara amin'ny sehatra hafa Platform "1C: Enterprise" - inona no ao ambanin'ny saron-tava?
1C interface tsara amin'ny Windows OS

Platform "1C: Enterprise" - inona no ao ambanin'ny saron-tava?
Interface 1C - mpanjifa tranonkala

Open loharano

Na dia tsy mampiasa tranomboky mahazatra ho an'ny mpamorona C++ aza izahay amin'ny Windows (MFC, fanaraha-maso avy amin'ny WinAPI), dia tsy manoratra ny singa rehetra izahay. Efa voalaza ny tranomboky wxWidgets, ary mampiasa koa izahay:

  • hamolaka mba hiasa amin'ny HTTP sy FTP.
  • OpenSSL ho an'ny fiaraha-miasa amin'ny kriptografika sy fametrahana fifandraisana TLS
  • libxml2 sy libxslt ho an'ny XML parsing
  • libetpan miasa amin'ny protocols mailaka (POP3, SMTP, IMAP)
  • mimetika hamakiana hafatra mailaka
  • sqllite ho fitehirizana ny diarin'ny mpampiasa
  • ICU ho an'ny iraisam-pirenena

Mitohy ny lisitra.
Fanampin'izany, mampiasa dikan-teny novaina be izahay Google Test ΠΈ Google Mock rehefa mamolavola fitsapana unit.
Nitaky fampifanarahana ny tranomboky mba hifanaraka amin'ny maodely fandaminana singa SCOM.
Ny fihanaky ny 1C dia mahatonga ny sehatra ho fitsapana matanjaka ho an'ny tranomboky ampiasaina ao. Mpampiasa isan-karazany sy toe-javatra miseho haingana dia haingana amin'ny lesoka na dia amin'ny faritra tsy dia ampiasaina amin'ny kaody aza. Ny tenanay dia manitsy azy ireo ary miezaka mamerina azy ireo amin'ny mpanoratra tranomboky. Ny traikefa amin'ny fifandraisana dia hita fa tena hafa.
Developers hamolaka ΠΈ libetpan mamaly haingana ny fisintonana-fangatahana, fa ny patch, ohatra, in OpenSSL Tsy nahavita namerina izany mihitsy izahay.

famaranana

Ao amin'ny lahatsoratra dia nikasika lafin-javatra lehibe maro amin'ny fampivoarana ny sehatra 1C: Enterprise izahay. Ao amin'ny faritra voafetra amin'ny lahatsoratra, dia niresaka momba ny lafiny mahaliana ihany izahay, araka ny hevitray.
Misy famaritana ankapoben'ny mekanika sehatra samihafa azo jerena eto.
Inona no lohahevitra mety hahaliana anao amin'ny lahatsoratra ho avy?

Ahoana no fampiharana ny sehatra finday 1C?
Famaritana ny rafitra anatiny an'ny mpanjifa tranonkala?
Sa mety ho liana amin'ny fizotry ny fifantenana endri-javatra ho an'ny famoahana vaovao, fampivelarana ary fitsapana ianao?

Soraty ao amin'ny fanehoan-kevitra!

Source: www.habr.com

Add a comment