Dayax madoobaad sidii madal tignoolajiyadeed ee 1C:Aaladaha Horumarinta Ganacsiga

Waxaa laga yaabaa in, madoobaad muddo dheer ka dib uma baahna hordhac gaar ah. Dad badan ayaa yaqaan Eclipse iyada oo ay ugu wacan tahay Eclipse Java Development toolsJDT). Waa il-furan Java IDE oo caan ah oo inta badan horumariyayaashu ay la xidhiidhiyaan ereyga "Eclipse". Si kastaba ha ahaatee, Eclipse labaduba waa madal la fidin karo oo lagu dhex geliyo agabka horumarinta (Eclipse Platform), iyo tiro IDE-yo ah oo lagu dhisay salkeeda, oo ay ku jirto JDT. Dayax madoobaadku waa labadaba Mashruuca Eclipse, mashruuca heerka ugu sarreeya ee isku xidha horumarinta Platform-ka Eclipse iyo JDT, iyo Eclipse SDK, natiijada horumarkaas. Ugu dambeyntii, Eclipse waa aasaaska il furan oo leh bulsho badan oo mashaariic ah, kuwaas oo aan dhammaantood ku qornayn Java ama la xidhiidha qalabka horumarinta (tusaale, mashaariicda Eclipse IoT и Sayniska Eclipse). Dunida Dayax madoobaad waa mid aad u kala duwan.

Maqaalkan, oo ah dulmar dabiici ah, waxaan isku dayi doonaa inaan eegno qaar ka mid ah aasaaska dhismaha Eclipse oo ah madal lagu dhisayo aaladaha horumarineed ee isku dhafan oo aan siinno fikrad bilow ah qaybaha Eclipse ee aasaaska u ah farsamada madal loogu talagalay "Configurator" 1C: Enterprise. 1C:Aaladaha Horumarinta Ganacsiga. Dabcan, dib u eegista noocan oo kale ah waxay noqon doontaa lama huraan inay noqoto mid dusha sare leh oo ay xaddidan tahay, oo ay ku jirto sababtoo ah waxaan diiradda saaraynaa kaliya maaha kuwa horumariya Eclipse inay yihiin kuwa bartilmaameedka ah. Si kastaba ha noqotee, waxaan rajeyneynaa in xitaa horumariyeyaasha Eclipse ee khibradda leh ay awoodi doonaan inay helaan macluumaad xiiso leh maqaalka. Tusaale ahaan, waxaan ka hadli doonaa mid ka mid ah "sirta Eclipse", mashruuc aad u cusub oo aan caan ahayn. Eclipse Handly, kaas oo ay aasaaseen oo ay taageereen 1C.
Dayax madoobaad sidii madal tignoolajiyadeed ee 1C:Aaladaha Horumarinta Ganacsiga

Hordhac Dhismaha Eclipse Architecture

Aan marka hore eegno qaar ka mid ah dhinacyada guud ee naqshadaha Eclipse annagoo tusaalaha ka qaadanayna Eclipse qalabka horumarinta Java (JDT). Doorashada JDT tusaale ahaan maaha mid ku yimid shil. Tani waa jawigii ugu horreeyay ee isku dhafan ee horumarinta ee ka muuqda Eclipse. Mashruucyada kale ee *DT Madoobaadka, sida Eclipse C/C++ Qalabka Horumarinta (CDT), ayaa la abuuray mar dambe oo laga soo amaahday mabaadi'da aasaasiga ah ee dhismaha iyo jajabyada koodhka shakhsi ahaaneed ee JDT. Aasaaska dhismaha ee la dejiyay JDT waxay khuseeyaan ilaa maantadan ku dhawaad ​​IDE kasta oo lagu dhisay dusha sare ee Platform-ka Eclipse, oo ay ku jiraan 1C: Qalabka Horumarinta Ganacsiga.

Ugu horreyntii, waa in la ogaadaa in Eclipse lagu garto lakabyo qaab dhismeed oo cad oo cad, oo leh kala soocida shaqeynta madaxbannaan ee luqadda iyo shaqeynta loogu talagalay in lagu taageero luqadaha barnaamijyada gaarka ah, iyo kala soocida qaybaha "core" ee madax-bannaan UI ee qaybaha la xidhiidha oo leh taageero isticmaale.

Haddaba, Platform-ka Eclipse wuxuu qeexayaa kaabayaal caadi ah, oo ka madaxbannaan luqadda, iyo aaladaha horumarinta Java waxay ku daraan Java IDE-ga si buuxda ugu muuqda Eclipse. Labadaba Platform Eclipse Platform iyo JDT waxay ka kooban yihiin dhawr qaybood, mid kastaa waxay ka tirsan tahay UI-madax banaan "core" ama lakabka UI (Jaantuska 1).

Dayax madoobaad sidii madal tignoolajiyadeed ee 1C:Aaladaha Horumarinta Ganacsiga
Bariis 1. Platform Eclipse iyo JDT

Aynu taxno qaybaha ugu muhiimsan ee Platform-ka Eclipse:

  • Runtime - Qeexayaa kaabayaasha plugin. Dayax madoobaadka waxa lagu gartaa qaab dhismeed modular ah. Asal ahaan, Eclipse waa ururinta "dhibcaha fidinta" iyo "kordhinta".
  • Goobta Shaqada - Waxay maamushaa hal ama dhowr mashruuc. Mashruucu wuxuu ka kooban yahay faylal iyo faylal si toos ah loogu habeeyey nidaamka faylka.
  • Qalabka Widget-ka caadiga ah (SWT) - Waxay bixisaa walxaha is-dhexgalka aasaasiga ah ee lagu dhex daray nidaamka hawlgalka.
  • JFace - Waxay bixisaa tiro qaab-dhismeedka UI ah oo lagu dhisay dusha SWT.
  • Workbench - Wuxuu qeexayaa jaantuska Eclipse UI: tifaftirayaasha, aragtida, aragtida.

