Eclipse ose tulaga fa'atekonolosi mo le 1C:Meafaigaluega mo Atina'e Kamupani

masalo, gaseʻeleʻele ua leva ona le manaomia se folasaga faapitoa. E toʻatele tagata e masani ile Eclipse faʻafetai ile Eclipse Java meafaigaluega faʻaleleia (JDT). O lenei lauiloa lauiloa Java IDE lea o le tele o atinaʻe e fesoʻotaʻi ma le upu "Eclipse". Ae ui i lea, o le Eclipse o se faʻasalalauga faʻalauteleina mo le tuʻufaʻatasia o meafaigaluega tau atinaʻe (Eclipse Platform), ma le tele o IDE e fausia i luga o lona faʻavae, e aofia ai le JDT. Eclipse o le Eclipse Project, o le poloketi pito i luga o loʻo faʻamaopoopoina le atinaʻeina o le Eclipse Platform ma le JDT, ma le Eclipse SDK, o le taunuʻuga tuʻuina atu o lena atinaʻe. Ma le mea mulimuli, o le Eclipse o se faʻalapotopotoga faʻapitoa faʻatasi ma se faʻalapotopotoga tele o galuega faatino, e le o mea uma e tusia i Java pe fesoʻotaʻi ma mea faigaluega tau atinaʻe (mo se faʻataʻitaʻiga, galuega faatino. Eclipse IoT и Eclipse Science). O le lalolagi o Eclipse e matua ese lava.

I totonu o lenei tusiga, o se vaaiga lautele i le natura, o le a tatou taumafai e vaʻavaʻai i nisi o faʻavae o le Eclipse architecture o se faʻavae mo le fausiaina o meafaigaluega atinaʻe tuʻufaʻatasia ma tuʻuina atu se manatu muamua o vaega Eclipse e fausia ai le faavae o tekinolosi. tulaga mo le "Configurator fou" 1C: Enterprise. 1C:Meafaigaluega mo Atina'e Kamupani. Ioe, o sea iloiloga o le a mautinoa lava e matua papa'u ma fa'atapula'a, e aofia ai ona o lo'o matou taula'i atu e le gata i le au fa'atupuina o le Eclipse o le au fa'atatau. Ae ui i lea, matou te faʻamoemoe e oʻo lava i tagata faʻapitoa Eclipse e mafai ona maua faʻamatalaga manaia i le tusiga. Mo se faʻataʻitaʻiga, o le a tatou talanoa e uiga i se tasi o "mea lilo a Eclipse", o se galuega fou ma le lauiloa. Eclipse Handly, lea na faavaeina ma lagolagoina e le 1C.
Eclipse ose tulaga fa'atekonolosi mo le 1C:Meafaigaluega mo Atina'e Kamupani

Folasaga ile Eclipse Architecture

Sei o tatou tilotilo muamua i nisi o vaega lautele o le Eclipse architecture e faʻaaoga ai le faʻataʻitaʻiga Eclipse Java meafaigaluega atinae (JDT). O le filifiliga a le JDT e fai ma faʻataʻitaʻiga e leʻo faʻafuaseʻi. Ole si'osi'omaga atina'e muamua lea e fa'aalia ile Eclipse. O isi *DT Eclipse poloketi, e pei o le Eclipse C/C++ Development Tooling (CDT), na faia mulimuli ane ma fa'aano mai uma fa'avae fa'avae fa'ata'ita'iga ma vaega ta'iala fa'apogai mai le JDT. O faʻavae o le fausaga o loʻo tuʻuina i lalo i le JDT e talafeagai i aso nei mo toetoe lava o soʻo se IDE e fausia i luga o le Eclipse Platform, e aofia ai le 1C: Enterprise Development Tools.

Muamua lava, e tatau ona maitauina o le Eclipse o loʻo faʻaalia i se fausaga faʻapipiʻi manino manino, faʻatasi ai ma le vavaeeseina o le gagana-tutoʻatasi galuega mai galuega faʻatulagaina e lagolago ai gagana faʻapitoa polokalame, ma le vavaeeseina o UI-tutoatasi "autu" vaega mai vaega e fesoʻotaʻi. fa'atasi ai ma feso'ota'iga fa'aoga lagolago.

O le mea lea, o le Eclipse Platform o loʻo faʻamatalaina se masani, gagana-tutoʻatasi atinaʻe, ma o meafaigaluega faʻaleleia Java e faʻaopoopoina ai le Java IDE atoatoa i le Eclipse. O le Eclipse Platform ma le JDT e aofia ai le tele o vaega, o ia mea taʻitasi e iai a le UI-tutoatasi "autu" poʻo se UI layer (Ata 1).

Eclipse ose tulaga fa'atekonolosi mo le 1C:Meafaigaluega mo Atina'e Kamupani
Alaisa. 1. Eclipse Platform ma le JDT

Sei o tatou lisi vaega autu o le Eclipse Platform:

  • Faʻasologa - Fa'amatala le fa'apipi'i atina'e. Eclipse e fa'aalia i se fausaga fa'apitoa. O le mea moni, Eclipse o se aofaʻiga o "faʻaopoopoga mea" ma "faʻaopoopoga".
  • Falefaigaluega — Puleaina se tasi pe sili atu galuega faatino. O se poloketi e aofia ai faila ma faila o loʻo faʻafanua saʻo i le faila faila.
  • Meafaigaluega Fa'atonu Fa'atonu (SWT) - Tuuina atu elemene faʻaoga faʻaoga faʻaoga faʻatasi ma le faiga faʻaogaina.
  • JFace - Tuuina atu le tele o faʻatulagaga UI fausia i luga ole SWT.
  • Galuega faigaluega - Fa'amatala le fa'ata'ita'iga o le Eclipse UI: fa'atonu, manatu, fa'aaliga.

