Indlela yokuyeka ukwenza into enye

Ngaba uyathanda ukuphinda imisebenzi yesiqhelo rhoqo? Ngoko andiyenzi. Kodwa rhoqo kwi-SQL client xa usebenza kunye nokugcinwa kwe-Rostelecom, kwafuneka ndibhalise zonke izidibaniselwano phakathi kweetafile ngesandla. Kwaye oku ngaphandle kwenyani yokuba kwi-90% yamatyala amabala kunye neemeko zokujoyina itafile zadibana ukusuka kwisicelo sokucela! Kubonakala ngathi nawuphi na umxhasi we-SQL unemisebenzi yokugqibezela ngokuzenzekelayo, kodwa kwi-stores ayisoloko isebenza: kunqabile ukuba ibandakanye isithintelo esikhethekileyo kunye nesitshixo sangaphandle ukuze kuphuculwe ukusebenza, kwaye ngaphandle kwale nkqubo ayiyi kuyazi indlela amaqumrhu anxulumene ngayo nganye. enye kunye nento enokuyenza kuwe ukunika.

Indlela yokuyeka ukwenza into enye

Emva kokukhanyela, umsindo, ukuxoxisana, ukudakumba kunye nokusondela kokwamkelwa, ndaye ndagqiba - kutheni ungazami ukuphumeza i-autofill nge-blackjack ngokwam kwaye ndiyenze ngendlela efanelekileyo? Ndisebenzisa umxhasi we-dbeaver, ebhalwe kwi-java, inomthombo ovulekileyo wenguqulelo yoluntu. Isicwangciso esilula sivuthiwe:

  1. Fumana iiklasi kwikhowudi yemvelaphi enoxanduva lokugqibezela ngokuzenzekelayo
  2. Baqondise kwakhona ukuba basebenze ngemethadatha yangaphandle kwaye batsale ulwazi malunga nokudibanisa ukusuka apho
  3. ??????
  4. INGXELO

Ndicinge inqaku lokuqala ngokukhawuleza-ndifumene isicelo kwi-bug tracker ukunyenyisa ukuzaliswa okuzenzekelayo kunye nokuhambelanayo. zibophelele ufumene iklasi yeSQLCompletionAnalyzer. Ndajonga ikhowudi kwaye yinto endiyifunayo. Okushiyekileyo kukuyibhala kwakhona ukuze yonke into isebenze. Ndalinda ngokuhlwa kwamahhala kwaye ndaqala ukucinga ngokuphunyezwa. Ndagqiba ekubeni ndibhale imithetho yekhonkco yetafile (metadata) kwi-json. Bendingenawo amava okusebenza ngale fomati kwaye umsebenzi okhoyo ubonwe njengethuba lokulungisa okushiyiweyo.

Ukusebenza no-json ndaye ndagqiba ekubeni ndisebenzise ithala leencwadi json-ilula ukusuka kuGoogle. Kulapho zaqala khona izimanga. Njengoko kwavela, i-dbeaver, njengesicelo esiyinyani, yabhalwa kwi-platform ye-Eclipse isebenzisa isakhelo se-OSGi. Kubaphuhlisi abanamava, le nto yenza ukuba kube lula ukulawula ukuxhomekeka, kodwa kum yayifana nomlingo omnyama, endingekawulungelanga ngokucacileyo: njengesiqhelo, ndingenisa iiklasi endizifunayo kwilayibrari ye-json-elula kwiheda ye iklasi ehleliweyo, yicacise kwipom xml, emva kokuba iprojekthi yala ngokwahlukileyo ukuhlanganisana ngesiqhelo kwaye ingqubana neempazamo.