Waa in la sheegaa in Platform-ka Eclipse uu sidoo kale bixiyaa qaybo kale oo badan oo faa'iido leh si loo dhiso qalab horumarineed oo isku dhafan, oo ay ku jiraan Debug, Isbarbardhig, Goobid, iyo Kooxda. Waa in si gaar ah loo xuso qoraalka JFace - oo saldhig u ah dhisidda "tafatirayaasha caqliga leh" ee koodhka isha. Nasiib darro, xitaa baaritaanka cursory ee qaybahan, iyo sidoo kale qaybaha lakabka UI, maaha mid suurtogal ah gudaha baaxadda maqaalkan, sidaas darteed inta ka hartay qaybtan waxaan ku xaddidi doonaa dulmar guud ee qaybaha "core" ee ugu muhiimsan. Platform Eclipse iyo JDT.

Runtime Core

Kaabayaasha Eclipse plugin waxay ku saleysan yihiin OSGi waxaana bixiyay mashruuca Eclipse Equinox. Qalab kasta oo Eclipse ah waa xirmo OSGi ah. Qeexitaanka OSGi wuxuu qeexayaa, gaar ahaan, hababka loo daabaco iyo xallinta ku-tiirsanaanta. Marka lagu daro hababkan caadiga ah, Equinox waxay soo bandhigaysaa fikradda dhibcood ballaarinta. Qalab kastaa wuxuu qeexi karaa dhibcihiisa kordhinta, iyo sidoo kale wuxuu soo bandhigi karaa shaqeyn dheeraad ah ("kordhin") nidaamka iyadoo la adeegsanayo dhibcaha kordhinta ee lagu qeexay isku mid ama plugins kale. Sharaxaad kasta oo faahfaahsan oo ku saabsan hababka OSGi iyo Equinox ayaa ka baxsan xadka qodobkan. Aynu ogaano oo kaliya in habaynta Eclipse ay tahay wadarta (nidaam hoosaadka kasta, oo uu ku jiro Runtime, wuxuu ka kooban yahay hal ama wax ka badan plugins), iyo ku dhawaad ​​​​wax kasta oo Eclipse ku jira waa kordhin. Waxaa intaa dheer, mabaadi'daani waxay ku dhex milmeen naqshadda Eclipse muddo dheer ka hor intaan la hirgelin OSGi (waqtigaas waxay isticmaaleen tignoolajiyada iyaga u gaar ah, oo la mid ah OSGi).

Goobta Shaqada ee Muhiimka ah

Ku dhawaad ​​deegaan kasta oo horumarineed oo isku dhafan oo laga dhisay dusha sare ee Platform Eclipse wuxuu la shaqeeyaa goobta shaqada Eclipse. Waa goobta shaqada ee inta badan ka kooban koodka isha ee codsiga lagu sameeyay IDE-ga. Goobta shaqada waxay si toos ah ugu socotaa nidaamka faylka waxayna ka kooban tahay mashaariic, kuwaas oo ka kooban galal iyo faylal. Mashaariicdan, galalka, iyo faylalkan ayaa la yiraahdaa kheyraadka goobta shaqada. Hirgelinta goobta shaqada ee Eclipse waxay u adeegtaa kayd ahaan marka loo eego nidaamka faylka, taas oo suurtogal ka dhigaysa in si weyn loo dedejiyo socodka geedka kheyraadka. Intaa waxaa dheer, goobta shaqada waxay bixisaa tiro adeegyo dheeraad ah, oo ay ku jiraan habka ogeysiinta ee isbeddelada kheyraadka и kaabayaasha wax-dhisaha ee korodhay.

Qaybta Khayraadka Muhiimka ah (org.eclipse.core.resources plugin) ayaa mas'uul ka ah taageeridda goobta shaqada iyo agabkeeda. Gaar ahaan, qaybtani waxay ku siinaysaa barnaamijka gelitaanka goobta shaqada ee foomka moodooyinka kheyraadka. Si aad si hufan ula shaqeyso moodalkan, macaamiishu waxay u baahan yihiin hab fudud oo ay ku soo bandhigaan isku xirka kheyraadka. Xaaladdan oo kale, waxay noqon lahayd mid la jecel yahay in la qariyo shayga si toos ah u kaydiya xaaladda kheyraadka ee qaabka ka helitaanka macmiilka. Haddii kale, marka laga hadlayo, tusaale ahaan, tirtiridda faylka, macmiilku wuxuu sii wadi karaa inuu haysto shay aan hadda ku jirin qaabka, dhibaatooyinka soo socda. Dayax madoobaadku wuxuu xalliyaa dhibaatadan iyadoo la isticmaalayo wax la yiraahdo xamili kheyraad. Gacanku wuxuu u dhaqmaa sida furaha (waxa kaliya oo uu yaqaanaa jidka loo maro kheyraadka goobta shaqada) wuxuuna si buuxda u koontaroolaa gelitaanka shayga qaabka gudaha, kaas oo si toos ah u kaydiya macluumaadka ku saabsan xaaladda kheyraadka. Naqshadani waa kala duwanaanshiyaha qaabka Gacanta/Jidhka.