E tatau ona fai mai o le Eclipse Platform e maua ai foi le tele o isi vaega aoga mo le fausiaina o meafaigaluega atinaʻe tuʻufaʻatasia, e aofia ai Debug, Faʻatusatusa, Suʻega, ma le Au. E tatau ona ta'ua fa'apitoa le JFace Text - o le fa'avae mo le fausiaina o "fa'atonu atamai" o fa'amatalaga puna. Ae paga lea, e oʻo lava i se suʻesuʻega faʻapitoa o nei vaega, faʻapea foʻi ma vaega o le UI, e le mafai i totonu o le lautele o lenei tusiga, o lea i le vaega o totoe o lenei vaega o le a faʻatapulaʻaina i tatou lava i se aotelega o vaega autu "autu" o le Eclipse Platform ma le JDT.

Autu Taimi Taimi

O le Eclipse plugin infrastructure e faʻavae i luga OSGi ma saunia e le poloketi Eclipse Equinox. O fa'apipi'i ta'itasi Eclipse o se fa'aputuga OSGi. Ole fa'amatalaga ole OSGi o lo'o fa'amalamalamaina, aemaise lava, faiga mo le fa'aliliuina ma le fa'amoemoega fa'amoemoe. I le faaopoopo atu i nei faiga masani, Equinox faʻalauiloa le manatu fa'alautele vaega. E mafai e fa'apipi'i ta'itasi ona fa'amalamalamaina ona lava fa'aopoopoga fa'aopoopo, ma fa'ailoa fo'i galuega fa'aopoopo ("fa'aopoopoga") i le faiga e fa'aaoga ai fa'aopoopoga fa'amatala e tutusa po'o isi fa'apipi'i. Soʻo se faʻamatalaga auiliili o le OSGi ma le Equinox masini e sili atu i le lautele o lenei tusiga. Sei o tatou matauina o le modularization i Eclipse e atoa (soʻo se subsystem, e aofia ai le Runtime, e aofia ai se tasi pe sili atu plugins), ma toetoe lava o mea uma i Eclipse o se faʻaopoopoga. E le gata i lea, o nei mataupu faavae na faʻapipiʻiina i le Eclipse architecture aʻo leʻi oʻo i le faʻaofiina o le OSGi (i le taimi lena na latou faʻaogaina ai a latou lava tekinolosi, e tutusa ma le OSGi).

Avanoa Autu Galuega

Toeitiiti lava so'o se si'osi'omaga atina'e tu'ufa'atasia e fausia i luga o le Eclipse Platform e galulue fa'atasi ma le Eclipse workspace. O le avanoa faigaluega e masani ona i ai le faʻailoga autu o le talosaga na fausia i le IDE. O lo'o fa'afanua sa'o le avanoa faigaluega i le faiga faila ma e aofia ai galuega fa'atino o lo'o iai faila ma faila. O nei poloketi, faila, ma faila e taʻua punaoa avanoa faigaluega. O le fa'atinoga o galuega i le Eclipse e fai ma fa'aoga e fa'atatau i le faila faila, lea e mafai ai ona fa'avavevave le felauaiga o le la'au punaoa. E le gata i lea, o avanoa faigaluega e maua ai le tele o auaunaga faaopoopo, e aofia ai faiga fa'ailoa mo suiga o alagaoa и fa'aopoopo faufale faufale.

Ole vaega o Punaoa Autu (org.eclipse.core.resources plugin) e nafa ma le lagolagoina o le avanoa faigaluega ma ana punaoa. Aemaise lava, o lenei vaega e maua ai le avanoa faʻapolokalame i le avanoa faigaluega i le fomu fa'ata'ita'iga punaoa. Ina ia galue lelei ma lenei faʻataʻitaʻiga, e manaʻomia e tagata faʻatau se auala faigofie e tuʻuina atu ai se fesoʻotaʻiga i se punaoa. I lenei tulaga, e manaʻomia le natia o le mea e teuina saʻo ai le tulaga o le punaoa i le faʻataʻitaʻiga mai le avanoa o tagata o tausia. A leai, i le tulaga o, mo se faʻataʻitaʻiga, tapeina o se faila, e mafai e le kalani ona faʻaauau pea ona uuina se mea e le o toe i ai i le faʻataʻitaʻiga, ma faʻafitauli mulimuli ane. Eclipse e foia lenei faʻafitauli e faʻaaoga ai se mea e taʻua lima puna'oa. O le lima e galue o se ki (naʻo le iloa o le ala i le punaoa i totonu o galuega) ma faʻatonutonu atoatoa le avanoa i le mea faʻataʻitaʻi totonu, lea e teuina saʻo ai faʻamatalaga e uiga i le tulaga o le punaoa. O lenei mamanu o se fesuiaiga o le mamanu U'u/Tino.

Alaisa. O le Ata 2 o lo'o fa'aalia ai le gagana U'u/Tino e fa'atatau i le fa'ata'ita'iga o alagaoa. O le IResource interface o loʻo faʻatusalia ai le au o se punaoa ma o se API, e le pei o le Resource class, o loʻo faʻaaogaina lenei atinaʻe, ma le ResourceInfo vasega, lea e fai ma sui o le tino, e le o API. Matou te fa'amamafa atu e na'o le au e iloa le ala i le puna'oa e fa'atatau i le a'a avanoa faigaluega ma e leai se feso'ota'iga i fa'amatalaga punaoa. O meafaitino faʻamatalaga punaoa e fausia ai se mea e taʻua o le "element tree". O lenei faʻamaumauga faʻamaumauga ua matua faʻatinoina i le manatua. Mo le su'eina o fa'amatalaga fa'amatalaga e fetaui ma se 'au, o le la'au elemene e uia e tusa ai ma le ala o lo'o teuina i totonu o lena 'au.

