Paerewa "1C: Hinonga" - he aha kei raro i te awhi?
Hei Habr!
I roto i tenei tuhinga ka timata te korero mo te mahi o roto tūāpapa "1C:Enterprise 8" me nga hangarau e whakamahia ana i roto i tona whanaketanga.
Ki ta matou whakaaro he aha tenei mea whakamere? Tuatahi, na te mea he tono nui te 1C:Enterprise 8 (neke atu i te 10 miriona rarangi waehere) i roto i te C++ (kiritaki, tūmau, aha atu), JavaScript (kiritaki paetukutuku), a, tata nei, A Java. Ka taea e nga kaupapa nui te whakamere i te iti rawa na to raatau tauine, na te mea ko nga take e kore e kitea i roto i te turanga waehere iti ka ara ake i roto i nga kaupapa penei. Tuarua, ko te "1C:Enterprise" he hua whakahoki, he "pouaka", he iti noa nga korero mo enei whanaketanga i runga i a Habré. He pai tonu te mohio ki te ahua o te oranga i etahi atu kapa me nga kamupene.
Na kia timata tatou. I roto i tenei tuhinga ka hoatu e matou he tirohanga o etahi o nga hangarau e whakamahia ana i roto i te papaaho me te whakaatu i te whenua, me te kore e ruku hohonu ki te whakatinanatanga. Inaa, mo te maha o nga tikanga, me whai tuhinga motuhake tetahi korero mo etahi, mo etahi, he pukapuka katoa!
Hei timata, he mea tika ki te whakatau i nga mea taketake - he aha te papaaho 1C:Enterprise me nga waahanga kei roto. Ko te whakautu ki tenei patai ehara i te mea tino ngawari, no te mea ko te kupu "Platform" (mo te poto, ka kiia e matou ko tera ara) e pa ana ki tetahi tikanga mo te whakawhanake i nga tono pakihi, te waahi whakahaere, me nga taputapu whakahaere. Ko nga waahanga e whai ake nei ka taea te wehewehe:
tautau tūmau
Ka taea e te kiritaki “kikokore” te hono atu ki te tūmau mā te http me tana ake kawa rua
Kaihoko mo te mahi i roto i te hoahoanga-a-rua me te papaunga raraunga kei runga i te puku puku, i te kōpaki whatunga ranei
kiritaki tukutuku
taputapu whakahaere tūmau tono
taiao whanaketanga (mohiotia ko Configurator)
taiao wa mahi mo iOS, Android me te Waea Windows (tuāpapa pūkoro 1C)
Ko enei waahanga katoa, haunga te kiritaki tukutuku, kua tuhia ki te C++. I tua atu, kei reira te panuitanga tata nei Kaiwhakarite reanga hou, tuhia ki Java.
Nga tono Maori
Ka whakamahia te C++03 ki te whakawhanake i nga tono taketake. Mo Windows, ka whakamahia a Microsoft Visual C++ 12 (he kōtaha hototahi ki a Windows XP) hei whakahiato, mo Linux me Android - gcc 4.8, mo iOS - clang 5.0. Ko te whare pukapuka paerewa e whakamahia ana he rite mo nga punaha whakahaere katoa me nga kaitoi - STLPort. Ko tenei otinga ka whakaiti i te tupono o nga hapa-whakamahinga STL. I tenei wa kei te whakamahere matou ki te heke ki te whakatinanatanga STL i tukuna me CLang, i te mea kua whakamutua te STLPort, a, he hototahi ki te aratau C++11 a gcc.
Ko te turanga waehere o te tūmau he 99% noa, ko te kiritaki - 95%. I tua atu, ahakoa ko te papaahi pūkoro e whakamahi ana i te waehere C ++ rite te "nui", ahakoa he iti ake te paheketanga o te whakakotahitanga.
Pērā i te nuinga o ngā kaiwhakamahi C++, kare matou e kii ki te whakamahi i te 100% o nga kaha o te reo me ona whare pukapuka. Na, karekau matou e whakamahi i te Boost, a ko tetahi o nga ahuatanga o te reo ko te maka momo hihiri. I te wa ano, ka kaha taatau ki te whakamahi:
STL (nga aho, ipu me nga algorithms)
tuku iho maha, incl. tuku iho whakatinanatanga maha
tauira
Tuhinga
tohu tohu atamai (whakamahinga ritenga)
Ma te whakamahi i nga tukunga maha o nga atanga (nga karaehe waitara katoa), ka taea te tauira waahanga, ka korerohia i raro nei.
Tuhinga
Hei whakarite i te whakarereketanga, ka wehewehea nga mahi katoa ki nga waahanga, he whare pukapuka hihiri (*.dll mo Windows, *.so mo Linux). Neke atu i te kotahi rau e rima tekau nga waahanga katoa; koinei nga whakaahuatanga o etahi o enei:
backend
Kei roto te pūkaha metadata pūhara
accnt
Ko nga mea e whakamahia ana e nga kaiwhakawhanake tono ki te hanga rekoata kaute (tutohi o nga kaute me nga rehita kaute)
bsl
Te miihini whakauru reo
nuke
Te whakatinana ritenga o te kaiwhakawehe mahara
dbeng8
Pūkaha pātengi raraunga kōnae. He pūkaha pātengi raraunga tūmau kōnae māmā i runga i te ISAM, kei roto hoki he pūtukatuka SQL ngawari
wbase
Kei roto nga karaehe turanga me nga mahi mo te whakatinana i te atanga kaiwhakamahi Windows - nga karaehe matapihi, te uru GDI, etc.
Ko te wehewehe ki nga waahanga maha ka whai hua mai i te maha o nga tirohanga:
Ko te wehewehenga he pai ake te hoahoa, ina koa he pai ake te wehe i te waehere
Mai i te huinga o nga waahanga ka taea e koe te whakahiato i nga whiringa tuku rereke:
Hei tauira, kei roto i te whakaurunga kiritaki kikokore te wbase, engari karekau he tuara
engari i runga i te tūmau wbase, i runga i te anga ke, e kore e waiho
Ko nga whiringa e rua ka mau i te nuke me te bsl
Ko nga waahanga katoa e hiahiatia ana mo tenei kowhiringa whakarewatanga ka utaina ina timata te hotaka. Ko tenei, ina koa, he mea tika mo te rehita i nga karaehe SCOM, ka korerohia i raro nei.
HE WAIATA
Mo te pirau i te taumata iti, ka whakamahia te punaha SCOM, he whare pukapuka e rite ana ki te whakaaro ki te ATL. Mo te hunga kaore ano kia mahi tahi me ATL, ka whakarārangihia pototia e matou nga tino kaha me nga ahuatanga.
Mo te karaehe SCOM i hangaia motuhake:
Ka whakarato i nga tikanga wheketere e taea ai e koe te hanga karaehe mai i tetahi atu waahanga e mohio ana ki tona ingoa anake (kaore e whakaatu i te whakatinanatanga)
Ka whakarato i te hanganga tohu tohutoro-te tatau. Ko te roanga o te karaehe SCOM e kore e tika kia aroturuki-a-ringa
Ka taea e koe te kimi mehemea ka whakatinanahia e tetahi ahanoa tetahi atanga motuhake me te huri aunoa i te atatohu ki te ahanoa ki te atatohu ki te atanga
Waihangatia he ahanoa ratonga ka uru atu ma te tikanga get_service, etc.
Hei tauira, ka taea e koe te whakaahua i tetahi akomanga mo te panui JSON (hei tauira, JSONStreamReader) i roto i te waahanga json.dll.
Ka taea te hanga karaehe me nga tauira mai i etahi atu waahanga; me rehitatia ki te miihini SCOM:
SCOM_CLASS_ENTRY(JSONStreamReader)
Ma tenei tonotono e whakaatu he karaehe kaiwhakamahara pateko motuhake, ka karangahia te kaihanga ina utaina te waahanga ki te mahara.
I muri i tenei, ka taea e koe te hanga i tetahi tauira ki tetahi atu waahanga:
Hei tautoko i nga ratonga, ka tukuna e te SCOM tetahi atu hanganga, engari he uaua. Ko te mea nui ko te kaupapa o te tukanga SCOM, e mahi ana hei ipu mo nga ratonga whakahaere (arā, ko te mahi a te Kaitautoko Ratonga), kei roto hoki he here ki nga rauemi o te rohe. Ko te tukanga SCOM e herea ana ki te miro OS. Na tenei, i roto i te tono ka taea e koe te whiwhi ratonga penei:
SCOM_Process* process = core::current_process();
if (process)
return get_service<IMyService>(process);
I tua atu, ma te huri i nga tikanga arorau (SCOM) e herea ana ki tetahi miro, ka taea e koe te tiki tono e tino motuhake ana mai i te tirohanga o te waahi korero, e rere ana i roto i te miro kotahi. He penei te mahi a to tatou kiritaki kikokore me te papaunga raraunga konae - kei roto i tetahi tukanga OS e rua nga tukanga SCOM, kotahi e hono ana ki te kiritaki, me te tuarua ki te tūmau. Ma tenei huarahi ka taea e matou te whakakotahi i te tuhi o te waehere ka mahi i runga i te paataka konae aa-rohe me te "tuuturu" putanga-kiritaki-tumau. Ko te utu mo te ahua rite kei runga ake, engari ko nga mahi e whakaatu ana he pai.
I runga i te tauira waahanga SCOM, ko te arorau pakihi me te waahanga atanga o 1C: Enterprise kua whakatinanahia.
Atanga Kaiwhakamahi
Ma te ara, mo nga atanga. Kare matou e whakamahi ana i nga mana Windows paerewa; ka whakatinanahia o matou mana ki runga i te API Windows. Mo te putanga Linux, kua hangaia he paparanga e mahi ana ma te whare pukapuka wxWidgets.
Ko te whare pukapuka o nga mana whakahaere kaore i te whakawhirinaki ki etahi atu waahanga o 1C:Enterprise ka whakamahia e matou ki etahi atu taputapu iti o roto.
I roto i nga tau o te whakawhanaketanga o 1C:Enterprise, kua rereke te ahua o nga mana whakahaere, engari he huringa nui i roto i nga kaupapa i puta kotahi anake, i te 2009, me te tukunga o te putanga 8.2 me te taenga mai o nga "puka whakahaere". I tua atu i te whakarereketanga o te ahua, kua tino rerekee te maapono o te whakatakotoranga puka - kua whakakorehia te whakatakotoranga pika-a-pika o nga huānga hei pai mo te rere-tahora o nga huānga. I tua atu, i roto i te tauira hou, kaore nga mana whakahaere e mahi tika me nga taonga rohe, engari me nga DTO motuhake (Nga Mea Whakawhiti Raraunga).
Na enei huringa i taea ai te hanga i te 1C:Enterprise kiritaki tukutuku e tukurua ana i te C++ arorau o nga mana JavaScript. Ka ngana matou ki te pupuri i te taurite mahi i waenga i nga kaihoko kikokore me te paetukutuku. I nga keehi kaore e taea, hei tauira na te iti o te JavaScript API e waatea ana (hei tauira, he iti noa te kaha ki te mahi me nga konae), ka whakamahia e matou nga mahi e tika ana ma te whakamahi i nga toronga tirotiro kua tuhia ki te C++. Kei te tautoko matou i a Internet Explorer me Microsoft Edge (Windows), Google Chrome (Windows), Firefox (Windows me Linux) me Safari (MacOS).
I tua atu, ka whakamahia te hangarau puka whakahaere ki te hanga atanga mo nga tono pūkoro i runga i te papaaho 1C. I runga i nga taputapu pūkoro, ka whakatinanahia te whakaputanga o nga mana whakahaere ma te whakamahi i nga hangarau taketake o te punaha whakahaere, engari mo te arorau tahora puka me te whakautu atanga, ka whakamahia te waehere rite ki te "nui" 1C:Tuapapa Enterprise.
1C atanga i runga i te Linux OS
1C atanga i runga i te taputapu pūkoro
1C atanga i runga i etahi atu papaaho 1C atanga i runga i Windows OS
Atanga 1C - kiritaki tukutuku
tuwhera pūtake
Ahakoa kaore matou e whakamahi i nga whare pukapuka paerewa mo nga kaiwhakawhanake C++ i raro i te Matapihi (MFC, nga mana whakahaere mai i WinAPI), kaore matou e tuhi i nga waahanga katoa. Kua korerohia te whare pukapuka wxHimihi, ka whakamahia ano hoki e matou:
Ka haere tonu te rarangi.
I tua atu, ka whakamahia e matou he putanga tino whakarereke Whakamātautau Google и Google Tawai i te wa e whakawhanake ana i nga whakamatautau waahanga.
Ko nga whare pukapuka e hiahia ana ki te urutau kia hototahi ki te tauira whakahaere wahanga SCOM.
Ko te nui o te 1C ka waiho te turanga hei whakamatautau pai mo te kaha mo nga whare pukapuka e whakamahia ana i roto. He maha nga momo kaiwhakamahi me nga ahuatanga ka whakaatu tere i nga hapa i roto i nga waahanga o te waehere tino uaua. Ka whakatikahia e matou, ka ngana ki te whakahoki atu ki nga kaituhi o te whare pukapuka. Ko te wheako o te taunekeneke ka puta he tino rereke.
Kaihanga cURL и libetpan hohoro te whakautu ki nga tono kume, engari ko te papaki, hei tauira, i roto OpenSSL Kaore i taea e matou te whakahoki mai.
mutunga
I roto i te tuhinga i pa atu matou ki etahi waahanga nui o te whanaketanga o te 1C: Te papaaho hinonga. I roto i te waahanga iti o te tuhinga, i pa atu matou ki etahi waahanga whakamere, ki ta matou whakaaro, nga waahanga.
Ka kitea he whakamaarama whanui mo nga momo tikanga papaaho konei.
He aha nga kaupapa ka pai ki a koe i nga tuhinga a muri ake nei?
He pehea te whakatinanatanga o te 1C papaaapapa pūkoro?
Whakaahuatanga o te hanganga o roto o te kiritaki tukutuku?
Kei te pirangi ranei koe ki te kowhiri i nga ahuatanga mo nga putanga hou, te whakawhanake me te whakamatautau?