Nzira yekurega kuita chinhu chimwe chete

Unoda kudzokorora mabasa enguva dzose kasingaperi? Saka ini handidaro. Asi nguva dzose muSQL mutengi kana ndichishanda neRostelecom kuchengetedza, ndaifanira kunyoresa majoini ose pakati pematafura nemaoko. Uye izvi zvisinei nekuti mu90% yemakesi minda uye mamiriro ekubatanidza matafura akabatana kubva kumubvunzo kuenda kumubvunzo! Zvingaita sekuti chero SQL mutengi ane auto-kupedzisa mabasa, asi kune storages haishande nguva dzose: ivo havawanzo sanganisira yakasarudzika yekumanikidza uye kiyi yekunze kuitira kuvandudza mashandiro, uye pasina izvi chirongwa hachizoziva kuti masangano ane hukama sei kune chimwe nechimwe. zvimwe uye zvazvingaite kwauri kupa.

Nzira yekurega kuita chinhu chimwe chete

Sezvo ndapfuura nekuramba, kutsamwa, kutaurirana, kushungurudzika uye kusvika pakugamuchirwa, ndakafunga - wadii kuedza kuita autofill neblackjack ini ndozviita nenzira kwayo? Ini ndinoshandisa iyo dbeaver mutengi, yakanyorwa mujava, ine yakavhurika sosi nharaunda vhezheni. Hurongwa huri nyore hwakura:

  1. Tsvaga makirasi mune kodhi kodhi ane basa rekupedzisa otomatiki
  2. Vatungamirire kuti vashande neyekunze metadata uye dhonza ruzivo nezve majoini kubva ipapo
  3. ??????
  4. Tingawaneiko

Ndakafunga poindi yekutanga nekukurumidza - ndakawana chikumbiro mune bug tracker kugadzirisa iyo autofill uye mune inoenderana. commit akawana kirasi yeSQLCompletionAnalyzer. Ndakatarisa kodhi uye ndiyo yandinoda. Chasara kunyora patsva kuti zvese zvishande. Ndakamirira manheru emahara ndikatanga kufunga nekuita. Ndakafunga kunyora tafura yekubatanidza mitemo (metadata) mujson. Ndakanga ndisina ruzivo rwekushanda nefomati iyi uye basa razvino rakaonekwa semukana wekugadzirisa kusasiiwa uku.

Kuti ndishande najson ndakafunga kushandisa raibhurari json-nyore kubva kuGoogle. Apa ndipo pakatangira mashura. Sezvazvakazoitika, dbeaver, sechishandiso chechokwadi, yakanyorwa pachikuva cheEclipse uchishandisa OSGi chimiro. Kune vanogadzira vane ruzivo, chinhu ichi chinoita kuti zvive nyore kubata zvinotsamira, asi kwandiri zvaive zvakaita semashiripiti erima, izvo zvandanga ndisina kugadzirira: semazuva ese, ndinopinza makirasi andinoda kubva kujson-nyore raibhurari mumusoro we. kirasi yakagadziridzwa, itsanangure mupom.xml, mushure mezvo chirongwa chinoramba kuungana zvakajairika uye kubonderana nekukanganisa.

Pakupedzisira, ndakakwanisa kugadzirisa zvikanganiso zvekuvaka: Ndakanyoresa raibhurari kwete mu pom.xml, asi mumanifest.mf manifest, sezvinodiwa neOSGI, ndichiitsanangura seyekupinza-package. Kwete iyo yakanyanya kunaka mhinduro, asi inoshanda. Ipapo kushamisika kwakatevera kwakaoneka. Kana iwe uri kuvandudza muIntellij Idea, haugone kungoenda wotanga kugadzirisa purojekiti yako zvichibva pane eclipse papuratifomu: mugadziri asina ruzivo haafanire kutambura zvisingasviki muongorori asina kupedzwa kwemubvunzo. Vagadziri vebeaver ivo pachavo vakauya kuzonunura, vachiratidza muwiki matambiro ese ane tamborini inoda kuitwa. Chinonyanya kusvota ndechekuti kunyangwe mushure mezvose izvi squats, purojekiti haina kuda kutangwa mukugadzirisa nejson raibhurari yakabatana kuburikidza neimport-package (zvisinei nekuti yaive ichiri kuunganidzwa zvakabudirira muchigadzirwa chakapedzwa).