Eclipse ose tulaga fa'atekonolosi mo le 1C:Meafaigaluega mo Atina'e Kamupani
Alaisa. 2. IResource ma ResourceInfo

E pei ona o le a tatou vaʻai mulimuli ane, o le mamanu autu o le faʻataʻitaʻiga punaoa (atonu tatou te taʻua o le au-faʻavae) e faʻaaogaina i Eclipse mo isi faʻataʻitaʻiga. Mo le taimi nei, seʻi o tatou lisi nisi o uiga iloga o lenei mamanu:

  • U'u o se mea taua. O mea taua o mea e le mafai ona suia o latou tutusa e le faʻavae i luga o le faasinomaga. O ia mea faitino e mafai ona faʻaoga saogalemu e fai ma ki i totonu o pusa faʻapipiʻi. E tele fa'ata'ita'iga o le 'au e mafai ona fa'asino i le puna'oa tutusa. Ina ia faʻatusatusa i latou, e tatau ona e faʻaogaina le tutusa (Object) metotia.
  • E fa'amatala e Handle le amio a se puna'oa, ae le o iai fa'amatalaga e uiga i le tulaga o le puna'oa (na'o le fa'amaumauga o lo'o teuina o le "ki", le ala i le puna'oa).
  • E mafai e le lima ona faasino i se punaoa e le o iai (po o se punaoa e leʻi faia, poʻo se punaoa ua uma ona tapeina). E mafai ona siaki le i ai o se punaoa e faʻaaoga ai le IResource.exists() metotia.
  • O nisi fa'agaioiga e mafai ona fa'atinoina e fa'atatau i fa'amatalaga o lo'o teuina i totonu o le 'au lava ia (o mea e ta'ua o le 'au-na'o gaioiga). O faʻataʻitaʻiga o IResource.getParent(), getFullPath(), ma isi. E le mana'omia le i ai o le alagaoa ina ia manuia ai sea gaioiga. Fa'agaioiga e mana'omia ai se puna'oa e i ai ina ia manuia lafo se CoreException pe a le o iai le punaoa.

Eclipse e maua ai se faiga lelei mo le logoina o suiga o punaoa avanoa faigaluega (Ata 3). E mafai ona suia punaoa ona o se taunuuga o gaioiga na faia i totonu o le Eclipse IDE lava ia poʻo se taunuuga o le faʻatasi ma le faila faila. I tulaga uma e lua, o tagata o loʻo lesitala i faʻamatalaga o loʻo tuʻuina atu faʻamatalaga auiliili e uiga i suiga i foliga o "deltas punaoa". O le delta o lo'o fa'amatalaina suiga i le va o setete e lua o se punaoa avanoa faigaluega (sub-) laau ma o ia lava o se la'au, o pona ta'itasi o lo'o fa'amatala ai se suiga i se puna'oa ma o lo'o i ai se lisi o delta i le isi tulaga e fa'amatala ai suiga i puna'oa a tamaiti.

Eclipse ose tulaga fa'atekonolosi mo le 1C:Meafaigaluega mo Atina'e Kamupani
Alaisa. 3. IResourceChangeEvent ma IResourceDelta

O le faiga fa'asilasilaga e fa'avae i luga o puna'oa deltas ei ai uiga nei:

  • O se suiga e tasi ma le tele o suiga o loʻo faʻamatalaina e faʻaaoga ai le fausaga tutusa, talu ai o le delta e fausia e faʻaaoga ai le mataupu faavae o le recursive composition. E mafai e tagata fai saofaga ona fa'agasolo fa'amatalaga o suiga o puna'oa e fa'aaoga ai le fa'asolosolo fa'asolosolo i se la'au o deltas.
  • O le delta o loʻo i ai faʻamatalaga atoatoa e uiga i suiga i le punaoa, e aofia ai lona gaioiga ma / poʻo suiga i "faʻailoga" e fesoʻotaʻi ma ia (mo se faʻataʻitaʻiga, o mea sese o le tuʻufaʻatasia o loʻo faʻatusalia o faʻailoga).
  • Talu ai ona o fa'amatalaga puna'oa e faia i le 'au, e mafai lava e delta ona fa'asino i se puna'oa mamao.

E pei ona o le a vave ona tatou vaʻaia, o vaega autu o le mamanu o le faʻataʻitaʻiga o punaoa faʻataʻitaʻiga faʻasalalauga e talafeagai foi mo isi faʻataʻitaʻiga faʻavae.

JDT Core

O le Eclipse workspace resource model o se fa'ata'ita'iga fa'a-agnostic fa'avae. O le vaega o le JDT Core (plugin org.eclipse.jdt.core) e maua ai se API mo le suʻeina ma le suʻeina o le fausaga o galuega mai se vaʻaiga Java, o le mea e taʻua o le "Java model" (fa'ata'ita'iga Java). O lenei API o loʻo faʻamatalaina i tulaga o elemene Java, e faʻafeagai ma le API faʻataʻitaʻiga autu, lea e faʻamatalaina i tulaga o faila ma faila. O fesoʻotaʻiga autu o le Java element tree o loʻo faʻaalia i le Ata. 4.

Eclipse ose tulaga fa'atekonolosi mo le 1C:Meafaigaluega mo Atina'e Kamupani
Alaisa. 4. Java Model Elements