Bariis Jaantuska 2 ayaa muujinaya sarbeebaha Gacan/Jidhka sida lagu dabaqay qaabka agabka. Interface IResource waxay u taagan tahay gacan-ku-haynta kheyraadka waana API, si ka duwan fasalka Kheyraadka, kaasoo hirgeliya is-dhexgalkan, iyo fasalka ResourceInfo, kaasoo matalaya jirka, kuwaas oo aan ahayn API-yada. Waxaan ku nuuxnuuxsanaynaa in gacanku kaliya yaqaanno jidka loo maro kheyraadka marka loo eego xididka goobta shaqada oo kuma jiro xiriirinta macluumaadka kheyraadka. Walxaha macluumaadka kheyraadka waxay sameeyaan waxa loo yaqaan "geedka curiyaha". Qaab dhismeedka xogtan ayaa si buuxda u rumoobay xusuusta. Si loo helo tusaalaha macluumaadka macluumaadka ee u dhigma gacan-qabsiga, geedka curiyaha waxa loo maro si waafaqsan dariiqa lagu kaydiyay gacantaas.

Dayax madoobaad sidii madal tignoolajiyadeed ee 1C:Aaladaha Horumarinta Ganacsiga
Bariis 2. IResource iyo ResourceInfo

Sida aan dib u arki doonno, naqshadda aasaasiga ah ee qaabka kheyraadka (waxaa laga yaabaa in aan ugu yeerno gacan ku-saleysan) Eclipse waxaa sidoo kale loo isticmaalaa moodooyinka kale. Hadda, aan taxno qaar ka mid ah sifooyinka gaarka ah ee nashqadan:

  • Gacanku waa shay qiimo leh. Walxaha qiimaha leh waa shay aan la bedeli karin oo sinnaantoodu aanay ku salaysnayn aqoonsiga. Walxaha noocaan ah waxaa si badbaado leh loogu isticmaali karaa furaha weelasha xashiishka ah. Marar badan oo gacan qabasho ah ayaa tixraaci kara ilo isku mid ah. Si loo barbardhigo iyaga, waxaad u baahan tahay inaad isticmaasho habka loo siman yahay (Waxyaabaha).
  • Gacanku waxa uu qeexayaa hab-dhaqanka kheyraadka, balse kuma jiro macluumaad ku saabsan xaaladda kheyraadka (xogta kaliya ee ay kaydiso waa "furaha", waddada loo maro kheyraadka).
  • Gacan-ku-haynta waxa laga yaabaa inay tixraacdo kheyraad aan jirin (ama kheyraad aan weli la abuurin, ama kheyraad mar hore la tirtiray). Jiritaanka kheyraadka waxaa lagu hubin karaa iyadoo la adeegsanayo habka IResource.exists().
  • Hawlgallada qaarkood waa la fulin karaa iyadoo lagu salaynayo macluumaadka ku kaydsan gacanta lafteeda (waxa loogu yeero hawlgallada gacan-kaliya). Tusaalooyinka waa IResource.getParent(), getFullPath(), iwm. Ilaha uma baahna inuu jiro si hawlgalkan oo kale uu u guuleysto. Hawlgallada u baahan kheyraad si ay u jiraan si ay u guuleystaan ​​waxay tuurayaan CoreException haddii agabku aanu jirin.

Dayax madoobaadku waxa uu bixiyaa hab wax ku ool ah oo lagu ogeysiinayo isbeddelada ilaha goobta shaqada (Jaantuska 3). Ilaha way isbedali karaan iyadoo ay ugu wacan tahay ficilada lagu sameeyay Eclipse IDE lafteeda ama iyadoo ay sabab u tahay la shaqaynta nidaamka faylka. Labada xaaladoodba, macaamiisha ku biira ogeysiisyada waxaa la siiyaa macluumaad faahfaahsan oo ku saabsan isbeddelada qaabka "deltas khayraadka". delta waxay qeexaysaa isbeddelada u dhexeeya labada gobol ee kheyraadka goobta shaqada (sub-) geed laftiisana waa geed, nood kasta oo ka mid ah wuxuu qeexayaa isbeddelka kheyraadka wuxuuna ka kooban yahay liiska deltas ee heerka ku xiga oo qeexaya isbeddelada ilaha ilmaha.

Dayax madoobaad sidii madal tignoolajiyadeed ee 1C:Aaladaha Horumarinta Ganacsiga
Bariis 3.IResourceChangeEvent iyo IResourceDelta

Habka ogeysiinta ee ku salaysan deltas kheyraadka ayaa leh sifooyinka soo socda:

  • Hal isbeddel iyo isbeddelo badan ayaa lagu sharraxay iyadoo la adeegsanayo qaab isku mid ah, maadaama delta la dhisay iyadoo la adeegsanayo mabda'a halabuurka soo noqnoqda. Macaamiisha macaamiishu waxay ka baaraandegi karaan ogaysiisyada beddelka kheyraadka iyagoo isticmaalaya farcanka soo noqnoqda ee geedka deltas.
  • Daloolku waxa uu ka kooban yahay macluumaad dhamaystiran oo ku saabsan isbeddelada khayraadka, oo ay ku jiraan dhaqdhaqaaqiisa iyo/ama isbeddelada "calaamadaha" ee la xidhiidha (tusaale, khaladaadka ururinta ayaa loo taagan yahay calaamado ahaan).
  • Maadaama tixraacyada kheyraadka lagu sameeyay gacanta, delta waxay si dabiici ah u tixraaci kartaa kheyraad fog.

Sida aan dhawaan arki doono, qaybaha ugu muhiimsan ee naqshadeynta qaabka kheyraadka habka beddelka habka ogeysiinta ayaa sidoo kale khuseeya moodooyinka kale ee gacanta ku salaysan.

Qodobbada ugu hooseysa ee JDT

Qaabka kheyraadka goobta shaqada Eclipse waa nooc aasaasi ah oo luuqad-agnostic ah. Qaybta Muhiimka ah ee JDT (plugin org.eclipse.jdt.core) waxay siisaa API si loogu maareeyo loona falanqeeyo qaab dhismeedka goobta shaqada marka laga eego dhinaca Java, waxa loogu yeero "Java model"Moodeelka Java). API-kan waxa lagu qeexaa ereyada Java, oo ka soo horjeeda moodalka kheyraadka hoose ee API, kaas oo lagu qeexay galka iyo faylalka. Isku xirka ugu muhiimsan ee geedka curiyaha Java waxa lagu muujiyay shaxanka. 4.

