Å Ä« projekta dzimÅ”anu var uzskatÄ«t par nelielu ideju, kas man radÄs kaut kur 2007. gada nogalÄ, kurai savu galÄ«go formu bija lemts atrast tikai pÄc 12 gadiem (Å”obrÄ«d ā protams, lai gan paÅ”reizÄjÄ realizÄcija, saskaÅÄ ar autoram ir ļoti apmierinoÅ”s).
Viss sÄkÄs ar to, ka, pildot savus toreizÄjos dienesta pienÄkumus bibliotÄkÄ, vÄrsu uzmanÄ«bu uz to, ka notiek datu ievade no grÄmatu (un mÅ«zikas) izdevumu satura rÄdÄ«tÄju ieskenÄtÄ teksta esoÅ”ajÄ datubÄzÄ, t.sk. acÄ«mredzot, var ievÄrojami vienkÄrÅ”ot un automatizÄt, izmantojot sakÄrtotÄ«bas un atkÄrtojamÄ«bas Ä«paŔību visiem ievadei nepiecieÅ”amajiem datiem, piemÄram, raksta autora vÄrds (ja mÄs runÄjam par rakstu krÄjumu), raksta nosaukums. raksts (vai satura rÄdÄ«tÄjÄ atspoguļotais apakÅ”virsraksts) un aktuÄlÄ satura rÄdÄ«tÄja pozÄ«cijas lappuses numurs. SÄkumÄ es biju praktiski pÄrliecinÄts, ka Ŕī uzdevuma veikÅ”anai piemÄrotu sistÄmu var viegli atrast internetÄ. Kad kÄdu pÄrsteigumu izraisÄ«ja fakts, ka nevarÄju atrast Å”Ädu projektu, nolÄmu mÄÄ£inÄt to Ä«stenot saviem spÄkiem.
PÄc diezgan neilga laika sÄka darboties pirmais prototips, kuru uzreiz sÄku izmantot savÄs ikdienas darbÄ«bÄs, vienlaikus atkļūdojot to visos piemÄros, kas nonÄca manÄ rokÄ. Par laimi, manÄ parastajÄ darba vietÄ, kur es nekÄdÄ gadÄ«jumÄ nebiju programmÄtÄjs, man tomÄr izdevÄs iztikt ar redzamÄm ādÄ«kstÄvÄmā savÄ darbÄ, kuras laikÄ es intensÄ«vi atkļūdoju savu prÄta bÄrnu, kas ir gandrÄ«z neiedomÄjama lieta mÅ«sdienu realitÄtÄ, kas nozÄ«mÄ. ikdienas atskaites par dienas laikÄ paveikto. Programmas slÄ«pÄÅ”anas process kopumÄ aizÅÄma ne mazÄk kÄ apmÄram gadu, taÄu arÄ« pÄc tam rezultÄtu diez vai varÄja saukt par pilnÄ«gi veiksmÄ«gu - sÄkotnÄji tika izstrÄdÄts pÄrÄk daudz dažÄdu koncepciju, kas nebija lÄ«dz galam skaidras ievieÅ”anai: izvÄles elementi, kurus var tikt izlaists; elementu skatÄ«Å”ana uz priekÅ”u (lai aizstÄtu iepriekÅ”Äjos elementus meklÄÅ”anas rezultÄtos); pat mÅ«su paÅ”u mÄÄ£inÄjums ieviest kaut ko lÄ«dzÄ«gu regulÄrÄm izteiksmÄm (kam ir unikÄla sintakse). JÄsaka, ka pirms tam biju nedaudz atteicies no programmÄÅ”anas (apmÄram 8 gadus, ja ne vairÄk), tÄpÄc jaunÄ iespÄja pielietot savas prasmes interesantam un nepiecieÅ”amam uzdevumam pilnÄ«bÄ piesaistÄ«ja manu uzmanÄ«bu. Nav pÄrsteidzoÅ”i, ka iegÅ«tais pirmkods ā tÄ kÄ no manas puses nebija skaidras pieejas tÄ dizainam ā diezgan Ätri kļuva par neiedomÄjamu dažÄdu C valodas elementu sajaukÅ”anu ar dažiem C++ elementiem un vizuÄlÄs programmÄÅ”anas aspektiem (sÄkotnÄji tas bija tika nolemts izmantot tÄdu projektÄÅ”anas sistÄmu kÄ Borland C++ Builder - āgandrÄ«z Delphi, bet Cā). TomÄr tas viss galu galÄ nesa augļus mÅ«su bibliotÄkas ikdienas darbÄ«bu automatizÄcijÄ.
TajÄ paÅ”Ä laikÄ es nolÄmu katram gadÄ«jumam apmeklÄt kursus, lai apmÄcÄ«tu profesionÄlus programmatÅ«ras izstrÄdÄtÄjus. Nezinu, vai tur reÄli ir iespÄjams iemÄcÄ«ties āpar programmÄtÄjuā no nulles, taÄu, Åemot vÄrÄ jau tobrÄ«d jau esoÅ”Äs prasmes, varÄju zinÄmÄ mÄrÄ apgÅ«t lÄ«dz tam laikam aktuÄlÄkas tehnoloÄ£ijas, piemÄram, kÄ C#, Visual Studio izstrÄdei zem .NET, kÄ arÄ« dažas tehnoloÄ£ijas, kas saistÄ«tas ar Java, HTML un SQL. Visa apmÄcÄ«ba kopumÄ aizÅÄma divus gadus un kalpoja par sÄkumpunktu citam manam projektam, kas galu galÄ stiepÄs vairÄkus gadus, taÄu Ŕī ir atseviŔķas publikÄcijas tÄma. Å eit bÅ«tu tikai vietÄ atzÄ«mÄt, ka es mÄÄ£inÄju pielÄgot jau esoÅ”os uzlabojumus aprakstÄ«tajÄ projektÄ, lai izveidotu pilnvÄrtÄ«gu logu lietojumprogrammu C# un WinForms, kas ievieÅ” nepiecieÅ”amo funkcionalitÄti, un izmantotu to kÄ pamatu topoÅ”ais diplomprojekts.
Laika gaitÄ Å”Ä« ideja man sÄka Ŕķist izskanÄÅ”anas vÄrta tÄdÄs ikgadÄjÄs konferencÄs, kurÄs piedalÄ«jÄs dažÄdu bibliotÄku pÄrstÄvji kÄ āLIBKOMā un āKRIMAā. Ideja, jÄ, bet ne mans toreizÄjais tÄs Ä«stenoÅ”ana. Tad arÄ« cerÄju, ka kÄds to pÄrrakstÄ«s, izmantojot kompetentÄkas pieejas. TÄ vai citÄdi, bet lÄ«dz 2013. gadam nolÄmu uzrakstÄ«t referÄtu par savu priekÅ”darbu un nosÅ«tÄ«t to Konferences orgkomitejai ar pieteikumu granta saÅemÅ”anai dalÄ«bai konferencÄ. Man par pÄrsteigumu mans pieteikums tika apstiprinÄts, un es sÄku veikt dažus uzlabojumus projektÄ, lai sagatavotu to prezentÄcijai konferencÄ.
LÄ«dz tam laikam projekts jau bija ieguvis jaunu nosaukumu BIRMA, ieguvis dažÄdas papildu (ne tik daudz lÄ«dz galam realizÄtas, bet gan pieÅemtas) iespÄjas -
GodÄ«gi sakot, BIRMA 2013 bija grÅ«ti nosaukt par kaut ko pilnÄ«gu; AtklÄti sakot, tas bija ļoti hackly amatniecÄ«ba, kas izgatavota steigÄ. Koda ziÅÄ Ä«paÅ”u jauninÄjumu praktiski nebija, ja neskaita diezgan bezpalÄ«dzÄ«gu mÄÄ£inÄjumu izveidot parsÄtÄjam kaut kÄdu vienotu sintaksi, kas pÄc izskata atgÄdina IRBIS 64 formatÄÅ”anas valodu (un patiesÄ«bÄ arÄ« ISIS sistÄmu - ar iekavÄm kÄ cikliskas struktÅ«ras; kÄpÄc Toreiz man likÄs, ka tas izskatÄ«jÄs diezgan forÅ”i). ParsÄtÄjs bezcerÄ«gi paklupa uz Å”iem atbilstoÅ”Ä tipa iekavu apļiem (jo iekavas pildÄ«ja arÄ« citu lomu, proti, parsÄÅ”anas laikÄ iezÄ«mÄja neobligÄtas struktÅ«ras, kuras var izlaist). Visus, kas vÄlas sÄ«kÄk iepazÄ«ties ar tolaik grÅ«ti iztÄlojamo, nepamatoto BIRMA sintaksi, vÄlreiz vÄrÅ”u uz savu tÄ laika referÄtu.
KopumÄ, izÅemot to, ka cÄ«nos ar savu parsÄtÄju, man nav ko vairÄk teikt par Ŕīs versijas kodu - izÅemot esoÅ”o avotu apgriezto pÄrveidoÅ”anu par C++, vienlaikus saglabÄjot dažas tipiskas .NET koda funkcijas (ja godÄ«gi, tas ir grÅ«ti saprast , kas tieÅ”i pamudinÄja visu pÄrvietot atpakaļ - iespÄjams, kaut kÄdas muļķīgas bailes noslÄpt savus pirmkodus, it kÄ tas bÅ«tu kaut kas lÄ«dzvÄrtÄ«gs Coca-Cola slepenajai receptei).
IespÄjams, ka Å”is stulbais lÄmums ir arÄ« iemesls grÅ«tÄ«bÄm izveidoto DLL bibliotÄku savienot pÄrÄ« ar paÅ”taisÄ«tas darbstacijas esoÅ”o interfeisu datu ievadÄ«Å”anai elektroniskajÄ katalogÄ (jÄ, es neminÄju vÄl vienu svarÄ«gu faktu: turpmÄk visi BIRMA ādzinÄjaā kods bija kÄ paredzÄts, tas ir atdalÄ«ts no interfeisa daļas un iepakots atbilstoÅ”Ä DLL). KÄpÄc Å”iem nolÅ«kiem bija jÄraksta atseviŔķa darbstacija, kas tik un tÄ savÄ izskatÄ un mijiedarbÄ«bas ar lietotÄju metodÄ nekaunÄ«gi kopÄja to paÅ”u IRBIS 64 sistÄmas darbstaciju āKatalogistsā - tas ir atseviŔķs jautÄjums. ÄŖsÄk sakot: tas deva vajadzÄ«go pamatÄ«gumu manam toreizÄjam izlaidumam manam izlaiduma projektam (citÄdi ar nesagremojamo parsÄtÄju vien kaut kÄ nepietika). TurklÄt es saskÄros ar dažÄm grÅ«tÄ«bÄm, ievieÅ”ot Cataloger darbstacijas saskarni ar saviem moduļiem, kas tika ieviesti gan C++, gan C#, un tieÅ”i piekļūt savam dzinÄjam.
VispÄr, dÄ«vainÄ kÄrtÄ, tieÅ”i Å”im visai neveiklajam topoÅ”Ä BIRMA.NET prototipam bija lemts kļūt par manu ādarba zirguā turpmÄkos Äetrus gadus. NevarÄtu teikt, ka Å”ajÄ laikÄ es vismaz nemÄÄ£inÄju atrast veidus jaunai, pilnÄ«gÄkai sen pastÄvoÅ”as idejas Ä«stenoÅ”anai. Starp citiem jauninÄjumiem jau vajadzÄja bÅ«t ligzdotÄm cikliskÄm sekvencÄm, kurÄs varÄja bÅ«t iekļauti neobligÄti elementi - tÄ es grasÄ«jos iedzÄ«vinÄt ideju par universÄlÄm veidnÄm publikÄciju bibliogrÄfiskiem aprakstiem un dažÄdÄm citÄm interesantÄm lietÄm. TaÄu manÄ praktiskajÄ darbÄ«bÄ tobrÄ«d tas viss bija maz pieprasÄ«ts, un toreizÄjÄ realizÄcija man bija pilnÄ«gi pietiekama satura rÄdÄ«tÄju ievadÄ«Å”anai. TurklÄt mÅ«su bibliotÄkas attÄ«stÄ«bas vektors arvien vairÄk sÄka novirzÄ«ties uz muzeju arhÄ«vu digitalizÄciju, atskaitÄm un citÄm mani maz interesÄjoÅ”Äm aktivitÄtÄm, kas galu galÄ lika beidzot to pamest, dodot vietu tiem, kuri vÄlÄsies. priecÄjies par to visu vairÄk.
ParadoksÄli, bet tieÅ”i pÄc Å”iem dramatiskajiem notikumiem BIRMA projekts, kuram tolaik jau bija visas tipiskam ilgtermiÅa bÅ«vprojektam raksturÄ«gÄs iezÄ«mes, Ŕķita, ka sÄka uzÅemt savu ilgi gaidÄ«to jauno dzÄ«vi! Man bija vairÄk brÄ«va laika tukÅ”Äm domÄm, es atkal sÄku Ä·emmÄt globÄlo tÄ«mekli, meklÄjot kaut ko lÄ«dzÄ«gu (par laimi, tagad es jau varÄju uzminÄt, ka to visu meklÄÅ”u ne tikai jebkur, bet gan GitHub), un kaut kur plkst. Ŕī gada sÄkumÄ es beidzot uzgÄju atbilstoÅ”u produktu no pazÄ«stamÄ Salesforce uzÅÄmuma ar nenozÄ«mÄ«gu nosaukumu
VispÄr es nolÄmu, ka Å”is ir tas Gorp (Nez, ko Å”is nosaukums nozÄ«mÄ? VarbÅ«t kÄds "vispÄrÄ«gi orientÄts parastais parsÄtÄjs"?) ā tieÅ”i tas, ko esmu meklÄjis jau ilgu laiku. Tiesa, tÄ tÅ«lÄ«tÄjai ievieÅ”anai manÄm vajadzÄ«bÄm radÄs tÄda problÄma, ka Å”is dzinÄjs prasÄ«ja pÄrÄk stingru avota teksta strukturÄlÄs secÄ«bas ievÄroÅ”anu. DažÄm atskaitÄm, piemÄram, žurnÄlfailiem (proti, izstrÄdÄtÄji tos ievietoja kÄ skaidrus projekta izmantoÅ”anas piemÄrus), tas ir diezgan piemÄrots, taÄu tiem paÅ”iem skenÄto satura rÄdÄ«tÄju tekstiem tas ir maz ticams. Galu galÄ viena un tÄ pati lapa ar satura rÄdÄ«tÄju var sÄkties ar vÄrdiem āSatursā, āSatursā un jebkuriem citiem provizoriskiem aprakstiem, kas mums nav jÄievieto paredzÄtÄs analÄ«zes rezultÄtos (un tos manuÄli nogriežot). katra reize ir arÄ« neÄrta). TurklÄt starp atseviŔķiem atkÄrtotiem elementiem, piemÄram, autora vÄrdu, nosaukumu un lappuses numuru, lapÄ var bÅ«t noteikts daudzums atkritumu (piemÄram, zÄ«mÄjumi un vienkÄrÅ”i nejauÅ”as rakstzÄ«mes), ko arÄ« bÅ«tu jauki nogriezt. TomÄr pÄdÄjais aspekts vÄl nebija tik nozÄ«mÄ«gs, bet pirmÄ dÄļ esoÅ”Ä realizÄcija nevarÄja sÄkt meklÄt tekstÄ nepiecieÅ”amÄs struktÅ«ras no noteiktas vietas, bet tÄ vietÄ vienkÄrÅ”i apstrÄdÄja to no paÅ”a sÄkuma, neatrada tur noteikti paraugi un... beidzu savu darbu. AcÄ«mredzot bija nepiecieÅ”ama neliela pielÄgoÅ”ana, lai vismaz atstÄtu vietu starp atkÄrtotajÄm struktÅ«rÄm, un tas mani atgrieza darbÄ.
VÄl viena problÄma bija tÄ, ka pats projekts tika realizÄts Java valodÄ, un, ja es nÄkotnÄ plÄnoju ieviest kÄdu lÄ«dzekli Ŕīs tehnoloÄ£ijas saskarnei ar pazÄ«stamÄm lietojumprogrammÄm datu ievadÄ«Å”anai esoÅ”ajÄs datubÄzÄs (piemÄram, Irbis āCataloguerā), tad vismaz vismaz dariet to C# un .NET. Nav jau tÄ, ka Java pati par sevi bÅ«tu slikta valoda ā es to kÄdreiz pat izmantoju, lai ieviestu interesantu logu lietojumprogrammu, kas ieviesa paÅ”mÄju programmÄjama kalkulatora funkcionalitÄti (kÄ daļa no kursa projekta). Un sintakses ziÅÄ tas ir ļoti lÄ«dzÄ«gs tam paÅ”am C-sharp. Nu, tas ir tikai pluss: jo vieglÄk man bÅ«s pabeigt esoÅ”u projektu. TomÄr es nevÄlÄjos atkal ienirt Å”ajÄ diezgan neparastajÄ logu (vai drÄ«zÄk, darbvirsmas) Java tehnoloÄ£iju pasaulÄ - galu galÄ pati valoda nebija āpielÄgotaā Å”Ädai lietoÅ”anai, un es nemaz nevÄlÄjos atkÄrtot iepriekÅ”ÄjÄ pieredze. VarbÅ«t tas ir tieÅ”i tÄpÄc, ka C# savienojumÄ ar WinForms ir daudz tuvÄks Delphi, ar kuru daudzi no mums savulaik sÄka. Par laimi, nepiecieÅ”amais risinÄjums tika atrasts diezgan Ätri ā projekta veidÄ
TÄpÄc es veicu visas nepiecieÅ”amÄs izmaiÅas un saliku to visu atbilstoÅ”a tipa DLL, kuru varÄja viegli āpaÅemtā jebkuros Visual Studio izveidotÄ .NET Framework projektos. Pa to laiku es izveidoju vÄl vienu slÄni, lai Ärti parÄdÄ«tu atgrieztos rezultÄtus Gorp, atbilstoÅ”u datu struktÅ«ru veidÄ, kuras bÅ«tu Ärti apstrÄdÄt tabulas skatÄ (Åemot par pamatu gan rindas, gan kolonnas; gan vÄrdnÄ«cas atslÄgas, gan ciparu indeksus). Nu, paÅ”i nepiecieÅ”amie utilÄ«ti rezultÄtu apstrÄdei un parÄdÄ«Å”anai tika uzrakstÄ«ti diezgan Ätri.
ArÄ« veidÅu pielÄgoÅ”anas process jaunajam dzinÄjam, lai iemÄcÄ«tu parsÄt esoÅ”os satura rÄdÄ«tÄju skenÄto tekstu paraugus, Ä«paÅ”us sarežģījumus neradÄ«ja. PatiesÄ«bÄ man pat nebija jÄatsaucas uz savÄm iepriekÅ”ÄjÄm veidnÄm: es vienkÄrÅ”i izveidoju visas nepiecieÅ”amÄs veidnes no nulles. TurklÄt, ja veidnes, kas paredzÄtas darbam ar iepriekÅ”Äjo sistÄmas versiju, noteica diezgan Å”auru ietvaru tekstiem, kurus varÄja pareizi parsÄt ar to palÄ«dzÄ«bu, jaunais dzinÄjs jau ļÄva izstrÄdÄt diezgan universÄlas veidnes, kas piemÄrotas vairÄkiem iezÄ«mÄÅ”anas veidiem. vienreiz. Es pat mÄÄ£inÄju uzrakstÄ«t kaut kÄdu visaptveroÅ”u veidni jebkuram patvaļīgam satura rÄdÄ«tÄja tekstam, lai gan, protams, pat tad, kad man pavÄrÄs visas jaunÄs iespÄjas, tostarp, jo Ä«paÅ”i, ierobežotÄ iespÄja ieviest tÄs paÅ”as ligzdotÄs atkÄrtotÄs secÄ«bas ( piemÄram, vairÄku autoru uzvÄrdi un iniciÄļi pÄc kÄrtas), tÄ izrÄdÄ«jÄs utopija.
IespÄjams, nÄkotnÄ bÅ«s iespÄjams ieviest noteiktu metaveidÅu koncepciju, kas varÄs pÄrbaudÄ«t avota teksta atbilstÄ«bu vairÄkÄm pieejamajÄm veidnÄm uzreiz un pÄc tam atbilstoÅ”i iegÅ«tajiem rezultÄtiem atlasÄ«t vispiemÄrotÄkais, izmantojot kaut kÄdu viedo algoritmu. Bet tagad mani vairÄk uztrauca cits jautÄjums. ParsÄtÄjs, piemÄram Gorp, neskatoties uz visu savu daudzpusÄ«bu un manis veiktajÄm modifikÄcijÄm, tas joprojÄm pÄc bÅ«tÄ«bas nespÄja paveikt vienu Ŕķietami vienkÄrÅ”u lietu, ko mans paÅ”a rakstÄ«tais parsÄtÄjs spÄja izdarÄ«t jau no pirmÄs versijas. Proti: viÅam bija iespÄja atrast un izvilkt no avota teksta visus fragmentus, kas atbilst Ä«stajÄ vietÄ izmantotajÄ veidnÄ norÄdÄ«tajai maskai, vienlaikus nemaz neinteresÄjoties par to, ko dotajÄ tekstÄ atrodas atstarpÄs starp Å”iem fragmentiem. LÄ«dz Å”im esmu tikai nedaudz uzlabojis jauno dzinÄju, ļaujot tam meklÄt visus iespÄjamos jaunus Å”Ädu masku noteiktas secÄ«bas atkÄrtojumus no paÅ”reizÄjÄs pozÄ«cijas, atstÄjot iespÄju tekstÄ atrasties patvaļīgu rakstzÄ«mju kopas, kas bija pilnÄ«bÄ nav Åemts vÄrÄ parsÄÅ”anÄ, atrodas starp atklÄtajÄm atkÄrtotajÄm struktÅ«rÄm. TomÄr tas neļÄva iestatÄ«t nÄkamo masku neatkarÄ«gi no iepriekÅ”ÄjÄ fragmenta meklÄÅ”anas rezultÄtiem, izmantojot atbilstoÅ”o masku: aprakstÄ«tÄs teksta struktÅ«ras stingrÄ«ba joprojÄm neatstÄja vietu patvaļīgai neregulÄru rakstzÄ«mju iekļauÅ”anai.
Un, ja satura rÄdÄ«tÄju piemÄriem, ar kuriem es saskÄros, Ŕī problÄma vÄl neŔķita tik nopietna, tad, mÄÄ£inot piemÄrot jaunu parsÄÅ”anas mehÄnismu lÄ«dzÄ«gam tÄ«mekļa vietnes satura parsÄÅ”anas uzdevumam (t.i., tai paÅ”ai parsÄÅ”anai), tÄ ierobežojumi ir Å”eit tie parÄdÄ«jÄs ar visu savu acÄ«mredzamo. Galu galÄ ir diezgan vienkÄrÅ”i iestatÄ«t nepiecieÅ”amÄs maskas tÄ«mekļa iezÄ«mÄÅ”anas fragmentiem, starp kuriem jÄatrodas mÅ«su meklÄtajiem datiem (kas ir jÄizvelk), bet kÄ mÄs varam piespiest parsÄtÄju nekavÄjoties pÄriet uz nÄkamo lÄ«dzÄ«gs fragments, neskatoties uz visiem iespÄjamajiem tagiem un HTML atribÅ«tiem, ko var ievietot atstarpÄs starp tÄm?
Nedaudz padomÄjot, nolÄmu ieviest pÄris apkalpoÅ”anas modeļus (%all_pirms) Šø (%all_after), kas kalpo acÄ«mredzamam mÄrÄ·im nodroÅ”inÄt, ka viss, kas var bÅ«t ietverts avota tekstÄ, tiek izlaists pirms jebkura raksta (maskas), kas tiem seko. TurklÄt, ja (%all_pirms) vienkÄrÅ”i ignorÄja visus Å”os patvaļīgos ieslÄgumus (%all_after), gluži pretÄji, ļÄva tos pievienot vÄlamajam fragmentam pÄc pÄrejas no iepriekÅ”ÄjÄ fragmenta. IzklausÄs pavisam vienkÄrÅ”i, bet Ŕīs koncepcijas Ä«stenoÅ”anai nÄcÄs vÄlreiz izÄ·emmÄt gorp avotus, lai veiktu nepiecieÅ”amÄs modifikÄcijas, lai nesajauktu jau ieviesto loÄ£iku. BeigÄs mums tas izdevÄs (lai gan tika uzrakstÄ«ta pat pati, pati pirmÄ, kaut arÄ« ļoti buggy mana parsÄtÄja realizÄcija, un vÄl ÄtrÄk - pÄris nedÄļu laikÄ). No Ŕī brīža sistÄma ieguva patiesi universÄlu veidolu ā ne mazÄk kÄ 12 gadus pÄc pirmajiem mÄÄ£inÄjumiem padarÄ«t to funkcionÄjoÅ”u.
Protams, ar to mÅ«su sapÅi nebeidzas. Varat arÄ« pilnÄ«bÄ pÄrrakstÄ«t gorp veidÅu parsÄtÄju C#, izmantojot jebkuru no pieejamajÄm bibliotÄkÄm bezmaksas gramatikas ievieÅ”anai. Es domÄju, ka kods ir bÅ«tiski jÄvienkÄrÅ”o, un tas ļaus mums atbrÄ«voties no mantojuma esoÅ”o Java avotu veidÄ. Bet ar esoÅ”o dzinÄja tipu pilnÄ«gi iespÄjams paveikt arÄ« dažÄdas interesantas lietas, tai skaitÄ mÄÄ£inÄjums realizÄt manis jau minÄtÄs metaveidnes, nemaz nerunÄjot par dažÄdu datu parsÄÅ”anu no dažÄdÄm mÄjaslapÄm (tomÄr neizslÄdzu ka esoÅ”ie specializÄtie programmatÅ«ras rÄ«ki tam ir piemÄrotÄki ā man vienkÄrÅ”i vÄl nav bijusi atbilstoÅ”a pieredze to lietoÅ”anÄ).
Starp citu, Å”ovasar es jau saÅÄmu uzaicinÄjumu uz e-pastu no uzÅÄmuma, kas izmanto Salesforce tehnoloÄ£ijas (oriÄ£inÄla izstrÄdÄtÄjs Gorp), iziet interviju turpmÄkajam darbam RÄ«gÄ. DiemžÄl Å”obrÄ«d es neesmu gatavs Å”ÄdÄm pÄrgrupÄÅ”anÄm.
Ja Å”is materiÄls izraisa zinÄmu interesi, tad otrajÄ daÄ¼Ä mÄÄ£inÄÅ”u sÄ«kÄk aprakstÄ«t veidÅu kompilÄÅ”anas un pÄc tam parsÄÅ”anas tehnoloÄ£iju, izmantojot Salesforce izmantotÄs implementÄcijas piemÄru. Gorp (mani papildinÄjumi, izÅemot pÄris jau aprakstÄ«tos funkciju vÄrdus, praktiski neveic nekÄdas izmaiÅas paÅ”Ä veidnes sintaksÄ, tÄpÄc gandrÄ«z visa sÄkotnÄjÄs sistÄmas dokumentÄcija Gorp PiemÄrots arÄ« manai versijai).
Avots: www.habr.com