Eclipse mar àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt

Is dòcha Eclipse o chionn fhada chan eil feum air ro-ràdh sònraichte. Tha mòran dhaoine eòlach air Eclipse le taing dha na h-innealan leasachaidh Eclipse Java (JDT). Is e an Java IDE stòr fosgailte mòr-chòrdte seo a tha a’ mhòr-chuid de luchd-leasachaidh a ’ceangal ris an fhacal“ Eclipse ”. Ach, tha Eclipse an dà chuid na àrd-ùrlar leudachail airson a bhith ag amalachadh innealan leasachaidh (Eclipse Platform), agus grunn IDEan air an togail air a bhunait, JDT nam measg. Is e Eclipse an dà chuid Pròiseact Eclipse, am pròiseact àrd-ìre a bhios a’ co-òrdanachadh leasachadh Àrd-ùrlar Eclipse agus an JDT, agus an Eclipse SDK, toradh lìbhrigidh an leasachaidh sin. Mu dheireadh, tha Eclipse na bhun-stèidh fosgailte le coimhearsnachd mhòr de phròiseactan, agus chan eil iad uile sgrìobhte ann an Java no co-cheangailte ri innealan leasachaidh (mar eisimpleir, pròiseactan Eclipse IoT и Saidheans Eclipse). Tha saoghal Eclipse glè eadar-mheasgte.

Anns an artaigil seo, a tha na shealladh farsaing ann an nàdar, feuchaidh sinn ri coimhead air cuid de bhunaitean ailtireachd Eclipse mar àrd-ùrlar airson innealan leasachaidh aonaichte a thogail agus beachd tùsail a thoirt seachad air na pàirtean Eclipse a tha nam bunait don teicneòlas àrd-ùrlar airson an “Configurator ùr” 1C: Iomairt. 1C: iomairt leasachaidh innealan. Gu dearbh, tha e do-sheachanta gum bi ath-sgrùdadh mar seo gu ìre mhòr uachdarach agus caran cuibhrichte, a ’toirt a-steach leis gu bheil sinn a’ cuimseachadh chan ann a-mhàin air luchd-leasachaidh Eclipse mar an luchd-èisteachd cuimsichte. Ach, tha sinn an dòchas gum bi eadhon luchd-leasachaidh eòlach Eclipse comasach air fiosrachadh inntinneach a lorg san artaigil. Mar eisimpleir, bruidhnidh sinn mu aon de na “dìomhair Eclipse”, pròiseact an ìre mhath ùr agus air nach eil mòran eòlach. Eclipse le làimh, a chaidh a stèidheachadh agus le taic bho 1C.
Eclipse mar àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt

Ro-ràdh gu ailtireachd Eclipse

Bheir sinn sùil an-toiseach air cuid de thaobhan coitcheann de ailtireachd Eclipse a’ cleachdadh an eisimpleir Eclipse innealan leasachaidh java (JDT). Chan eil an taghadh de JDT mar eisimpleir gun fhiosta. Is e seo a’ chiad àrainneachd leasachaidh amalaichte a nochd ann an Eclipse. Chaidh pròiseactan * DT Eclipse eile, leithid Eclipse C / C ++ Development Tooling (CDT), a chruthachadh nas fhaide air adhart agus fhuair iad iasad air an dà chuid prionnsapalan ailtireachd bunaiteach agus pìosan còd stòr fa leth bho JDT. Tha bunaitean na h-ailtireachd a tha air a chuir sìos ann an JDT buntainneach chun an latha an-diugh airson cha mhòr IDE sam bith a chaidh a thogail air mullach an Àrd-ùrlar Eclipse, a’ toirt a-steach 1C: Innealan Leasachaidh Iomairt.

An toiseach, bu chòir a thoirt fa-near gu bheil Eclipse air a chomharrachadh le còmhdach ailtireil a tha gu math soilleir, le sgaradh gnìomh neo-eisimeileach cànain bho ghnìomhachd a chaidh a dhealbhadh gus taic a thoirt do chànanan prògramaidh sònraichte, agus sgaradh phàirtean “bunaiteach” neo-eisimeileach UI bho phàirtean co-cheangailte. le eadar-aghaidh cleachdaiche taiceil.

Mar sin, tha Àrd-ùrlar Eclipse a’ mìneachadh bun-structar cumanta, neo-eisimeileach a’ chànain, agus tha na h-innealan leasachaidh Java a’ cur Java IDE làn-nochdadh ri Eclipse. Tha an dà chuid Àrd-ùrlar Eclipse agus an JDT air an dèanamh suas de ghrunn phàirtean, agus buinidh gach fear dhiubh do “cridhe” neo-eisimeileach UI no còmhdach UI (Figear 1).

Eclipse mar àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt
Reis. 1. Àrd-ùrlar Eclipse agus JDT

Leig leinn liosta de na prìomh phàirtean den Àrd-ùrlar Eclipse:

  • Runtime - A’ mìneachadh bun-structar nam plugan. Tha Eclipse air a chomharrachadh le ailtireachd modular. Gu bunaiteach, tha Eclipse na chruinneachadh de “puingean leudachaidh” agus “leudachadh”.
  • Àite-obrach - A’ riaghladh aon phròiseact no barrachd. Tha pròiseact air a dhèanamh suas de phasganan agus faidhlichean a tha air am mapadh gu dìreach chun t-siostam faidhle.
  • Uidheam widget àbhaisteach (SWT) - A’ toirt seachad eileamaidean eadar-aghaidh cleachdaiche bunaiteach ceangailte ris an t-siostam obrachaidh.
  • J Aghaidh - A’ toirt seachad grunn fhrèamaichean UI a chaidh a thogail a bharrachd air SWT.
  • Meur-obrach - A’ mìneachadh paradigm UI Eclipse: luchd-deasachaidh, beachdan, seallaidhean.