O le Java faʻataʻitaʻiga e faʻaaogaina le au / tino e tasi e pei o le faʻataʻitaʻiga punaoa (Ata 5). IJavaElement o le au, ma JavaElementInfo e taʻalo le tino. O le IJavaElement interface faʻamatalaina se faʻasalalauga masani i elemene Java uma. O nisi o ana metotia e naʻo le lima: getElementName (), getParent (), ma isi. O le mea JavaElementInfo e teuina le tulaga o le elemene tutusa: lona fausaga ma uiga.

Eclipse ose tulaga fa'atekonolosi mo le 1C:Meafaigaluega mo Atina'e Kamupani
Alaisa. 5. IJavaElement ma JavaElementInfo

O le Java faʻataʻitaʻiga e iai ni eseesega i le faʻatinoga o le faʻataʻitaʻiga autu o au / tino faʻatusatusa i le faʻataʻitaʻiga punaoa. E pei ona taʻua i luga, i le faʻataʻitaʻiga punaoa, o le elemene laau, o ona pona o mea faʻamatalaga punaoa, o loʻo i ai atoa i le mafaufau. Ae o le Java faʻataʻitaʻiga e mafai ona i ai se numera sili atu ona tele o elemene nai lo le laʻau punaoa, aua o loʻo faʻatusalia ai foʻi le fausaga i totonu o faila .java ma .class: ituaiga, fanua, ma metotia.

Ina ia aloese mai le faʻaogaina atoa o le laʻau o elemene i le mafaufau, o le Java faʻataʻitaʻiga faʻataʻitaʻiga e faʻaogaina ai le faʻatapulaʻaina o le LRU cache o faʻamatalaga elemene, lea o loʻo faʻaogaina ai le ki IJavaElement. mea fa'amatalaga elemene e fa'atupu pe a mana'omia a'o fa'atautaia le la'au elemene. I lenei tulaga, o mea e le masani ona faʻaaogaina e aveʻesea mai le cache, ma o le faʻataʻitaʻiga e manatua ai le faʻatapulaʻaina o le tele o le cache faʻamaonia. O le isi lea tulaga lelei o le mamanu faʻavae au, lea e natia atoa ai faʻamatalaga faʻatinoga mai le code client.

O le masini mo le logoina o suiga i elemene Java e tutusa lelei ma le masini mo le siakiina o suiga i punaoa avanoa faigaluega o loʻo talanoaina i luga. O se tagata o tausia e manaʻo e mataʻituina suiga i le Java faʻataʻitaʻiga e lesitala i faʻamatalaga, o loʻo faʻatusalia o se mea ElementChangedEvent o loʻo i ai se IJavaElementDelta (Ata 6).

Eclipse ose tulaga fa'atekonolosi mo le 1C:Meafaigaluega mo Atina'e Kamupani
Alaisa. 6. ElementChangedEvent ma IJavaElementDelta

