{"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 platform\u00eb teknologjike p\u00ebr 1C: Nd\u00ebrto Q\u00ebndra e Zhvillimit","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Pa sigurisht, <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 jan\u00eb t\u00eb njohur me Eclipse fal\u00eb Eclipse Java development tools (<noindex><a rel=\"nofollow\" href=\"http:\/\/www.eclipse.org\/jdt\/\">JDT<\/a><\/noindex>). Kjo IDE popullore open-source lidh 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 s\u00ebr\u00eb IDE-sh q\u00eb jan\u00eb nd\u00ebrtuar mbi t\u00eb, p\u00ebrfshir\u00eb JDT. Eclipse \u00ebsht\u00eb dhe Eclipse Project, nj\u00eb projekt n\u00eb nivel t\u00eb lart\u00eb q\u00eb koordinon zhvillimin e Eclipse Platform dhe JDT, dhe Eclipse SDK \u2013 produkti i k\u00ebtij zhvillimi. P\u00ebr m\u00eb tep\u00ebr, Eclipse \u00ebsht\u00eb nj\u00eb fondacion open-source me nj\u00eb komunitet t\u00eb madh projektesh, shum\u00eb prej t\u00eb cil\u00ebve 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 larmishme.<\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull, i cili ka karakter shqyrtues, do t\u00eb p\u00ebrpiqemi t\u00eb shqyrtojm\u00eb disa baz\u00eb t\u00eb arkitektur\u00ebs s\u00eb Eclipse si nj\u00eb platform\u00eb p\u00ebr nd\u00ebrtimin e mjeteve t\u00eb integruara t\u00eb zhvillimit dhe t'i japim nj\u00eb p\u00ebrshkrim fillestar komponent\u00ebve t\u00eb Eclipse q\u00eb formojn\u00eb fundamentin e platform\u00ebs teknologjike p\u00ebr \"konfiguruesin e ri\" 1C: Enterprise, <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/release_IDE\/\">1C:Enterprise Development Tools<\/a><\/noindex>. Natyrisht, nj\u00eb shqyrtim i till\u00eb do t\u00eb jet\u00eb n\u00eb shumic\u00ebn e rasteve sip\u00ebrfaq\u00ebsor dhe mjaft i kufizuar, p\u00ebrfshir\u00eb p\u00ebr faktin se ne jemi duke shikuar jo vet\u00ebm tek zhvilluesit e Eclipse si audienc\u00eb t\u00eb synuar. Megjithat\u00eb, shpresojm\u00eb q\u00eb edhe zhvilluesit e eksperienc\u00ebs me Eclipse t\u00eb gjejn\u00eb informacione interesante n\u00eb k\u00ebt\u00eb artikull. P\u00ebr shembull, do t\u00eb flasim p\u00ebr nj\u00eb nga \"sekretet e Eclipse\", nj\u00eb projekt relativisht i ri dhe ende pak i njohur <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 platform\u00eb teknologjike p\u00ebr 1C: Nd\u00ebrto Q\u00ebndra e Zhvillimit\" 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>Hyrja n\u00eb arkitektur\u00ebn e Eclipse<\/h2>\n<p>\nLe t\u00eb shqyrtojm\u00eb fillimisht disa aspekte t\u00eb p\u00ebrgjithshme t\u00eb arkitektur\u00ebs s\u00eb Eclipse duke marr\u00eb si shembull <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 e rast\u00ebsishme. Kjo \u00ebsht\u00eb ambienti i par\u00eb i integruar i zhvillimit q\u00eb u shfaq n\u00eb Eclipse. Projektet e tjera *DT t\u00eb Eclipse, si\u00e7 jan\u00eb Eclipse C\/C++ Development Tooling (CDT), u krijuan m\u00eb von\u00eb dhe mor\u00ebn si parime arkitektonike kryesore ashtu si dhe fragmente t\u00eb ve\u00e7anta t\u00eb kodit burimor nga JDT. Bazat e arkitektur\u00ebs, t\u00eb vendosura n\u00eb JDT, jan\u00eb aktuale edhe sot p\u00ebr praktikisht \u00e7do IDE q\u00eb \u00ebsht\u00eb nd\u00ebrtuar mbi Eclipse Platform, p\u00ebrfshir\u00eb edhe 1C: Enterprise Development Tools.<\/p>\n<p>S\u00eb pari duhet theksuar se Eclipse karakterizohet nga nj\u00eb ndarje mjaft e qart\u00eb arkitektonike, me ndarjen e funksionalitetit t\u00eb pavarur nga gjuha nga funksionaliteti i destinuar p\u00ebr mb\u00ebshtetje t\u00eb gjuh\u00ebve specifike t\u00eb programimit, si dhe ndarjen e komponent\u00ebve \"b\u00ebrthamore\" (core) q\u00eb nuk varen nga UI nga komponent\u00ebt e lidhur me mb\u00ebshtetje t\u00eb nd\u00ebrfaqes p\u00ebrdoruesi.<\/p>\n<p>Platforma Eclipse p\u00ebrcakton infrastruktur\u00ebn e p\u00ebrbashk\u00ebt, t\u00eb pavarur nga gjuha, nd\u00ebrsa mjetet p\u00ebr zhvillimin e Java shtojn\u00eb n\u00eb Eclipse nj\u00eb IDE plot\u00ebsisht funksionale p\u00ebr Java. Si Platforma Eclipse ashtu edhe JDT p\u00ebrb\u00ebhen nga disa komponent\u00eb, secila prej t\u00eb cilave i p\u00ebrket ose \"b\u00ebrtham\u00ebs\" q\u00eb nuk varet nga UI, ose shtres\u00ebs s\u00eb UI (shih. 1).<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si platform\u00eb teknologjike p\u00ebr 1C: Nd\u00ebrto Q\u00ebndra e Zhvillimit\" src=\"\/wp-content\/uploads\/2019\/04\/230825124962e721ecca7dfb7dee9a0c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Shih. 1. Platforma Eclipse dhe JDT<\/b><\/p>\n<p>Le t\u00eb rendisim komponent\u00ebt kryesor\u00eb t\u00eb Platform\u00ebs Eclipse:<\/p>\n<ul>\n<li><b>Runtime<\/b> \u2014 P\u00ebrcakton infrastruktur\u00ebn e plug-in\u00ebve. Eclipse karakterizohet nga nj\u00eb arkitektur\u00eb modulare. N\u00eb thelb, Eclipse \u00ebsht\u00eb nj\u00eb koleksion i \"pikave t\u00eb zgjerimit\" dhe \"zgjerimeve\".<\/li>\n<li><b>Workspace<\/b> \u2014 Menaxhon nj\u00eb ose m\u00eb shum\u00eb projekte. Nj\u00eb projekt p\u00ebrb\u00ebhet nga dosje dhe skedar\u00eb, t\u00eb cilat shfaqen drejtp\u00ebrdrejt n\u00eb sistemin e skedar\u00ebve.<\/li>\n<li><b>Standard Widget Toolkit (SWT)<\/b> \u2014 Ofron element\u00ebt baz\u00eb t\u00eb nd\u00ebrfaqes p\u00ebrdoruesi, t\u00eb integruar me sistemin operative.<\/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 UI t\u00eb Eclipse: redaktuesit, pamjet, perspektivat.<\/li>\n<\/ul>\n<p>\nDuhet t\u00eb thuhet se Platforma Eclipse ofron gjithashtu shum\u00eb componente t\u00eb tjera t\u00eb dobishme p\u00ebr nd\u00ebrtimin e mjeteve t\u00eb integruara t\u00eb zhvillimit, nd\u00ebr t\u00eb cilat mund t\u00eb p\u00ebrmendin Debug, Compare, Search dhe Team. Ve\u00e7an\u00ebrisht duhet p\u00ebrmendur JFace Text \u2013 baza p\u00ebr nd\u00ebrtimin e \"redaktuesve inteligjent\u00eb\" t\u00eb kodit burimor. Fatkeq\u00ebsisht, edhe nj\u00eb shqyrtim i shpejt\u00eb i k\u00ebtyre komponent\u00ebve, ashtu si\u00e7 jan\u00eb komponent\u00ebt e shtres\u00ebs UI, nuk mund t\u00eb \u00e7mohet brenda k\u00ebtij artikulli, k\u00ebshtu q\u00eb n\u00eb pjes\u00ebn e mbetur t\u00eb k\u00ebtij seksioni ne do t\u00eb kufizohemi n\u00eb nj\u00eb p\u00ebrmbledhje t\u00eb komponent\u00ebve kryesor\u00eb \"b\u00ebrthamore\" t\u00eb Platform\u00ebs Eclipse dhe JDT.<\/p>\n<h4>Core Runtime<\/h4>\n<p>\nInfrastruktura e plug-in\u00ebve t\u00eb 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 plug-in i Eclipse \u00ebsht\u00eb nj\u00eb bundle OSGi. Spefikimi OSGi p\u00ebrcakton, n\u00eb ve\u00e7anti, mekanizmat e versionimit dhe zgjidhjes s\u00eb var\u00ebsive. P\u00ebrve\u00e7 k\u00ebtyre mekanizmave standarde, Equinox prezanton konceptin e <i>pik\u00ebs s\u00eb zgjerimit<\/i>. \u00c7do plugin mund t\u00eb p\u00ebrcaktoj\u00eb pik\u00ebt e veta t\u00eb zgjerimit, duke sjell\u00eb gjithashtu funksionalitete t\u00eb tjera n\u00eb sistem ('zgjerimet'), duke p\u00ebrdorur pik\u00ebt e zgjerimit t\u00eb p\u00ebrcaktuara nga ky ose plugin\u00eb t\u00eb tjer\u00eb. Nj\u00eb p\u00ebrshkrim m\u00eb i detajuar i mekanizmave OSGi dhe Equinox del jasht\u00eb kufijve t\u00eb k\u00ebtij artikulli. Vlen t\u00eb theksohet se modularizimi n\u00eb Eclipse ka karakter total (\u00e7do n\u00ebn sistem, p\u00ebrfshir\u00eb Runtime, p\u00ebrb\u00ebhet nga nj\u00eb ose m\u00eb shum\u00eb plugin\u00eb), dhe praktikisht gjith\u00e7ka n\u00eb Eclipse \u00ebsht\u00eb nj\u00eb zgjerim. K\u00ebto parime ishin integruar n\u00eb arkitektur\u00ebn e Eclipse shum\u00eb p\u00ebrpara zbatimit t\u00eb OSGi (n\u00eb at\u00eb koh\u00eb ishte p\u00ebrdorur nj\u00eb teknologji e brendshme, shum\u00eb e ngjashme me OSGi).<\/p>\n<h4>Workspace-i Kryesor<\/h4>\n<p>\nPraktikisht \u00e7do mjedis i integruar i zhvillimit, i nd\u00ebrtuar mbi baz\u00ebn e Eclipse Platform, punon me workspace-in e Eclipse. Pik\u00ebrisht workspace-i zakonisht p\u00ebrmban kodin burimor t\u00eb aplikacionit q\u00eb po zhvillohet n\u00eb IDE. Workspace-i pasqyrohet drejtp\u00ebrdrejt n\u00eb sistemin e skedhave dhe p\u00ebrb\u00ebhet nga projekte, t\u00eb cilat p\u00ebrmbajn\u00eb dosje dhe skedha. K\u00ebto projekte, dosje dhe skedha quhen <i>burime<\/i> workspace. Implementimi i workspace n\u00eb Eclipse sh\u00ebrben si nj\u00eb cache n\u00eb lidhje me sistemin e skedhave, duke b\u00ebr\u00eb t\u00eb mundur nj\u00eb p\u00ebrshpejtim t\u00eb duksh\u00ebm n\u00eb kalimin n\u00ebp\u00ebr pem\u00ebn e 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-it 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 t\u00eb punuar n\u00eb m\u00ebnyr\u00eb efikase 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 lidhje me burimin. N\u00eb k\u00ebt\u00eb rast, do t\u00eb ishte e d\u00ebshirueshme q\u00eb objekti, i cili ruan drejtp\u00ebrdrejt gjendjen e burimit n\u00eb model, t\u00eb fshihet nga qasja e klient\u00ebve. N\u00eb t\u00eb kund\u00ebrt, n\u00eb rastin, p\u00ebr shembull, t\u00eb fshirjes s\u00eb nj\u00eb skedhe, klienti mund t\u00eb vazhdoj\u00eb t\u00eb mbaj\u00eb objektin q\u00eb tashm\u00eb nuk ekziston n\u00eb model, duke sjell\u00eb probleme t\u00eb till\u00eb. Eclipse e zgjidh k\u00ebt\u00eb problem duke p\u00ebrdorur at\u00eb q\u00eb quhet <i>handle<\/i> i burimit. Handle funksionon si nj\u00eb \u00e7el\u00ebs (ai di vet\u00ebm rrug\u00ebn e burimit n\u00eb workspace) dhe kontrollon plot\u00ebsisht qasjen 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>Figura 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, n\u00eb t\u00eb kund\u00ebrt, klasa Resource q\u00eb implementon k\u00ebt\u00eb interfac\u00eb, si dhe klasa ResourceInfo, e cila p\u00ebrfaq\u00ebson body-n, q\u00eb nuk jan\u00eb API. Theksojm\u00eb se handle-i di vet\u00ebm rrug\u00ebn p\u00ebr n\u00eb burim n\u00eb lidhje me rr\u00ebnj\u00ebn e workspace-it dhe nuk p\u00ebrmban nj\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 komplet e materializuar n\u00eb memorie. P\u00ebr t\u00eb gjetur nj\u00eb instanc\u00eb t\u00eb resource info, e cila i p\u00ebrgjigjet nj\u00eb handle-i, pem\u00ebs s\u00eb elementeve i n\u00ebnshtrohet nj\u00eb kalimi sipas rrug\u00ebs q\u00eb ruhet n\u00eb k\u00ebt\u00eb handle.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si platform\u00eb teknologjike p\u00ebr 1C: Nd\u00ebrto Q\u00ebndra e Zhvillimit\" src=\"\/wp-content\/uploads\/2019\/04\/9d17cd95be3730ab6b5b9e6e3ed71ace.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Figura 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 (q\u00eb mund t\u00eb quhet i bazuar n\u00eb handle) p\u00ebrdoret n\u00eb Eclipse dhe p\u00ebr modele t\u00eb tjera. Tani, le t\u00eb listojm\u00eb disa karakteristika dalluese t\u00eb k\u00ebtij dizajni:<\/p>\n<ul>\n<li>Handle-i \u00ebsht\u00eb nj\u00eb objekt-me-vler\u00eb (value object). Objektet-me-vler\u00eb jan\u00eb objekte t\u00eb pap\u00ebrshkueshme (immutable), p\u00ebrputhshm\u00ebria e t\u00eb cilave nuk bazohet n\u00eb identitet. K\u00ebto objekte mund t\u00eb p\u00ebrdoren sigurt n\u00eb kapacitetin e \u00e7el\u00ebsit n\u00eb kontejner\u00ebt e heshuar. 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\u00ebrdoren metoda equals(Object).<\/li>\n<li>Handle-i p\u00ebrcakton sjelljen e burimit, por nuk p\u00ebrmban informacion mbi gjendjen e burimit (t\u00eb dh\u00ebnat e vetme q\u00eb ruan jan\u00eb \"\u00e7el\u00ebsi\", rruga p\u00ebr n\u00eb burim).<\/li>\n<li>Handle-i 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 tashm\u00eb \u00ebsht\u00eb fshir\u00eb). Ekzistenca e burimit mund t\u00eb verifikohet me metod\u00ebn IResource.exists().<\/li>\n<li>Disa operacione mund t\u00eb realizohen duke u bazuar ekskluzivisht n\u00eb informacionin q\u00eb ruhet n\u00eb vet\u00eb handle-in (operacione t\u00eb ashtuquajtura handle-only). Shembuj jan\u00eb IResource.getParent(), getFullPath(), etj. Burimi nuk \u00ebsht\u00eb domosdoshm\u00ebrisht i nevojsh\u00ebm p\u00ebr ekzekutimin e suksessh\u00ebm t\u00eb nj\u00eb operacioni t\u00eb till\u00eb. Operacioneve q\u00eb k\u00ebrkojn\u00eb q\u00eb burimi t\u00eb ekzistoj\u00eb p\u00ebr t\u00eb qen\u00eb t\u00eb suksesshme, u hedhin nj\u00eb p\u00ebrjashtim (CoreException) n\u00ebse burimi nuk ekziston.<\/li>\n<\/ul>\n<p>\nEclipse ofron nj\u00eb mekaniz\u00ebm efektiv p\u00ebr njoftimin e ndryshimeve n\u00eb burimet e workspace (shih. 3). Burimet mund t\u00eb ndryshojn\u00eb si rezultat i veprimeve t\u00eb kryera brenda vet\u00eb Eclipse IDE, ashtu edhe nga ekzekutimi i sinkronizimit me sistemin e skedar\u00ebve. N\u00eb t\u00eb dy rastet, klient\u00ebt q\u00eb jan\u00eb regjistruar p\u00ebr njoftime fitojn\u00eb informacion t\u00eb detajuar mbi ndryshimet n\u00eb form\u00ebn e \u00abdelta burse\u00bb (resource delta). Delta p\u00ebrshkruan ndryshimet mes dy gjendjeve t\u00eb (n\u00ebn)struktur\u00ebs s\u00eb burimeve t\u00eb workspace dhe vet\u00eb \u00ebsht\u00eb nj\u00eb struktur\u00eb, ku \u00e7do nyje p\u00ebrshkruan ndryshimin e nj\u00eb burimi dhe p\u00ebrmban nj\u00eb list\u00eb deltesh t\u00eb nivelit t\u00eb ardhsh\u00ebm, duke p\u00ebrshkruar ndryshimet n\u00eb burimet f\u00ebmij\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si platform\u00eb teknologjike p\u00ebr 1C: Nd\u00ebrto Q\u00ebndra e Zhvillimit\" src=\"\/wp-content\/uploads\/2019\/04\/8af412412ee97d205137ab70c8444a50.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Shih. 3. IResourceChangeEvent dhe IResourceDelta<\/b><\/p>\n<p>Mekanizmi i njoftimit t\u00eb bazuar n\u00eb delta burse ka karakteristika 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\u00ebjtin struktur\u00eb, pasi delta nd\u00ebrtohet mbi parimin e kompozit\u00ebs rekursive. Klient\u00ebt e regjistruar mund t\u00eb p\u00ebrpunojn\u00eb njoftimet p\u00ebr ndryshimin e burimeve duke ecur n\u00eb m\u00ebnyr\u00eb rekursive p\u00ebrmes struktur\u00ebs s\u00eb deltes.<\/li>\n<li>Delta p\u00ebrmban informacion t\u00eb plot\u00eb mbi ndryshimin e burimit, duke p\u00ebrfshir\u00eb l\u00ebvizjen dhe\/ose ndryshimin e \u00abmarkerave\u00bb t\u00eb lidhura me t\u00eb (si\u00e7 jan\u00eb gabimet e kompilimit).<\/li>\n<li>Pasi referencat p\u00ebr burimin b\u00ebhen p\u00ebrmes handle, delta mund t\u00eb referohet natyrsh\u00ebm n\u00eb burimin e larg\u00ebt.<\/li>\n<\/ul>\n<p>\nSi\u00e7 do ta shohim s\u00eb shpejti, p\u00ebrb\u00ebr\u00ebsit kryesor\u00eb t\u00eb dizajnit t\u00eb mekanizmit t\u00eb njoftimit p\u00ebr ndryshimin e modelit t\u00eb burimeve jan\u00eb t\u00eb r\u00ebnd\u00ebsish\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 t\u00eb Eclipse \u00ebsht\u00eb nj\u00eb model themelor dhe jo t\u00eb varur prej gjuh\u00ebs. Komponenta JDT Core (plugin org.eclipse.jdt.core) ofron API p\u00ebr navigimin dhe analizimin e struktur\u00ebs s\u00eb workspace nga k\u00ebndv\u00ebshtrimi i Java, i njohur si \u00abmodeli Java\u00bb (<i>Java model<\/i>). Ky API \u00ebsht\u00eb i p\u00ebrcaktuar n\u00eb terma t\u00eb elementeve Java, p\u00ebr dallim nga API i n\u00ebndhesh\u00ebm i modelit t\u00eb burimeve, i cili \u00ebsht\u00eb i p\u00ebrcaktuar n\u00eb terma t\u00eb dosjeve dhe skedar\u00ebve. Interfacet kryesore t\u00eb struktur\u00ebs s\u00eb elementeve t\u00eb Java jan\u00eb ilustruar n\u00eb shih. 4.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si platform\u00eb teknologjike p\u00ebr 1C: Nd\u00ebrto Q\u00ebndra e Zhvillimit\" src=\"\/wp-content\/uploads\/2019\/04\/67bfd31e93eaa66aa94b30281693a318.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Shih. 4. Elementet e modelit Java<\/b><\/p>\n<p>Modeli Java p\u00ebrdor t\u00eb nj\u00ebjtin idiom handle\/body si modeli i burimeve (fig. 5). IJavaElement \u00ebsht\u00eb handle, nd\u00ebrsa JavaElementInfo luan rolin e body. Interface IJavaElement p\u00ebrcakton protokollin e p\u00ebrbashk\u00ebt p\u00ebr t\u00eb gjitha elementet Java. Disa nga metodat e tij jan\u00eb vet\u00ebm 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 platform\u00eb teknologjike p\u00ebr 1C: Nd\u00ebrto Q\u00ebndra e Zhvillimit\" 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 ndryshime n\u00eb implementimin e dizajnit themelor handle\/body n\u00eb krahasim me modelin e burimeve. Si\u00e7 u p\u00ebrmend m\u00eb lart, n\u00eb modelin e burimeve, pem\u00ebn e elementeve, ku nyjet jan\u00eb objekte resource info, e gjith\u00eb ajo ndodhet plot\u00ebsisht n\u00eb memorie. Por n\u00eb modelin Java mund t\u00eb ket\u00eb nj\u00eb num\u00ebr ndjesh\u00ebm m\u00eb t\u00eb madh elementesh se n\u00eb pem\u00ebn e burimeve, pasi n\u00eb t\u00eb paraqitet, p\u00ebrfshir\u00eb, struktura e brendshme e 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 memorie, implementimi i modelit Java p\u00ebrdor nj\u00eb LRU-cache t\u00eb kufizuar n\u00eb madh\u00ebsi 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. Nd\u00ebrkoh\u00eb, elementet m\u00eb pak t\u00eb p\u00ebrdorura shp\u00ebrngulen nga cache, dhe konsumimi i memories nga modeli mbetet i kufizuar n\u00eb madh\u00ebsin\u00eb e caktuar t\u00eb cache-it. Ky \u00ebsht\u00eb nj\u00eb tjet\u00ebr avantazh i dizajnit t\u00eb bazuar n\u00eb handle, i cili e fsheh plot\u00ebsisht nj\u00ebsi t\u00eb tilla t\u00eb implementimit nga kodi i klientit.<\/p>\n<p>Mekanizmi i njoftimit p\u00ebr ndryshimet e elementeve Java \u00ebsht\u00eb n\u00eb p\u00ebrgjith\u00ebsi i ngjash\u00ebm me mekanizmin e shqyrtuar m\u00eb lart p\u00ebr ndjekjen e ndryshimeve t\u00eb burimeve t\u00eb workspace. Klienti, i cili d\u00ebshiron t\u00eb ndjek\u00eb ndryshimet n\u00eb modelin Java, regjistrohet p\u00ebr njoftime, t\u00eb cilat paraqiten n\u00eb form\u00ebn e objektit ElementChangedEvent, i cili p\u00ebrmban IJavaElementDelta (fig. 6).<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si platform\u00eb teknologjike p\u00ebr 1C: Nd\u00ebrto Q\u00ebndra e Zhvillimit\" 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 nj\u00eb analiz\u00eb t\u00eb detajuar t\u00eb kodit t\u00eb shkruar n\u00eb Java, JDT Core siguron 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\">p\u00ebrfaq\u00ebsimi sintaksor abstrakt<\/a><\/noindex> (abstract syntax tree, AST). AST paraqet rezultatin e analiz\u00ebs sintaksore t\u00eb tekstit origjinal. Nyjet e AST i p\u00ebrkasin elementeve t\u00eb struktur\u00ebs s\u00eb modulit origjinal (deklaratave, operator\u00ebve, shprehjeve, etj.) dhe p\u00ebrmbajn\u00eb informacion mbi koordinatat e elementit p\u00ebrkat\u00ebs n\u00eb tekstin origjinal, si dhe (me opsion) informacion p\u00ebr zgjidhjen e emrave n\u00eb form\u00ebn e lidhjeve n\u00eb at\u00eb q\u00eb quhet <i>bindings<\/i>Bindings jan\u00eb objekte q\u00eb p\u00ebrfaq\u00ebsojn\u00eb entitete t\u00eb em\u00ebruara, si\u00e7 jan\u00eb tipos, metoda dhe variabl\u00ebt, t\u00eb njohur nga kompilatori. Ndryshe nga nyjat AST q\u00eb formojn\u00eb nj\u00eb dru, bindings mb\u00ebshtesin referencat e kryq\u00ebzuara dhe zakonisht formojn\u00eb nj\u00eb grafik. Klasa abstrakte ASTNode \u00ebsht\u00eb klasa themelore p\u00ebr t\u00eb gjitha nyjat AST. N\u00ebnklasat e ASTNode korrespondojn\u00eb me konstrukcione sintaksore t\u00eb caktuara t\u00eb gjuh\u00ebs Java.<\/p>\n<p>P\u00ebr shkak se drunjt\u00eb sintaksor\u00eb mund t\u00eb konsumojn\u00eb nj\u00eb sasi t\u00eb konsiderueshme k\u00ebndv\u00ebshtrimi, JDT ruan vet\u00ebm nj\u00eb AST p\u00ebr redaktorin aktiv. Ndryshe nga modeli Java, AST zakonisht shqyrtohet si nj\u00eb model \"nd\u00ebrmjet\u00ebs\", \"p\u00ebrkohsh\u00ebm\", n\u00eb elementet e t\u00eb cilit 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>T\u00eb tri modelet e renditura (modeli Java, 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 nj\u00eb mori \"ndihm\u00ebsish\", si dhe veprime t\u00eb ndryshme p\u00ebr p\u00ebrpunimin e kodit burimor (p\u00ebrfshir\u00eb organizimin e list\u00ebs s\u00eb importit t\u00eb emrave dhe formatimin n\u00eb p\u00ebrputhje me stilin e konfiguruar), si dhe mjete k\u00ebrkimi dhe ristrukturimi. N\u00eb k\u00ebt\u00eb kontekst, modeli Java luan nj\u00eb rol t\u00eb ve\u00e7ant\u00eb, pasi ai p\u00ebrdoret si baza p\u00ebr paraqitjen vizuale t\u00eb struktur\u00ebs s\u00eb aplikacionit q\u00eb po zhvillohet (p\u00ebr shembull, n\u00eb Package Explorer, Outline, Search, Call Hierarchy, dhe Type Hierarchy).<\/p>\n<h2>Komponent\u00ebt Eclipse t\u00eb p\u00ebrdorur n\u00eb 1C:Enterprise Developments Tools<\/h2>\n<p>\nN\u00eb Fig. 7 jan\u00eb shfaqur komponent\u00ebt Eclipse q\u00eb formojn\u00eb themelin e platform\u00ebs teknologjike p\u00ebr 1C:Enterprise Development Tools.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si platform\u00eb teknologjike p\u00ebr 1C: Nd\u00ebrto Q\u00ebndra e Zhvillimit\" 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>Platforma Eclipse<\/b> siguron infrastruktur\u00ebn baz\u00eb. Ne shqyrtuam disa aspekte t\u00eb 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\/\">Korniza e Modelimit Eclipse<\/a><\/noindex><\/b> (<b>EMF<\/b>) ofron mjete t\u00eb p\u00ebrgjithshme p\u00ebr modelimin e t\u00eb dh\u00ebnave t\u00eb strukturuara. EMF \u00ebsht\u00eb i integruar me Eclipse Platform, por mund t\u00eb p\u00ebrdoret edhe ve\u00e7mas, n\u00eb aplikacione Java t\u00eb zakonshme. Shpesh, zhvilluesit e rinj t\u00eb Eclipse jan\u00eb tashm\u00eb t\u00eb njohur mir\u00eb me EMF, megjith\u00ebse nuk e kuptojn\u00eb plot\u00ebsisht thell\u00ebsit\u00eb e Eclipse Platform. Nj\u00eb nga arsyet e popullaritetit t\u00eb till\u00eb t\u00eb merituar \u00ebsht\u00eb dizajni universal, i cili p\u00ebrfshin, p\u00ebrve\u00e7 t\u00eb tjerash, nj\u00eb API t\u00eb unifikuar n\u00eb nivel meta, q\u00eb lejon t\u00eb punosh me \u00e7far\u00ebdo modeli EMF n\u00eb m\u00ebnyr\u00eb t\u00eb p\u00ebrgjithshme. Realizimet themelore q\u00eb EMF ofron p\u00ebr objektet e modelit dhe n\u00ebndega e gjenerimit t\u00eb kodit t\u00eb modelit nga meta-modeli rrit n\u00eb m\u00ebnyr\u00eb t\u00eb ndjeshme shpejt\u00ebsin\u00eb e zhvillimit dhe ul numrin e gabimeve. Po ashtu, EMF p\u00ebrmban mekanizma p\u00ebr serializimin e modeleve, ndjekjen e ndryshimeve n\u00eb model, dhe shum\u00eb m\u00eb tep\u00ebr. <\/p>\n<p>Si \u00e7do mjet me t\u00eb v\u00ebrtet\u00eb universale, EMF \u00ebsht\u00eb i p\u00ebrshtatsh\u00ebm p\u00ebr nj\u00eb gam\u00eb t\u00eb gjer\u00eb problemesh q\u00eb lidhen me modelimin, por disa klasa modelet (p\u00ebr shembull, modelet q\u00eb u diskutuan m\u00eb sip\u00ebr t\u00eb bazuara n\u00eb dore) mund t\u00eb ken\u00eb nevoj\u00eb p\u00ebr mjete m\u00eb t\u00eb specializuara modelimi. T\u00eb flas\u00ebsh p\u00ebr EMF \u00ebsht\u00eb nj\u00eb pun\u00eb e v\u00ebshtir\u00eb, sidomos n\u00eb kufijt\u00eb e nj\u00eb artikulli t\u00eb vet\u00ebm, pasi \u00ebsht\u00eb nj\u00eb tem\u00eb p\u00ebr nj\u00eb lib\u00ebr t\u00eb ve\u00e7ant\u00eb, dhe mjaft t\u00eb trash\u00eb. Le t\u00eb theksojm\u00eb vet\u00ebm se nj\u00eb sistem i kualitetit t\u00eb tiparizimeve, q\u00eb q\u00ebndron n\u00eb themel t\u00eb EMF, e ka lejuar lindjen e nj\u00eb gam\u00eb t\u00eb gjer\u00eb projektesh q\u00eb p\u00ebrfshihen n\u00eb projektin e nivelit t\u00eb lart\u00eb. <noindex><a rel=\"nofollow\" href=\"https:\/\/eclipse.org\/modeling\/\">Modelimi i Eclipse<\/a><\/noindex> p\u00ebrve\u00e7 EMF vet\u00eb. 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\u00ebn e \u2018modelimit tekstual\u2019. Xtext p\u00ebrdor <noindex><a rel=\"nofollow\" href=\"http:\/\/www.antlr.org\/\">ANTLR<\/a><\/noindex> p\u00ebr analiz\u00ebn sintaksore t\u00eb tekstit t\u00eb burimit dhe EMF p\u00ebr p\u00ebrfaq\u00ebsimin e ASG-t\u00eb rezultat (grafi abstrakt semantik, i cili, n\u00eb thelb, \u00ebsht\u00eb nj\u00eb kombinim i AST dhe lidhjeve), i njohur gjithashtu si \u00abmodeli semantik\u00bb. Gramatika e gjuh\u00ebs s\u00eb modeluar 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 nj\u00eb mekaniz\u00ebm serializimi p\u00ebr AST (dmth. Xtext siguron si parser ashtu edhe unparser), sugjerim konteksti, dhe nj\u00eb s\u00ebr\u00eb komponent\u00ebsh t\u00eb tjer\u00eb gjuh\u00ebsor\u00eb. Nga ana tjet\u00ebr, gjuha e p\u00ebrshkrimit t\u00eb gramatik\u00ebs e p\u00ebrdorur n\u00eb Xtext \u00ebsht\u00eb m\u00eb pak fleksib\u00ebl krahasuar, t\u00eb themi, me gjuh\u00ebn e p\u00ebrshkrimit t\u00eb gramatik\u00ebs n\u00eb ANTLR. Prandaj, ndonj\u00ebher\u00eb \u00ebsht\u00eb e nevojshme t\u00eb \u00abp\u00ebrshtatni\u00bb gjuh\u00ebn e realizuar sipas Xtext-it, gj\u00eb q\u00eb zakonisht nuk \u00ebsht\u00eb nj\u00eb problem n\u00ebse kemi t\u00eb b\u00ebjm\u00eb me nj\u00eb gjuh\u00eb q\u00eb \u00ebsht\u00eb n\u00eb zhvillim t\u00eb plot\u00eb, por mund t\u00eb jet\u00eb e papranueshme p\u00ebr gjuh\u00eb me nj\u00eb sintaks\u00eb tashm\u00eb t\u00eb vendosur. Megjithat\u00eb, Xtext \u00ebsht\u00eb aktualisht mjeti m\u00eb i pjekur, funksionalisht i plot\u00eb dhe universali n\u00eb Eclipse p\u00ebr nd\u00ebrtimin e gjuh\u00ebve t\u00eb programimit dhe mjeteve p\u00ebr to. Nj\u00ebkoh\u00ebsisht, ai \u00ebsht\u00eb mjeti ideal p\u00ebr prototipizimin 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\">gjuh\u00ebt e orientuara ndaj tem\u00ebs<\/a><\/noindex> (gjuh\u00eb e orientuar ndaj domenit, DSL). P\u00ebrve\u00e7 \u00abn\u00eb zem\u00ebr\u00bb gjuh\u00ebsore t\u00eb p\u00ebrmendur m\u00eb sip\u00ebr q\u00eb bazohet n\u00eb ANTLR dhe EMF, Xtext ofron shum\u00eb komponent\u00eb t\u00eb dobish\u00ebm t\u00eb nivelit m\u00eb t\u00eb lart\u00eb, duke p\u00ebrfshir\u00eb mekanizmat e indeksimit, nd\u00ebrtimit inkremental, \u00abeditorin e zgjuar\u00bb, dhe shum\u00eb t\u00eb tjera, por l\u00eb jasht\u00eb modele gjuh\u00ebsore t\u00eb bazuara n\u00eb manekena. Ashtu si EMF, Xtext \u00ebsht\u00eb nj\u00eb tem\u00eb q\u00eb meriton nj\u00eb lib\u00ebr t\u00eb ve\u00e7ant\u00eb, dhe ndoshta gjithashtu nuk do t\u00eb mund t\u00eb p\u00ebrmendim t\u00eb gjitha mund\u00ebsit\u00eb e tij edhe p\u00ebr nj\u00eb p\u00ebrshkrim t\u00eb shkurt\u00ebr.<\/p>\n<p>1C:Instrumente t\u00eb Zhvillimit t\u00eb Nd\u00ebrmarrjeve 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:Nd\u00ebrmarrje, si gjuha e programimit e integruar dhe gjuha e pyetjeve. Nj\u00eb baz\u00eb tjet\u00ebr e k\u00ebtyre mjeteve zhvillimi \u00ebsht\u00eb projekti Eclipse Handly, p\u00ebr t\u00eb cilin do t\u00eb ndalemi m\u00eb n\u00eb detaje (nga komponent\u00ebt e listuar t\u00eb Eclipse, ai \u00ebsht\u00eb p\u00ebr momentin 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\u00ebnprojekti i projektit kryesor Eclipse Technology, lindi si rezultat i kontributit fillestar t\u00eb kodit n\u00eb Eclipse Foundation, 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: komituesit e Handly jan\u00eb punonj\u00ebs t\u00eb kompanis\u00eb. Projekti \u00ebsht\u00eb i vog\u00ebl, por z\u00eb nj\u00eb gjendje mjaft unike n\u00eb Eclipse: q\u00ebllimi kryesor i tij \u00ebsht\u00eb mb\u00ebshtetja e zhvillimit t\u00eb modeleve t\u00eb bazuara n\u00eb handle.<\/p>\n<p>Parimet arkitekturore t\u00eb zakonshme t\u00eb modeleve t\u00eb bazuara n\u00eb handle, si\u00e7 \u00ebsht\u00eb idioma handle\/body, u shqyrtuan m\u00eb sip\u00ebr n\u00eb shembullin e modelit t\u00eb burimeve dhe modelit Java. Aty u theksua gjithashtu se si modeli i burimeve, ashtu dhe modeli Java jan\u00eb baza t\u00eb r\u00ebnd\u00ebsishme p\u00ebr mjetet e zhvillimit Eclipse Java (JDT). Dhe pasi q\u00eb pothuajse 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 n\u00eb thelb t\u00eb shum\u00eb, n\u00ebse jo t\u00eb gjitha IDE-t\u00eb, 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 n\u00eb arkitektur\u00ebn e CDT t\u00eb nj\u00ebjtin rol 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\u00ebs t\u00eb bazuara n\u00eb handle. Modelet ekzistuese tani u krijuan kryesisht p\u00ebrmes adaptimit t\u00eb drejtp\u00ebrdrejt\u00eb t\u00eb kodit t\u00eb modelit Java (e njohur gjithashtu si kopjim\/past\u00eb). <i>n\u00eb rastet kur kjo lejohet.<\/i> Licenca Publike e Eclipse (EPL). (Natyrisht, p\u00ebr projekte t\u00eb Eclipse vet\u00eb, kjo zakonisht nuk paraqet nj\u00eb problem nga pik\u00ebpamja ligjore, gj\u00eb q\u00eb nuk mund t\u00eb thuhet p\u00ebr produktet me kod t\u00eb mbyllur.) P\u00ebrve\u00e7 karakteristikave t\u00eb saj t\u00eb paorganizuar, nj\u00eb metodologji e till\u00eb \u00e7on n\u00eb probleme t\u00eb njohura: dyfishimin e kodit, gabimet e sjella gjat\u00eb adaptimit, etj. \u00c7far\u00eb \u00ebsht\u00eb edhe m\u00eb keq, modelet e rezultuara mbeten \"objekte n\u00eb vetvete\" dhe nuk shfryt\u00ebzojn\u00eb potencialin ekzistues p\u00ebr unifikim. Sepse identifikimi i koncepteve dhe protokolleve t\u00eb zakonshme 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\u00e7 ndodhi me 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 gjuh\u00ebsore, duke p\u00ebrfshir\u00eb modelet e bazuara n\u00eb handle. Por, si\u00e7 ndodh shpesh, p\u00ebr shkak t\u00eb k\u00ebrkesave m\u00eb prioritare, k\u00ebto ide nuk u realizuan kurr\u00eb. Megjithat\u00eb, faktoriza e kodit *DT-projekteve vazhdon t\u00eb mbetet nj\u00eb nga temat e pap\u00ebrpunuara n\u00eb Eclipse.<\/p>\n<p>N\u00eb nj\u00ebfar\u00eb kuptimi, projekti Handly synon t\u00eb zgjidh\u00eb detyra t\u00eb ngjashme me EMF, por p\u00ebr modelet e bazuara n\u00eb handle, dhe n\u00eb radh\u00eb t\u00eb par\u00eb p\u00ebr gjuh\u00ebt (pra, q\u00eb p\u00ebrfaq\u00ebsojn\u00eb elementet e struktur\u00ebs s\u00eb nj\u00eb gjuhe programuese). M\u00eb posht\u00eb jan\u00eb listuar q\u00ebllimet kryesore q\u00eb ishin vendosur gjat\u00eb projektimit t\u00eb Handly:<\/p>\n<ul>\n<li>Dallimi i abstraksioneve kryesore t\u00eb domenit.<\/li>\n<li>Reduktimi i p\u00ebrpjekjeve dhe rritja e cil\u00ebsis\u00eb s\u00eb implementimit t\u00eb modeleve gjuh\u00ebsore t\u00eb bazuara n\u00eb handle p\u00ebrmes rizgjedhjes s\u00eb kodit.<\/li>\n<li>Ofrimi i nj\u00eb API t\u00eb unifikuar n\u00eb nivelin meta p\u00ebr modelet e rezultuara, duke b\u00ebr\u00eb t\u00eb mundur krijimin e komponenteve t\u00eb p\u00ebrbashk\u00ebta IDE q\u00eb punojn\u00eb me modelet gjuh\u00ebsore t\u00eb bazuara n\u00eb handle.<\/li>\n<li>Fleksibiliteti dhe shkall\u00ebzueshm\u00ebria.<\/li>\n<li>Integrimi me Xtext (n\u00eb nj\u00eb nivel t\u00eb ve\u00e7ant\u00eb).<\/li>\n<\/ul>\n<p>\nP\u00ebr t\u00eb dalluar konceptet dhe protokollet e zakonshme, jan\u00eb analizuar implementimet ekzistuese t\u00eb modeleve gjuh\u00ebsore t\u00eb bazuara n\u00eb handle. Interface-t kryesor\u00eb 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 platform\u00eb teknologjike p\u00ebr 1C: Nd\u00ebrto Q\u00ebndra e Zhvillimit\" src=\"\/wp-content\/uploads\/2019\/04\/47f4bf74093245334b8d67b149734dfc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Fig. 8. Interface-t e zakonshme dhe implementimet baz\u00eb t\u00eb elementeve Handly<\/b><\/p>\n<p>Interface-i IElement p\u00ebrfaq\u00ebson handle-n\u00eb e nj\u00eb elementi dhe \u00ebsht\u00eb i zakonsh\u00ebm p\u00ebr elementet e t\u00eb gjitha modeleve t\u00eb bazuara n\u00eb Handly. Klasa abstrakte Element realizon mekanizmin e p\u00ebrgjith\u00ebsuar handle\/body (fig. 9).<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si platform\u00eb teknologjike p\u00ebr 1C: Nd\u00ebrto Q\u00ebndra e Zhvillimit\" src=\"\/wp-content\/uploads\/2019\/04\/0651c1f284b7edfa36313d4b51d72f08.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Fig. 9. IElement dhe implementimi i p\u00ebrgjith\u00ebsuar handle\/body<\/b><\/p>\n<p>P\u00ebrve\u00e7 k\u00ebsaj, Handly ofron nj\u00eb mekaniz\u00ebm t\u00eb p\u00ebrgjith\u00ebsuar p\u00ebr njoftimin mbi ndryshimet e elementeve t\u00eb modelit (fig. 10). Si\u00e7 mund t\u00eb shihet, n\u00eb p\u00ebrgjith\u00ebsi \u00ebsht\u00eb analog me mekanizmat e njoftimit t\u00eb implementuar n\u00eb modelin e burimeve dhe modelin Java, dhe p\u00ebrdor IElementDelta p\u00ebr nj\u00eb paraqitje t\u00eb unifikuar t\u00eb informacionit mbi ndryshimin e nj\u00eb elementi.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse si platform\u00eb teknologjike p\u00ebr 1C: Nd\u00ebrto Q\u00ebndra e Zhvillimit\" src=\"\/wp-content\/uploads\/2019\/04\/cbdec8cf874308e0fa9dd96d04f62703.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Fig. 10. Interface-t e zakonshme 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 p\u00ebrfaq\u00ebsimin e praktikisht \u00e7do modeli t\u00eb bazuar n\u00eb handle. P\u00ebr krijimin e <i>modeleve gjuh\u00ebsore<\/i> projekti ofron funksionalitete shtes\u00eb - n\u00eb ve\u00e7anti, interface-t e zakonshme dhe implementimet baz\u00eb p\u00ebr elementet e struktur\u00ebs s\u00eb tekstit origjinal, t\u00eb ashtuquajturat <i>source elements<\/i> (fig. 8). Interfejsi ISourceFile paraqet skedarin burimor, nd\u00ebrsa ISourceConstruct \u00ebsht\u00eb nj\u00eb element brenda skedarit burimor. Klasa abstrakte SourceFile dhe SourceConstruct zbatojn\u00eb mekanizmat e p\u00ebrgjithshme p\u00ebr mb\u00ebshtetje n\u00eb pun\u00ebn me skedar\u00ebt burimor\u00eb dhe element\u00ebt e tyre, si\u00e7 jan\u00eb pun\u00ebt me buferat tekstor\u00eb, lidhja me koordinatat e elementit n\u00eb tekstin burimor, pajtimi i modelit me p\u00ebrmbajtjen aktuale t\u00eb buferit t\u00eb kopjes s\u00eb pun\u00ebs, dhe e tjera. Zbatimi 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 doreza duke ofruar implementime t\u00eb cil\u00ebsis\u00eb s\u00eb lart\u00eb baz\u00eb.<\/p>\n<p>P\u00ebrve\u00e7 mekanizmave kryesor\u00eb t\u00eb listuar m\u00eb sip\u00ebr, Handly ofron infrastruktur\u00ebn e buferave tekstor\u00eb dhe \u00absnapshot\u00bb-eve, mb\u00ebshtetje p\u00ebr integrimin me editor\u00ebt e kodit burimor (duke p\u00ebrfshir\u00eb nj\u00eb integrim t\u00eb realizuar \u00abn\u00eb kuti\u00bb me editorin Xtext), si dhe disa komponente t\u00eb zakonshme UI q\u00eb punojn\u00eb me modelet e bazuara n\u00eb Handly, si\u00e7 \u00ebsht\u00eb framework-u outline. P\u00ebr ilustruese t\u00eb mund\u00ebsive t\u00eb tij, projekti ofron disa shembuj, duke p\u00ebrfshir\u00eb dhe implementimin e modelit Java n\u00eb Handly. (Krahasuar 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, v\u00ebmendje e madhe iu kushtua dizajnimit fillestar t\u00eb Handly dhe zhvillimit t\u00eb m\u00ebtejsh\u00ebm t\u00eb tij n\u00eb lidhje me shkall\u00ebzueshm\u00ebrin\u00eb dhe fleksibilitetin. <\/p>\n<p>N\u00eb parim, modelet e bazuara n\u00eb doreza shkall\u00ebzohen mjaft mir\u00eb \u00abvet\u00eb p\u00ebr dizajn\u00bb. P\u00ebr shembull, idioma handle\/body lejon q\u00eb t\u00eb kufizohet sasia e memories s\u00eb konsumuar nga modeli. Por ka edhe nuanca. Gjat\u00eb testeve t\u00eb Handly p\u00ebr shkall\u00ebzueshm\u00ebri u zbulua nj\u00eb problem n\u00eb implementimin e mekanizmit t\u00eb njoftimit \u2013 gjat\u00eb ndryshimeve t\u00eb nj\u00eb numri t\u00eb madh elementesh, nd\u00ebrtimi i delta merrte shum\u00eb koh\u00eb. U zbulua se e nj\u00ebjta problem po ashtu ekziston edhe n\u00eb modelin Java JDT, nga i cili n\u00eb nj\u00eb koh\u00eb ishte adaptuar kodin p\u00ebrkat\u00ebs. Ne korrigjuam gabimin n\u00eb Handly dhe p\u00ebrgatit\u00ebm nj\u00eb patch t\u00eb ngjash\u00ebm p\u00ebr JDT, i cili u pranua me fal\u00ebnderim. Ky \u00ebsht\u00eb vet\u00ebm nj\u00eb nga shembujt e shumt\u00eb, kur implementimi i Handly n\u00eb realizimet ekzistuese t\u00eb modeleve mund t\u00eb ishte potencialisht i dobish\u00ebm, pasi n\u00eb k\u00ebt\u00eb rast nj\u00eb gabim i till\u00eb mund t\u00eb merret parasysh vet\u00ebm n\u00eb 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 ruajm\u00eb backward compatibility n\u00eb 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 p\u00ebrcaktohet dhe kontrollohet plot\u00ebsisht nga zhvilluesi, nga API-ja e unifikuar t\u00eb nivellit meta t\u00eb ofruar nga biblioteka. Kjo jo vet\u00ebm q\u00eb e b\u00ebn teknisht t\u00eb mundur implementimin e Handly n\u00eb implementimet ekzistuese, por gjithashtu i jep zhvilluesit t\u00eb modelit t\u00eb ri nj\u00eb liri t\u00eb konsiderueshme n\u00eb dizajnimin e API-s\u00eb.<\/p>\n<p>Fleksibiliteti ka aspekte t\u00eb tjera. P\u00ebr shembull, Handly pothuajse nuk vendos kufizime n\u00eb struktur\u00ebn e modelit dhe mund t\u00eb p\u00ebrdoret si p\u00ebr modelimin e gjuh\u00ebve me q\u00ebllim t\u00eb p\u00ebrgjithsh\u00ebm, ashtu edhe p\u00ebr gjuh\u00eb specifike p\u00ebr fush\u00ebn. Kur nd\u00ebrtova struktur\u00ebn e skedarit burimor, Handly nuk parashtrojn\u00eb ndonj\u00eb form\u00eb t\u00eb caktuar p\u00ebrpara AST dhe n\u00eb parim nuk k\u00ebrkon as ekzistenc\u00ebn e AST-s\u00eb, duke siguruar k\u00ebshtu p\u00ebrputhshm\u00ebri me praktikisht \u00e7far\u00ebdo mekanizmi analize sintaksore. S\u00eb fundmi, Handly mb\u00ebshtet integrimin e plot\u00eb me hap\u00ebsir\u00ebn e pun\u00ebs Eclipse, por gjithashtu mund t\u00eb punoj\u00eb direkt 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 n\u00eb dhjetor 2016. Edhe pse projekti aktualisht \u00ebsht\u00eb n\u00eb faz\u00ebn e inkubacionit dhe API ende nuk \u00ebsht\u00eb p\u00ebrfundimisht i p\u00ebrcaktuar, Handly \u00ebsht\u00eb tashm\u00eb i p\u00ebrdorur n\u00eb dy produkte t\u00eb m\u00ebdha komerciale q\u00eb kan\u00eb guxuar t\u00eb veprojn\u00eb si \"adopter\u00eb t\u00eb hersh\u00ebm\", dhe, duhet th\u00ebn\u00eb, p\u00ebr momentin nuk po e pendohen p\u00ebr k\u00ebt\u00eb.<\/p>\n<p>Si\u00e7 u p\u00ebrmend m\u00eb lart, nj\u00ebri nga k\u00ebto produkte \u00ebsht\u00eb 1C:Enterprise Development Tools, ku Handly p\u00ebrdoret q\u00eb nga fillimi p\u00ebr modelimin e elementeve t\u00eb struktur\u00ebs m\u00eb t\u00eb lart\u00eb t\u00eb gjuh\u00ebve t\u00eb tilla si 1C:Enterprise, si gjuha e integruar e programimit dhe gjuha e pyetjeve. 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 ambient i integruar p\u00ebr projektimin e procesor\u00ebve me q\u00ebllim t\u00eb ve\u00e7ant\u00eb (application-specific instruction-set processor, ASIP), i p\u00ebrdorur si brenda vet\u00eb kompanis\u00eb \u00e7eke Codasip, ashtu edhe nga klient\u00ebt e saj, mes 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 p\u00ebrdor Handly n\u00eb prodhim q\u00eb nga viti 2015, duke filluar nga versioni Handly 0.2. L\u00ebshimi m\u00eb i fundit i Codasip Studio aktualisht p\u00ebrdor versionin 0.5, i cili u publikua n\u00eb qershor 2016. Ond\u0159ej Il\u010d\u00edk, q\u00eb drejton zhvillimin e IDE n\u00eb Codasip, \u00ebsht\u00eb n\u00eb kontakt me projektin, duke ofruar nj\u00eb feedback shum\u00eb t\u00eb r\u00ebnd\u00ebsish\u00ebm nga nj\u00eb \u201cadopter i jasht\u00ebm\u201d. Ai arriti madje t\u00eb gjej\u00eb pak koh\u00eb t\u00eb lir\u00eb p\u00ebr t\u2019u angazhuar drejtp\u00ebrdrejt n\u00eb zhvillimin e projektit, duke implementuar nj\u00eb nivel UI (~ 4000 rreshta kodi) p\u00ebr nj\u00eb nga shembujt e Handly, modelin Java. Informacione m\u00eb t\u00eb detajuara \u201cnga burimi\u201d mbi p\u00ebrdorimin e Handly nga adopter\u00ebt mund t\u00eb merren n\u00eb faqen <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.eclipse.org\/Handly\/Adopters\">Histori Sukeshi<\/a><\/noindex> project.<\/p>\n<p>Shpresojm\u00eb q\u00eb pas l\u00ebshimit t\u00eb versionit 1.0 me garancin\u00eb e stabilitetit t\u00eb API dhe daljes s\u00eb projektit nga fase inkubimi, Handly do t\u00eb ket\u00eb adoptera t\u00eb rinj. Nd\u00ebrkoh\u00eb, projekti vazhdon testimin dhe p\u00ebrmir\u00ebsimin e m\u00ebtejsh\u00ebm t\u00eb API, duke l\u00ebshuar dy \u201crilisime t\u00eb m\u00ebdha\u201d n\u00eb vit \u2013 n\u00eb qershor (n\u00eb t\u00eb nj\u00ebjt\u00ebn dat\u00eb si rilisimi i Eclipse) dhe n\u00eb dhjetor, duke ofruar nj\u00eb program t\u00eb parashikuesh\u00ebm, mbi t\u00eb cilin adopter\u00ebt mund t\u00eb mb\u00ebshteten. Mund t\u00eb shtojm\u00eb gjithashtu se norma e \u201cdefekteve\u201d t\u00eb projektit mbetet n\u00eb nj\u00eb nivel t\u00eb ul\u00ebt t\u00eb q\u00ebndruesh\u00ebm dhe Handly funksionon n\u00eb m\u00ebnyr\u00eb t\u00eb besueshme 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\">Tutoriali i Fillimit<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"http:\/\/www.eclipse.org\/downloads\/download.php?file=\/handly\/docs\/handly-overview.pdf&amp;r=1\">P\u00ebrmbledhja Arkitekturore<\/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.2 - 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.\" \/>\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.2\" \/>\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.\" \/>\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 tashm\u00eb nuk ka nevoj\u00eb p\u00ebr nj\u00eb paraqitje t\u00eb ve\u00e7ant\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.","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}]}}