Feumar a ràdh gu bheil an Àrd-ùrlar Eclipse cuideachd a ’toirt seachad mòran phàirtean feumail eile airson innealan leasachaidh aonaichte a thogail, a’ toirt a-steach Debug, Compare, Search, agus Sgioba. Bu chòir iomradh sònraichte a thoirt air JFace Text - am bunait airson “luchd-deasachaidh snasail” a thogail de chòd stòr. Gu mì-fhortanach, chan eil eadhon sgrùdadh mallachdach air na co-phàirtean sin, a bharrachd air na co-phàirtean còmhdach UI, comasach taobh a-staigh raon an artaigil seo, agus mar sin anns a’ chòrr den roinn seo bidh sinn gar cuingealachadh fhèin gu sealladh farsaing air na prìomh phàirtean “bunaiteach” de Àrd-ùrlar Eclipse agus JDT.

Ùine ruith bunaiteach

Tha bun-structar plugan Eclipse stèidhichte air OSGi agus air a thoirt seachad leis a’ phròiseact Eclipse Equinox. Tha gach plugan Eclipse na phasgan OSGi. Tha an sònrachadh OSGi a’ mìneachadh, gu sònraichte, dòighean airson dreachdadh agus fuasgladh eisimeileachd. A bharrachd air na h-innealan àbhaisteach sin, tha Equinox a’ toirt a-steach a’ bhun-bheachd puingean leudachaidh. Faodaidh gach plugan na puingean leudachaidh aige fhèin a mhìneachadh, agus cuideachd comas-gnìomh a bharrachd (“ leudachadh ”) a thoirt a-steach don t-siostam a’ cleachdadh puingean leudachaidh a tha air am mìneachadh leis na h-aon plugins no plugins eile. Tha tuairisgeul mionaideach sam bith air na h-innealan OSGi agus Equinox taobh a-muigh raon an artaigil seo. Na toir sinn an aire ach gu bheil modularization ann an Eclipse gu h-iomlan (tha fo-shiostam sam bith, Runtime nam measg, air a dhèanamh suas de aon plugins no barrachd), agus cha mhòr a h-uile dad ann an Eclipse na leudachadh. A bharrachd air an sin, bha na prionnsapalan sin freumhaichte ann an ailtireachd Eclipse fada mus deach OSGi a thoirt a-steach (aig an àm sin chleachd iad an teicneòlas aca fhèin, gu math coltach ri OSGi).

Àite-obrach bunaiteach

Bidh cha mhòr àrainneachd leasachaidh aonaichte a chaidh a thogail air mullach Àrd-ùrlar Eclipse ag obair le àite-obrach Eclipse. Is e an t-àite-obrach a bhios mar as trice a’ toirt a-steach còd stòr an tagraidh a chaidh a leasachadh san IDE. Mapaichean àite-obrach gu dìreach chun t-siostam faidhle agus tha e air a dhèanamh suas de phròiseactan anns a bheil pasganan agus faidhlichean. Canar na pròiseactan, na pasganan agus na faidhlichean sin goireasan àite-obrach. Tha buileachadh àite-obrach ann an Eclipse a’ frithealadh mar thasglann an co-cheangal ris an t-siostam faidhle, a tha ga dhèanamh comasach luathachadh mòr a dhèanamh air slighe na craoibhe ghoireasan. A bharrachd air an sin, tha àite-obrach a’ toirt seachad grunn sheirbheisean a bharrachd, nam measg inneal fios airson atharrachaidhean stòrais и bun-structair togail mean air mhean.

Tha uallach air a’ phàirt Goireasan Bunaiteach (org.eclipse.core.resources) airson taic a thoirt don àite-obrach agus na goireasan aige. Gu sònraichte, tha am pàirt seo a’ toirt cothrom prògramaichte don àite-obrach san fhoirm modailean stòrais. Gus obrachadh gu h-èifeachdach leis a’ mhodail seo, feumaidh luchd-dèiligidh dòigh shìmplidh air ceangal gu goireas a thaisbeanadh. Anns a 'chùis seo, bhiodh e ion-mhiannaichte a bhith a' falach an nì a tha gu dìreach a 'stòradh staid a' ghoireas sa mhodail bho ruigsinneachd luchd-cleachdaidh. Rud eile, ann an cùis, mar eisimpleir, cuir às do fhaidhle, dh’ fhaodadh an neach-dèiligidh cumail a ’dol a’ cumail rud nach eil sa mhodail tuilleadh, leis na duilgheadasan a tha romhainn. Bidh Eclipse a’ fuasgladh na duilgheadas seo le bhith a’ cleachdadh rudeigin ris an canar làimhseachadh stòras. Tha Handle ag obair mar iuchair (chan eil fios aige ach air an t-slighe chun ghoireas san àite-obrach) agus bidh e gu tur a’ cumail smachd air ruigsinneachd don nì modail a-staigh, a bhios gu dìreach a’ stòradh fiosrachadh mu staid a’ ghoireas. Tha an dealbhadh seo na atharrachadh den phàtran Làimhseachadh / corp.