Dayax madoobaad sidii madal tignoolajiyadeed ee 1C:Aaladaha Horumarinta Ganacsiga
Bariis 4. Java Model Elements

Qaabka Java waxa uu isticmaalaa isla gacanta/jidh sarbeeb ahaan sida tusaalaha kheyraadka (Jaantuska 5). IJavaElement waa gacanta, JavaElementInfona waxay ciyaartaa doorka jidhka. Interface-ka IJavaElement waxa uu qeexayaa hab-maamuuska ay wadaagaan dhammaan curiyayaasha Java. Qaar ka mid ah hababkeeda ayaa ah kuwa gacanta lagu hayo oo keliya: getElementName(), getParent(), iwm. Shayga JavaElementInfo waxa uu kaydiyaa xaaladda walxaha u dhigma: qaabdhismeedkiisa iyo sifooyinkiisa.

Dayax madoobaad sidii madal tignoolajiyadeed ee 1C:Aaladaha Horumarinta Ganacsiga
Bariis 5. IJavaElement iyo JavaElementInfo

Habka Java waxa uu leeyahay xoogaa kala duwanaansho ah oo ku saabsan hirgelinta gacanta/naqshad jireed ee aasaasiga ah marka loo eego qaabka kheyraadka. Sida kor lagu xusay, qaabka kheyraadka, geedka curiyaha, oo nooduskiisu yihiin walxaha macluumaadka, ayaa gebi ahaan ku jira xusuusta. Laakiin qaabka Java wuxuu yeelan karaa tiro aad u weyn oo ka mid ah curiyeyaasha marka loo eego geedka kheyraadka, sababtoo ah waxay sidoo kale ka dhigan tahay qaabka gudaha ee java iyo .faylalka fasalka: noocyada, beeraha, iyo hababka.

Si looga fogaado in gebi ahaanba laga dhigo dhammaan geedka curiyeyaasha xusuusta, hirgelinta moodalka Java waxay isticmaashaa cabbir xaddidan oo LRU ah oo macluumaadka element ah, halkaasoo furaha uu gacanta ku hayo IJavaElement. Walxaha macluumaadka elementka waxa loo abuuraa baahi marka geedka curiyaha la dhex maro. Xaaladdan oo kale, shayada ugu yar ee la isticmaalo ayaa laga saarayaa khasnadda, iyo isticmaalka xusuusta ee moodelku waxa uu ahaanayaa mid xaddidan cabbirka kaydka ee la cayimay. Tani waa faa'iido kale oo naqshadeynta ku salaysan gacanta, kaas oo si buuxda u qarinaya faahfaahinta hirgelinta noocaas ah ee code macmiilka.

Habka lagu ogeysiinayo isbeddelada canaasirta Java ayaa guud ahaan la mid ah habka daba-galka isbeddelka agabka goobta shaqada ee xagga sare lagaga hadlay. Macmiil raba in uu la socdo isbeddelada qaabka Java waxa uu ku biiraa ogaysiisyada, kuwaas oo loo matalo sidii ElementChangedEvent shay oo ka kooban IJavaElementDelta (Jaantuska 6).

Dayax madoobaad sidii madal tignoolajiyadeed ee 1C:Aaladaha Horumarinta Ganacsiga
Bariis 6. Element ChangeEvent iyo IJavaElementDelta

Qaabka Java kuma jiro macluumaad ku saabsan habka jirka ama xallinta magaca, sidaa darteed falanqaynta faahfaahsan ee kood ku qoran Java, JDT Core wuxuu bixiyaa qaab dheeri ah (aan gacanta ku salaysnayn): geed syntax abstract (geedka syntax abstract, AST). AST waxay matalaysaa natiijada kala saarida qoraalka isha. qanjidhada AST waxay u dhigantaa xubno ka mid ah qaab-dhismeedka moduleka isha (cadaynta, hawlwadeennada, tibaaxaha, iwm.) waxayna ka kooban yihiin macluumaadka ku saabsan isku-duwayaasha walxaha u dhigma ee qoraalka isha, iyo sidoo kale (sida ikhtiyaarka ah) macluumaadka ku saabsan xallinta magaca qaabka isku xirka waxa loogu yeero xirmooyinka. Xidhiidhku waa shay matalaya hay'ado la magacaabay, sida noocyada, hababka, iyo doorsoomayaasha, oo loo yaqaan isku-dubariduhu. Si ka duwan sida qanjidhada AST, oo samaysa geed, xidhidhayaashu waxay taageeraan tixraac-is-dhaafsi waxayna guud ahaan sameeyaan garaaf. Fasalka aan la taaban karin ee ASTNode waa fasalka aasaasiga ah ee dhammaan qanjidhada AST. Fasalada hoose ee ASTNode waxay u dhigmaan dhismooyin gaar ah oo la isku hallayn karo oo luuqadda Java ah.

Sababtoo ah geedaha syntax waxay cuni karaan qadar weyn oo xusuusta ah, JDT waxay kaydisaa hal AST oo keliya tifaftiraha firfircoon. Si ka duwan qaabka Java, AST waxaa sida caadiga ah loo arkaa qaab "dhex dhexaad ah", "ku meel gaadh ah", walxaha ay macaamiishu ku jiraan waa inaysan haysan tixraacyo ka baxsan macnaha hawlgalka ee horseeday abuurista AST.