Panguva iyoyo, ndakanga ndatoona kusagadzikana kwekushandisa json pabasa rangu - mushure mezvose, metadata yaifanirwa kugadziridzwa nemaoko, uye xml fomati inokodzera zvirinani izvi. Nharo yechipiri yaifarira xml kwaive kuvapo kwemakirasi ese anodiwa muJDK, izvo zvakaita kuti zvikwanise kumira kurwa neraibhurari yekunze. Nemufaro mukuru, ndakatamisa metadata yese kubva kujson kuenda kuxml ndokutanga kugadzirisa iyo autocomplete logic.

Metadata muenzaniso

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tableRelations>
    <tableRelation>
        <leftTable>dim_account</leftTable>
        <rightTable>dim_partner</rightTable>
        <joinColumnPair leftColumn="partner_key" rightColumn="partner_key"/>
        <joinColumnPair leftColumn="src_id" rightColumn="src_id"/>
    </tableRelation>
    <tableRelation>
        <leftTable>dim_account</leftTable>
        <rightTable>dim_branch</rightTable>
        <joinColumnPair leftColumn="src_id" rightColumn="src_id"/>
        <joinColumnPair leftColumn="branch_key" rightColumn="branch_key"/>
    </tableRelation>
</tableRelations>

Somugumisiro I akaita shanduko muSQLUtils uye SQLCompletionAnalyzer makirasi. Pfungwa ndeiyi: kana chirongwa chacho chisina kukwanisa kuwana akakodzera autocomplete mazano uchishandisa iyo yakakosha logic, zvino inotarisa kuvepo kwekugona kujoinha uchishandisa yekunze xml faira. Iyo faira pachayo inochengeta maviri ematafura anoratidza minda iyo matafura aya anoda kubatanidzwa. Zvirambidzo pamazuva echokwadi ezvakarekodhwa eff_dttm uye exp_dttm uye zvine musoro kudzima mureza wakadzimwa_ind zvinoiswa nekusarudzika.

Kana shanduko dzakaitwa kukodhi, mubvunzo wakamuka - ndiani achazadza faira nemetadata? Kune akawanda masangano mune repository, zvinodhura kunyoresa zvese zvinongedzo iwe pachako. Somugumisiro, ndakasarudza kupa basa iri kune vamwe vangu vaongorori. Ndakaisa iyo metadata faira mu svn, kubva panoitwa cheki kune yenzvimbo dhairekitori nechirongwa. Nheyo yacho ndeiyi: pane chinhu chitsva chakaonekwa munzvimbo inochengeterwa? Mumwe muongorori anopinda zvinogoneka anojoinha mufaira, anoita shanduko, vamwe vazvitarise uye vanonakidzwa nekushanda otomatiki-kupedzisa: nharaunda, kuunganidza ruzivo uye zvese izvo. Akaita musangano wekushandisa chirongwa chevaanoshanda navo, akanyora chinyorwa muConfluence - ikozvino kambani ine chimwe chishandiso chiri nyore.

Kushanda pachinhu ichi kwakandipa kunzwisisa kuti hapana chikonzero chekutya kutarisa nemapurojekiti akazaruka - sekutonga, vane maumbirwo akajeka, uye kunyange ruzivo rwekutanga rwemutauro ruchakwana pakuedza. Uye nehumwe huwandu hwekushingirira, iwe unozokwanisa kubvisa maitiro anovengwa, uchizvichengetera iwe nguva yekuedza kutsva.

Source: www.habr.com

Voeg