Reis. Tha Figear 2 a’ sealltainn gnàthasan-cainnte Handle/Boy mar a chaidh a chur an sàs sa mhodail stòrais. Tha an eadar-aghaidh IResource a’ riochdachadh làimhseachadh goireas agus tha e na API, eu-coltach ris a’ chlas Goireas, a bhios a’ cur an eadar-aghaidh seo an gnìomh, agus an clas ResourceInfo, a tha a’ riochdachadh a’ chuirp, nach eil nan APIan. Tha sinn a’ daingneachadh nach eil fios aig an neach-làimhseachaidh ach air an t-slighe chun ghoireas an coimeas ri freumh an àite-obrach agus nach eil ceangal ann ri fiosrachadh ghoireasan. Tha stuthan fiosrachaidh stòrais a’ dèanamh suas “craobh eileamaid” ris an canar. Tha an structar dàta seo air a thoirt gu buil gu tur mar chuimhneachan. Gus an t-eisimpleir fiosrachaidh stòrais a lorg a tha co-chosmhail ri cas, thathas a’ dol thairis air a’ chraobh eileamaid a rèir an t-slighe a tha air a stòradh san làmh sin.

Eclipse mar àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt
Reis. 2. IResource and ResourceInfo

Mar a chì sinn nas fhaide air adhart, tha dealbhadh bunaiteach a’ mhodail ghoireasan (is dòcha gu bheil sinn ga ainmeachadh stèidhichte air làimhseachadh) air a chleachdadh ann an Eclipse airson modalan eile cuideachd. Airson a-nis, leigamaid liosta de chuid de fheartan sònraichte an dealbhaidh seo:

  • Tha làimhseachadh na nì luach. Is e nithean luach a th’ ann an nithean nach gabh atharrachadh aig nach eil co-ionannachd stèidhichte air dearbh-aithne. Faodar stuthan mar seo a chleachdadh gu sàbhailte mar iuchair ann an soithichean hashed. Faodaidh grunn eisimpleirean de làimhseachadh iomradh a thoirt air an aon ghoireas. Airson coimeas a dhèanamh dhiubh, feumaidh tu an dòigh equals (Rud) a chleachdadh.
  • Tha Handle a’ mìneachadh giùlan goireas, ach chan eil fiosrachadh ann mu staid a’ ghoireas (is e an aon dàta a bhios e a’ stòradh an “iuchair”, an t-slighe chun ghoireas).
  • Faodaidh Handle iomradh a thoirt air goireas nach eil ann (an dàrna cuid goireas nach deach a chruthachadh fhathast, no goireas a chaidh a dhubhadh às mar-thà). Faodar sgrùdadh a dhèanamh air gu bheil goireas ann a’ cleachdadh modh IResource.exists().
  • Faodar cuid de ghnìomhachdan a chuir an gnìomh a-mhàin stèidhichte air fiosrachadh a tha air a stòradh san làmh fhèin (obraichean làimhseachaidh a-mhàin). Is e eisimpleirean IResource.getParent(), getFullPath(), msaa. Chan fheum an goireas a bhith ann gus an soirbhich le leithid de dh’ obair. Bidh gnìomhachd a dh ’fheumas goireas a bhith ann gus soirbheachadh a’ tilgeil CoreException mura h-eil an goireas ann.

Tha Eclipse a’ toirt seachad inneal èifeachdach airson fios a chuir gu atharrachaidhean ann an goireasan àite-obrach (Figear 3). Faodaidh goireasan atharrachadh an dàrna cuid mar thoradh air gnìomhan a chaidh a dhèanamh taobh a-staigh an Eclipse IDE fhèin no mar thoradh air sioncronadh leis an t-siostam faidhle. Anns gach cùis, gheibh teachdaichean a bhios a’ gabhail ri brathan fiosrachadh mionaideach mu na h-atharrachaidhean ann an cruth “resource deltas”. Tha delta a’ toirt cunntas air atharrachaidhean eadar dà staid de chraobh goireas àite-obrach (fo-) agus is e craobh a th’ ann fhèin, le gach nód a’ toirt cunntas air atharrachadh air goireas agus anns a bheil liosta de deltas aig an ath ìre a tha a’ toirt cunntas air atharrachaidhean air goireasan cloinne.

Eclipse mar àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt
Reis. 3. IResourceChangeEvent agus IResourceDelta

Tha na feartan a leanas aig an inneal fios stèidhichte air goireasan deltas:

  • Thathas a’ toirt iomradh air aon atharrachadh agus mòran atharrachaidhean a’ cleachdadh an aon structar, leis gu bheil an delta air a thogail a’ cleachdadh prionnsapal co-dhèanamh ath-chuairteach. Faodaidh teachdaichean ballrachd fiosan atharrachadh ghoireasan a phròiseasadh a’ cleachdadh teàrnadh ath-chuairteach tro chraobh deltas.
  • Tha fiosrachadh iomlan anns an delta mu atharrachaidhean air a’ ghoireas, a’ gabhail a-steach a ghluasad agus/no atharrachaidhean anns na “comharran” co-cheangailte ris (mar eisimpleir, tha mearachdan cruinneachaidh air an riochdachadh mar chomharran).
  • Leis gu bheilear a’ toirt iomradh air goireasan tron ​​làmh, faodaidh delta iomradh nàdarrach a thoirt air goireas iomallach.

Mar a chì sinn a dh’ aithghearr, tha na prìomh phàirtean de dhealbhadh an uidheamachd fios atharrachadh modail stòrais cuideachd buntainneach airson modalan eile stèidhichte air làimhseachadh.

JDT Core

Tha modal goireas àite-obrach Eclipse na mhodail bunaiteach cànain-agnostic. Tha am pàirt JDT Core (plugin org.eclipse.jdt.core) a’ toirt seachad API airson a bhith a’ seòladh agus a’ sgrùdadh structar an àite-obrach bho shealladh Java, am “modal Java” ris an canar (Java modail). Tha an API seo air a mhìneachadh a thaobh eileamaidean Java, an taca ris a’ mhodail stòrais bunaiteach API, a tha air a mhìneachadh a thaobh pasganan is faidhlichean. Tha prìomh eadar-aghaidh craobh eileamaid Java air a shealltainn ann am Fig. 4.

