Momwe mungalekere kuchita zomwezo

Kodi mumakonda kubwereza mobwerezabwereza? Kotero ine sinditero. Koma nthawi zonse mu kasitomala wa SQL ndikugwira ntchito ndi Rostelecom yosungirako, ndinayenera kulembetsa zolumikizana zonse pakati pa matebulo pamanja. Ndipo izi ngakhale kuti mu 90% ya milandu minda ndi mikhalidwe kujowina matebulo zinagwirizana ndi pempho pempho! Zikuwoneka kuti kasitomala aliyense wa SQL ali ndi ntchito zomaliza zokha, koma pazosungira sizigwira ntchito nthawi zonse: nthawi zambiri amaphatikiza zopinga zapadera ndi makiyi akunja kuti apititse patsogolo magwiridwe antchito, ndipo popanda izi pulogalamuyo sadziwa momwe mabungwe amagwirizanirana ndi chilichonse. zina ndi zomwe zingakuchitireni inu kupereka.

Momwe mungalekere kuchita zomwezo

Nditatha kukana, kukwiyira, kukambirana, kukhumudwa komanso kuvomerezedwa, ndidaganiza - bwanji osayesa kukhazikitsa ndekha ndi blackjack ndikuchita moyenera? Ndimagwiritsa ntchito kasitomala wa dbeaver, wolembedwa mu java, ili ndi mtundu wotsegulira anthu. Dongosolo losavuta lakula:

  1. Pezani makalasi mu code code yomwe ili ndi udindo womaliza
  2. Atsogolereni kuti akagwire ntchito ndi metadata yakunja ndikukoka zambiri zamalumikizidwe kuchokera pamenepo
  3. ??????
  4. MUZIKHALA

Ndidazindikira mfundo yoyamba mwachangu kwambiri - ndidapeza pempho mu bug tracker kuti ndisinthe kudzaza ndi zofananira. perekani adapeza kalasi ya SQLCompletionAnalyzer. Ndinayang'ana pa code ndipo ndi zomwe ndikusowa. Chotsalira ndikulembanso kuti zonse zigwire ntchito. Ndinadikirira madzulo aulere ndikuyamba kuganiza mwakuchita. Ndinaganiza zolemba malamulo olumikizira tebulo (metadata) mu json. Ndinalibe chidziwitso chogwira ntchito ndi mawonekedwe awa ndipo ntchito yomwe ilipo idawonedwa ngati mwayi wokonza zosiya izi.

Kuti ndigwire ntchito ndi json ndinaganiza zogwiritsa ntchito laibulale json-zosavuta kuchokera ku Google. Apa ndipomwe zodabwitsa zinayambira. Monga momwe zinakhalira, dbeaver, monga ntchito yeniyeni, inalembedwa pa nsanja ya Eclipse pogwiritsa ntchito dongosolo la OSGi. Kwa opanga odziwa zambiri, izi zimapangitsa kuti zikhale zosavuta kuyang'anira zodalira, koma kwa ine zinali ngati matsenga amdima, omwe sindinali okonzeka: monga mwachizolowezi, ndimalowetsa makalasi omwe ndimafunikira kuchokera ku laibulale ya json-simple pamutu wa. kalasi yosinthidwa, tchulani pom.xml, pambuyo pake pulojekitiyo imakana kusonkhana bwino ndipo ikukumana ndi zolakwika.

Pamapeto pake, ndinakwanitsa kukonza zolakwika zomanga: Ndinalembetsa laibulale osati pom.xml, koma mu manifest.mf manifest, monga momwe OSGI ikufunira, ndikuyitchula ngati phukusi lolowetsamo. Osati yankho lokongola kwambiri, koma limagwira ntchito. Kenako chodabwitsa china chinaonekera. Ngati mukupanga Intellij Idea, simungangopita ndikuyamba kukonza pulojekiti yanu kutengera kadamsana: wopanga ukadaulo sayenera kuvutikira ngati katswiri wofufuza popanda kumaliza kufunsa. Opanga ma beaver adabwera kudzapulumutsa, kuwonetsa mu wiki mavinidwe onse okhala ndi maseche omwe ayenera kuchitidwa. Chokwiyitsa kwambiri ndichakuti ngakhale zitatha izi, pulojekitiyi sinafune kukhazikitsidwa pakuwongolera ndi laibulale ya json yolumikizidwa kudzera pakulowetsa-package (ngakhale idasonkhanitsidwa bwino pazomalizidwa).

Pofika nthawi imeneyo, ndinali nditazindikira kale zovuta zogwiritsa ntchito json pa ntchito yanga - pambuyo pake, metadata imayenera kusinthidwa pamanja, ndipo mawonekedwe a xml ndi oyenera izi. Mtsutso wachiwiri wokomera xml unali kukhalapo kwa makalasi onse ofunikira mu JDK, zomwe zidapangitsa kuti aleke kumenyana ndi laibulale yakunja. Ndichisangalalo chachikulu, ndinasamutsa metadata yonse kuchokera ku json kupita ku xml ndikuyamba kusintha malingaliro a autocomplete.

Chitsanzo cha metadata

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

Zotsatira zake ndi adasintha m'makalasi a SQLUtils ndi SQLCompletionAnalyzer. Lingaliro ndi ili: ngati pulogalamuyo sinathe kupeza malingaliro oyenera athunthu pogwiritsa ntchito mfundo zoyambira, ndiye kuti imayang'ana kupezeka kwa majowina zotheka pogwiritsa ntchito fayilo yakunja ya xml. Fayiloyo imasunga ma tebulo awiri omwe akuwonetsa magawo omwe matebulowa akuyenera kulumikizidwa. Zoletsa pamasiku ovomerezeka a ma rekodi eff_dttm ndi exp_dttm ndi mbendera yolondola yochotsa deleted_ind zimakhazikitsidwa mwachisawawa.

Zosintha zitapangidwa ku code, funso lidabuka - ndani adzadzaza fayilo ndi metadata? Pali mabungwe ambiri m'nkhokwe, ndizokwera mtengo kulembetsa maulumikizidwe onse nokha. Chifukwa cha zimenezi, ndinaganiza zogawira ntchito imeneyi kwa akatswiri anzanga. Ndinayika fayilo ya metadata mu svn, kuchokera komwe kumatuluka kupita ku chikwatu chapafupi ndi pulogalamuyi. Mfundo yake ndi iyi: kodi chatsopano chawonekera m'malo osungiramo zinthu? Katswiri m'modzi amalowetsa zomwe zingatheke mufayiloyo, amasintha, ena onse amadziyang'anira okha ndikusangalala ndi ntchito yomaliza: gulu, kudzikundikira chidziwitso ndi zonse. Adachita msonkhano wogwiritsa ntchito pulogalamuyi kwa anzawo, adalemba nkhani mu Confluence - tsopano kampaniyo ili ndi chida chimodzi chothandiza.

Kugwira ntchito pa mbali imeneyi kunandipatsa kumvetsetsa kuti palibe chifukwa choopa tinker ndi ntchito lotseguka gwero - monga ulamuliro, ali ndi zomangamanga bwino, ndipo ngakhale mfundo zofunika chinenero adzakhala zokwanira zoyeserera. Ndipo ndi kulimbikira pang'ono, mudzatha kusiya machitidwe omwe amadana nawo, ndikudzisungira nthawi yoyesera zatsopano.

Source: www.habr.com

Kuwonjezera ndemanga