Conas a stopadh ag déanamh an rud céanna

An maith leat gnáthoibríochtaí a dhéanamh arís agus arís eile? Mar sin ní féidir liom. Ach gach uair sa chliant SQL agus mé ag obair le stóráil Rostelecom, bhí orm na ceangail go léir idir na táblaí a chlárú de láimh. Agus seo in ainneoin gur i 90% de na cásanna a tharla na réimsí agus na coinníollacha chun táblaí a cheanglaíonn ag an am céanna ó iarratas go hiarraidh! Is cosúil go bhfuil feidhmeanna uathchríochnaithe ag aon chliant SQL, ach le haghaidh stórála ní oibríonn sé i gcónaí: is annamh a chuimsíonn siad srian uathúil agus eochair eachtrach d'fhonn feidhmíocht a fheabhsú, agus gan é seo ní bheidh a fhios ag an gclár conas a bhaineann eintitis le gach ceann acu. eile agus cad is féidir leis a dhéanamh chun tú a thairiscint.

Conas a stopadh ag déanamh an rud céanna

Tar éis dom dul trí shéanadh, fearg, margáil, dúlagar agus ag druidim le glacadh, chinn mé - cén fáth nach iarracht a chur i bhfeidhm autofill le blackjack mé féin agus é a dhéanamh ar an mbealach ceart? Úsáidim an cliant dbeaver, scríofa i java, tá leagan pobail foinse oscailte aige. Tá plean simplí tagtha in aibíocht:

  1. Faigh ranganna sa chód foinse atá freagrach as uathchríochnú
  2. Déan iad a atreorú chuig oibriú le meiteashonraí seachtracha agus tarraing eolas faoi shínte as sin
  3. ??????
  4. BRABÚS

D'fhíoraigh mé an chéad phointe go gasta - fuair mé iarratas sa rianaitheoir fabht chun an t-uathlánú a choigeartú agus an líon ábhartha tiomantas fuair sé amach an rang SQLCompletionAnalyzer. Bhreathnaigh mé ar an gcód agus sin é a theastaíonn uaim. Níl fágtha ach é a athscríobh ionas go n-oibreoidh gach rud. D'fhan mé le haghaidh tráthnóna saor in aisce agus thosaigh mé ag smaoineamh ar an gcur i bhfeidhm. Chinn mé rialacha naisc tábla (meiteashonraí) a scríobh i json. Ní raibh aon taithí phraiticiúil agam ag obair leis an bhformáid seo agus chonacthas an tasc reatha mar dheis chun an easnamh seo a cheartú.

Chun oibriú le json bheartaigh mé an leabharlann a úsáid json-simplí ó Google. Seo an áit a thosaigh na hiontas. Mar a tharla sé, scríobhadh dbeaver, mar fheidhmchlár fíor, ar ardán Eclipse ag baint úsáide as an gcreat OSGi. D'fhorbróirí a bhfuil taithí acu, déanann an rud seo áisiúil spleáchais a bhainistiú, ach domsa bhí sé níos mó cosúil le draíocht dorcha, agus is léir nach raibh mé réidh le haghaidh: mar is gnách, iompórtáilim na ranganna a theastaíonn uaim ón leabharlann json-simplí sa cheanntásc de an rang atheagraithe, sonraigh sa pom.xml é, agus ina dhiaidh sin diúltaíonn an tionscadal teacht le chéile de ghnáth agus tuairteanna le hearráidí.

Sa deireadh, d'éirigh liom na hearráidí tógála a shocrú: chláraigh mé an leabharlann ní i pom.xml, ach sa léiriú manifest.mf, mar a éilíonn OSGI, agus é á shonrú mar phacáiste iompórtála. Ní hé an réiteach is áille, ach oibríonn sé. Ansin tháinig an chéad iontas eile le feiceáil. Má tá tú ag forbairt in Intellij Idea, ní féidir leat dul díreach agus tús a chur le do thionscadal a dhífhabhtú bunaithe ar an ardán eclipse: níor cheart go bhfulaingeodh forbróir gan taithí níos lú ná anailísí gan aon cheist a chur i gcrích. Tháinig na forbróirí bébhar iad féin chun tarrthála, ag léiriú sa vicí na damhsaí go léir le tambóirín nach mór a dhéanamh. Is é an rud is mó a chuir imní ort ná, fiú tar éis na squats seo go léir, nach raibh an tionscadal ag iarraidh é a sheoladh i ndífhabhtú leis an leabharlann json ceangailte trí phacáiste iompórtála (in ainneoin gur cuireadh le chéile go rathúil é fós sa táirge críochnaithe).

Faoin am sin, thuig mé cheana féin an mhíchaoithiúlacht a bhain le json a úsáid le haghaidh mo thasc - tar éis an tsaoil, bhí na meiteashonraí ceaptha a bheith curtha in eagar de láimh, agus tá an fhormáid xml níos oiriúnaí dó seo. Ba é an dara argóint i bhfabhar xml ná láithreacht na n-aicmí riachtanacha go léir sa JDK, rud a d'fhág gur féidir stop a chur le troid le leabharlann sheachtrach. Le pléisiúr mór, d'aistrigh mé na meiteashonraí go léir ó json go xml agus thosaigh mé ag eagarthóireacht ar an loighic uathchríochnaithe.

Sampla meiteashonraí

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

Mar thoradh air sin tá mé rinne athruithe isteach sna ranganna SQLUtils agus SQLCompletionAnalyzer. Is é an smaoineamh seo: mura raibh an clár in ann teacht ar mholtaí uathchríochnaithe oiriúnacha ag baint úsáide as an loighic bhunúsach, ansin seiceálann sé láithreacht nascanna féideartha ag baint úsáide as comhad xml seachtrach. Stórálann an comhad féin péirí táblaí a léiríonn na réimsí trína gcaithfear na táblaí seo a nascadh. Tá srianta ar dhátaí bailíochta teicniúla taifead eff_dttm agus exp_dttm agus an bhratach scriosta loighciúil deleted_ind socraithe de réir réamhshocraithe.

Nuair a rinneadh athruithe ar an gcód, tháinig an cheist - cé a líonfaidh an comhad le meiteashonraí? Tá go leor eintiteas sa stór, tá sé costasach na naisc go léir a chlárú tú féin. Mar thoradh air sin, chinn mé an tasc seo a shannadh do mo chomh-anailísithe. phostáil mé an comhad meiteashonraí i svn, óna ndéantar seiceáil amach chuig an eolaire áitiúil leis an gclár. Is é seo an prionsabal: an bhfuil aonán nua le feiceáil sa stór? Téann anailísí amháin isteach sa chomhad is féidir, déanann sé athruithe, déanann an chuid eile seiceáil amach dóibh féin agus taitneamh a bhaint as an uathchríochnú oibre: pobal, carnadh eolais agus go léir. Reáchtáil ceardlann ar úsáid an chláir do chomhghleacaithe, scríobh alt i Confluence - anois tá an chuideachta uirlis amháin níos áisiúla.

Ag obair ar an ngné seo thug mé an tuiscint nach gá a bheith eaglach a tinker le tionscadail foinse oscailte - mar riail, tá siad ailtireacht soiléir, agus fiú eolas bunúsach ar an teanga go leor le haghaidh turgnaimh. Agus le méid áirithe marthanachta, beidh tú in ann fiú fáil réidh le hoibríochtaí gnáthaimh fuath, rud a shábháil am duit féin le haghaidh turgnaimh nua.

Foinse: will.com

Add a comment