Eclipse mar àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt
Reis. 4. Java Model Elements

Bidh am modal Java a’ cleachdadh an aon gnàthasan-cainnt / bodhaig ris a’ mhodail stòrais (Figear 5). Is e IJavaElement an làmh, agus tha JavaElementInfo a’ cluich pàirt bodhaig. Tha an eadar-aghaidh IJavaElement a’ mìneachadh protocol a tha cumanta do gach eileamaid Java. Tha cuid de na dòighean aige làimhseachadh a-mhàin: getElementName(), getParent(), etc. Bidh an nì JavaElementInfo a’ stòradh staid an eileamaid fhreagarrach: an structar agus na feartan aige.

Eclipse mar àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt
Reis. 5. IJavaElement agus JavaElementInfo

Tha beagan eadar-dhealachaidhean ann am modal Java ann a bhith a’ buileachadh an dealbhadh làimhseachaidh / bodhaig bunaiteach an taca ris a’ mhodail stòrais. Mar a chaidh a ràdh gu h-àrd, anns a 'mhodail ghoireasan, tha an craobh eileamaid, aig a bheil nodan nan nithean fiosrachaidh stòrais, gu tur air a chumail mar chuimhneachan. Ach faodaidh àireamh mòran nas motha de eileamaidean a bhith aig a’ mhodail Java na an craobh stòrais, oir tha e cuideachd a’ riochdachadh structar a-staigh fhaidhlichean .java agus .class: seòrsaichean, raointean, agus dòighean-obrach.

Gus an craobh iomlan de eileamaidean a sheachnadh gu tur mar chuimhneachan, bidh buileachadh modail Java a’ cleachdadh tasgadan LRU de mheud cuibhrichte de fhiosrachadh eileamaidean, far a bheil an iuchair a’ làimhseachadh IJavaElement. tha nithean fiosrachaidh eileamaid air an cruthachadh a rèir iarrtas mar a thèid craobh na h-eileamaid a sheòladh. Anns a 'chùis seo, thèid na stuthan as lugha a chleachdar fhuadach bhon tasgadan, agus tha caitheamh cuimhne a' mhodail fhathast cuingealaichte ris a 'mheud tasgadan ainmichte. Is e buannachd eile a tha seo de dhealbhadh stèidhichte air làimhseachadh, a tha gu tur a’ falach mion-fhiosrachadh gnìomhachaidh mar sin bho chòd an neach-dèiligidh.

Tha an dòigh airson fios a chuir gu atharrachaidhean air eileamaidean Java sa chumantas coltach ris an dòigh airson sùil a chumail air atharrachaidhean air goireasan àite-obrach air an deach beachdachadh gu h-àrd. Bidh neach-dèiligidh a tha airson sùil a chumail air atharrachaidhean ann am modal Java a’ gabhail ri brathan, a tha air an riochdachadh mar nì ElementChangedEvent anns a bheil IJavaElementDelta (Figear 6).

Eclipse mar àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt
Reis. 6. ElementChangedEvent agus IJavaElementDelta

Chan eil fiosrachadh anns a’ mhodal Java mu bhuidhnean modh no rùn ainm, mar sin airson mion-sgrùdadh mionaideach air còd a chaidh a sgrìobhadh ann an Java, tha JDT Core a’ toirt seachad modal a bharrachd (neo-làimhseachail): craobh syntax abstract (craobh co-chòrdadh abstract, AST). Tha AST a’ riochdachadh toradh parsadh an teacsa tùsail. Bidh nodan AST a’ freagairt ri eileamaidean de structar modal stòr (fiosrachaidhean, gnìomhaichean, abairtean, msaa) agus tha fiosrachadh ann mu cho-chomharran an eileamaid fhreagarrach anns an teacsa stòr, a bharrachd air (gu roghnach) fiosrachadh fuasglaidh ainm ann an cruth cheanglaichean gu ris an canar ceangail. Is e ceanglachan nithean a tha a’ riochdachadh aonadan ainmichte, leithid seòrsaichean, dòighean-obrach, agus caochladairean, a tha aithnichte don neach-cruinneachaidh. Eu-coltach ri nodan AST, a tha nan craobh, bidh ceangalaichean a’ toirt taic do thar-iomradh agus mar as trice bidh iad a’ cruthachadh graf. Is e an clas eas-chruthach ASTNode an clas bunaiteach cumanta airson a h-uile nod AST. Tha fo-chlasaichean ASTNode a’ freagairt ri structaran sònraichte syntactic den chànan Java.

Leis gum faod craobhan co-chòrdadh mòran cuimhne ithe, chan eil JDT a’ tasgadh ach aon AST airson an deasaiche gnìomhach. Eu-coltach ri modal Java, tha an AST mar as trice air fhaicinn mar mhodal “meadhanach,” “sealach” agus cha bu chòir do bhuill a bhith air an ainmeachadh le teachdaichean taobh a-muigh co-theacs na h-obrach a lean gu cruthachadh an AST.

