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.
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:
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
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.
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:
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.
1C interface tsara amin'ny Linux OS
1C interface tsara amin'ny fitaovana finday
1C interface tsara amin'ny sehatra hafa 1C interface tsara amin'ny Windows OS
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:
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?