Saddexda nooc ee liiska ku jira (Java model, AST, bindings) waxay si wada jir ah u sameeyaan aasaaska dhismaha "qalabka horumarinta caqliga leh" ee JDT, oo ay ku jiraan tifaftire awood leh oo Java ah oo leh "caawiye" kala duwan, tallaabooyin kala duwan oo loogu talagalay habaynta koodhka isha (oo ay ku jiraan abaabulka liiska soo dejinta). magacyada iyo qaabaynta iyadoo la raacayo qaabka la habeeyey), goobidda iyo dib-u-habaynta qalabka. Xaaladdan oo kale, qaabka Java wuxuu ciyaaraa door gaar ah, maadaama uu yahay kan loo isticmaalo saldhigga muuqaalka muuqaalka qaab dhismeedka codsiga la sameeyay (tusaale ahaan, Package Explorer, Outline, Search, Call Heerarchy, iyo Nooca kala sareynta).

Qaybaha dayax-madoobaadka ee loo isticmaalo 1C:Aaladaha Horumarinta Ganacsiga

Jaantuska Jaantuska 7 wuxuu muujinayaa qaybaha Eclipse ee aasaaska u ah madal tignoolajiyada 1C: Qalabka Horumarinta Ganacsiga.

Dayax madoobaad sidii madal tignoolajiyadeed ee 1C:Aaladaha Horumarinta Ganacsiga
Bariis 7. Madoobaad sidii madal loogu talagalay 1C: Aaladaha Horumarinta Ganacsiga

Platform Madoobaad waxay bixisaa kaabayaasha aasaasiga ah. Qaybtii hore ayaan ku eegnay qaybo ka mid ah kaabayaashan.

Qaab-dhismeedka Modeling Eclipse (EMF) waxay bixisaa hab guud oo qaabaynta xogta habaysan. EMF waxaa lagu dhex daray Platform Eclipse, laakiin sidoo kale si gaar ah ayaa loogu isticmaali karaa codsiyada Java ee caadiga ah. Inta badan, soosaarayaasha cusub ee Eclipse waxay si fiican u yaqaanaan EMF, in kasta oo ayan weli si buuxda u fahmin qalafsanaanta Platform-ka Eclipse. Mid ka mid ah sababaha caanka ah ee sida wanaagsan loogu qalmo waa naqshadda caalamiga ah, oo ay ku jiraan, waxyaabo kale, API-level meta-midaysan, kaas oo kuu ogolaanaya inaad la shaqeyso nooc kasta oo EMF ah si guud. Hirgelinta aasaasiga ah ee walxaha moodeelka ah ee ay bixiso EMF iyo nidaamka-hoosaadka ee soo saarista koodhka moodeelka ee ku salaysan-qaabka-meta-qaabka ayaa si weyn u kordhiya xawaaraha horumarka waxayna yareeyaan tirada khaladaadka. EMF waxa kale oo ay ka kooban tahay habab taxane ah moodooyinka, la socodka isbeddelada moodeelka, iyo wax ka badan.

Sida qalab kasta oo runtii ujeedo-guud ah, EMF waxay ku habboon tahay xallinta mashaakil badan oo qaabaynta ah, laakiin fasallada moodooyinka qaarkood (tusaale ahaan, moodooyinka gacanta ku salaysan ee kor lagaga hadlay) waxay u baahan karaan qalabyada qaabaynta ee khaaska ah. Ka hadalka EMF waa hawl aan la mahadin, gaar ahaan gudaha xaddidaadda xaddidan ee hal maqaal, maadaama kani yahay mawduuca buug gaar ah, iyo mid dhumuc weyn leh. Aynu ogaano oo kaliya in nidaamka tayada sare leh ee guud ee hoos yimaada EMF uu oggolaaday dhalashada mashruucyo kala duwan oo loogu talagalay qaabeynta, kuwaas oo lagu daray mashruuca heerka sare. Modeling Eclipse oo ay la socdaan EMF lafteeda. Mid ka mid ah mashruucan waa Eclipse Xtext.

Eclipse Xtext wuxuu bixiyaa qaabaynta qoraalka "kaabayaasha. Isticmaalka Xtext ANTLR si loo kala saaro qoraalka isha iyo EMF si loogu matalo natiijada ASG (garaafka semantic abstract, kaas oo asal ahaan isku jira AST iyo xidhitaannada), oo sidoo kale loo yaqaan "qaabka semantic". Naxwaha luqadda uu qaabeeyay Xtext waxa lagu sifeeyay luqadda Xtext. Tani waxay kuu ogolaaneysaa inaadan kaliya u soo saarin sharaxaad naxwe ahaaneed ee ANTLR, laakiin sidoo kale si aad u hesho habka AST serialization (ie Xtext wuxuu bixiyaa labadaba baarser iyo unparser), tilmaam macnaha guud, iyo tiro ka mid ah qaybaha luqadaha kale. Dhanka kale, luqadda naxwaha ee lagu isticmaalo Xtext ayaa ka dabacsan, dheh, luqadda naxwaha ee lagu isticmaalo ANTLR. Sidaa darteed, mararka qaarkood waxaa lagama maarmaan ah in "loo leexiyo" luqadda la hirgeliyay ee Xtext, taas oo inta badan aan dhib lahayn haddii aan ka hadlayno luqad laga soo saaray xoqan, laakiin waxaa laga yaabaa in aan la aqbali karin luqadaha leh syntax horay loo aasaasay. Iyadoo taasi jirto, Xtext hadda waa qalabka ugu bisil, ugu qanisan, iyo qalabka ugu badan ee Eclipse ee loogu dhisayo luqadaha barnaamijka iyo agabka horumarinta iyaga. Gaar ahaan, waa aalad ku habboon in si degdeg ah loo sameeyo prototying luqadaha gaarka ah ee domainka ( luqadda domain-gaar ah, DSL). Marka lagu daro "xudunta luqadda" ee kor ku xusan ee ku salaysan ANTLR iyo EMF, Xtext waxay bixisaa qaybo badan oo faa'iido leh oo heer sare ah, oo ay ku jiraan hababka tusmaynta, dhismaha kordhinta, "tifaftire caqli-gal ah", iyo wax badan, wax badan, laakiin ka tagaya gacan- moodooyinka luqadda ku salaysan. Sida EMF, Xtext waa mawduuc u qalma buug gaar ah, oo aynaan xitaa si kooban uga hadli karno dhammaan awoodaheeda hadda.

