Bi o ṣe le da ṣiṣe ohun kanna duro

Ṣe o nifẹ lati tun awọn iṣẹ ṣiṣe ṣe leralera? Nitorina Emi ko. Ṣugbọn ni gbogbo igba ni alabara SQL nigbati o n ṣiṣẹ pẹlu ibi ipamọ Rostelecom, Mo ni lati forukọsilẹ gbogbo awọn asopọ laarin awọn tabili pẹlu ọwọ. Ati pe eyi botilẹjẹpe o daju pe ni 90% awọn ọran awọn aaye ati awọn ipo fun didapọ awọn tabili ni ibamu lati ibeere si ibeere! Yoo dabi pe eyikeyi alabara SQL ni awọn iṣẹ ipari-laifọwọyi, ṣugbọn fun awọn ibi ipamọ ko ṣiṣẹ nigbagbogbo: wọn ṣọwọn pẹlu idiwọ alailẹgbẹ ati bọtini ajeji lati le mu ilọsiwaju ṣiṣẹ, ati laisi eyi eto naa kii yoo mọ bi awọn nkan ṣe ni ibatan si ọkọọkan. miiran ati ohun ti o le se fun o nse.

Bi o ṣe le da ṣiṣe ohun kanna duro

Lehin ti o ti lọ nipasẹ kiko, ibinu, idunadura, şuga ati n sunmọ gbigba, Mo ti pinnu - idi ti ko gbiyanju a se autofill pẹlu blackjack ara mi ki o si ṣe awọn ti o ọtun ọna? Mo lo alabara dbeaver, ti a kọ si java, o ni ẹya orisun orisun ṣiṣi. Ilana ti o rọrun ti dagba:

  1. Wa awọn kilasi ni koodu orisun ti o ni iduro fun adaṣe adaṣe
  2. Ṣe atunṣe wọn lati ṣiṣẹ pẹlu metadata ita ati fa alaye nipa awọn akojọpọ lati ibẹ
  3. ??????
  4. LORI

Mo ṣe akiyesi aaye akọkọ ni iyara - Mo rii ibeere kan ninu olutọpa kokoro lati ṣatunṣe autofill ati ni ibatan ṣe awari kilasi SQLCCompletionAnalyzer. Mo wo koodu naa ati pe o jẹ ohun ti Mo nilo. Gbogbo ohun ti o ku ni lati tun kọ silẹ ki ohun gbogbo ba ṣiṣẹ. Mo duro fun irọlẹ ọfẹ kan ati bẹrẹ lati ronu nipasẹ imuse naa. Mo pinnu lati kọ awọn ofin ọna asopọ tabili (metadata) ni json. Emi ko ni iriri ti o wulo ti n ṣiṣẹ pẹlu ọna kika yii ati pe iṣẹ-ṣiṣe lọwọlọwọ ni a rii bi aye lati ṣe atunṣe imukuro yii.

Lati ṣiṣẹ pẹlu json Mo pinnu lati lo ile-ikawe naa json-rọrun lati Google. Eyi ni ibi ti awọn iyanilẹnu bẹrẹ. Bi o ti wa ni jade, dbeaver, gẹgẹbi ohun elo otitọ, ni a kọ sori ẹrọ Eclipse nipa lilo ilana OSGi. Fun awọn olupilẹṣẹ ti o ni iriri, nkan yii jẹ ki o rọrun lati ṣakoso awọn igbẹkẹle, ṣugbọn fun mi o dabi idan dudu, fun eyiti Emi ko ti ṣetan: bi igbagbogbo, Mo gbe awọn kilasi ti Mo nilo lati ile-ikawe json-rọrun ni akọsori ti kilasi ti a ṣatunkọ, pato ninu pom, lẹhin eyi ni iṣẹ akanṣe kọ lati pejọ ni deede ati kọlu pẹlu awọn aṣiṣe.