Ekugqibeleni, ndikwazile ukulungisa iimpazamo zokwakha: Ndibhalisa ilayibrari hayi kwi-pom.xml, kodwa kwi-manifest.mf manifest, njengoko ifunwa yi-OSGI, ngelixa ndiyichaza njengepakethe yokungenisa. Ayisiso isisombululo esihle kakhulu, kodwa siyasebenza. Emva koko kwavela into eyothusayo. Ukuba uphuhlisa kwi-Intellij Idea, awukwazi ukuhamba kwaye uqale ukulungisa ingxaki yeprojekthi yakho ngokusekelwe kwiqonga le-eclipse: umphuhlisi ongenamava kufuneka ahlupheke ngaphantsi komhlalutyi ngaphandle kokugqitywa kombuzo. Abaphuhlisi be-beaver ngokwabo beza kuhlangula, bebonisa kwi-wiki yonke imidaniso enentambula ekufuneka yenziwe. Eyona nto icaphukisayo kukuba nasemva kwazo zonke ezi squats, iprojekthi ayizange ifune ukusungulwa kwi-debug kunye nethala leencwadi le-json eliqhagamshelwe ngepakethe yokungenisa (ngaphandle kwenyani yokuba yayisadityaniswe ngempumelelo kwimveliso egqityiweyo).

Ngelo xesha, ndandisele ndiyibonile ingxaki yokusebenzisa i-json kumsebenzi wam - emva kwayo yonke loo nto, imethadatha bekufanele ihlelwe ngesandla, kwaye ifomathi ye-xml ifaneleka ngcono kule nto. Ingxoxo yesibini exhasa i-xml yayibubukho bazo zonke iiklasi eziyimfuneko kwi-JDK, eyenze ukuba kube nokuyeka ukulwa nethala leencwadi langaphandle. Ngovuyo olukhulu, ndigqithise yonke imetadata ukusuka kwi-json ukuya kwi-xml kwaye ndaqalisa ukuhlela ingqiqo yokugqiba ngokuzenzekelayo.

Umzekelo wemethadatha

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

Ngenxa yoko I wenze utshintsho kwiiklasi zeSQLUtils kunye neSQLCompletionAnalyzer. Umbono ngulo: ukuba udweliso lwenkqubo alukwazanga ukufumana iingcebiso ezifanelekileyo zokugqibezela ngokuzenzekelayo usebenzisa ingqiqo esisiseko, ngoko ijonga ubukho bamakhonkco anokwenzeka usebenzisa ifayile yangaphandle ye-xml. Ifayile ngokwayo igcina iiperi zetafile ezibonisa iindawo ezifuna ukudityaniswa ngazo. Izithintelo kwimihla yobungqina bobugcisa beerekhodi eff_dttm kunye ne-exp_dttm kunye nengqiqo yokucima iflegi esusiweyo zisetwa ngokungagqibekanga.

Xa utshintsho lwenziwe kwikhowudi, kwavela umbuzo - ngubani oza kugcwalisa ifayile ngemethadatha? Maninzi amaqumrhu kwindawo yokugcina izinto, kuyabiza ukubhalisa lonke uqhagamshelo ngokwakho. Ngenxa yoko, ndagqiba ekubeni lo msebenzi ndiwabele kwabanye abahlalutyi. Ndithumele ifayile yemethadatha kwi-svn, ukusuka apho i-checkout yenziwa khona kulawulo lwendawo kunye neprogram. Umgaqo ngulo: ngaba kukho iqumrhu elitsha elivele kwindawo yokugcina? Omnye umhlalutyi ufaka ukudibanisa okunokwenzeka kwifayile, enze utshintsho, abanye bajonge kubo kwaye banandiphe ukugqiba okuzenzekelayo okusebenzayo: uluntu, ukuqokelela ulwazi kunye nayo yonke loo nto. Kwenziwa iworkshop ekusebenziseni inkqubo yoogxa, wabhala inqaku kwi-Confluence - ngoku inkampani inesixhobo esinye esilungele ngakumbi.

Ukusebenza kolu phawu kwandinika ukuqonda ukuba akukho mfuneko yokoyika ukukhenkceza ngeeprojekthi zomthombo ovulekileyo - njengomthetho, banolwakhiwo olucacileyo, kwaye nolwazi olusisiseko lolwimi luya kwanela imifuniselo. Kwaye ngomlinganiselo othile wokuzingisa, uya kukwazi ukulahla imisebenzi yesiqhelo ethiyekileyo, uzigcinele ixesha lovavanyo olutsha.

umthombo: www.habr.com

Yongeza izimvo