Ngexesha elidlulileyo (ekwindla ka-2016), ngexesha lokuphuhliswa kwenguqu elandelayo ye-1C: I-platform ye-teknoloji ye-Enterprise, kwavela umbuzo ngaphakathi kweqela lophuhliso malunga nokuxhasa umgangatho omtsha.
Kulabo abangaziyo, i-1C: I-Enterprise yindawo yokuphuhliswa ngokukhawuleza kwezicelo zoshishino ze-cross-platform kunye nexesha lokuqhuba ukubulawa kwazo kwii-OS ezahlukeneyo kunye ne-DBMS. Ngokubanzi, imveliso iqulethe:
Iqela leseva yosetyenziso , isebenza kwiiWindows kunye neLinuxUmthengi , ukusebenza nomncedisi nge http(s) okanye eyakhe iprotocol yokubini, isebenza kwiWindows, Linux, macOSUmxhasi wewebhu , esebenza kwiChrome, Internet Explorer, Microsoft Edge, Firefox, Safari browsers (ebhalwe kwiJavaScript)- Indawo yophuhliso (
Umqwalaseli ), isebenza kwiWindows, Linux, macOS Izixhobo zolawulo iiseva zesicelo, zisebenza kwiWindows, Linux, macOSUmxhasi weselula , ukudibanisa kumncedisi nge http(s), isebenza kwizixhobo eziphathwayo ezisebenzisa i-Android, iOS, WindowsIqonga leselula -isakhelo sokwenza usetyenziso lweselula olungaxhunyiwe kwi-intanethi olunamandla okuvumelanisa, olusebenza kwi-Android, iOS, Windows- Indawo yophuhliso
1C:Izixhobo zoPhuhliso lweShishini , ebhalwe kwiJava - UmSebenzi
IiNkqubo zokuSebenza
Sizama ukubhala ikhowudi efanayo kwiinkqubo ezahlukeneyo zokusebenza kangangoko kunokwenzeka - isiseko sekhowudi yeseva si-99% esiqhelekileyo, isiseko sekhowudi yomxhasi malunga ne-95%. I-1C:Iqonga letekhnoloji yeShishini libhalwe ikakhulu kwi-C++ kunye neempawu eziqikelelwayo zekhowudi zinikwe ngezantsi:
- Imigca ye-10 yezigidi zekhowudi ye-C ++,
- 14 amawaka iifayile,
- Iiklasi ezingama-60 amawaka,
- iindlela isiqingatha sesigidi.
Kwaye zonke ezi zinto kwafuneka ziguqulelwe kwi-C ++14. Namhlanje siza kukuxelela ukuba sikwenze njani oku kunye nento esiye sadibana nayo kwinkqubo.
Ukuzihlangula
Yonke into ebhalwe ngezantsi malunga nomsebenzi ocothayo/okhawulezayo, (hayi) ukusetyenziswa kwenkumbulo enkulu ngokuphunyezwa kweeklasi ezisemgangathweni kumathala eencwadi ahlukeneyo kuthetha into enye: oku kuyinyani KUTHI. Kuyenzeka ukuba uphumezo olusemgangathweni luya kuyilungela imisebenzi yakho. Saqala kwimisebenzi yethu: sithathe idatha eyayiqhelekile kubathengi bethu, saqhuba iimeko eziqhelekileyo kubo, sajonga ukusebenza, ubungakanani bememori esetyenzisiweyo, njl. . Kwaye benza ngokuxhomekeke.
Into esasinayo
Ekuqaleni, sabhala ikhowudi ye-1C: I-Enterprise 8 iqonga kwi-Microsoft Visual Studio. Iprojekthi yaqala ekuqaleni kweminyaka yoo-2000 kwaye sasinoguqulelo lweWindows kuphela. Ngokwemvelo, ukususela ngoko ikhowudi iye yaphuhliswa ngokusebenzayo, iindlela ezininzi zibhalwe ngokutsha ngokupheleleyo. Kodwa ikhowudi yabhalwa ngokwemigangatho ye-1998, kwaye, umzekelo, iibrakethi zethu ze-angle zasekunene zahlulwa zizithuba ukuze ukuhlanganiswa kuphumelele, ngolu hlobo:
vector<vector<int> > IntV;
Ngo-2006, ngokukhululwa kwe-platform ye-8.1, saqala ukuxhasa i-Linux kwaye satshintshela kwithala leencwadi eliqhelekileyo lomntu wesithathu.
Umtya wethu usekwe kwiingcinga zokuphucula umtya ezichazwe emva kwiminyaka yoo-2000s
Umgca wethu usebenzise itekhnoloji ezimbini eziphambili zokusebenzisa:
- Kumaxabiso amafutshane, isithinteli sangaphakathi kwinto yomtya ngokwawo iyasetyenziswa (ayifuni ulwabiwo lwenkumbulo eyongezelelweyo).
- Kubo bonke abanye, kusetyenziswa oomatshini
Kopa Ukubhala . Ixabiso lomtya ligcinwe kwindawo enye, kwaye ikhawunta yereferensi isetyenziswa ngexesha lokunikezelwa/ukuguqulwa.
Ukukhawulezisa ukuhlanganiswa kweqonga, asibandakanyi ukuphunyezwa komjelo kukwahluka kwethu kwe-STLPort (esingayisebenzisanga), oku kusinike malunga ne-20% yokudibanisa ngokukhawuleza. Emva koko kwafuneka sisebenzise kancinci
Indlela yesithathu
Xa usiya kumgangatho we-C++14, sithathele ingqalelo ezi ndlela zilandelayo:
- Phucula i-STLPort esiyitshintshele kumgangatho we-C++14. Inketho inzima kakhulu, kuba... inkxaso ye-STLPort yayekwa ngo-2010, kwaye kuya kufuneka sizakhele ngokwethu yonke ikhowudi yayo.
- Ukutshintshela kolunye ukuphunyezwa kwe-STL ehambelana ne-C++14. Kunqweneleka kakhulu ukuba olu phunyezo lube lweWindows kunye neLinux.
- Xa uqulunqa i-OS nganye, sebenzisa ithala leencwadi elakhelwe kumqokeleli ohambelanayo.
Inketho yokuqala yaliwe ngenxa yomsebenzi omninzi.
Sacinga ngokhetho lwesibini kangangexesha elithile; ithathwa njengomgqatswa
Kwaye sakhetha indlela yesithathu.
Utshintsho
Ngoko ke, kwafuneka ukuba sitshintshe ukusetyenziswa kwe-STLPort kunye neelayibrari zabaqulunqi abahambelanayo (i-Visual Studio 2015 ye-Windows, i-gcc 7 ye-Linux, i-clang 8 ye-macOS).
Ngethamsanqa, ikhowudi yethu yabhalwa ngokukodwa ngokwezikhokelo kwaye ayizange isebenzise zonke iintlobo zamaqhinga ahlakaniphile, ngoko ke ukufudukela kumathala eencwadi amatsha kwaqhubeka kakuhle, ngoncedo lwemibhalo ethathe indawo yamagama eentlobo, iiklasi, iindawo zamagama kunye nokubandakanya kumthombo. iifayile. Ukufuduka kwachaphazela iifayile ze-10 zomthombo (ngaphandle kwe-000). I-wchar_t yathatyathelwa indawo ngu-char14_t; sagqiba kwelokuba sikuyeke ukusetyenziswa kwe-wchar_t, kuba i-char000_t ithatha ii-bytes ezi-16 kuzo zonke ii-OS kwaye ayonakalisi ukuhambelana kwekhowudi phakathi kweWindows kunye neLinux.
Kwakukho ama-adventure amancinci. Umzekelo, kwi-STLPort i-iterator inokuphoswa ngokufihlakeleyo kwisalathiso sento, kwaye kwezinye iindawo kwikhowudi yethu oku kusetyenzisiwe. Kumathala eencwadi amatsha kwakungasenakwenzeka ukwenza oku, kwaye ezi ndinyana kwakufuneka zihlalutywe kwaye zibhalwe ngokutsha ngesandla.
Ngoko, ukufuduka kwekhowudi kugqityiwe, ikhowudi ihlanganiswe kuzo zonke iinkqubo zokusebenza. Lixesha leemvavanyo.
Uvavanyo emva kokuba utshintsho lubonise ukuhla kwentsebenzo (kwezinye iindawo ukuya kwi-20-30%) kunye nokunyuka kokusetyenziswa kwememori (ukuya kwi-10-15%) xa kuthelekiswa nenguqulo endala yekhowudi. Oku kwaba, ngokukodwa, ngenxa yokusebenza okungaphantsi komgangatho weentambo eziqhelekileyo. Ke ngoko, kuye kwafuneka siphinde sisebenzise owethu umgca, oguqulwe kancinane.
Uphawu olunomdla lomiliselo lwezikhongozeli kumathala eencwadi ahlonyelweyo nalo libonakaliswe: elingenanto (ngaphandle kweempawu) std::map kunye ne-std::seti ukusuka kumathala eencwadi abelwe inkumbulo. Kwaye ngenxa yokuphunyezwa kweempawu, kwezinye iindawo kwikhowudi zininzi izikhongozeli ezingenanto zolu hlobo zenziwe. Izikhongozeli zememori eziqhelekileyo zabelwe kancinci, kwingcambu enye, kodwa kuthi oku kuye kwabonakala kubaluleke kakhulu - kwiimeko ezininzi, ukusebenza kwethu kwehle kakhulu kwaye ukusetyenziswa kwememori kunyukile (xa kuthelekiswa ne-STLPort). Ke ngoko, kwikhowudi yethu sitshintshe ezi ntlobo zimbini zezikhongozeli kwiilayibrari ezakhelwe ngaphakathi kunye nokuphunyezwa kwazo kwi-Boost, apho ezi zikhongozeli zingenalo olu phawu, kwaye oku kwasombulula ingxaki ngokucotha kunye nokwanda kokusetyenziswa kwememori.
Njengoko kwenzeka rhoqo emva kweenguqu ezinkulu kwiiprojekthi ezinkulu, ukuphindaphinda kokuqala kwekhowudi yomthombo akuzange kusebenze ngaphandle kweengxaki, kwaye apha, ngokukodwa, inkxaso yokulungisa i-iterators ekuphunyezweni kweWindows yafika ngokufanelekileyo. Inyathelo ngenyathelo saya phambili, kwaye ngentwasahlobo ka-2017 (inguqulo 8.3.11 1C: Ishishini) ukufuduka kwagqitywa.
Iziphumo
Ukutshintshela kumgangatho we-C ++ 14 kusithathe malunga neenyanga ezi-6. Amaxesha amaninzi, umphuhlisi omnye (kodwa oqeqeshwe kakhulu) wayesebenza kwiprojekthi, kwaye kwinqanaba lokugqibela abameli bamaqela anoxanduva lweendawo ezithile ezidibeneyo - i-UI, i-server cluster, uphuhliso kunye nezixhobo zolawulo, njl.
Utshintsho lwenza lula kakhulu umsebenzi wethu wokufudukela kwiinguqulelo zamva nje zomgangatho. Ngaloo ndlela, inguqulo ye-1C: I-Enterprise 8.3.14 (ekuphuhlisweni, ukukhutshwa okucwangciselwe ekuqaleni konyaka ozayo) sele idluliselwe kumgangatho.
Emva kokufuduka, abaphuhlisi banokhetho oluninzi. Ukuba ngaphambili besineyethu inguqulelo elungisiweyo ye-STL kunye ne-std namespace enye, ngoku sineeklasi eziqhelekileyo ukusuka kwiilayibrari eziqokelelweyo ezakhelwe ngaphakathi kwindawo yegama le-std, kwindawo yegama le-stdx - imigca yethu kunye nezikhongozeli ezilungiselelwe imisebenzi yethu, ekunyuseni inguqulelo yamva nje yokunyusa. Kwaye umphuhlisi usebenzisa ezo klasi zifaneleke ngokupheleleyo ukusombulula iingxaki zakhe.
Ukuphunyezwa βkomthonyamaβ kwabakhi abahambayo kukwanceda kuphuhliso (
Icephe letha
Mhlawumbi eyona nto ingathandekiyo (kodwa ayibalulekanga) isiphumo sokufuduka kukuba sijongene nokunyuka komthamo.
umthombo: www.habr.com