{"id":32464,"date":"2019-10-31T21:47:12","date_gmt":"2019-10-31T18:47:12","guid":{"rendered":"https:\/\/prohoster.info\/blog\/eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools\/"},"modified":"2019-10-31T21:47:12","modified_gmt":"2019-10-31T18:47:12","slug":"eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools","title":{"rendered":"Eclipse si nj\u00eb platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Me ndoshta, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/\">Eclipse<\/a><\/noindex> nuk ka nevoj\u00eb p\u00ebr prezantim t\u00eb ve\u00e7ant\u00eb. Shum\u00eb e njohin Eclipse fal\u00eb Eclipse Java development tools (<noindex><a rel=\"nofollow\" href=\"http:\/\/www.eclipse.org\/jdt\/\">JDT<\/a><\/noindex>). Kjo IDE e njohur open-source Java asociohet me shumic\u00ebn e zhvilluesve me fjal\u00ebn \u201cEclipse\u201d. Megjithat\u00eb, Eclipse \u00ebsht\u00eb gjithashtu nj\u00eb platform\u00eb e zgjerueshme p\u00ebr integrimin e mjeteve t\u00eb zhvillimit (Eclipse Platform), dhe nj\u00eb seri IDE-sh t\u00eb nd\u00ebrtuara mbi t\u00eb, p\u00ebrfshir\u00eb JDT. Eclipse \u00ebsht\u00eb gjithashtu Projekti Eclipse, nj\u00eb projekt n\u00eb nivel t\u00eb lart\u00eb q\u00eb koordinon zhvillimin e Eclipse Platform dhe JDT, si dhe Eclipse SDK \u2013 produktu final i k\u00ebsaj zhvillimi. P\u00ebr m\u00eb tep\u00ebr, Eclipse \u00ebsht\u00eb nj\u00eb Fondacion open-source me nj\u00eb komunitet t\u00eb madh projektesh, prej t\u00eb cil\u00ebve shum\u00eb prej tyre nuk jan\u00eb shkruar n\u00eb Java ose nuk kan\u00eb lidhje me mjetet e zhvillimit (p.sh. projektet <noindex><a rel=\"nofollow\" href=\"https:\/\/iot.eclipse.org\/\">Eclipse IoT<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/science.eclipse.org\/\">Eclipse Science<\/a><\/noindex>). Bota e Eclipse \u00ebsht\u00eb shum\u00eb e pasur.<\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull, i cili ka karakter p\u00ebrmbledh\u00ebs, do t\u00eb p\u00ebrpiqemi t\u00eb trajtojm\u00eb disa aspekte bazike t\u00eb arkitektur\u00ebs Eclipse si nj\u00eb platform\u00eb p\u00ebr nd\u00ebrtimin e mjeteve t\u00eb integruara t\u00eb zhvillimit dhe t\u00eb japim nj\u00eb pasqyr\u00eb t\u00eb komponent\u00ebve t\u00eb Eclipse, t\u00eb cil\u00ebt formojn\u00eb temelin e platform\u00ebs teknologjike p\u00ebr \u2018Konfiguruesin\u2019 e ri 1C: Enterprise, <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/release_IDE\/\">1C:Enterprise Development Tools<\/a><\/noindex>. Sigurisht, nj\u00eb analiz\u00eb e till\u00eb do t\u00eb jet\u00eb p\u00ebr shum\u00eb aspekte sip\u00ebrfaqsore dhe mjaft t\u00eb kufizuar, p\u00ebrfshir\u00eb faktin q\u00eb ne orientoheni jo vet\u00ebm tek zhvilluesit Eclipse si audienc\u00eb t\u00eb synuar. Megjithat\u00eb, ne shpresojm\u00eb se madje edhe zhvilluesit e p\u00ebrvoj\u00ebs n\u00eb Eclipse do t\u00eb mund t\u00eb gjejn\u00eb informacion interesant n\u00eb k\u00ebt\u00eb artikull. P\u00ebr shembull, do t\u00eb flasim rreth nj\u00eb nga \u2018sekretet e Eclipse\u2019, nj\u00eb projekt relativisht i ri dhe ende i panjohur, <noindex><a rel=\"nofollow\" href=\"http:\/\/eclipse.org\/handly\/\">Eclipse Handly<\/a><\/noindex>, i cili \u00ebsht\u00eb themeluar dhe mb\u00ebshtetur nga kompania 1C.<br \/>\n<img decoding=\"async\" alt=\"Eclipse si nj\u00eb platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools\" src=\"\/wp-content\/uploads\/2019\/04\/eb399a50bf86b6acce1df9e3d40848d4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Hyrje n\u00eb arkitektur\u00ebn Eclipse<\/h2>\n<p>\nHidhni nj\u00eb v\u00ebshtrim s\u00eb pari disa aspekteve t\u00eb p\u00ebrgjithshme t\u00eb arkitektur\u00ebs Eclipse p\u00ebrmes shembullit <noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/jdt\/overview.php\">Eclipse Java development tools<\/a><\/noindex> (JDT). Zgjedhja e JDT si shembull nuk \u00ebsht\u00eb rast\u00ebsore. Kjo \u00ebsht\u00eb mjedisi i par\u00eb i integruar i zhvillimit q\u00eb u shfaq n\u00eb Eclipse. Projektet e tjera *DT t\u00eb Eclipse, si\u00e7 \u00ebsht\u00eb Eclipse C\/C++ Development Tooling (CDT), jan\u00eb krijuar m\u00eb von\u00eb dhe kan\u00eb huazuar si parimet arkitekturore themelore ashtu edhe fragmente t\u00eb ve\u00e7anta t\u00eb kodit burimor nga JDT. Bazat e arkitektur\u00ebs t\u00eb vendosura n\u00eb JDT jan\u00eb t\u00eb r\u00ebnd\u00ebsishme edhe sot p\u00ebr \u00e7do IDE q\u00eb \u00ebsht\u00eb nd\u00ebrtuar mbi Eclipse Platform, duke p\u00ebrfshir\u00eb 1C:Enterprise Development Tools.<\/p>\n<p>N\u00eb radh\u00eb t\u00eb par\u00eb, duhet t\u00eb theksohet se Eclipse karakterizohet nga nj\u00eb ndarje arkitekturore e qart\u00eb, me ndarjen e funksionalitetit t\u00eb pavaruara nga gjuha nga funksionalitetet q\u00eb mb\u00ebshtesin gjuh\u00ebt e ve\u00e7anta t\u00eb programimit, dhe ndarjen e komponenteve \u2018kernale\u2019 (core) q\u00eb nuk varen nga UI nga ato q\u00eb lidhen me mb\u00ebshtetje p\u00ebr nd\u00ebrfaqen e p\u00ebrdoruesit.<\/p>\n<p>K\u00ebshtu, Eclipse Platform p\u00ebrcakton infrastruktur\u00ebn e p\u00ebrgjithshme, t\u00eb pavarur nga gjuha, nd\u00ebrsa mjetet Java shtojn\u00eb n\u00eb Eclipse nj\u00eb IDE Java me funksionalitet t\u00eb plot\u00eb. Si Eclipse Platform ashtu edhe JDT p\u00ebrb\u00ebhen nga disa komponente, secila prej t\u00eb cilave i p\u00ebrket ose \u201ckernale\u201d t\u00eb pavarur nga UI, ose shtres\u00ebs UI (shih. 1).<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si nj\u00eb platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools\" src=\"\/wp-content\/uploads\/2019\/04\/230825124962e721ecca7dfb7dee9a0c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Figura 1. Eclipse Platform dhe JDT<\/b><\/p>\n<p>Le t\u00eb p\u00ebrmendim komponentet kryesore t\u00eb Eclipse Platform:<\/p>\n<ul>\n<li><b>Runtime<\/b> \u2014 P\u00ebrcakton infrastruktur\u00ebn e plugin-ve. Eclipse karakterizohet nga nj\u00eb arkitektur\u00eb modulare. N\u00eb thelb, Eclipse \u00ebsht\u00eb nj\u00eb koleksion \u2018pikash zgjerimi\u2019 dhe \u2018zgjerimesh\u2019.<\/li>\n<li><b>Workspace<\/b> \u2014 Menaxhon nj\u00eb ose disa projekte. Nj\u00eb projekt p\u00ebrb\u00ebhet nga dosje dhe skedar\u00eb q\u00eb shfaqen drejtp\u00ebrdrejt n\u00eb sistemin e skedar\u00ebve.<\/li>\n<li><b>Standard Widget Toolkit (SWT)<\/b> \u2014 Ofron element\u00ebt bazik\u00eb t\u00eb nd\u00ebrfaqes s\u00eb p\u00ebrdoruesit, t\u00eb integruar me sistemin operativ.<\/li>\n<li><b>JFace<\/b> \u2014 Ofron nj\u00eb s\u00ebr\u00eb kornizash UI t\u00eb nd\u00ebrtuara mbi SWT.<\/li>\n<li><b>Workbench<\/b> \u2014 P\u00ebrcakton paradigmat e UI t\u00eb Eclipse: redaktuesit, pamjet, perspektivat.<\/li>\n<\/ul>\n<p>\nDuhet th\u00ebn\u00eb se Eclipse Platform ofron gjithashtu shum\u00eb komponente t\u00eb tjera t\u00eb dobishme p\u00ebr nd\u00ebrtimin e mjeteve t\u00eb integruara t\u00eb zhvillimit, midis t\u00eb cilave mund t\u00eb p\u00ebrmendim Debug, Compare, Search, dhe Team. Duhet p\u00ebrmendur ve\u00e7mas JFace Text \u2013 b\u00ebrthama p\u00ebr nd\u00ebrtimin e \u2018redaktor\u00ebve t\u00eb zgjuar\u2019 t\u00eb kodit burimor. Fatkeq\u00ebsisht, edhe shqyrtimi i shpejt\u00eb i k\u00ebtyre komponenteve, si dhe i komponenteve t\u00eb shtres\u00ebs UI nuk \u00ebsht\u00eb i mundur n\u00eb kuad\u00ebr t\u00eb k\u00ebtij artikulli, prandaj n\u00eb pjes\u00ebn e mbetur t\u00eb k\u00ebtij seksioni ne do t\u00eb kufizohemi n\u00eb nj\u00eb p\u00ebrmbledhje t\u00eb komponenteve kryesore \u2018kernale\u2019 t\u00eb Eclipse Platform dhe JDT.<\/p>\n<h4>Core Runtime<\/h4>\n<p>\nInfrastruktura e plugin-ve Eclipse bazohet n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.osgi.org\/developer\/specifications\/\">OSGi<\/a><\/noindex> dhe ofrohet nga projekti <noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/equinox\/\">Eclipse Equinox<\/a><\/noindex>. \u00c7do plugin i Eclipse \u00ebsht\u00eb nj\u00eb OSGi-bundle. Specifikimi OSGi p\u00ebrcakton, nd\u00ebr t\u00eb tjera, mekanizmat e versionimit dhe zgjidhjes s\u00eb varshm\u00ebrive. P\u00ebrve\u00e7 k\u00ebtyre mekanizmave standarde, Equinox sjell konceptin e <i>pik\u00ebs s\u00eb zgjerimit<\/i>. \u00c7do plugin mund t\u00eb definoj\u00eb pikat e tij t\u00eb zgjerimit, si dhe t\u00eb sjell\u00eb funksionalitete t\u00eb tjera n\u00eb sistem duke p\u00ebrdorur pikat e zgjerimit t\u00eb p\u00ebrcaktuara nga ky ose plugins t\u00eb tjer\u00eb. \u00c7do p\u00ebrshkrim i detajuar i mekanizmave OSGi dhe Equinox kalon p\u00ebrtej k\u00ebsaj artikulli. Vlen t\u00eb theksohet se modularizimi n\u00eb Eclipse ka nj\u00eb karakter total (\u00e7do n\u00ebn-sistem, p\u00ebrfshir\u00eb Runtime, p\u00ebrb\u00ebhet nga nj\u00eb ose m\u00eb shum\u00eb plugin), dhe pothuajse gjith\u00e7ka n\u00eb Eclipse \u00ebsht\u00eb nj\u00eb zgjerim. K\u00ebto parime ishin vendosur n\u00eb arkitektur\u00ebn Eclipse shum\u00eb p\u00ebrpara se t\u00eb implementohej OSGi (n\u00eb at\u00eb koh\u00eb u p\u00ebrdor nj\u00eb teknologji e brendshme, e cila ishte shum\u00eb e ngjashme me OSGi).<\/p>\n<h4>Core Workspace<\/h4>\n<p>\nGati \u00e7do ambient i integruar i zhvillimit, i nd\u00ebrtuar mbi platform\u00ebn Eclipse, punon me Eclipse workspace. Workspace zakonisht p\u00ebrmban kodin burimor t\u00eb aplikacionit q\u00eb po zhvillohet n\u00eb IDE. Workspace shfaqet drejtp\u00ebrdrejt n\u00eb sistemin e skedar\u00ebve dhe p\u00ebrb\u00ebhet nga projekte q\u00eb p\u00ebrmbajn\u00eb dosje dhe skedar\u00eb. K\u00ebto projekte, dosje dhe skedar\u00eb quhen <i>burime<\/i> workspace. Zbatimi i workspace n\u00eb Eclipse sh\u00ebrben si nj\u00eb cache n\u00eb raport me sistemin e skedar\u00ebve, duke lejuar nj\u00eb shpejt\u00ebsi t\u00eb dukshme n\u00eb navigimin e pem\u00ebs s\u00eb burimeve. P\u00ebr m\u00eb tep\u00ebr, workspace ofron nj\u00eb s\u00ebr\u00eb sh\u00ebrbimesh shtes\u00eb, duke p\u00ebrfshir\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/eclipse.org\/articles\/Article-Resource-deltas\/resource-deltas.html\">mekanizmin e njoftimit p\u00ebr ndryshimin e burimeve<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/eclipse.org\/articles\/Article-Builders\/builders.html\">infrastruktur\u00ebn e nd\u00ebrtuesve inkremental\u00eb<\/a><\/noindex>.<\/p>\n<p>P\u00ebr mb\u00ebshtetje t\u00eb workspace dhe burimeve t\u00eb tij p\u00ebrgjigjet komponenti Core Resources (plugin org.eclipse.core.resources). N\u00eb ve\u00e7anti, ky komponent ofron qasje programore n\u00eb workspace n\u00eb form\u00ebn e <i>modelit t\u00eb burimeve<\/i>. p\u00ebr nj\u00eb funksionim t\u00eb efektsh\u00ebm me k\u00ebt\u00eb model, klient\u00ebt kan\u00eb nevoj\u00eb p\u00ebr nj\u00eb m\u00ebnyr\u00eb t\u00eb thjesht\u00eb p\u00ebr t\u00eb paraqitur nj\u00eb referenc\u00eb n\u00eb burim. Nd\u00ebrkoh\u00eb, objekti q\u00eb ruan direkt gjendjen e burimit n\u00eb model, do t\u00eb ishte e d\u00ebshirueshme t\u00eb fshihej nga qasja e klientit. N\u00eb t\u00eb kund\u00ebrt, n\u00eb rastin, p\u00ebr shembull, t\u00eb fshirjes s\u00eb nj\u00eb skedari, klienti mund t\u00eb vazhdoj\u00eb t\u00eb mbaj\u00eb objektin, i cili nuk \u00ebsht\u00eb m\u00eb n\u00eb model, me problemet q\u00eb rrjedhin nga kjo. Eclipse e zgjidh k\u00ebt\u00eb problem duke p\u00ebrdorur at\u00eb q\u00eb quhet <i>handle<\/i> i burimit. Handle sh\u00ebrben si nj\u00eb \u00e7el\u00ebs (ai di vet\u00ebm rrug\u00ebn drejt burimit n\u00eb workspace) dhe kontrollon plot\u00ebsisht aksesin n\u00eb objektin e brendsh\u00ebm t\u00eb modelit, i cili ruan drejtp\u00ebrdrejt informacionin mbi gjendjen e burimit. Ky dizajn \u00ebsht\u00eb nj\u00eb variacion i modelit <noindex><a rel=\"nofollow\" href=\"http:\/\/wiki.c2.com\/?HandleBodyPattern\">Handle\/Body<\/a><\/noindex>.<\/p>\n<p>Fig. 2 ilustron idiom\u00ebn Handle\/Body n\u00eb lidhje me modelin e burimeve. Interfaci IResource p\u00ebrfaq\u00ebson handle-in e burimit dhe \u00ebsht\u00eb API, ndryshe nga klasa Resource, e cila implementon k\u00ebt\u00eb interface, si dhe klasa ResourceInfo, q\u00eb p\u00ebrfaq\u00ebson trupin, t\u00eb cilat nuk jan\u00eb API. Theksojm\u00eb se handle di vet\u00ebm rrug\u00ebn drejt burimit n\u00eb raport me rr\u00ebnj\u00ebn e workspace dhe nuk p\u00ebrmban asnj\u00eb referenc\u00eb n\u00eb resource info. Objektet e resource info formojn\u00eb at\u00eb q\u00eb quhet \"pem\u00eb elementesh\" (element tree). Kjo struktur\u00eb t\u00eb dh\u00ebnash \u00ebsht\u00eb plot\u00ebsisht materializuar n\u00eb memoria. P\u00ebr t\u00eb gjetur nj\u00eb instanc\u00eb t\u00eb resource info, p\u00ebrkat\u00ebse me ndonj\u00eb handle, pem\u00eb elementesh duhet t\u00eb kaloj\u00eb n\u00eb p\u00ebrputhje me rrug\u00ebn q\u00eb ruhet n\u00eb k\u00ebt\u00eb handle.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si nj\u00eb platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools\" src=\"\/wp-content\/uploads\/2019\/04\/9d17cd95be3730ab6b5b9e6e3ed71ace.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Fig. 2. IResource dhe ResourceInfo<\/b><\/p>\n<p>Si\u00e7 do t\u00eb shohim m\u00eb tej, dizajni baz\u00eb i modelit t\u00eb burimeve (mund ta quajm\u00eb t\u00eb bazuar n\u00eb handle) p\u00ebrdoret n\u00eb Eclipse edhe p\u00ebr modele t\u00eb tjera. Nd\u00ebrkoh\u00eb, le t\u00eb paraqesim disa ve\u00e7ori dalluese t\u00eb k\u00ebtij dizajni:<\/p>\n<ul>\n<li>Handle \u00ebsht\u00eb nj\u00eb objekt vler\u00eb (value object). Objektet e vler\u00ebs jan\u00eb objekte t\u00eb pandryshueshme (immutable), barazia e t\u00eb cil\u00ebve nuk bazohet n\u00eb identitet. K\u00ebto objekte mund t\u00eb p\u00ebrdoren n\u00eb m\u00ebnyr\u00eb t\u00eb sigurt si \u00e7el\u00ebsa n\u00eb konteinerat e heshur. Disa instanca t\u00eb handle mund t\u00eb referohen n\u00eb t\u00eb nj\u00ebjtin burim. P\u00ebr t'i krahasuar ato, duhet t\u00eb p\u00ebrdoret metoda equals(Object).<\/li>\n<li>Handle p\u00ebrcakton sjelljen e burimit, por nuk p\u00ebrmban informacion mbi gjendjen e burimit (t\u00eb dh\u00ebnat e vetme q\u00eb ai ruan jan\u00eb \"\u00e7el\u00ebsi\", rruga drejt burimit).<\/li>\n<li>Handle mund t\u00eb referohet n\u00eb nj\u00eb burim q\u00eb nuk ekziston (ose nj\u00eb burim q\u00eb ende nuk \u00ebsht\u00eb krijuar, ose nj\u00eb burim q\u00eb \u00ebsht\u00eb fshir\u00eb tashm\u00eb). Ekzistenca e burimit mund t\u00eb kontrollohet me metod\u00ebn IResource.exists().<\/li>\n<li>Disa operacione mund t\u00eb realizohen duke u mb\u00ebshtetur ekskluzivisht n\u00eb informacionin e ruajtur n\u00eb vet\u00eb handle (operacione t\u00eb ashtuquajtura vet\u00ebm p\u00ebr handle). Shembuj jan\u00eb IResource.getParent(), getFullPath(), etj. Burimi nuk \u00ebsht\u00eb domosdoshm\u00ebrisht p\u00ebr t\u00eb ekzistuar p\u00ebr t\u00eb realizuar me sukses nj\u00eb operacion t\u00eb till\u00eb. Operacionet, p\u00ebr t\u00eb cilat nevojitet q\u00eb burimi t\u00eb ekzistoj\u00eb p\u00ebr t\u00eb p\u00ebrfunduar me sukses, hedhin nj\u00eb p\u00ebrjashtim (CoreException) n\u00ebse burimi nuk ekziston.<\/li>\n<\/ul>\n<p>\nEclipse ofron nj\u00eb mekaniz\u00ebm efikas njoftimi p\u00ebr ndryshimet n\u00eb burimet e workspace (shih fig. 3). Burimet mund t\u00eb ndryshojn\u00eb si rezultat i veprimeve q\u00eb kryhen n\u00eb vet\u00eb Eclipse IDE, ashtu edhe si rezultat i sinkronizimit me sistemin e skedar\u00ebve. N\u00eb t\u00eb dyja rastet, klient\u00ebt e regjistruar p\u00ebr njoftime marrin informacion t\u00eb detajuar rreth ndryshimeve n\u00eb form\u00ebn e \"delta burimore\" (resource delta). Delta p\u00ebrshkruan ndryshimet midis dy gjendjeve (n\u00ebn)pyjeve t\u00eb burimeve n\u00eb workspace dhe vet\u00eb \u00ebsht\u00eb nj\u00eb pem\u00eb, ku \u00e7do nyje p\u00ebrshkruan nj\u00eb ndryshim t\u00eb nj\u00eb burimi t\u00eb caktuar dhe p\u00ebrmban nj\u00eb list\u00eb dhelash t\u00eb nivelit t\u00eb ardhsh\u00ebm, duke p\u00ebrshkruar ndryshimet e burimeve f\u00ebmij\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si nj\u00eb platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools\" src=\"\/wp-content\/uploads\/2019\/04\/8af412412ee97d205137ab70c8444a50.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Fig. 3. IResourceChangeEvent dhe IResourceDelta<\/b><\/p>\n<p>Mekanizmi i njoftimit i bazuar n\u00eb delta burimore ka tipare t\u00eb m\u00ebposhtme:<\/p>\n<ul>\n<li>Nj\u00eb ndryshim i vet\u00ebm dhe shum\u00eb ndryshime p\u00ebrshkruhen me t\u00eb nj\u00ebjt\u00ebn struktur\u00eb, pasi delta nd\u00ebrtohet mbi parimin e kompozit\u00ebs rekursive. Klient\u00ebt e regjistruar mund t\u00eb trajtojn\u00eb njoftimet p\u00ebr ndryshimin e burimeve duke b\u00ebr\u00eb nj\u00eb zbritje rekursive n\u00eb pem\u00ebn e deltat.<\/li>\n<li>Delta p\u00ebrmban informacionin e plot\u00eb n\u00eb lidhje me ndryshimin e burimit, duke p\u00ebrfshir\u00eb zhvendosjen e tij dhe\/ose ndryshimin e \"markerave\" t\u00eb lidhur (si\u00e7 jan\u00eb markera p\u00ebr gabimet e kompiluara).<\/li>\n<li>Duke marr\u00eb parasysh se referencat p\u00ebr burimin b\u00ebhen p\u00ebrmes handle, delta mund t\u00eb referencoj\u00eb natyrsh\u00ebm nj\u00eb burim t\u00eb larg\u00ebt.<\/li>\n<\/ul>\n<p>\nSi\u00e7 do ta shohim s\u00eb shpejti, komponent\u00ebt kryesor\u00eb t\u00eb dizajnit t\u00eb mekanizmit t\u00eb njoftimit p\u00ebr ndryshimin e modelit t\u00eb burimeve jan\u00eb t\u00eb aplikuesh\u00ebm edhe p\u00ebr modele t\u00eb tjera t\u00eb bazuara n\u00eb handle.<\/p>\n<h4>JDT Core<\/h4>\n<p>\nModeli i burimeve t\u00eb workspace Eclipse \u00ebsht\u00eb nj\u00eb model themelor q\u00eb nuk \u00ebsht\u00eb varur nga gjuha. Komponenta JDT Core (plugin org.eclipse.jdt.core) ofron API p\u00ebr navigimin dhe analizimin e struktur\u00ebs s\u00eb workspace nga perspektiva e Java, e njohur si \"modeli Java\" (<i>Java model<\/i>). Ky API p\u00ebrkufizohet n\u00eb terma t\u00eb elementeve Java, ndryshe nga API i n\u00ebntok\u00ebs i modelit t\u00eb burimeve, i cili p\u00ebrkufizohet n\u00eb terma t\u00eb dosjeve dhe skedar\u00ebve. Interfacet kryesore t\u00eb pem\u00ebs s\u00eb elementeve Java paraqiten n\u00eb fig. 4.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si nj\u00eb platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools\" src=\"\/wp-content\/uploads\/2019\/04\/67bfd31e93eaa66aa94b30281693a318.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Fig. 4. Elementet e modelit Java<\/b><\/p>\n<p>Modeli Java p\u00ebrdor t\u00eb nj\u00ebjtin idiom\u00eb handle\/body si modeli i burimeve (shih fig. 5). IJavaElement \u00ebsht\u00eb handle, nd\u00ebrsa JavaElementInfo luan rolin e body. Interfaci IJavaElement p\u00ebrcakton protokollin e p\u00ebrbashk\u00ebt p\u00ebr t\u00eb gjith\u00eb element\u00ebt Java. Disa nga metodat e tij jan\u00eb vet\u00ebm p\u00ebr handle: getElementName(), getParent(), etj. Objekti JavaElementInfo ruan gjendjen e elementit p\u00ebrkat\u00ebs: struktur\u00ebn dhe atributet e tij.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si nj\u00eb platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools\" src=\"\/wp-content\/uploads\/2019\/04\/5b473cccfc8f258d563033ce334cb94f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Fig. 5. IJavaElement dhe JavaElementInfo<\/b><\/p>\n<p>Modeli Java ka disa dallime n\u00eb realizimin e dizajnit baz\u00eb handle\/body n\u00eb krahasim me modelin e burimeve. Si\u00e7 u p\u00ebrmend m\u00eb par\u00eb, n\u00eb modelin e burimeve, pema e elementeve, me nyjet e saj q\u00eb jan\u00eb objekte t\u00eb informacionit t\u00eb burimit, ruhet plot\u00ebsisht n\u00eb memorie. Por n\u00eb modelin Java mund t\u00eb ket\u00eb nj\u00eb num\u00ebr shum\u00eb m\u00eb t\u00eb madh elementesh se n\u00eb pem\u00ebn e burimeve, pasi ajo p\u00ebrfshin gjithashtu struktur\u00ebn e brendshme t\u00eb skedar\u00ebve .java dhe .class: llojet, fushat dhe metodat.<\/p>\n<p>P\u00ebr t\u00eb shmangur materializimin e plot\u00eb t\u00eb gjith\u00eb pem\u00ebs s\u00eb elementeve n\u00eb memorje, realizimi i modelit Java p\u00ebrdor nj\u00eb cache t\u00eb kufizuar LRU p\u00ebr informacionin e elementeve, ku \u00e7el\u00ebsi \u00ebsht\u00eb handle IJavaElement. Objekti i informacionit t\u00eb elementeve krijohet me k\u00ebrkes\u00eb nd\u00ebrsa ndodh navigimi n\u00eb pem\u00ebn e elementeve. N\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, elementet m\u00eb pak t\u00eb p\u00ebrdorura p\u00ebrzgjidhen nga cache, dhe konsumimi i memories nga modeli mbetet i kufizuar n\u00eb madh\u00ebsin\u00eb e dh\u00ebn\u00eb t\u00eb cache. Kjo \u00ebsht\u00eb edhe nj\u00eb avantazh tjet\u00ebr i dizajnit t\u00eb bazuar n\u00eb handle, i cili e fsheh plot\u00ebsisht k\u00ebto detaje realizimi nga kodi i klientit.<\/p>\n<p>Mekanizmi i njoftimit p\u00ebr ndryshimin e elementeve Java \u00ebsht\u00eb n\u00eb p\u00ebrgjith\u00ebsi i ngjash\u00ebm me mekanizmin e diskutuar m\u00eb sip\u00ebr p\u00ebr ndjekjen e ndryshimeve t\u00eb burimeve t\u00eb workspace. Klienti q\u00eb d\u00ebshiron t\u00eb ndjek\u00eb ndryshimet n\u00eb modelin Java regjistrohet p\u00ebr njoftime, t\u00eb cilat paraqiten n\u00eb form\u00ebn e nj\u00eb objekti ElementChangedEvent, i cili p\u00ebrmban IJavaElementDelta (shih fig. 6).<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si nj\u00eb platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools\" src=\"\/wp-content\/uploads\/2019\/04\/0402ec362078eaf50f47756e7f24de01.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Fig. 6. ElementChangedEvent dhe IJavaElementDelta<\/b><\/p>\n<p>Modeli Java nuk p\u00ebrmban informacion mbi trupat e metodave ose zgjidhjen e emrave, prandaj, p\u00ebr analiz\u00ebn e detajuar t\u00eb kodit t\u00eb shkruar n\u00eb Java, JDT Core ofron nj\u00eb model shtes\u00eb (jo t\u00eb bazuar n\u00eb handle): <noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/articles\/Article-JavaCodeManipulation_AST\/index.html\">pema e sintaks\u00ebs abstrakte<\/a><\/noindex> (abstract syntax tree, AST). AST paraqet rezultatin e analiz\u00ebs sintaksore t\u00eb tekstit burimor. Nyjet e AST korrespondojn\u00eb me elementet e struktur\u00ebs s\u00eb modulit burimor (deklaratat, operator\u00ebt, shprehjet, etj.) dhe p\u00ebrmbajn\u00eb informacion mbi koordinatat e elementit p\u00ebrkat\u00ebs n\u00eb tekstin burimor, si dhe (si opsion) informacion mbi zgjidhjen e emrave n\u00eb form\u00ebn e referencave n\u00eb at\u00eb q\u00eb quhen <i>bindings<\/i>. Bindings jan\u00eb objekte q\u00eb p\u00ebrfaq\u00ebsojn\u00eb entitete t\u00eb em\u00ebruara, si\u00e7 jan\u00eb tipet, metodat dhe variablat, q\u00eb jan\u00eb t\u00eb njohura nga kompajleri. Ndryshe nga nyjat e AST, t\u00eb cilat formojn\u00eb nj\u00eb pem\u00eb, bindings mb\u00ebshtesin referencat e kryq\u00ebzuara dhe n\u00eb p\u00ebrgjith\u00ebsi formojn\u00eb nj\u00eb graf. Klasa abstrakte ASTNode \u00ebsht\u00eb nj\u00eb klas\u00eb baz\u00eb e p\u00ebrbashk\u00ebt p\u00ebr t\u00eb gjitha nyjat e AST. N\u00ebnklasat e ASTNode korrespondjn\u00eb me konstruksione t\u00eb caktuara sintaksore t\u00eb gjuh\u00ebs Java.<\/p>\n<p>Duke pasur parasysh se pem\u00ebt sintaksore mund t\u00eb konsumojn\u00eb nj\u00eb sasi t\u00eb konsiderueshme memorie, JDT ka t\u00eb cache vet\u00ebm nj\u00eb AST p\u00ebr redaktorin aktiv. Ndryshe nga modeli Java, AST zakonisht konsiderohet si nj\u00eb model \"nd\u00ebrmjet\u00ebs\", \"p\u00ebrkohsh\u00ebm\", ku klient\u00ebt nuk duhet t\u00eb mbajn\u00eb referenca jasht\u00eb kontekstit t\u00eb operacionit q\u00eb \u00e7oi n\u00eb krijimin e AST.<\/p>\n<p>Tre modelet e p\u00ebrmendura (Java model, AST, bindings) s\u00eb bashku p\u00ebrb\u00ebjn\u00eb baz\u00ebn p\u00ebr nd\u00ebrtimin e \"mjeteve inteligjente t\u00eb zhvillimit\" n\u00eb JDT, p\u00ebrfshir\u00eb nj\u00eb redaktor t\u00eb fuqish\u00ebm Java me ndihm\u00ebs t\u00eb ndrysh\u00ebm, veprime t\u00eb ndryshme p\u00ebr p\u00ebrpunimin e kodit burimor (p\u00ebrfshir\u00eb organizimin e list\u00ebs s\u00eb importeve t\u00eb emrave dhe formatimin sipas stilit t\u00eb konfiguruar), mjete k\u00ebrkimi dhe riformatimi. N\u00eb k\u00ebt\u00eb kontekst, modeli Java luan nj\u00eb rol t\u00eb ve\u00e7ant\u00eb, pasi pik\u00ebrisht ai p\u00ebrdoret si baz\u00eb p\u00ebr p\u00ebrfaq\u00ebsimin vizual t\u00eb struktur\u00ebs s\u00eb aplikacionit q\u00eb po zhvillohet (p.sh., n\u00eb Package Explorer, Outline, Search, Call Hierarchy, dhe Type Hierarchy).<\/p>\n<h2>Komponent\u00ebt e Eclipse, t\u00eb p\u00ebrdorur n\u00eb 1C:Enterprise Developments Tools<\/h2>\n<p>\nN\u00eb fig. 7 jan\u00eb shfaqur komponent\u00ebt e Eclipse, t\u00eb cil\u00ebt formojn\u00eb themelin e platform\u00ebs teknologjike p\u00ebr 1C:Enterprise Development Tools.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si nj\u00eb platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools\" src=\"\/wp-content\/uploads\/2019\/04\/248cceea47ee507b9ad22d6964738ee7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Fig. 7. Eclipse si platform\u00eb p\u00ebr 1C:Enterprise Development Tools<\/b><\/p>\n<p><b>Eclipse Platform<\/b> siguron infrastruktur\u00ebn baz\u00eb. Ne shqyrtuam disa aspektet e k\u00ebsaj infrastrukture n\u00eb seksionin e m\u00ebparsh\u00ebm.<\/p>\n<p><b><noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/modeling\/emf\/\">Eclipse Modeling Framework<\/a><\/noindex><\/b> (<b>EMF<\/b>) ofron mjete t\u00eb zakonshme p\u00ebr modelimin e t\u00eb dh\u00ebnave t\u00eb strukturuara. EMF \u00ebsht\u00eb integuar me Eclipse Platform, por mund t\u00eb p\u00ebrdoret edhe ve\u00e7mas, n\u00eb aplikacione t\u00eb zakonshme Java. Shpesh, zhvilluesit e rinj t\u00eb Eclipse jan\u00eb tashm\u00eb t\u00eb njohur mir\u00eb me EMF, p\u00ebrkundrazi, ndoshta nuk kuptojn\u00eb n\u00eb detaje platform\u00ebn Eclipse. Nj\u00eb nga arsyet p\u00ebr k\u00ebt\u00eb popullaritet t\u00eb merituar \u00ebsht\u00eb dizajni universal, i cili p\u00ebrfshin, nd\u00ebr t\u00eb tjera, nj\u00eb API t\u00eb unifikuar n\u00eb nivelin e metave, q\u00eb lejon t\u00eb punosh n\u00eb m\u00ebnyr\u00eb t\u00eb p\u00ebrgjithshme me \u00e7do model EMF. Zbatimet themelore q\u00eb ofron EMF p\u00ebr objektet e modelit dhe n\u00ebndeg\u00ebt e gjenerimit t\u00eb kodit t\u00eb modelit bazuar n\u00eb metamodelin rrisin ndjesh\u00ebm shpejt\u00ebsin\u00eb e zhvillimit dhe zvog\u00eblojn\u00eb numrin e gabimeve. Gjithashtu, EMF p\u00ebrfshin mekanizma p\u00ebr serializimin e modeleve, ndjekjen e ndryshimeve n\u00eb model dhe shum\u00eb m\u00eb tep\u00ebr. <\/p>\n<p>Si\u00e7 ndodh me \u00e7do mjet t\u00eb v\u00ebrtet\u00eb universal, EMF \u00ebsht\u00eb i p\u00ebrshtatsh\u00ebm p\u00ebr t\u00eb trajtuar nj\u00eb gam\u00eb t\u00eb gjer\u00eb problemesh t\u00eb lidhura me modelimin, por disa klasat e modeleve (p.sh., modelet bazuar n\u00eb handle q\u00eb u p\u00ebrmend\u00ebn m\u00eb sip\u00ebr) mund t\u00eb k\u00ebrkojn\u00eb mjete m\u00eb t\u00eb specializuara p\u00ebr modelimin. T\u00eb flas\u00ebsh p\u00ebr EMF \u00ebsht\u00eb nj\u00eb detyr\u00eb q\u00eb ndonj\u00ebher\u00eb \u00ebsht\u00eb e nd\u00ebrlikuar, ve\u00e7an\u00ebrisht n\u00eb kufizimet e nj\u00eb artikulli, pasi \u00ebsht\u00eb nj\u00eb tem\u00eb p\u00ebr nj\u00eb lib\u00ebr t\u00eb ve\u00e7ant\u00eb, dhe mjaft t\u00eb trash\u00eb. Vlen t\u00eb theksohet se sistemi i kualitetit p\u00ebr p\u00ebrfshirjen e EMF, ka lejuar q\u00eb t\u00eb lind\u00eb nj\u00eb gam\u00eb e gjer\u00eb projektesh mbi modelimin, t\u00eb cilat jan\u00eb pjes\u00eb e projektit t\u00eb nivelit t\u00eb lart\u00eb. <noindex><a rel=\"nofollow\" href=\"https:\/\/eclipse.org\/modeling\/\">Eclipse Modeling<\/a><\/noindex> bashk\u00eb me vet\u00eb EMF. Nj\u00eb nga k\u00ebto projekte \u00ebsht\u00eb Eclipse Xtext.<\/p>\n<p><b><noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/Xtext\/\">Eclipse Xtext<\/a><\/noindex><\/b> ofron infrastruktur\u00eb p\u00ebr \"modelimin tekstual\". Xtext p\u00ebrdor <noindex><a rel=\"nofollow\" href=\"http:\/\/www.antlr.org\/\">ANTLR<\/a><\/noindex> p\u00ebr analizimin sintaksor t\u00eb tekstit burimor dhe EMF p\u00ebr p\u00ebrfaq\u00ebsimin e ASG (grafi abstrakt sintaksor, i cili, n\u00eb thelb, \u00ebsht\u00eb nj\u00eb kombinim i AST dhe bindings), e njohur gjithashtu si \"modeli semantik\". Gramatika e gjuh\u00ebs q\u00eb po modelohet me Xtext p\u00ebrshkruhet n\u00eb gjuh\u00ebn e saj t\u00eb vetme Xtext. Kjo lejon jo vet\u00ebm gjenerimin e p\u00ebrshkrimit t\u00eb gramatik\u00ebs p\u00ebr ANTLR, por gjithashtu ofron mekanizmin p\u00ebr serializimin e AST (dmth. Xtext siguron si parser ashtu edhe unparser), ndihm\u00ebs kontekstual, dhe nj\u00eb s\u00ebr\u00eb komponent\u00ebsh t\u00eb tjer\u00eb gjuh\u00ebsor. N\u00eb an\u00ebn tjet\u00ebr, gjuha p\u00ebrshkruese e gramatik\u00ebs e p\u00ebrdorur n\u00eb Xtext \u00ebsht\u00eb m\u00eb pak fleksibel n\u00eb krahasim, le t\u00eb themi, me gjuh\u00ebn p\u00ebrshkruese t\u00eb gramatik\u00ebs n\u00eb ANTLR. Prandaj, ndonj\u00ebher\u00eb mund t\u00eb duhet \"t\u00eb p\u00ebrshtatet\" gjuha q\u00eb po zbatohen p\u00ebr Xtext, gj\u00eb q\u00eb zakonisht nuk \u00ebsht\u00eb nj\u00eb problem, n\u00ebse \u00ebsht\u00eb fjala p\u00ebr nj\u00eb gjuh\u00eb q\u00eb po zhvillohet nga fillimi, por mund t\u00eb jet\u00eb e papranueshme p\u00ebr gjuh\u00ebt me nj\u00eb sintaks\u00eb t\u00eb vendosur tashm\u00eb. Pavar\u00ebsisht k\u00ebsaj, Xtext \u00ebsht\u00eb aktualisht mjeti m\u00eb i avancuar, funksionalisht e plot\u00eb dhe universale n\u00eb Eclipse p\u00ebr nd\u00ebrtimin e gjuh\u00ebve t\u00eb programimit dhe mjeteve p\u00ebr to. N\u00eb ve\u00e7anti, ai \u00ebsht\u00eb nj\u00eb mjet ideal p\u00ebr prototipimin e shpejt\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA\">t\u00eb gjuh\u00ebve t\u00eb orientuara mbi subjekte<\/a><\/noindex> (gjuha specifike p\u00ebr domain, DSL). P\u00ebrve\u00e7 \"nd\u00ebrgjegjes nuk \u00ebsht\u00eb notuar\" si b\u00ebrthama gjuh\u00ebsore e bazuar n\u00eb ANTLR dhe EMF, Xtext ofron shum\u00eb komponente t\u00eb dobishme t\u00eb nivelit m\u00eb t\u00eb lart\u00eb, p\u00ebrfshir\u00eb mekanizma indeksimi, nd\u00ebrtimin inkremental, \"redaktorin inteligjent\", dhe shum\u00eb, shum\u00eb m\u00eb tep\u00ebr, por l\u00eb pas modelet e gjuh\u00ebs s\u00eb bazuar n\u00eb handle. Si EMF, Xtext \u00ebsht\u00eb nj\u00eb tem\u00eb q\u00eb meriton nj\u00eb lib\u00ebr t\u00eb ve\u00e7ant\u00eb, dhe me siguri nuk mund t\u00eb p\u00ebrmendim t\u00eb gjitha mund\u00ebsit\u00eb e tij tani.<\/p>\n<p>1C:Enterprise Development Tools p\u00ebrdorin aktivisht si EMF-n\u00eb vet\u00eb, ashtu edhe nj\u00eb s\u00ebr\u00eb projektesh t\u00eb tjera Eclipse Modeling. N\u00eb ve\u00e7anti, Xtext \u00ebsht\u00eb nj\u00eb nga bazat e mjeteve t\u00eb zhvillimit p\u00ebr gjuh\u00ebt 1C:Enterprise, si gjuha e programimit t\u00eb integruar dhe gjuha e k\u00ebrkesave. Nj\u00eb tjet\u00ebr baz\u00eb e k\u00ebtyre mjeteve t\u00eb zhvillimit \u00ebsht\u00eb projekti Eclipse Handly, p\u00ebr t\u00eb cilin do t\u00eb q\u00ebndrojm\u00eb m\u00eb n\u00eb detaje (nga komponent\u00ebt e p\u00ebrmendur t\u00eb Eclipse, ai \u00ebsht\u00eb ende m\u00eb pak i njohur).<\/p>\n<p><b><noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/handly\/\">Eclipse Handly<\/a><\/noindex><\/b>, n\u00ebnprojekt i projektit t\u00eb nivelit t\u00eb lart\u00eb Eclipse Technology, lindi si rezultat i nj\u00eb kontribucioni fillestar t\u00eb kodit n\u00eb Fondacionin Eclipse, i b\u00ebr\u00eb nga kompania 1C n\u00eb vitin 2014. Q\u00eb at\u00ebher\u00eb kompania 1C vazhdon t\u00eb mb\u00ebshtes\u00eb zhvillimin e projektit; kontribuesit e Handly jan\u00eb punonj\u00ebs t\u00eb kompanis\u00eb. Projekti \u00ebsht\u00eb i vog\u00ebl, por z\u00eb nj\u00eb ni\u015f\u00eb mjaft unike n\u00eb Eclipse: q\u00ebllimi kryesor i tij \u00ebsht\u00eb mb\u00ebshtetje e zhvillimit t\u00eb modeleve t\u00eb bazuara n\u00eb handle.<\/p>\n<p>Parimet themelore t\u00eb arkitektur\u00ebs s\u00eb modeleve t\u00eb bazuara n\u00eb handle, si idiomi handle\/body, u shqyrtuan m\u00eb lart n\u00eb shembullin e modelit t\u00eb burimeve dhe modelit Java. Aty u theksua gjithashtu se si modeli i burimeve ashtu edhe modeli Java jan\u00eb baza t\u00eb r\u00ebnd\u00ebsishme p\u00ebr mjetet e zhvillimit Java t\u00eb Eclipse (JDT). Dhe meqen\u00ebse praktikisht t\u00eb gjitha projektet *DT t\u00eb Eclipse kan\u00eb nj\u00eb arkitektur\u00eb t\u00eb ngjashme me JDT, nuk do t\u00eb ishte nj\u00eb ekzagjerim t\u00eb thuash se modelet e bazuara n\u00eb handle jan\u00eb themeli i shum\u00eb, n\u00ebse jo t\u00eb gjitha IDE-ve, t\u00eb nd\u00ebrtuara mbi platform\u00ebn Eclipse. P\u00ebr shembull, n\u00eb Eclipse C\/C++ Development Tooling (CDT), ka nj\u00eb model t\u00eb bazuar n\u00eb handle p\u00ebr C\/C++, i cili luan t\u00eb nj\u00ebjt\u00ebn rol n\u00eb arkitektur\u00ebn e CDT si modeli Java n\u00eb JDT.<\/p>\n<p>Para se t\u00eb shfaqej Handly, Eclipse nuk ofronte biblioteka t\u00eb specializuara p\u00ebr nd\u00ebrtimin e modeleve t\u00eb gjuh\u00ebve t\u00eb bazuara n\u00eb handle. Modelet q\u00eb ekzistojn\u00eb tani u krijuan kryesisht me ndihm\u00ebn e p\u00ebrshtatjes direkte t\u00eb kodit t\u00eb modelit Java (e njohur ndryshe si kopjimi\/ulli), <i>n\u00eb rastet kur kjo lejohet<\/i> Licenca Publike e Eclipse (EPL). (Natyrisht, p\u00ebr shembuj, p\u00ebr projektet e Eclipse vet\u00eb, kjo zakonisht nuk paraqet nj\u00eb problem nga pik\u00ebpamja ligjore, ndryshe nga produktet me kod t\u00eb mbyllur.) P\u00ebrve\u00e7 pap\u00ebrgjegjshm\u00ebris\u00eb s\u00eb saj karakteristike, kjo metod\u00eb \u00e7on n\u00eb probleme t\u00eb njohura: dublim kodi, gabime t\u00eb introduktuara gjat\u00eb p\u00ebrshtatjes, etj. \u00c7far\u00eb \u00ebsht\u00eb m\u00eb e keqe, modelet e rezultuese mbeten \"gj\u00eb n\u00eb vetvete\" dhe nuk shfryt\u00ebzojn\u00eb potencialin ekzistues p\u00ebr unifikim. N\u00eb fakt, identifikimi i koncepteve dhe protokollit t\u00eb zakonsh\u00ebm p\u00ebr modelet e bazuara n\u00eb handle mund t\u00eb \u00e7onte n\u00eb krijimin e komponenteve t\u00eb rip\u00ebrdorshme p\u00ebr pun\u00ebn me to, ashtu si ndodhi n\u00eb rastin e EMF.<\/p>\n<p>Nuk mund t\u00eb thuhet se n\u00eb Eclipse nuk kishte nj\u00eb kuptim t\u00eb k\u00ebtyre problemeve. Q\u00eb n\u00eb vitin 2005 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.xing.com\/profile\/Martin_Aeschlimann\">Martin Aeschlimann<\/a><\/noindex>, duke p\u00ebrmbledhur p\u00ebrvoj\u00ebn e zhvillimit t\u00eb prototipit CDT, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/org\/langsymp\/position_paper_martin_aeschlimann.html\">argumentoi<\/a><\/noindex> nevoj\u00ebn p\u00ebr krijimin e nj\u00eb infrastrukture t\u00eb p\u00ebrbashk\u00ebt p\u00ebr modelet e gjuh\u00ebve, p\u00ebrfshir\u00eb edhe modelet me baz\u00eb handle. Por, si\u00e7 ndodh shpesh, p\u00ebr shkak t\u00eb detyrave m\u00eb t\u00eb prioritizuara, realisht k\u00ebto ide kurr\u00eb nuk u zbatua. Nd\u00ebrkoh\u00eb, faktorimi i kodit t\u00eb projekteve *DT vazhdon t\u00eb mbetet nj\u00eb nga temat e paushtruara mir\u00eb n\u00eb Eclipse.<\/p>\n<p>N\u00eb nj\u00eb kuptim t\u00eb caktuar, projekti Handly \u00ebsht\u00eb menduar t\u00eb zgjidh\u00eb af\u00ebrsisht t\u00eb nj\u00ebjtat probleme si EMF, por p\u00ebr modelet e bazuara n\u00eb handle, dhe kryesisht p\u00ebr gjuh\u00ebt (dmth., q\u00eb p\u00ebrfaq\u00ebsojn\u00eb element\u00ebt e struktur\u00ebs s\u00eb nj\u00eb gjuhe programimi). M\u00eb posht\u00eb jan\u00eb enumeruar q\u00ebllimet kryesore q\u00eb ishin t\u00eb vendosura gjat\u00eb projektimit t\u00eb Handly:<\/p>\n<ul>\n<li>Identifikimi i abstraksioneve kryesore t\u00eb fush\u00ebs s\u00eb subjektit.<\/li>\n<li>Reduktimi i p\u00ebrpjekjeve dhe p\u00ebrmir\u00ebsimi i cil\u00ebsis\u00eb s\u00eb implementimit t\u00eb modeleve t\u00eb gjuh\u00ebve t\u00eb bazuara n\u00eb handle p\u00ebrmes rip\u00ebrdorimit t\u00eb kodit.<\/li>\n<li>Sigurimi i nj\u00eb API t\u00eb unifikuar n\u00eb nivelin meta p\u00ebr modelet e rezultuese, q\u00eb e b\u00ebn t\u00eb mundur krijimin e komponenteve t\u00eb p\u00ebrgjithshme t\u00eb IDE, t\u00eb cilat punojn\u00eb me modelet e gjuh\u00ebve t\u00eb bazuara n\u00eb handle.<\/li>\n<li>Flexibilitet dhe shkall\u00ebzim.<\/li>\n<li>Integrimi me Xtext (n\u00eb nj\u00eb shtres\u00eb t\u00eb ve\u00e7ant\u00eb).<\/li>\n<\/ul>\n<p>\nP\u00ebr identifikimin e koncepteve dhe protokolleve t\u00eb zakonshme, jan\u00eb analizuar implementimet ekzistuese t\u00eb modeleve t\u00eb gjuh\u00ebve t\u00eb bazuara n\u00eb handle. Interfaces kryesore dhe implementimet baz\u00eb, t\u00eb ofruara nga Handly, jan\u00eb paraqitur n\u00eb fig. 8.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si nj\u00eb platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools\" src=\"\/wp-content\/uploads\/2019\/04\/47f4bf74093245334b8d67b149734dfc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Fig. 8. Interfaces kryesore dhe implementimet baz\u00eb t\u00eb elementeve t\u00eb Handly<\/b><\/p>\n<p>Interface IElement p\u00ebrfaq\u00ebson handle-n\u00eb e elementit dhe \u00ebsht\u00eb e p\u00ebrbashk\u00ebt p\u00ebr elementet e t\u00eb gjitha modeleve, t\u00eb bazuara n\u00eb Handly. Klasa abstrakte Element implementon mekanizmin e p\u00ebrgjithsh\u00ebm handle\/body (fig. 9).<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si nj\u00eb platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools\" src=\"\/wp-content\/uploads\/2019\/04\/0651c1f284b7edfa36313d4b51d72f08.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Fig. 9. IElement dhe implementimi i p\u00ebrgjithsh\u00ebm handle\/body<\/b><\/p>\n<p>P\u00ebrve\u00e7 k\u00ebsaj, Handly ofron nj\u00eb mekaniz\u00ebm t\u00eb p\u00ebrgjithsh\u00ebm p\u00ebr njoftimin e ndryshimeve n\u00eb elementet e modelit (fig. 10). Si\u00e7 mund t\u00eb shihet, n\u00eb p\u00ebrgjith\u00ebsi \u00ebsht\u00eb i ngjash\u00ebm me mekanizmat e njoftimit t\u00eb implementuar n\u00eb modelin e burimeve dhe modelin Java, dhe p\u00ebrdor IElementDelta p\u00ebr t\u00eb paraqitur n\u00eb m\u00ebnyr\u00eb t\u00eb unifikuar informacionin mbi ndryshimin e elementit.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si nj\u00eb platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools\" src=\"\/wp-content\/uploads\/2019\/04\/cbdec8cf874308e0fa9dd96d04f62703.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Fig. 10. Interfacet e p\u00ebrgjithshme dhe implementimet baz\u00eb t\u00eb mekanizmit t\u00eb njoftimit Handly<\/b><\/p>\n<p>Pjesa e m\u00ebsip\u00ebrme e Handly (fig. 9 dhe 10) mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb paraqitur pothuajse \u00e7do model t\u00eb bazuar n\u00eb handle. P\u00ebr krijimin e <i>modeleve<\/i> projekti ofron funksionalitete shtes\u00eb \u2013 ve\u00e7an\u00ebrisht, interfacet e p\u00ebrgjithshme dhe implementimet baz\u00eb p\u00ebr elementet e struktur\u00ebs s\u00eb tekstit origjinal, t\u00eb njohura si <i>source elements<\/i> (fig. 8). Interface ISourceFile paraqet skedarin origjinal, nd\u00ebrsa ISourceConstruct \u2013 elementin brenda skedarit origjinal. Klasa abstracte SourceFile dhe SourceConstruct implementojn\u00eb mekanizma t\u00eb p\u00ebrgjithsh\u00ebm p\u00ebr t\u00eb mb\u00ebshtetur pun\u00ebn me skedar\u00ebt origjinal\u00eb dhe elementet e tyre, p\u00ebr shembull, pun\u00ebn me buferat tekstual\u00eb, lidhjen me koordinatat e elementit n\u00eb tekstin origjinal, pajtimin e modelit me p\u00ebrmbajtjen aktuale t\u00eb buferit t\u00eb kopjes punuese, etj. Implementimi i k\u00ebtyre mekanizmave zakonisht \u00ebsht\u00eb nj\u00eb detyr\u00eb mjaft e nd\u00ebrlikuar, dhe Handly mund t\u00eb zvog\u00ebloj\u00eb ndjesh\u00ebm p\u00ebrpjekjet p\u00ebr zhvillimin e modeleve t\u00eb bazuara n\u00eb handle duke ofruar implementime baz\u00eb t\u00eb cil\u00ebsis\u00eb.<\/p>\n<p>P\u00ebrve\u00e7 mekanizmave t\u00eb lart\u00eb t\u00eb p\u00ebrmendur, Handly ofron infrastruktur\u00ebn p\u00ebr buferat tekstual\u00eb dhe \"snapshots\", mb\u00ebshtetje p\u00ebr integrimin me redaktor\u00ebt e kodit burimor (p\u00ebrfshir\u00eb integrimin e realizuar \"nga kutia\" me redaktorin Xtext), si dhe disa komponente UI t\u00eb zakonshme q\u00eb punojn\u00eb me modelet e bazuara n\u00eb Handly, si \u00e7adra e skem\u00ebs. P\u00ebr t\u00eb ilustruar mund\u00ebsit\u00eb e tij, projekti ofron disa shembuj, p\u00ebrfshir\u00eb implementimin e modelit Java n\u00eb Handly. (N\u00eb krahasim me implementimin e plot\u00eb t\u00eb modelit Java n\u00eb JDT, ky model \u00ebsht\u00eb q\u00ebllimisht pak m\u00eb i thjesht\u00eb p\u00ebr qart\u00ebsi m\u00eb t\u00eb madhe).<\/p>\n<p>Si\u00e7 u p\u00ebrmend m\u00eb par\u00eb, nj\u00eb v\u00ebmendje e konsiderueshme gjat\u00eb projektimit fillestar t\u00eb Handly dhe zhvillimit t\u00eb m\u00ebtejsh\u00ebm \u00ebsht\u00eb kushtuar dhe vazhdon t\u00eb kushtohet shkallueshm\u00ebris\u00eb dhe fleksibilitetit. <\/p>\n<p>N\u00eb parim, modelet e bazuara n\u00eb handle shkall\u00ebzohen mjaft mir\u00eb \"me dizajn\". P\u00ebr shembull, idiomi handle\/body lejon t\u00eb kufizohet sasia e memorjes s\u00eb konsumuar nga modeli. Por ka edhe nuanca. Gjat\u00eb testimeve t\u00eb Handly p\u00ebr shkallueshm\u00ebri, u zbulua nj\u00eb problem n\u00eb implementimin e mekanizmit t\u00eb njoftimit \u2013 kur u ndryshuan nj\u00eb num\u00ebr i madh elementesh, nd\u00ebrtimi i delfteve mori shum\u00eb koh\u00eb. Doli se po i nj\u00ebjti problem ishte i pranish\u00ebm edhe n\u00eb modelin Java JDT, nga i cili ishin adapptuar m\u00eb par\u00eb kodet p\u00ebrkat\u00ebse. Ne e korrigjuam gabimin n\u00eb Handly dhe p\u00ebrgatit\u00ebm nj\u00eb patch t\u00eb ngjash\u00ebm p\u00ebr JDT, i cili u pranuar me mir\u00ebnjohje. Ky \u00ebsht\u00eb vet\u00ebm nj\u00eb nga shembujt, kur implementimi i Handly n\u00eb implementimet ekzistuese t\u00eb modeleve mund t\u00eb ishte potencialisht i dobish\u00ebm, sepse n\u00eb k\u00ebt\u00eb rast mund t\u00eb rregullohej nj\u00eb gabim n\u00eb vet\u00ebm nj\u00eb vend.<\/p>\n<p>P\u00ebr t\u00eb b\u00ebr\u00eb implementimin e Handly n\u00eb implementimet ekzistuese t\u00eb modeleve teknikisht t\u00eb mundsh\u00ebm, biblioteka duhet t\u00eb ket\u00eb nj\u00eb fleksibilitet t\u00eb konsideruesh\u00ebm. Problemi kryesor \u00ebsht\u00eb t\u00eb ruhet pajtueshm\u00ebria prapa me API-n\u00eb e modelit. Ky detyr\u00eb u zgjidh n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.eclipse.org\/Handly\/NewIn05\">Handly 0.5<\/a><\/noindex> n\u00ebp\u00ebrmjet ndarjes s\u00eb qart\u00eb t\u00eb API-s\u00eb specifike p\u00ebr modelin, e cila \u00ebsht\u00eb p\u00ebrcaktuar dhe plot\u00ebsisht e kontrolluar nga zhvilluesi, nga API-ja e unifikuar t\u00eb nivelit meta, e cila ofrohet nga biblioteka. Kjo jo vet\u00ebm q\u00eb b\u00ebn t\u00eb mundur implementimin teknik t\u00eb Handly n\u00eb implementimet ekzistuese, por gjithashtu ofron zhvilluesit t\u00eb modelit t\u00eb ri nj\u00eb liri t\u00eb konsiderueshme n\u00eb projektimin e API-s\u00eb.<\/p>\n<p>Fleksibiliteti ka edhe aspekte t\u00eb tjera. P\u00ebr shembull, Handly nuk imponon shum\u00eb kufizime mbi struktur\u00ebn e modelit dhe mund t\u00eb p\u00ebrdoret si p\u00ebr modelimin e gjuh\u00ebve t\u00eb zakonshme, ashtu edhe p\u00ebr gjuh\u00ebt e orientuara ndaj subjektit. Kur nd\u00ebrtohet struktura e skedarit origjinal, Handly nuk parashikon asnj\u00eb form\u00eb t\u00eb caktuar t\u00eb p\u00ebrfaq\u00ebsimit t\u00eb AST, dhe n\u00eb parim nuk k\u00ebrkon madje as ekzistenc\u00ebn e AST, duke ofruar k\u00ebshtu pajtueshm\u00ebri me praktikisht \u00e7do mekaniz\u00ebm t\u00eb analiz\u00ebs sintaksoresh. N\u00eb fund, Handly mb\u00ebshtet integrimin e plot\u00eb me ambientin e Eclipse, por gjithashtu mund t\u00eb punoj\u00eb drejtp\u00ebrdrejt me sistemet e skedar\u00ebve, fal\u00eb integrimit me <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.eclipse.org\/EFS\">Eclipse File System<\/a><\/noindex> (EFS).<\/p>\n<p>Versioni aktual <noindex><a rel=\"nofollow\" href=\"https:\/\/projects.eclipse.org\/projects\/technology.handly\/releases\/0.6\">Handly 0.6<\/a><\/noindex> doli m\u00eb dhjetor 2016. Megjith\u00ebse aktualisht projekti \u00ebsht\u00eb n\u00eb faz\u00ebn e inkubacionit dhe API-ja ende nuk \u00ebsht\u00eb finalizuar, Handly \u00ebsht\u00eb p\u00ebrdorur tashm\u00eb n\u00eb dy produkte t\u00eb m\u00ebdha komerciale q\u00eb u guxuan t\u00eb veprojn\u00eb si \"adopter\u00eb t\u00eb hersh\u00ebm\", dhe, duhet th\u00ebn\u00eb, deri tani nuk jan\u00eb penduar p\u00ebr k\u00ebt\u00eb.<\/p>\n<p>Si\u00e7 u p\u00ebrmend m\u00eb lart, nj\u00eb nga k\u00ebto produkte \u00ebsht\u00eb 1C:Enterprise Development Tools, ku Handly \u00ebsht\u00eb p\u00ebrdorur q\u00eb n\u00eb fillim p\u00ebr modelimin e elementeve t\u00eb struktur\u00ebs s\u00eb lart\u00eb t\u00eb gjuh\u00ebve 1C:Enterprise, si gjuha e programimit t\u00eb integruar dhe gjuha e k\u00ebrkesave. Produkti tjet\u00ebr \u00ebsht\u00eb m\u00eb pak i njohur p\u00ebr publikun e gjer\u00eb. Ky \u00ebsht\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.codasip.com\/custom-processor\/\">Codasip Studio<\/a><\/noindex>, nj\u00eb mjedis i integruar projektimi p\u00ebr procesor\u00ebt e orientuar drejt problemeve (application-specific instruction-set processor, ASIP), i p\u00ebrdorur si brenda vet\u00eb kompanis\u00eb \u00e7eke Codasip ashtu edhe nga klient\u00ebt e saj, midis t\u00eb cil\u00ebve <noindex>AMD<\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.avg.com\/\">AVG<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.mobileye.com\/\">Mobileye<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.sigmadesigns.com\/\">Sigma Designs<\/a><\/noindex>. Codasip e p\u00ebrdor Handly n\u00eb prodhim q\u00eb nga viti 2015, duke filluar nga versioni Handly 0.2. Rrelease-i m\u00eb i fundit i Codasip Studio p\u00ebrdor versionin 0.5, t\u00eb l\u00ebshuar n\u00eb qershor 2016. Ond\u0159ej Il\u010d\u00edk, i cili udh\u00ebheq zhvillimin e IDE n\u00eb Codasip, \u00ebsht\u00eb n\u00eb kontakt me projektin, duke ofruar nj\u00eb feedback t\u00eb r\u00ebnd\u00ebsish\u00ebm nga \"adopteri i jasht\u00ebm\". Ai madje ka arritur t\u00eb gjej\u00eb pak koh\u00eb t\u00eb lir\u00eb p\u00ebr t'u angazhuar drejtp\u00ebrdrejt n\u00eb zhvillimin e projektit, duke realizuar nj\u00eb shtres\u00eb UI (~ 4000 rreshta kodi) p\u00ebr nj\u00eb nga shembujt e Handly, modelin Java. M\u00eb shum\u00eb informacion \"nga burimi i par\u00eb\" p\u00ebr p\u00ebrdorimin e Handly nga adopter\u00ebt mund t\u00eb merret n\u00eb faqen <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.eclipse.org\/Handly\/Adopters\">Success Stories<\/a><\/noindex> projektit.<\/p>\n<p>Shpresojm\u00eb q\u00eb pas publikimit t\u00eb versionit 1.0 me garancin\u00eb e stabilitetit t\u00eb API dhe daljen e projektit nga faza e inkubacionit, Handly do t\u00eb ket\u00eb edhe adoptera t\u00eb rinj. Nd\u00ebrkoh\u00eb, projekti vazhdon testimin dhe p\u00ebrmir\u00ebsimin e m\u00ebtutjesh\u00ebm t\u00eb API, duke l\u00ebshuar dy \"larje t\u00eb m\u00ebdha\" n\u00eb vit \u2013 n\u00eb qershor (n\u00eb t\u00eb nj\u00ebjt\u00ebn dat\u00eb si publikimi paralel i Eclipse) dhe n\u00eb dhjetor, duke ofruar nj\u00eb orar t\u00eb parashikuesh\u00ebm n\u00eb t\u00eb cilin mund t\u00eb mb\u00ebshteten adopter\u00ebt. Mund t\u00eb thuhet gjithashtu se shkalla e \"gabimeve\" t\u00eb projektit mbetet n\u00eb nj\u00eb nivel t\u00eb ul\u00ebt t\u00eb q\u00ebndruesh\u00ebm dhe Handly ka qen\u00eb i besuesh\u00ebm n\u00eb produktet e adopter\u00ebve t\u00eb hersh\u00ebm q\u00eb nga versionet e para. P\u00ebr njohje m\u00eb t\u00eb thell\u00eb me Eclipse Handly mund t\u00eb p\u00ebrdorni <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pisv\/gethandly\/wiki\">Getting Started Tutorial<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"http:\/\/www.eclipse.org\/downloads\/download.php?file=\/handly\/docs\/handly-overview.pdf&amp;r=1\">Architectural Overview<\/a><\/noindex>.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/1c\/blog\/323508\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, Eclipse \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043e\u0431\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438. \u041c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 Eclipse \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f Eclipse Java development tools (JDT). \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f open-source Java IDE \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u043e \u0441\u043b\u043e\u0432\u043e\u043c \u201cEclipse\u201d. \u041e\u0434\u043d\u0430\u043a\u043e Eclipse \u2013 \u044d\u0442\u043e \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (Eclipse Platform), \u0438 \u0446\u0435\u043b\u044b\u0439 \u0440\u044f\u0434 IDE, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u0435, \u0432 \u0442\u043e\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24268,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32464","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, Eclipse \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043e\u0431\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438. \u041c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 Eclipse \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f Eclipse Java development tools (JDT). \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f open-source Java IDE \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u043e \u0441\u043b\u043e\u0432\u043e\u043c \u201cEclipse\u201d. \u041e\u0434\u043d\u0430\u043a\u043e Eclipse \u2013 \u044d\u0442\u043e \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (Eclipse Platform), \u0438 \u0446\u0435\u043b\u044b\u0439 \u0440\u044f\u0434 IDE, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u0435, \u0432 \u0442\u043e\u043c\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Eclipse \u043a\u0430\u043a \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f 1C:Enterprise Development Tools | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, Eclipse \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043e\u0431\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438. \u041c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 Eclipse \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f Eclipse Java development tools (JDT). \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f open-source Java IDE \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u043e \u0441\u043b\u043e\u0432\u043e\u043c \u201cEclipse\u201d. \u041e\u0434\u043d\u0430\u043a\u043e Eclipse \u2013 \u044d\u0442\u043e \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (Eclipse Platform), \u0438 \u0446\u0435\u043b\u044b\u0439 \u0440\u044f\u0434 IDE, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u0435, \u0432 \u0442\u043e\u043c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:47:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:47:12+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Eclipse si platform\u00eb teknologjike p\u00ebr 1C:Enterprise Development Tools | ProHoster","description":"Ndoshta, Eclipse nuk ka nevoj\u00eb p\u00ebr nj\u00eb paraqitje t\u00eb ve\u00e7ant\u00eb. Shum\u00eb jan\u00eb t\u00eb njohur me Eclipse p\u00ebr shkak t\u00eb mjeteve t\u00eb zhvillimit Eclipse Java (JDT). Kjo IDE popullore open-source Java asociohet n\u00eb mendjen e shumic\u00ebs s\u00eb programuesve me fjal\u00ebn \u201cEclipse\u201d. Megjithat\u00eb, Eclipse \u00ebsht\u00eb gjithashtu nj\u00eb platform\u00eb e zgjerueshme p\u00ebr integrimin e mjeteve t\u00eb zhvillimit (Eclipse Platform), dhe nj\u00eb s\u00ebr\u00eb IDE-esh t\u00eb nd\u00ebrtuara mbi t\u00eb, n\u00eb at\u00eb","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Eclipse \u043a\u0430\u043a \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f 1C:Enterprise Development Tools | ProHoster","og:description":"\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, Eclipse \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043e\u0431\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438. \u041c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 Eclipse \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f Eclipse Java development tools (JDT). \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f open-source Java IDE \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u043e \u0441\u043b\u043e\u0432\u043e\u043c \u201cEclipse\u201d. \u041e\u0434\u043d\u0430\u043a\u043e Eclipse \u2013 \u044d\u0442\u043e \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (Eclipse Platform), \u0438 \u0446\u0435\u043b\u044b\u0439 \u0440\u044f\u0434 IDE, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u0435, \u0432 \u0442\u043e\u043c","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:47:12+00:00","article:modified_time":"2019-10-31T18:47:12+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32464","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 11:00:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:58:24","updated":"2026-01-21 11:00:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/32464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=32464"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/32464\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/24268"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=32464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=32464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=32464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}