O le faʻataʻitaʻiga Java e le o iai faʻamatalaga e uiga i tino o metotia poʻo le faʻaiʻuga o igoa, o lea mo le auiliiliga auiliili o le code na tusia i le Java, o le JDT Core e maua ai se faʻataʻitaʻiga faʻaopoopo (e le o faʻavae): la'au fa'aupuga (la'au fa'asologa fa'apitoa, AST). O le AST o lo'o fa'atusalia le i'uga o le fa'avasegaina o le fa'aupuga. AST nodes e fetaui ma elemene o le fausaga o le puna puna (tautinoga, faʻalapotopotoga, faʻamatalaga, ma isi) ma o loʻo i ai faʻamatalaga e uiga i faʻamaopoopoina o le elemene talafeagai i le faʻamatalaga autu, faʻapea foʻi ma (o se filifiliga) faʻamatalaga e uiga i le fofo igoa i totonu. foliga o sooga i le mea e taʻua fusifusia. O fusi o mea ia o loʻo faʻatusalia ai igoa, e pei o ituaiga, metotia, ma fesuiaiga, e iloa e le tagata faʻapipiʻi. E le pei o AST nodes, lea e fausia ai se laau, o fusifusi e lagolagoina le faʻafesoʻotaʻi ma masani ona fai ai se kalafi. Ole vasega fa'apitoa ASTNode ole vasega fa'avae masani mo nodes uma AST. ASTNode subclasses e fetaui ma faʻatonuga faʻapitoa o le gagana Java.

Talu ai e mafai e la'au fa'apipi'i ona fa'aumatia le tele o mea e manatua, e na'o le tasi le AST e teu ai e le JDT mo le fa'atonu galue. E le pei o le Java faʻataʻitaʻiga, o le AST e masani lava ona vaʻaia o se faʻataʻitaʻiga "le tumau", "le tumau", o elemene ia e le tatau i tagata faʻatau ona faʻamauina faʻamatalaga i fafo atu o le tala o le gaioiga na mafua ai le fausiaina o le AST.

O faʻataʻitaʻiga e tolu o loʻo lisiina (Java model, AST, bindings) faʻapipiʻi faʻavae mo le fausiaina o "mea faigaluega faʻapitoa mo le atinaʻeina" i le JDT, e aofia ai le faʻatonu malosi o le Java ma le "fesoasoani" eseese, gaioiga eseese mo le faʻaogaina o le code source (e aofia ai le faʻatulagaina o se lisi o oloa faaulufale mai. igoa ma le faʻatulagaina e tusa ai ma le faiga faʻapitoa), suʻesuʻe ma toe faʻaleleia meafaigaluega. I lenei tulaga, o le Java faʻataʻitaʻiga o loʻo i ai se matafaioi faʻapitoa, talu ai o loʻo faʻaaogaina e fai ma faʻavae mo se ata vaaia o le fausaga o le talosaga o loʻo atiaʻe (mo se faʻataʻitaʻiga, i le Package Explorer, Outline, Search, Call Hierarchy, ma Type Hierarchy).

O vaega ole Eclipse o lo'o fa'aogaina ile 1C:Meafaigaluega mo Atina'eina o Kamupani

I le Ata. O le Ata 7 o lo'o fa'aalia ai vaega ole Eclipse e fa'avae ai le fa'avae tekonolosi mo le 1C:Meafaigaluega mo le Atina'eina o Kamupani.

Eclipse ose tulaga fa'atekonolosi mo le 1C:Meafaigaluega mo Atina'e Kamupani
Alaisa. 7. Eclipse e fai ma fa'avae mo le 1C:Meafaigaluega mo Atina'e Kamupani

Eclipse Platform maua ai aseta fa'avae. Na matou tilotilo i nisi o vaega o lenei atinaʻe i le vaega muamua.

Eclipse Modeling Framework (EMF) e maua ai se auala lautele e faʻataʻitaʻiina ai faʻamaumauga faʻatulagaina. O le EMF ua tu'ufa'atasia ma le Eclipse Platform, ae mafai fo'i ona fa'aoga eseese i fa'aoga masani Java. O le tele o taimi, o tagata fou Eclipse ua leva ona masani lelei i le EMF, e ui lava latou te leʻi malamalama atoatoa i le lavelave o le Eclipse Platform. O se tasi o mafuaʻaga mo lea taʻutaʻua talafeagai o le mamanu lautele, lea e aofia ai, faatasi ai ma isi mea, se meta-level API tuʻufaʻatasia, lea e mafai ai ona e galue ma soʻo se faʻataʻitaʻiga EMF i se auala lautele. O faʻatinoga faʻavae mo mea faʻataʻitaʻi na tuʻuina atu e le EMF ma le subsystem mo le fausiaina o faʻataʻitaʻiga code faʻavae i luga o le meta-faʻataʻitaʻiga faʻateleina le saoasaoa o le atinaʻe ma faʻaitiitia le numera o mea sese. O loʻo iai foʻi i le EMF auala mo le faʻasologa o faʻataʻitaʻiga, siaki suiga i le faʻataʻitaʻiga, ma sili atu.

E pei o soʻo se mea faigaluega faʻapitoa, EMF e talafeagai mo le foia o le tele o faʻafitauli faʻataʻitaʻiga, ae o nisi vasega o faʻataʻitaʻiga (mo se faʻataʻitaʻiga, o faʻataʻitaʻiga faʻavae o loʻo talanoaina i luga) atonu e manaʻomia ai ni meafaigaluega faʻapitoa faʻapitoa. O le talanoa e uiga i le EMF o se galuega e le faʻafetai, aemaise lava i totonu o tapulaʻa faʻatapulaʻa o le tasi tusitusiga, talu ai o le mataupu lea o se tusi ese, ma o se tusi mafiafia. Sei o tatou maitauina o le tulaga maualuga o faʻasalalauga lautele o loʻo i lalo ole EMF na faʻatagaina ai le fanau mai o se vaega atoa o galuega faʻapitoa mo le faʻataʻitaʻiga, lea o loʻo aofia ai i le galuega maualuga. Eclipse Modeling faatasi ai ma le EMF lava ia. O se tasi o ia poloketi o le Eclipse Xtext.

Eclipse Xtext maua ai se "fa'ata'ita'iga tusitusiga" atina'e. Xtext fa'aoga ANTLR mo le fa'avasegaina o le fa'apogai o tusitusiga ma le EMF mo le fa'atusaina o le ASG e maua mai (fa'ata'ita'iga semantic graph, lea o le tu'ufa'atasiga o le AST ma fa'amaufa'ailoga), e ta'ua fo'i o le "semantic model". O le kalama o le gagana na fa'ata'ita'iina e Xtext o lo'o fa'amatalaina i le gagana a Xtext. Ole mea lea e fa'atagaina ai oe e le gata e fa'atupuina se fa'amatalaga o le kalama mo le ANTLR, ae ia maua fo'i se masini fa'asologa o le AST (e pei o le Xtext e maua uma ai se parser ma se unparser), se fa'amatalaga fa'amatalaga, ma le tele o isi gagana. I le isi itu, o le gagana kalama o loʻo faʻaaogaina i le Xtext e itiiti le faʻaogaina nai lo, fai mai, o le gagana kalama o loʻo faʻaaogaina i le ANTLR. O le mea lea, o nisi taimi e manaʻomia ai le "punou" le gagana faʻatinoina i le Xtext, lea e masani lava e le o se faʻafitauli pe afai tatou te talanoa e uiga i se gagana ua atiaʻe mai le maoaʻe, ae atonu e le taliaina mo gagana ma se syntax ua uma ona faʻatulagaina. E ui lava i lea, Xtext o le taimi nei o le mea sili ona matua, faʻatamaoaigaina, ma faʻaogaina mea faigaluega i Eclipse mo le fausiaina o gagana polokalame ma meafaigaluega atinaʻe mo i latou. Aemaise lava, o se meafaigaluega lelei mo faʻataʻitaʻiga vave gagana fa'apitoa (gagana fa'apitoa, DSL). I le faaopoopo atu i le "gagana autu" o loʻo taʻua i luga e faʻavae i luga o le ANTLR ma le EMF, Xtext o loʻo tuʻuina atu le tele o vaega aoga maualuga, e aofia ai faiga faʻasino igoa, fausiaina faʻaopoopoga, se "faʻatonu atamai", ma le tele, sili atu, ae tuʻu ese - fa'ata'ita'iga gagana. E pei o le EMF, Xtext o se mataupu e agavaa mo se tusi ese, ma e le mafai ona tatou talanoa puupuu e uiga i ona gafatia uma i le taimi nei.