1C:Aaladaha Horumarinta Ganacsiga waxay si firfircoon u isticmaalaan EMF lafteeda iyo tiro mashruucyo kale oo Dayac-tir ah. Gaar ahaan, Xtext waa mid ka mid ah aasaaska aaladaha horumarinta ee 1C: Luuqadaha ganacsiga sida luqadda barnaamijka iyo luqadda weydiinta. Waxa kale oo aasaaska u ah agabkan horumarineed waa mashruuca Eclipse Handly, kaas oo aynu si faahfaahsan uga hadli doono (Qaybaha Dayax-madoobaadka ee liiska ku jira, wali waa kan ugu yar ee la yaqaan).

Eclipse Handly, Mashruuc hoose oo ka mid ah mashruuca heerka sare ee Tignoolajiyada Eclipse, ayaa soo baxay natiijada koodhka bilawga ah ee tabarucaadda Eclipse Foundation oo ay samaysay 1C 2014kii. Tan iyo markaas, 1C waxay sii waday inay taageerto horumarinta mashruuca: Hawl-wadeennada gacanta ayaa ah shaqaalaha shirkadda. Mashruucu waa yar yahay, laakiin wuxuu ku jiraa meel gaar ah oo ku taal Eclipse: hadafkiisa ugu weyn waa inuu taageero horumarinta moodooyinka gacanta ku salaysan.

Mabaadi'da aasaasiga ah ee qaab-dhismeedka moodooyinka gacanta ku salaysan, sida gacan-ku-haynta/ sarbeebta jidhka, ayaa lagaga hadlay kor iyadoo la isticmaalayo qaabka khayraadka iyo qaabka Java tusaale ahaan. Waxa kale oo ay xustay in nooca kheyraadka iyo nooca Java ay yihiin aasaaska muhiimka u ah Eclipse Java development tools (JDT). Iyo maadaama ku dhawaad ​​dhammaan mashaariicda *DT Eclipse ay leeyihiin qaab dhismeed la mid ah JDT, ma noqon doonto buunbuunin weyn in la yiraahdo moodooyinka gacanta ku saleysan ayaa hoosta ka xariiqaya kuwa badan, haddii aysan ahayn dhammaan IDE-yada lagu dhisay dusha sare ee Platform-ka Eclipse. Tusaale ahaan, Eclipse C/C++ Development Tooling (CDT) waxa uu leeyahay qaab gacanta ku salaysan C/C++ kaas oo ka ciyaara door la mid ah qaab-dhismeedka CDT sida qaabka Java ee JDT.

Kahor Handly, Eclipse ma aysan bixin maktabado gaar ah oo lagu dhisayo qaababka luqadda gacanta ku salaysan. Moodooyinka hadda jira waxaa badanaa la abuuray iyaga oo si toos ah ula qabsanaya koodhka moodeelka Java (oo loo yaqaan nuqul / dheji), xaaladaha ay ogolaato Shatiga Dadweynaha Eclipse (EPL). (Sida cad, tani inta badan maaha arrin sharci ah, waxaad tidhaahdaa, mashaariicda Eclipse lafteeda, laakiin maaha wax soo saarka ilaha xiran.) Marka lagu daro khalkhalka dabiiciga ah, farsamadani waxay soo bandhigaysaa dhibaatooyin si fiican loo yaqaan: nuqul ka mid ah code oo soo bandhigay marka la qabsanayo khaladaadka. iwm. Waxa ka sii daran in moodooyinka soo baxay ay ku sii jiraan "waxyaalihii naftooda" oo aan ka faa'iidaysan awoodda midaynta. Laakin go'doominta fikradaha guud iyo borotokoolka moodooyinka luqadda ku saleysan gacanta waxay horseedi kartaa abuuritaanka qaybo dib loo isticmaali karo si loola shaqeeyo iyaga, oo la mid ah wixii ku dhacay kiiska EMF.

Ma aha in Eclipse aanu fahmin arrimahan. Dib ugu noqo 2005 Martin Aeschlimann, soo koobaya waayo-aragnimada horumarinta nooca CDT, ku dooday baahida loo qabo in la abuuro kaabayaal guud oo loogu talagalay moodooyinka luqadda, oo ay ku jiraan moodooyinka gacanta ku salaysan. Laakin, sida marar badan dhacda, shaqooyinka mudnaanta sare leh awgeed, hirgelinta fikradahani waligood ma aysan gaarin. Dhanka kale, soo saarista * code DT wali waa mid ka mid ah mawduucyada aan la horumarin ee Eclipse.

Dareen gaar ah, mashruuca Handly waxaa loogu talagalay in lagu xalliyo ku dhawaad ​​isla mashaakilaadka EMF, laakiin loogu talagalay moodooyinka gacanta ku salaysan, iyo kuwa ugu horreeya ee luqadda (tusaale ahaan, matalaya walxaha qaab-dhismeedka luqadaha barnaamijyada qaarkood). Hadafyada ugu muhiimsan ee la dejiyay marka la naqshadeynayo Handly ayaa ku taxan hoos:

  • Aqoonsiga waxyaabaha ugu muhiimsan ee aagga mawduuca.
  • Yaraynta dadaalka iyo hagaajinta tayada hirgelinta qaababka luqadda gacanta ku salaysan iyada oo loo marayo dib-u-isticmaalka koodka.
  • Bixinta API-heer meta oo midaysan moodooyinka soo baxay, taas oo ka dhigaysa suurtogalnimada in la abuuro qaybo IDE ah oo la wadaago oo la shaqeeya moodooyinka gacanta ku salaysan.
  • Dabacsanaanta iyo miisaanka.
  • La qabsiga Xtext (lakab gooni ah).