Ni ipari, Mo ti ṣakoso lati ṣatunṣe awọn aṣiṣe kikọ: Mo forukọsilẹ ni ile-ikawe kii ṣe ni pom.xml, ṣugbọn ninu ifihan manifest.mf, bi OSGI ti nilo, lakoko ti o ṣalaye bi idii-iwọle. Ko julọ lẹwa ojutu, ṣugbọn o ṣiṣẹ. Lẹhinna iyalenu ti o tẹle han. Ti o ba n dagbasoke ni Idea Intellij, o ko le kan lọ ki o bẹrẹ ṣiṣatunṣe iṣẹ akanṣe rẹ ti o da lori pẹpẹ oṣupa: Olùgbéejáde ti ko ni iriri yẹ ki o jiya ko kere ju oluyanju laisi ipari ibeere. Awọn olupilẹṣẹ Beaver funrara wọn wa si igbala, nfihan ni wiki gbogbo awọn ijó pẹlu tambourin ti o nilo lati ṣe. Ohun ti o buruju julọ ni pe paapaa lẹhin gbogbo awọn squats wọnyi, iṣẹ naa ko fẹ lati ṣe ifilọlẹ ni yokokoro pẹlu ile-ikawe json ti a ti sopọ nipasẹ agbewọle-package (laibikita pe o tun ṣaṣeyọri ṣaṣeyọri sinu ọja ti o pari).

Ni akoko yẹn, Mo ti rii aibalẹ ti lilo json fun iṣẹ-ṣiṣe mi - lẹhinna, metadata yẹ ki o ṣatunkọ pẹlu ọwọ, ati pe ọna kika xml dara julọ fun eyi. Awọn ariyanjiyan keji ni ojurere ti xml ni wiwa gbogbo awọn kilasi pataki ni JDK, eyiti o jẹ ki o ṣee ṣe lati da ija duro pẹlu ile-ikawe ita. Pẹlu idunnu nla, Mo gbe gbogbo metadata lati json lọ si xml ati bẹrẹ ṣiṣatunṣe ọgbọn adaṣe adaṣe.

Metadata apẹẹrẹ

<?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>

Bi abajade I ṣe awọn ayipada sinu SQLUtils ati SQLCompletionAnalyzer kilasi. Ero naa ni eyi: ti eto naa ko ba le rii awọn imọran pipe adaṣe ti o dara ni lilo ọgbọn ipilẹ, lẹhinna o ṣayẹwo fun wiwa awọn idapọpọ ti o ṣeeṣe nipa lilo faili xml ita. Faili funrararẹ tọju awọn tabili meji ti o nfihan awọn aaye nipasẹ eyiti awọn tabili wọnyi nilo lati sopọ mọ. Awọn ihamọ lori awọn ọjọ Wiwulo imọ-ẹrọ ti awọn igbasilẹ eff_dttm ati exp_dttm ati asia piparẹ ti ọgbọn deleted_ind ti ṣeto nipasẹ aiyipada.

Nigbati awọn ayipada ṣe si koodu naa, ibeere naa dide - tani yoo kun faili pẹlu metadata? Ọpọlọpọ awọn nkan wa ni ibi ipamọ, o jẹ gbowolori lati forukọsilẹ gbogbo awọn asopọ funrararẹ. Bi abajade, Mo pinnu lati yan iṣẹ yii si awọn atunnkanka ẹlẹgbẹ mi. Mo ti firanṣẹ faili metadata ni svn, lati ibi ti a ti ṣe isanwo si ilana agbegbe pẹlu eto naa. Ilana naa ni eyi: Njẹ nkan tuntun ti han ni ibi ipamọ naa? Oluyanju kan ti nwọle ṣee ṣe darapọ mọ faili naa, ṣe awọn ayipada, awọn iyokù ṣayẹwo si ara wọn ati gbadun iṣẹ-ipari adaṣe ṣiṣẹ: agbegbe, ikojọpọ imọ ati gbogbo iyẹn. Ti ṣe idanileko kan lori lilo eto fun awọn ẹlẹgbẹ, kowe nkan kan ni Confluence - ni bayi ile-iṣẹ ni ohun elo irọrun diẹ sii.

Ṣiṣẹ lori ẹya ara ẹrọ yii fun mi ni oye pe ko si iwulo lati bẹru lati tinker pẹlu awọn iṣẹ orisun ṣiṣi - gẹgẹbi ofin, wọn ni faaji ti o han gbangba, ati paapaa imọ ipilẹ ti ede yoo to fun awọn idanwo. Ati pẹlu iye kan ti itẹramọṣẹ, iwọ yoo paapaa ni anfani lati yọkuro awọn iṣẹ ṣiṣe igbagbogbo ti o korira, fifipamọ akoko ararẹ fun awọn adanwo tuntun.

orisun: www.habr.com

Fi ọrọìwòye kun