Tha na trì modalan clàraichte (modail Java, AST, ceangail) còmhla mar bhunait airson “innealan leasachaidh tuigseach” a thogail ann an JDT, a ’toirt a-steach deasaiche Java cumhachdach le diofar“ luchd-cuideachaidh ”, diofar ghnìomhan airson a bhith a’ giullachd còd stòr (a ’toirt a-steach eagrachadh liosta in-mhalairt. ainmean agus cruth a rèir an stoidhle àbhaisteach), innealan sgrùdaidh agus ath-fhactaraidh. Anns a 'chùis seo, tha àite sònraichte aig a' mhodail Java, oir is e sin a tha air a chleachdadh mar bhunait airson riochdachadh lèirsinneach de structar an tagraidh a thathar a 'leasachadh (mar eisimpleir, ann am Package Explorer, Outline, Search, Call Rangy, agus Seòrsa rangachd).

Co-phàirtean Eclipse air an cleachdadh ann an 1C: Innealan Leasachaidh Iomairt

Ann am Fig. Tha Figear 7 a’ sealltainn na pàirtean Eclipse a tha nam bunait don àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt.

Eclipse mar àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt
Reis. 7. Eclipse mar àrd-ùrlar airson 1C: Innealan Leasachaidh Iomairt

Àrd-ùrlar Eclipse a’ toirt seachad bun-structar bunaiteach. Thug sinn sùil air cuid de thaobhan den bhun-structar seo anns an earrainn mu dheireadh.

Frèam Modail Eclipse (EMF) a’ toirt seachad dòigh coitcheann airson dàta structaraichte a mhodaladh. Tha EMF ceangailte ris an Àrd-ùrlar Eclipse, ach faodar a chleachdadh air leth cuideachd ann an tagraidhean àbhaisteach Java. Gu math tric, tha luchd-leasachaidh Eclipse ùr eòlach air EMF mu thràth, ged nach eil iad fhathast a’ tuigsinn cho iom-fhillte ‘s a tha Àrd-ùrlar Eclipse. Is e aon de na h-adhbharan airson a leithid de thoileachas mòr an dealbhadh uile-choitcheann, a tha a ’toirt a-steach, am measg rudan eile, API meta-ìre aonaichte, a leigeas leat obrachadh le modail EMF sam bith ann an dòigh choitcheann. Bidh na buileachadh bunaiteach airson nithean modail air an toirt seachad le EMF agus an fho-shiostam airson còd modail a ghineadh stèidhichte air a ’mhodal meta gu mòr a’ meudachadh astar an leasachaidh agus a ’lughdachadh an àireamh de mhearachdan. Tha innealan ann an EMF cuideachd airson modalan a chuir ann an sreath, sùil a chumail air atharrachaidhean sa mhodail, agus mòran a bharrachd.

Coltach ri inneal fìor adhbhar coitcheann, tha EMF freagarrach airson fuasgladh fhaighinn air raon farsaing de dhuilgheadasan modaladh, ach dh’ fhaodadh gum bi feum aig cuid de chlasaichean de mhodalan (mar eisimpleir, na modalan làimhseachaidh a chaidh a dheasbad gu h-àrd) air innealan modaladh nas speisealta. Is e obair gun taing a th’ ann a bhith a’ bruidhinn mu EMF, gu sònraichte taobh a-staigh crìochan cuibhrichte aon artaigil, leis gur e cuspair leabhar air leth a tha seo, agus leabhar caran tiugh. Cha leig sinn a leas ach a thoirt fa-near gun tug an siostam coitcheann de chàileachd àrd a tha mar bhunait air an EMF cead do raon iomlan de phròiseactan a tha coisrigte do mhodaladh a bhreith, a tha air an toirt a-steach don phròiseact àrd-ìre. Modail Eclipse còmhla ris an EMF fhèin. Is e aon phròiseact den leithid Eclipse Xtext.