Si loo muujiyo fikradaha iyo hab-maamuuska caadiga ah, hirgelinta hadda jirta ee moodooyinka ku saleysan luqadda ayaa la lafa guray. Isku xirka muhiimka ah iyo hirgelinta aasaasiga ah ee ay bixiso Handly ayaa lagu muujiyay shaxanka. 8.

Dayax madoobaad sidii madal tignoolajiyadeed ee 1C:Aaladaha Horumarinta Ganacsiga
Bariis 8. Is-dhexgalyada caadiga ah iyo hirgelinta aasaasiga ah ee curiyeyaasha Handly

Interface-ka Ielement waxa uu ka dhigan yahay gacanta curiyaha oo waxa uu ka siman yahay qaybaha dhammaan noocyada Handly-ku-salaysan. Qaybta aan la taaban karin ayaa fulisa habka gacanta/jidhka guud (Jaantus. 9).

Dayax madoobaad sidii madal tignoolajiyadeed ee 1C:Aaladaha Horumarinta Ganacsiga
Bariis 9. Ielement iyo fulinta gacanta/jirka guud

Intaa waxa dheer, Handly waxa ay bixisaa hannaan guud oo lagu wargelinayo isbeddellada ku yimaadda canaasirta moodeelka (Jaantus. 10). Sida aad arki karto, waxay si guud ula mid tahay hababka ogeysiiska ee lagu hirgeliyay qaabka kheyraadka iyo qaabka Java, waxayna adeegsataa IelementDelta si ay u bixiso matalaad midaysan oo ah macluumaadka beddelka element.

Dayax madoobaad sidii madal tignoolajiyadeed ee 1C:Aaladaha Horumarinta Ganacsiga
Bariis 10. Isku xirka guud iyo hirgelinta aasaasiga ah ee habka ogeysiinta Handly

Qaybta Handly ee kor looga hadlay (Jaantus. 9 iyo 10) waxa loo isticmaali karaa in lagu matalo ku dhawaad ​​nooc kasta oo gacanta ku salaysan. Wixii abuuraya luqadeed moodooyinka, mashruucu wuxuu bixiyaa shaqeyn dheeraad ah - gaar ahaan, isdhexgalka caadiga ah iyo hirgelinta aasaasiga ah ee walxaha qaab dhismeedka qoraalka isha, waxa loogu yeero. xubno il (Jaantuska. 8). Isku xirka ISourceFile wuxuu matalaa faylka isha, iyo ISourceConstruct waxay u taagan tahay shay ku jira faylka isha. Fasalada aan la taaban karin ee SourceFile iyo SourceConstruct waxay hirgeliyaan habab guud oo lagu taageerayo la shaqaynta faylalka isha iyo cunsurradooda, tusaale ahaan, la shaqaynta kaydiyeyaasha qoraalka, ku xidhida isku-duwayaasha shay ku jira qoraalka isha, dib-u-heshiisiinta moodooyinka iyo waxyaalaha hadda jira ee kaydiyaha koobiga shaqaynaya iwm. Hirgelinta hababkan inta badan waa caqabad, Handly-na waxay si weyn u dhimi kartaa dadaalka lagu horumarinayo qaababka luqadda gacanta iyadoo la siinayo hirgelinta saldhig tayo sare leh.

Marka lagu daro hababka asaasiga ah ee kor ku taxan, Handly waxay siisaa kaabayaal loogu talagalay kaydinta qoraalka iyo sawir-qaadista, taageerada isdhexgalka ee tifaftirayaasha koodka isha (oo ay ku jiraan isdhexgalka ka baxsan sanduuqa ee tifaftiraha Xtext), iyo sidoo kale qaybo UI ah oo caadi ah La shaqee tifaftirayaasha koodhka isha: Moodooyinka gacanta ku leh sida qaab-dhismeedka. Si loo muujiyo awoodeeda, mashruucu wuxuu bixiyaa tusaalooyin dhowr ah, oo ay ku jiraan hirgelinta qaabka Java ee Handly. (Marka la barbar dhigo hirgelinta buuxda ee qaabka Java ee JDT, qaabkani si ula kac ah ayaa loo fududeeyay si loo caddeeyo.)

Sidaan hore u soo sheegnay, diiradda ugu weyn inta lagu guda jiro naqshadaynta bilowga ah ee Handly iyo horumarka xiga ayaa ahaa oo sii socday miisaanka iyo dabacsanaanta.

Mabda 'ahaan, moodooyinka gacanta ku salaysan ayaa si fiican u cabbiraya "naqshad". Tusaale ahaan, gacan-ku-hadalka/jidhku wuxuu kuu ogolaanayaa inaad xaddiddo xaddiga xusuusta uu isticmaalo moodeel. Laakiin waxaa sidoo kale jira nuances. Sidaa darteed, markii la tijaabiyey Handly si loo cabbiro, dhibaato ayaa laga helay hirgelinta habka ogeysiinta - markii tiro badan oo walxo ah la beddelay, dhisidda deltas waxay qaadatay waqti aad u badan. Waxaa soo baxday in dhibka la mid ah uu ku jiro qaabka JDT Java, kaas oo koodhka u dhigma mar la habeeyey. Waxaan hagaajinnay cayayaanka Handly waxaanan u diyaarinnay balastar la mid ah JDT, kaas oo si mahadnaq ah loo helay. Kani waa hal tusaale oo soo bandhigida Handly ee hirgalinta moodeelka jira ay noqon karto mid faa'iido leh, sababtoo ah xaaladdan cayayaann ah waxaa lagu hagaajin karaa hal meel oo keliya.