1C:Meafaigaluega mo Atinaʻe Faʻapisinisi e faʻaaogaina uma le EMF lava ia ma le tele o isi poloketi Faʻataʻitaʻiga Eclipse. Aemaise lava, Xtext o se tasi lea o faʻavae o meafaigaluega atinaʻe mo ia 1C: Gagana pisinisi e pei o le gagana faʻapipiʻiina ma le gagana fesili. O le isi faʻavae mo nei meafaigaluega faʻaleleia o le Eclipse Handly project, lea o le a tatou talanoaina atili auiliiliga (o le lisi o vaega o le Eclipse, o loʻo sili ona lauiloa).

Eclipse Handly, o se la'ititi o le Eclipse Technology pito i luga o le poloketi, na alia'e ona o se sao muamua o tulafono i le Eclipse Foundation na faia e le 1C i le 2014. Talu mai lena taimi, o loʻo faʻaauau pea ona lagolagoina e le 1C le atinaʻeina o le poloketi: O tagata faigaluega lima lima o tagata faigaluega a le kamupani. E laʻititi le poloketi, ae o loʻo i ai se faʻailoga tulaga ese i Eclipse: o lona sini autu o le lagolagoina lea o le atinaʻeina o faʻataʻitaʻiga faʻavae.

O faʻavae faʻavae faʻavae o faʻataʻitaʻiga faʻavae, e pei o le au / tino, na talanoaina i luga e faʻaaoga ai le faʻataʻitaʻiga punaoa ma le Java faʻataʻitaʻiga e fai ma faʻataʻitaʻiga. Na maitauina foi o le faʻataʻitaʻiga punaoa ma le faʻataʻitaʻiga Java o faʻavae taua mo le Eclipse Java development tools (JDT). Ma talu ai e toetoe lava o galuega uma * DT Eclipse o loʻo i ai se fausaga e tutusa ma le JDT, e le o se faʻateleina tele le fai atu o faʻataʻitaʻiga faʻavae e faʻavaeina le tele, pe a le o IDE uma na fausia i luga o le Eclipse Platform. Mo se faʻataʻitaʻiga, o le Eclipse C / C ++ Development Tooling (CDT) o loʻo i ai se faʻataʻitaʻiga C / C ++ faʻavae e tutusa le matafaioi i le fausaga CDT e pei o le Java model i le JDT.

A'o le'i faia Handly, e le'i ofoina mai e Eclipse ni faletusi fa'apitoa mo le fauina o fa'ata'ita'iga gagana e fa'atatau i au. O faʻataʻitaʻiga o loʻo i ai nei na faia e ala i le faʻaogaina saʻo o le Java code code (aka kopi / faapipii), i tulaga e mafai ai Eclipse Public License (EPL). (E manino lava, e masani lava e le o se mataupu faaletulafono mo, fai mai, Eclipse galuega faatino lava ia, ae le mo oloa tapuni puna.) I le faaopoopo atu i lona faʻalavelave faʻafuaseʻi, o lenei metotia e faʻaalia ai faʻafitauli taʻutaʻua: faʻasologa o tulafono faʻafeiloaʻi e pe a fetuutuunai i mea sese, ma isi. O le mea e sili atu ona leaga, o faʻataʻitaʻiga e maua mai e tumau pea "mea ia i latou lava" ma e le faʻaaogaina le avanoa mo le faʻatasi. Ae o le vavaeeseina o manatu masani ma faʻasalalauga mo faʻataʻitaʻiga gagana faʻavae e mafai ona taʻitaʻia ai le fausiaina o vaega toe faʻaaogaina mo le galulue faʻatasi ma i latou, e tutusa ma le mea na tupu i le tulaga o le EMF.

E le faapea e le'i malamalama Eclipse i nei mataupu. I tua i le 2005 Matini Aeschlimann, aoteleina le poto masani o le atinaʻeina o le CDT prototype, finau o le mana'oga e fa'atupu se fa'ata'ita'iga masani mo fa'ata'ita'iga gagana, e aofia ai fa'ata'ita'iga fa'atatau i au. Ae, e pei ona masani ona tupu, ona o galuega maualuga maualuga, o le faʻatinoina o nei manatu e leʻi oʻo i ai. I le taimi nei, o le faʻavasegaina o * DT code o se tasi lea o mataupu e leʻi atinaʻe ile Eclipse.

I se tulaga patino, o le Handly project ua mamanuina e foia ai le tutusa o faafitauli e pei o le EMF, ae mo faʻataʻitaʻiga faʻavae, ma faʻamuamua gagana (faʻataʻitaʻiga, e fai ma sui o elemene o le fausaga o nisi gagana polokalame). O sini autu e seti pe a mamanuina Handly o loʻo lisiina i lalo:

  • Fa'ailoaina o fa'amatalaga autu o le mataupu.
  • Fa'aitiitia taumafaiga ma fa'aleleia atili le tulaga lelei o le fa'atinoina o fa'ata'ita'iga gagana fa'atatau ile au e ala ile toe fa'aogaina ole code.
  • Tuuina atu o se meta-level API faʻatasi i faʻataʻitaʻiga e maua, e mafai ai ona fausia vaega masani IDE e galulue ma faʻataʻitaʻiga faʻavae gagana.
  • Fetuuna'i ma scalability.
  • Tu'ufa'atasi ma le Xtext (i se 'ese'ese vaega).