Eclipse Xtext a’ toirt seachad bun-structar “modaileadh teacsa”. Cleachdadh xtext ANTLR airson a bhith a’ parsadh an teacsa tùsail agus EMF airson a bhith a’ riochdachadh an ASG a thig às (graf semantach geàrr, a tha gu ìre mhòr na mheasgachadh de AST agus ceanglachan), ris an canar cuideachd am “modail semantach”. Tha gràmar a’ chànain air a dhealbhadh le Xtext air a mhìneachadh ann an cànan Xtext fhèin. Leigidh seo leat chan ann a-mhàin cunntas gràmair a ghineadh airson ANTLR, ach cuideachd inneal sreathachaidh AST fhaighinn (ie tha Xtext a’ toirt seachad an dà chuid parser agus unparser), sanas co-theacsa, agus grunn phàirtean cànain eile. Air an làimh eile, chan eil an cànan gràmair a thathar a’ cleachdadh ann an Xtext cho sùbailte ri, can, an cànan gràmair a thathar a’ cleachdadh ann an ANTLR. Mar sin, uaireannan feumar “lùbadh” an cànan gnìomhaichte gu Xtext, rud nach eil na dhuilgheadas mar as trice ma tha sinn a’ bruidhinn mu chànan a bhith air a leasachadh bhon fhìor thoiseach, ach a dh’ fhaodadh a bhith neo-iomchaidh airson cànanan le co-chòrdadh stèidhichte mar-thà. A dh’ aindeoin sin, is e Xtext an-dràsta an inneal as aibidh, làn feart, agus as ioma-chruthach ann an Eclipse airson cànanan prògramaidh a thogail agus innealan leasachaidh dhaibh. Gu sònraichte, tha e na inneal air leth freagarrach airson prototyping luath cànanan a tha sònraichte don àrainn (cànan a tha sònraichte do dh'àrainn, DSL). A bharrachd air an “cridhe cànain” gu h-àrd a tha stèidhichte air ANTLR agus EMF, tha Xtext a’ toirt seachad mòran phàirtean feumail aig ìre àrd, a’ gabhail a-steach innealan clàr-amais, togail mean air mhean, “neach-deasachaidh snasail”, agus mòran, mòran a bharrachd, ach a’ fàgail a-mach làimhseachadh- modailean cànain stèidhichte. Coltach ri EMF, tha Xtext na chuspair a tha airidh air leabhar air leth, agus cha mhòr gun urrainn dhuinn eadhon bruidhinn goirid mu na comasan aige an-dràsta.

1C: Bidh Innealan Leasachaidh Iomairt gu gnìomhach a’ cleachdadh an dà chuid EMF fhèin agus grunn phròiseactan Modeling Eclipse eile. Gu sònraichte, tha Xtext mar aon de na bunaitean airson innealan leasachaidh airson a leithid 1C:Cànanan iomairt mar an cànan prògramaidh agus cànan ceist. Is e bunait eile airson na h-innealan leasachaidh sin am pròiseact Eclipse Handly, air am bi sinn a’ bruidhinn nas mionaidiche (de na pàirtean Eclipse air an liostadh, tha e fhathast mar an fheadhainn as lugha aithnichte).

Eclipse le làimh, fo-phròiseact den phròiseact àrd-ìre Eclipse Technology, air nochdadh mar thoradh air tabhartas còd tùsail don Eclipse Foundation a rinn 1C ann an 2014. Bhon uairsin, tha 1C air a bhith a’ toirt taic do leasachadh a’ phròiseict: Tha luchd-comadaidh làimhe nan luchd-obrach aig a’ chompanaidh. Tha am pròiseact beag, ach tha e ann an àite sònraichte ann an Eclipse: is e a phrìomh amas taic a thoirt do leasachadh mhodalan stèidhichte air làimhseachadh.

Chaidh beachdachadh gu h-àrd air prionnsapalan ailtireachd bunaiteach mhodalan stèidhichte air làimhseachadh, leithid gnàthasan-cainnte làimhseachaidh/bodhaig, a’ cleachdadh a’ mhodail ghoireas agus am modal Java mar eisimpleirean. Thug e fa-near cuideachd gu bheil an dà chuid am modail ghoireasan agus am modal Java nam bunaitean cudromach airson innealan leasachaidh Eclipse Java (JDT). Agus leis gu bheil ailtireachd coltach ri JDT aig cha mhòr a h-uile pròiseact * DT Eclipse, cha bhiodh e na fhìor iomadachd a ràdh gu bheil modalan stèidhichte air làimhseachadh mar bhunait air mòran, mura h-eil a h-uile IDE air an togail air mullach Àrd-ùrlar Eclipse. Mar eisimpleir, tha modal C / C ++ stèidhichte air làimhseachadh aig an Eclipse C / C ++ Development Tooling (CDT) aig a bheil an aon àite ann an ailtireachd CDT agus a tha aig modal Java anns an JDT.

Ro Handly, cha do thairg Eclipse leabharlannan sònraichte airson modalan cànain stèidhichte air làimhseachadh a thogail. Chaidh na modailean a th’ ann an-dràsta a chruthachadh sa mhòr-chuid le bhith ag atharrachadh gu dìreach còd modail Java (aka copy/paste), ann an cùisean far a bheil e a’ ceadachadh Cead Poblach Eclipse (EPL). (Gu dearbh, mar as trice chan e cùis laghail a tha seo airson, can, pròiseactan Eclipse fhèin, ach chan ann airson toraidhean stòr dùinte.) A bharrachd air cho duilich ‘s a tha e, tha an dòigh seo a’ toirt a-steach duilgheadasan ainmeil: dùblachadh còd air a thoirt a-steach nuair a bhios tu ag atharrachadh gu mearachdan, etc. Is e an rud a tha nas miosa gu bheil na modailean a thig às a’ fuireach nan “rudan annta fhèin” agus nach eil iad a’ gabhail brath air a’ chomas airson aonachadh. Ach le bhith a’ dealachadh bhun-bheachdan agus phròtacalan cumanta airson modalan cànain stèidhichte air làimhseachadh dh’ fhaodadh sin co-phàirtean ath-chleachdadh a chruthachadh airson a bhith ag obair còmhla riutha, coltach ris na thachair ann an cùis EMF.

Chan e nach do thuig Eclipse na cùisean sin. Air ais ann an 2005 Màrtainn Aeschlimann, a’ toirt geàrr-chunntas air an eòlas ann a bhith a’ leasachadh prototype CDT, argamaid an fheum air bun-structar coitcheann a chruthachadh airson modalan cànain, a’ gabhail a-steach modalan stèidhichte air làimhseachadh. Ach, mar a thachras gu tric, mar thoradh air gnìomhan prìomhachais nas àirde, cha deach buileachadh nam beachdan sin timcheall air. Aig an aon àm, tha factarachadh còd * DT fhathast mar aon de na cuspairean neo-leasaichte ann an Eclipse.

Ann an dòigh sònraichte, tha am pròiseact Handly air a dhealbhadh gus fuasgladh fhaighinn air timcheall air na h-aon dhuilgheadasan ri EMF, ach airson modalan stèidhichte air làimhseachadh, agus gu sònraichte feadhainn cànain (ie, a’ riochdachadh eileamaidean de structar cuid de chànan prògramaidh). Tha na prìomh amasan a chaidh a shuidheachadh nuair a thathar a’ dealbhadh Handly air an liostadh gu h-ìosal:

  • Comharrachadh nam prìomh ghearraidhean den raon cuspair.
  • Lùghdachadh oidhirp agus leasachadh càileachd buileachadh mhodalan cànain stèidhichte air làimhseachadh tro ath-chleachdadh còd.
  • A’ toirt seachad API meta-ìre aonaichte dha na modailean a thig às, ga dhèanamh comasach co-phàirtean IDE cumanta a chruthachadh a bhios ag obair le modalan stèidhichte air làimhseachadh cànain.
  • Sùbailteachd agus scalability.
  • Amalachadh le Xtext (ann an sreath air leth).

Gus bun-bheachdan agus protocolaidhean cumanta a shoilleireachadh, chaidh mion-sgrùdadh a dhèanamh air buileachadh mhodalan stèidhichte air làimhseachadh cànain. Tha na prìomh eadar-aghaidh agus buileachadh bunaiteach a thug Handly seachad air an sealltainn ann am Fig. 8.

Eclipse mar àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt
Reis. 8. Coitcheann eadar-aghaidh agus buileachadh bunaiteach Handly eileamaidean

Tha an eadar-aghaidh IElement a’ riochdachadh làmh eileamaid agus tha e cumanta do eileamaidean de gach modal stèidhichte air Handly. Bidh an clas eas-chruthach Element a’ buileachadh an uidheamachd làimhseachaidh / bodhaig coitcheann (Fig. 9).

Eclipse mar àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt
Reis. 9. IElement agus làimhseachadh / corp coitcheann

A bharrachd air an sin, tha Handly a’ toirt seachad uidheamachd coitcheann airson fios a chuir mu atharrachaidhean ann an eileamaidean modail (Fig. 10). Mar a chì thu, tha e gu ìre mhòr coltach ris na h-innealan fios a chaidh a chuir an gnìomh sa mhodail ghoireasan agus ann am modal Java, agus bidh e a’ cleachdadh IElementDelta gus riochdachadh aonaichte de fhiosrachadh atharrachadh eileamaid a thoirt seachad.

Eclipse mar àrd-ùrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt
Reis. 10. Eadar-aghaidh coitcheann agus buileachadh bunaiteach inneal fios Handly

Faodar am pàirt Handly a chaidh a dheasbad gu h-àrd (Fig. 9 agus 10) a chleachdadh gus cha mhòr modalan stèidhichte air làimhseachadh sam bith a riochdachadh. Airson cruthachadh cànanach modalan, tha am pròiseact a’ tabhann comas-gnìomh a bharrachd - gu sònraichte, eadar-aghaidh cumanta agus buileachadh bunaiteach airson eileamaidean den structar teacsa stòr, an rud ris an canar eileamaidean stòr (Fig. 8). Tha an eadar-aghaidh ISourceFile a’ riochdachadh faidhle stòr, agus tha ISourceConstruct a’ riochdachadh eileamaid taobh a-staigh an fhaidhle stòr. Bidh na clasaichean eas-chruthach SourceFile agus SourceConstruct a’ cur an gnìomh uidheamachdan coitcheann gus taic a thoirt do bhith ag obair le faidhlichean stòr agus na h-eileamaidean aca, mar eisimpleir, ag obair le bufairean teacsa, a’ ceangal ri co-chomharran eileamaid san teacsa tùsail, a’ rèiteachadh mhodalan le susbaint gnàthach bufair leth-bhreac obrach , etc. Mar as trice tha e na dhùbhlan mòr a bhith a’ buileachadh nan dòighean sin, agus faodaidh Handly an oidhirp air modalan cànain stèidhichte air làimhseachadh a leasachadh gu mòr a lughdachadh le bhith a’ toirt seachad buileachadh bunaiteach àrd-inbhe.

A bharrachd air na prìomh uidheamachdan a tha air an liostadh gu h-àrd, tha Handly a’ toirt seachad bun-structar airson bufairean teacsa agus dealbhan-camara, taic airson amalachadh le luchd-deasachaidh còd stòr (a ’toirt a-steach amalachadh taobh a-muigh a’ bhogsa le deasaiche Xtext), a bharrachd air cuid de cho-phàirtean UI cumanta a tha ag obair le luchd-deasachaidh còd stòr Modalan làimhe leithid frèam geàrr-chunntas. Gus na comasan aige a nochdadh, tha am pròiseact a’ toirt seachad grunn eisimpleirean, a’ toirt a-steach buileachadh modal Java ann an Handly. (An coimeas ri làn bhuileachadh modal Java ann an JDT, tha am modail seo a dh’aona ghnothach beagan nas sìmplidhe airson barrachd soilleireachd.)

Mar a chaidh a ràdh na bu thràithe, bha fòcas mòr ann an dealbhadh tùsail Handly agus an leasachadh às deidh sin air a bhith agus a’ leantainn air adhart gu bhith air scalability agus sùbailteachd.

Ann am prionnsabal, tha modalan stèidhichte air làimhseachadh a 'sgèile gu math "a rèir dealbhadh". Mar eisimpleir, leigidh gnàthasan-cainnte an làmh / bodhaig dhut an ìre de chuimhne a bhios modal a’ caitheamh a chuingealachadh. Ach tha nuances ann cuideachd. Mar sin, nuair a chaidh deuchainn Handly a dhèanamh airson scalability, chaidh duilgheadas a lorg ann a bhith a’ buileachadh an uidheamachd fios - nuair a chaidh àireamh mhòr de eileamaidean atharrachadh, thug togail deltas cus ùine. Thionndaidh e a-mach gun robh an aon dhuilgheadas ann am modal JDT Java, às an deach an còd co-fhreagarrach atharrachadh aon uair. Chàirich sinn am biast ann an Handly agus dh’ ullaich sinn bad den aon seòrsa airson JDT, agus chaidh fàilte a chuir air le taing. Is e seo dìreach aon eisimpleir far am faodadh toirt a-steach Handly a-steach do bhuileachadh modail a th’ ann mar-thà a bhith feumail, oir anns a ’chùis seo dh’ fhaodadh a leithid de bhiast a shuidheachadh ann an aon àite.

Gus am bi e comasach gu teicnigeach cur an gnìomh Handly a-steach do bhuileachadh modail a th’ ann mar-thà, feumaidh sùbailteachd mòr a bhith aig an leabharlann. Is e am prìomh dhuilgheadas co-chòrdalachd air ais a chumail air feadh modal API. Chaidh an duilgheadas seo fhuasgladh ann an Le làimh 0.5 le bhith a’ sgaradh gu soilleir an API modail-sònraichte, air a mhìneachadh agus air a làn smachd leis an leasaiche, bhon API ìre-ìre aonaichte a bheir an leabharlann seachad. Tha seo chan e a-mhàin ga dhèanamh comasach gu teicnigeach Handly a chuir an gnìomh anns na gnìomhan a th’ ann mar-thà, ach tha e cuideachd a ’toirt saorsa mòr don leasaiche modail ùr nuair a bhios iad a’ dealbhadh an API.

Tha taobhan eile aig sùbailteachd cuideachd. Mar eisimpleir, cha mhòr nach eil Handly a’ cur bacadh sam bith air structar a’ mhodail agus faodar a chleachdadh gus an dà chuid cànan coitcheann agus cànan sònraichte a mhodail. Nuair a thathar a’ togail structar an fhaidhle stòr, chan eil Handly ag òrdachadh seòrsa sònraichte de riochdachadh AST agus, ann am prionnsapal, chan eil e eadhon a’ feumachdainn AST fhèin a bhith ann, agus mar sin a’ dèanamh cinnteach gu bheil e co-chòrdalachd le cha mhòr inneal parsaidh sam bith. Mu dheireadh, tha Handly a’ toirt taic do làn amalachadh le àite-obrach Eclipse, ach faodaidh e cuideachd obrachadh gu dìreach le siostaman faidhle le taing dha aonachadh le Siostam faidhle Eclipse (EFS).

Tionndadh làithreach Le làimh 0.6 thàinig e a-mach san Dùbhlachd 2016. A dh ’aindeoin gu bheil am pròiseact an-dràsta ann an staid brosnachaidh agus nach eil an API air a shuidheachadh mu dheireadh, tha Handly air a chleachdadh mar-thà ann an dà thoraidhean malairteach mòr a ghabh an cunnart a bhith nan“ luchd-uchd-mhacachd tràth ”, agus, feumaidh mi a ràdh, na gabh aithreachas fhathast.

Mar a chaidh a ràdh gu h-àrd, is e aon de na toraidhean sin 1C: Innealan Leasachaidh Iomairt, far a bheil Handly air a chleachdadh bhon fhìor thoiseach gus eileamaidean de structar àrd-ìre a mhodail 1C:Cànanan iomairt mar an cànan prògramaidh togte agus cànan ceist. . Tha toradh eile nach eil cho aithnichte don mhòr-shluagh. Seo Stiùidio còdasip, àrainneachd dealbhaidh aonaichte airson pròiseasar seata stiùiridh sònraichte (ASIP), air a chleachdadh an dà chuid taobh a-staigh a’ chompanaidh Seiceach Codasip fhèin agus leis an luchd-dèiligidh, a ’toirt a-steach AMD, AVG, Fòn-làimhe, Dealbhaidhean Sigma. Tha Codasip air a bhith a’ cleachdadh Handly ann an cinneasachadh bho 2015, a’ tòiseachadh le dreach Handly 0.2. Bidh an sgaoileadh as ùire de Codasip Studio a’ cleachdadh dreach 0.5, a chaidh fhoillseachadh san Ògmhios 2016. Tha Ondřej Ilčík, a tha os cionn leasachadh IDE aig Codasip, ann an conaltradh ris a’ phròiseact, a’ toirt seachad fios air ais deatamach às leth an “uchd-mhacachd treas-phàrtaidh”. Bha e eadhon comasach air beagan ùine shaor a lorg gus pàirt a ghabhail gu dìreach ann an leasachadh a ’phròiseict, a’ cur an gnìomh còmhdach UI (~ 4000 loidhne de chòd) airson aon de na h-eisimpleirean Handly, modal Java. Gheibhear fiosrachadh pearsanta nas mionaidiche mu chleachdadh Handly le luchd-uchd-mhacachd air an duilleag Sgeulachdan Soirbheachail pròiseict.

Tha sinn an dòchas, às deidh an dreach 1.0 a leigeil ma sgaoil le gealltanas seasmhachd API agus am pròiseact a’ fàgail na stàite goir, gum bi luchd-uchd-mhacachd ùr aig Handly. Anns an eadar-ama, tha am pròiseact a ’leantainn air adhart a’ dèanamh deuchainn agus ag adhartachadh an API, a ’leigeil a-mach dà fhoillseachadh“ mòr ”gach bliadhna - san Ògmhios (an aon cheann-latha ri sgaoileadh Eclipse aig an aon àm) agus san Dùbhlachd, a’ toirt seachad clàr dùil ris am faod luchd-uchd-mhacachd earbsa a bhith aca. Faodaidh sinn cuideachd a ràdh gu bheil “ìre bug” a’ phròiseict fhathast aig ìre gu cunbhalach ìosal agus tha Handly air a bhith ag obair gu earbsach ann am bathar luchd-uchd-mhacachd tràth bho na ciad dreachan. Gus tuilleadh sgrùdaidh a dhèanamh air Eclipse Handly, faodaidh tu a chleachdadh Tutorial tòiseachaidh и Sealladh farsaing ailtireachd.

Source: www.habr.com

Cuir beachd ann