Si loo hirgeliyo Hannaanka qaab-fulinta moodeelka jira si farsamo ahaan macquul ah, maktabaddu waa inay lahaataa dabacsanaan weyn. Dhibka ugu weyni waa in la joogteeyo iswaafajinta dambe ee qaabka API. Dhibaatadan waxaa lagu xalliyay gudaha Ku habboon 0.5 iyadoo si cad loo kala saarayo qaabka API-ga u gaarka ah, oo uu qeexay oo si buuxda u maamulo horumariyuhu, kana soo jeeda API- heer- meta- midaysan oo ay bixiso maktabaddu. Tani ma aha oo kaliya ka dhigaysa farsamo ahaan suurtagal ah in la hirgeliyo Handly hirgelinta hadda jirta, laakiin sidoo kale waxay siinaysaa soo-saare qaab-dhismeedka cusub xorriyad weyn marka la naqshadeynayo API-ga.

Dabacsanaantu waxay leedahay dhinacyo kale sidoo kale. Tusaale ahaan, Handly ma soo rogo wax xaddidaad ah qaab dhismeedka moodeelka waxaana loo isticmaali karaa in lagu qaabeeyo luqadaha gaarka ah iyo ujeeddooyinka labadaba. Marka la dhisayo qaab dhismeedka faylka isha, Handly ma qorayso nooc gaar ah oo matalaad AST ah, mabda' ahaan, xitaa uma baahna joogitaanka AST lafteeda, sidaas darteed hubinta ku-habboonaanta ku dhawaad ​​qaab kasta oo wax lagu cabiro. Ugu dambeyntii, Handly waxay taageertaa is-dhexgalka buuxda ee goobta shaqada Eclipse, laakiin sidoo kale waxay si toos ah ula shaqeyn kartaa nidaamyada faylalka iyada oo ay ugu wacan tahay is-dhexgalka Nidaamka File Eclipse (EFS).

Nooca hadda Ku habboon 0.6 soo baxay December 2016. In kasta oo xaqiiqda ah in mashruucu uu hadda ku jiro xaalad ku-meel-gaar ah oo API-ga aan wali la hagaajin, Handly ayaa horeyba loogu isticmaalay laba badeecooyin ganacsi oo waaweyn kuwaas oo qaatay khatarta ah inay u dhaqmaan sida "korsadayaasha hore", iyo, waa inaan dhahaa, weli ha ka shallayn.

Sida kor ku xusan, mid ka mid ah alaabooyinkan waa 1C: Aaladaha Horumarinta Ganacsiga, halkaas oo Handly loo isticmaalo bilawga bilawga si loo qaabeeyo walxaha qaabdhismeedka heerka sare ah ee 1C: luuqadaha ganacsiga sida luuqada barnaamijka iyo luuqada weydiinta. . Badeeco kale ayaa ah mid aan caan ku ahayn dadweynaha guud. Tani Codasip Studio, jawi nashqad midaysan oo loogu talagalay processor-ka habraaca hab-raaca hab-raaca (ASIP), oo loo isticmaalo gudaha shirkadda Czech ee Codasip lafteeda iyo macaamiisheeda, oo ay ku jiraan AMD, CCN, mobileye, Naqshadayaasha Sigma. Codasip waxa uu wax soo saarka Handly u isticmaalayay ilaa 2015, laga bilaabo nooca Handly 0.2. Siideynta ugu dambeysay ee Codasip Studio waxay isticmaashaa nooca 0.5, ee la sii daayay Juun 2016. Ondřej Ilčík, oo hogaaminaya horumarinta IDE ee Codasip, ayaa la xidhiidha mashruuca, isaga oo siinaya jawaab celin muhiim ah isaga oo ka wakiil ah "korsaday qolo saddexaad". Waxa uu xitaa awooday inuu helo wakhti firaaqo ah si uu si toos ah uga qaybqaato horumarinta mashruuca, hirgelinta lakabka UI (~ 4000 khadadka code) mid ka mid ah tusaalooyinka Handly, qaabka Java. Macluumaad dheeraad ah oo faahfaahsan oo ku saabsan isticmaalka Handly ee kuwa korsaday ayaa laga heli karaa bogga Guusha Shaqadeenna mashruuc.

Waxaan rajeyneynaa ka dib markii la sii daayo nooca 1.0 oo leh dammaanad xasilloonida API iyo mashruuca ka tagaya gobolka soo-jiidashada, Handly wuxuu yeelan doonaa korsadayaal cusub. Dhanka kale, mashruucu wuxuu sii waday inuu tijaabiyo oo uu sii wanaajiyo API-ga, isagoo siidaaya laba "weyn" oo la sii daayo sannadkii - Juun (oo la mid ah taariikhda la sii daayo Eclipse isku mid ah) iyo Disembar, bixinta jadwal la saadaalin karo oo dadka korsanaya ay ku tiirsanaan karaan. Waxaan sidoo kale ku dari karnaa in "heerka cayayaanka" mashruuca uu weli yahay heer hoose oo joogto ah oo Handly uu si kalsooni leh uga shaqeynayey alaabta hore ee korsaday ilaa noocyadii ugu horeeyay. Si aad u sii sahamiso Eclipse Handly, waxaad isticmaali kartaa Bilawga Casharka и Dulmarka dhismaha.

Source: www.habr.com

Add a comment