Ina ia faʻamaonia manatu masani ma faʻasalalauga, sa suʻesuʻeina faʻataʻitaʻiga o loʻo i ai nei o faʻataʻitaʻiga faʻavae gagana. O fesoʻotaʻiga autu ma faʻatinoga faʻavae na saunia e Handly o loʻo faʻaalia i le Fig. 8.

Eclipse ose tulaga fa'atekonolosi mo le 1C:Meafaigaluega mo Atina'e Kamupani
Alaisa. 8. Feso'ota'iga masani ma fa'atinoga fa'avae o elemene Handly

O le IElement interface o loʻo faʻatusalia ai le au o se elemene ma e taatele i elemene o faʻataʻitaʻiga uma e faʻatatau i Handly. O le vasega abstract Element o loʻo faʻaaogaina le faʻaogaina lautele / tino (Fig. 9).

Eclipse ose tulaga fa'atekonolosi mo le 1C:Meafaigaluega mo Atina'e Kamupani
Alaisa. 9. IElement ma generic au / faʻatinoga tino

E le gata i lea, ua saunia e Handly se faiga lautele mo le logoina e uiga i suiga i elemene faʻataʻitaʻiga (Fig. 10). E pei ona mafai ona e vaʻaia, e talitutusa lava ma faʻasalalauga faʻasalalauga faʻatinoina i le faʻataʻitaʻiga punaoa ma le faʻataʻitaʻiga Java, ma faʻaogaina le IElementDelta e tuʻuina atu ai se faʻataʻitaʻiga autasi o faʻamatalaga suiga elemene.

Eclipse ose tulaga fa'atekonolosi mo le 1C:Meafaigaluega mo Atina'e Kamupani
Alaisa. 10. Feso'ota'iga lautele ma fa'atinoga fa'avae ole faiga fa'ailoa a Handly

O le vaega Handly o loʻo talanoaina i luga (Fig. 9 ma le 10) e mafai ona faʻaaogaina e fai ma sui o soʻo se faʻataʻitaʻiga faʻavae. Mo le fatuina gagana faʻataʻitaʻiga, o le poloketi e ofoina atu galuega faʻaopoopo - aemaise lava, fesoʻotaʻiga masani ma faʻatinoga faʻavae mo elemene o le faʻavaeina o tusitusiga, le mea e taʻua elemene puna (Ata 8). O le ISourceFile interface o loʻo faʻatusalia se faila faila, ma ISourceConstruct o loʻo faʻatusalia se elemene i totonu o le faila faila. O vasega faʻapitoa SourceFile ma SourceConstruct o loʻo faʻaaogaina auala lautele e lagolago ai le galue i faila faila ma a latou elemene, mo se faʻataʻitaʻiga, galue ma faʻamaufaʻailoga tusitusiga, faʻapipiʻi i faʻamaopoopoina o se elemene i totonu o le tusiga autu, faʻafeiloaʻi faʻataʻitaʻiga ma mea o loʻo i ai nei o se kopi kopi galue. , ma isi. O le fa'atinoina o nei faiga e masani lava o se lu'itau, ma e mafai e Handly ona fa'aitiitia tele le taumafaiga o le atina'eina o fa'ata'ita'iga gagana e fa'atatau i au e ala i le tu'uina atu o fa'atinoga fa'avae maualuga.

I le faaopoopo atu i faiga autu o loʻo lisi atu i luga, e tuʻuina atu e Handly se atinaʻe mo faʻamaufaʻailoga tusitusiga ma ata, lagolago mo le tuʻufaʻatasia ma faʻamaumauga faʻamatalaga puna (e aofia ai le tuʻufaʻatasia i fafo-o-le-pusa ma le Xtext editor), faʻapea foʻi ma nisi o UI masani e galulue fa'atasi ma fa'atonu fa'aupuga fa'ata'ita'iga e pei o le auivi fa'asologa. Ina ia faʻaalia ona gafatia, o loʻo tuʻuina atu e le poloketi ni faʻataʻitaʻiga, e aofia ai se faʻatinoga o le Java faʻataʻitaʻiga i Handly. (Faatusatusa i le faʻatinoga atoa o le Java faʻataʻitaʻiga i le JDT, o lenei faʻataʻitaʻiga e fai si faʻafaigofieina mo le faʻamalamalama atili.)

E pei ona ta'ua muamua, o se taulaiga tele i le taimi o le uluai mamanu a Handly ma le atina'e mulimuli ane o le ma o loʻo faʻaauau pea i luga o le faʻalauteleina ma le fetuutuunai.

I le mataupu faavae, o faʻataʻitaʻiga faʻavae faʻavae e fai si fua lelei "i le mamanu". Mo se faʻataʻitaʻiga, o le 'au/body idiom e faʻatagaina oe e faʻatapulaʻa le aofaʻi o le manatua e faʻaaogaina e se faʻataʻitaʻiga. Ae e iai foʻi nuances. O le mea lea, pe a suʻeina Handly mo le faʻalauteleina, na maua ai se faʻafitauli i le faʻatinoina o le faiga faʻamatalaga - pe a suia le tele o elemene, o le fausiaina o deltas na tele se taimi. Na aliali mai o le faʻafitauli lava e tasi na i ai i le JDT Java faʻataʻitaʻiga, lea na faʻafeiloaʻi ai le code tutusa. Na matou faʻapipiʻi le pusa i Handly ma saunia se patch tutusa mo JDT, lea na maua ma le faʻafetai. E na'o le tasi lea fa'ata'ita'iga e ono aoga ai le fa'aofiina o Handly i fa'ata'ita'iga fa'ata'ita'iga o lo'o iai nei, aua o le tulaga lea e mafai ona fa'asa'o ai se mea sese i se nofoaga e tasi.

