Yadda za a daina yin abu ɗaya

Kuna son maimaita ayyukan yau da kullun akai-akai? Don haka ban yi ba. Amma duk lokacin da abokin ciniki na SQL lokacin aiki tare da ajiyar Rostelecom, dole ne in yi rajistar duk haɗin tsakanin tebur da hannu. Kuma wannan duk da cewa a cikin 90% na lokuta filayen da yanayin shiga tebur sun zo daidai daga tambaya zuwa tambaya! Zai yi kama da cewa duk wani abokin ciniki na SQL yana da ayyukan kammalawa ta atomatik, amma don ɗakunan ajiya ba koyaushe yana aiki ba: da wuya sun haɗa da ƙuntatawa na musamman da maɓallin ƙasashen waje don haɓaka aikin, kuma ba tare da wannan shirin ba zai san yadda ƙungiyoyi ke da alaƙa da kowane ɗayan. sauran kuma abin da zai iya yi muku tayin.

Yadda za a daina yin abu ɗaya

Bayan da na shiga ƙin yarda, fushi, ciniki, baƙin ciki da kuma gabatowa karɓa, na yanke shawarar - me zai hana in aiwatar da autofill tare da blackjack da kaina kuma in yi ta hanyar da ta dace? Ina amfani da abokin ciniki dbeaver, wanda aka rubuta da java, yana da buɗaɗɗen sigar al'umma. Tsari mai sauƙi ya girma:

  1. Nemo azuzuwan a cikin lambar tushe waɗanda ke da alhakin kammalawa ta atomatik
  2. Mayar da su zuwa aiki tare da metadata na waje kuma cire bayanai game da haɗin kai daga can
  3. ??????
  4. riba

Na gano batu na farko da sauri - Na sami buƙatu a cikin bug tracker don daidaita autofill kuma a cikin alaƙa. aikata ya gano ajin SQLCCompletionAnalyzer. Na kalli lambar kuma shine abin da nake buƙata. Abin da ya rage shi ne sake rubuta shi don komai ya yi aiki. Na jira maraice na kyauta kuma na fara tunani ta hanyar aiwatarwa. Na yanke shawarar rubuta dokokin hanyar haɗin tebur (metadata) a json. Ba ni da kwarewa mai amfani da aiki tare da wannan tsari kuma ana ganin aikin na yanzu a matsayin damar da za a gyara wannan kuskuren.

Don yin aiki da json na yanke shawarar yin amfani da ɗakin karatu json-mai sauki daga Google. Anan ne aka fara abin mamaki. Kamar yadda ya fito, dbeaver, a matsayin aikace-aikacen gaskiya, an rubuta shi akan dandalin Eclipse ta amfani da tsarin OSGi. Ga ƙwararrun masu haɓakawa, wannan abu ya sa ya dace don sarrafa abubuwan dogaro, amma a gare ni ya kasance kamar sihiri mai duhu, wanda a fili ban shirya ba: kamar yadda aka saba, Ina shigo da azuzuwan da nake buƙata daga json-sauki ɗakin karatu a cikin taken na. ajin da aka gyara, saka shi a cikin pom.xml, bayan haka aikin ya ƙi haɗuwa akai-akai kuma ya yi karo da kurakurai.

A ƙarshe, na yi nasarar gyara kurakuran ginin: Na yi rajistar ɗakin karatu ba a cikin pom.xml ba, amma a cikin bayyanuwar bayyanuwar.mf, kamar yadda OSGI ta buƙata, yayin da na ƙididdige shi azaman fakitin shigo da kaya. Ba mafi kyawun bayani ba, amma yana aiki. Sai mamaki na gaba ya bayyana. Idan kuna haɓakawa a cikin Intellij Idea, ba za ku iya kawai je ku fara gyara aikin ku ba bisa tsarin kusufin: mai haɓaka ƙwararru bai kamata ya sha wahala ƙasa da manazarci ba tare da kammala tambaya ba. Masu haɓakar beaver da kansu sun zo don ceto, suna nuna a cikin wiki duk raye-raye tare da tambourine wanda ya kamata a yi. Abu mafi ban haushi shi ne cewa ko da bayan duk waɗannan squats, aikin ba ya so a ƙaddamar da shi a cikin kuskure tare da ɗakin karatu na json da aka haɗa ta hanyar shigo da-fakitin (duk da cewa har yanzu an samu nasarar haɗuwa a cikin samfurin da aka gama).

A wannan lokacin, na riga na gane rashin jin daɗin amfani da json don aikina - bayan haka, ya kamata a gyara metadata da hannu, kuma tsarin xml ya fi dacewa da wannan. Hujja ta biyu da ke goyon bayan xml ita ce kasancewar duk azuzuwan da ake bukata a cikin JDK, wanda ya ba da damar dakatar da fada da ɗakin karatu na waje. Da tsananin jin daɗi, na canjawa wuri duk metadata daga json zuwa xml kuma na fara gyara ma'auni na autocomplete.

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

A sakamakon haka I ya yi canje-canje cikin azuzuwan SQLUtils da SQLCompletionAnalyzer. Manufar ita ce: idan shirin ya kasa samun ingantattun shawarwari masu dacewa ta atomatik ta amfani da dabaru na asali, to yana bincika kasancewar yuwuwar haɗin kai ta amfani da fayil xml na waje. Fayil ɗin kanta tana adana nau'i-nau'i na tebur waɗanda ke nuna filayen da ake buƙatar haɗa waɗannan tebur. Ƙuntatawa akan kwanakin ingancin fasaha na rikodin eff_dttm da exp_dttm da tutar share ma'anar share_ind an saita su ta tsohuwa.

Lokacin da aka yi canje-canje ga lambar, tambayar ta taso - wa zai cika fayil ɗin tare da metadata? Akwai abubuwa da yawa a cikin ma'ajiyar, yana da tsada don yin rajistar duk haɗin kai da kanka. A sakamakon haka, na yanke shawarar ba da wannan aikin ga ’yan’uwana manazarta. Na buga fayil ɗin metadata a cikin svn, daga inda ake yin rajistar zuwa kundin adireshin gida tare da shirin. Ka'idar ita ce: shin wani sabon mahaluki ya bayyana a cikin ma'ajiyar? Wani manazarci ya shiga yuwuwar shiga cikin fayil ɗin, yin canje-canje, sauran su bincika kansu kuma suna jin daɗin aikin cikawa ta atomatik: al'umma, tarin ilimi da duk abin. An gudanar da taron bita kan amfani da shirin ga abokan aiki, ya rubuta labarin a cikin Confluence - yanzu kamfanin yana da kayan aiki guda ɗaya mafi dacewa.

Yin aiki a kan wannan fasalin ya ba ni fahimtar cewa babu buƙatar jin tsoro don yin tinker tare da ayyukan budewa - a matsayin mai mulkin, suna da tsarin gine-gine mai tsabta, har ma da ilimin harshe na harshe zai isa ga gwaje-gwaje. Kuma tare da wani adadin dagewa, har ma za ku iya kawar da ayyukan yau da kullum da ƙiyayya, ku ajiye lokaci don sababbin gwaje-gwaje.

source: www.habr.com

Add a comment