Ina ia fa'atinoina le fa'atinoina o le Handly i fa'ata'ita'iga fa'ata'ita'iga o lo'o iai nei e mafai ona fa'atino fa'atekinisi, e tatau ona iai le tele o fetu'una'iga o le faletusi. Ole fa'afitauli autu ole fa'atumauina le feso'ota'iga i tua ile fa'ata'ita'iga API. Na foia lenei faafitauli i Taulima 0.5 e ala i le vavaeeseina manino o le API faʻapitoa faʻataʻitaʻiga, faʻamalamalamaina ma pulea atoatoa e le tagata atiaʻe, mai le meta-level API tuʻufaʻatasia e saunia e le faletusi. O lenei mea e le gata ina mafai ai ona faʻaaogaina Handly i faʻatinoga o loʻo i ai nei, ae faʻapea foi ona tuʻuina atu i le tagata faʻataʻitaʻiga fou le saʻolotoga tele pe a mamanuina le API.

O le fetuutuuna'i e iai fo'i isi itu. Mo se fa'ata'ita'iga, e toetoe lava a leai se tapula'a e tu'uina atu e Handly i le fa'atulagaina o le fa'ata'ita'iga ma e mafai ona fa'aoga e fa'ata'ita'i uma ai gagana fa'apitoa ma gagana fa'apitoa. I le fausiaina o le fausaga o le faila faila, e le faʻatonuina e Handly soʻo se ituaiga faʻatusa o le AST ma, i le mataupu faavae, e le manaʻomia foi le iai o se AST lava ia, ma faʻamautinoa le fetaui ma toetoe lava o soʻo se masini faʻavasega. Ma le mea mulimuli, e lagolagoina e Handly le tuʻufaʻatasia atoatoa ma le Eclipse workspace, ae mafai foi ona galue saʻo ma faila faila faʻafetai i lona tuʻufaʻatasia ma Eclipse File System (EFS).

Fa'amatalaga o lo'o iai nei Taulima 0.6 na sau ia Tesema 2016. E ui lava i le mea moni o le poloketi o loʻo i ai nei i se tulaga o le incubation ma o le API e leʻi maeʻa faʻamautu, ua uma ona faʻaaogaina Handly i oloa faʻatau pisinisi tetele e lua lea na lamatia ai le avea ma "vave adopters", ma, e tatau ona ou fai atu, aua nei e salamo ai.

E pei ona taʻua i luga, o se tasi o nei oloa o le 1C: Enterprise Development Tools, lea e faʻaaogaina ai Handly mai le amataga e faʻataʻitaʻiina elemene o le fausaga maualuga o ia 1C: Enterprise gagana e pei o le fausiaina o le gagana polokalame ma le gagana fesili. . O le isi oloa e tau le iloa e tagata lautele. Lenei Codasip Studio, o se siosiomaga faʻapipiʻi tuʻufaʻatasia mo le faʻaaogaina o faʻatonuga-set processor (ASIP), faʻaaogaina uma i totonu o le kamupani Czech Codasip lava ia ma ona tagata faʻatau, e aofia ai AMD, AVG, Mobileye, Sigma Designs. O loʻo faʻaogaina e Codasip Handly i le gaosiga talu mai le 2015, amata ile faʻamatalaga Handly 0.2. O le faʻasalalauga lata mai o Codasip Studio faʻaaogaina le 0.5, faʻasalalau ia Iuni 2016. Ondřej Ilčík, o loʻo taʻitaʻia le atinaʻeina o le IDE i Codasip, o loʻo faʻafesoʻotaʻi ma le poloketi, tuʻuina atu faʻamatalaga taua e fai ma sui o le "tolu vaega vaetama". Na mafai foʻi ona ia maua se taimi avanoa e auai saʻo ai i le atinaʻeina o le poloketi, faʻaaogaina se UI layer (~ 4000 laina o le code) mo se tasi o faʻataʻitaʻiga Handly, se faʻataʻitaʻiga Java. E mafai ona maua i luga o le itulau fa'amatalaga au'ili'ili muamua e uiga i le fa'aogaina o le Handly e tagata fa'aaoga Tala manuia galuega faatino.

Matou te faʻamoemoe pe a maeʻa le tuʻuina atu o le version 1.0 faʻatasi ai ma se faʻamaoniga o le mautu o le API ma le poloketi e tuʻu ai le tulaga incubation, o le a maua e Handly ni tagata fou. I le taimi nei, o loʻo faʻaauau pea le suʻega o le poloketi ma faʻaleleia atili le API, tuʻuina atu lua "tele" faʻasalalauga i le tausaga - ia Iuni (o le aso tutusa e pei o le faʻasalaga Eclipse faʻatasi) ma Tesema, e tuʻuina atu ai se faʻatulagaina faʻatulagaina e mafai ona faʻalagolago i ai tagata vaetama. E mafai fo'i ona matou fa'aopoopoina o le "bug rate" o le poloketi o lo'o tumau pea i se tulaga maualalo ma o Handly o lo'o galue fa'alagolago i oloa a tagata muamua na fa'aaogaina talu mai ulua'i lomiga. Ina ia suʻesuʻe atili Eclipse Handly, e mafai ona e faʻaogaina Amataina A'oa'oga и Vaaiga lautele i le tusiata fale.

puna: www.habr.com

Faaopoopo i ai se faamatalaga