Ydych chi'n hoffi ailadrodd llawdriniaethau arferol dro ar ôl tro? Felly dydw i ddim. Ond bob tro yn y cleient SQL wrth weithio gyda storfa Rostelecom, roedd yn rhaid i mi gofrestru'r holl gysylltiadau rhwng y byrddau â llaw. Ac mae hyn er gwaethaf y ffaith bod y meysydd a'r amodau ar gyfer ymuno â byrddau yn cyd-daro o gais i gais mewn 90% o achosion! Mae'n ymddangos bod gan unrhyw gleient SQL swyddogaethau cwblhau auto, ond ar gyfer storfeydd nid yw bob amser yn gweithio: anaml y maent yn cynnwys cyfyngiad unigryw ac allwedd dramor er mwyn gwella perfformiad, a heb hyn ni fydd y rhaglen yn gwybod sut mae endidau'n gysylltiedig â phob un. arall a beth y gall ei wneud i chi ei gynnig.
Ar ôl mynd trwy wadu, dicter, bargeinio, iselder a nesáu at dderbyn, penderfynais - beth am geisio gweithredu autofill gyda blackjack fy hun a'i wneud yn y ffordd iawn? Rwy'n defnyddio'r cleient dbeaver, wedi'i ysgrifennu yn java, mae ganddo fersiwn gymunedol ffynhonnell agored. Mae cynllun syml wedi aeddfedu:
- Dewch o hyd i ddosbarthiadau yn y cod ffynhonnell sy'n gyfrifol am awtolenwi
- Ailgyfeirio nhw i weithio gyda metadata allanol a thynnu gwybodaeth am uniadau oddi yno
- ??????
- ELW
Fe wnes i gyfrifo'r pwynt cyntaf yn eithaf cyflym - darganfyddais gais yn y traciwr nam i addasu'r autofill ac yn y cysylltiedig
Er mwyn gweithio gyda json penderfynais ddefnyddio'r llyfrgell
Yn y diwedd, llwyddais i drwsio'r gwallau adeiladu: cofrestrais y llyfrgell nid yn pom.xml, ond ym maniffest manifest.mf, fel sy'n ofynnol gan OSGI, wrth ei nodi fel pecyn mewnforio. Nid yr ateb mwyaf prydferth, ond mae'n gweithio. Yna ymddangosodd y syndod nesaf. Os ydych chi'n datblygu yn Intellij Idea, ni allwch chi fynd a dechrau dadfygio'ch prosiect yn seiliedig ar y platfform eclipse: ni ddylai datblygwr dibrofiad ddioddef dim llai na dadansoddwr heb gwblhau ymholiad. Daeth datblygwyr yr afanc eu hunain i'r adwy, gan nodi yn y wici yr holl ddawnsfeydd gyda thambwrîn y mae angen eu gwneud. Y peth mwyaf annifyr yw hyd yn oed ar ôl yr holl sgwatiau hyn, nid oedd y prosiect am gael ei lansio mewn dadfygio gyda'r llyfrgell json wedi'i chysylltu trwy becyn mewnforio (er gwaethaf y ffaith ei fod yn dal i gael ei ymgynnull yn llwyddiannus yn y cynnyrch gorffenedig).
Erbyn hynny, roeddwn eisoes wedi sylweddoli'r anghyfleustra o ddefnyddio json ar gyfer fy nhasg - wedi'r cyfan, roedd y metadata i fod i gael ei olygu â llaw, ac mae'r fformat xml yn fwy addas ar gyfer hyn. Yr ail ddadl o blaid xml oedd presenoldeb yr holl ddosbarthiadau angenrheidiol yn y JDK, yr hyn a'i gwnaeth yn bosibl i atal ymladd â llyfrgell allanol. Gyda phleser mawr, trosglwyddais yr holl fetadata o json i xml a dechrau golygu'r rhesymeg awtolenwi.
Enghraifft 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>
O ganlyniad dwi
Pan wnaed newidiadau i'r cod, cododd y cwestiwn - pwy fydd yn llenwi'r ffeil â metadata? Mae yna lawer o endidau yn y gadwrfa, mae'n ddrud cofrestru'r holl gysylltiadau eich hun. O ganlyniad, penderfynais aseinio'r dasg hon i'm cyd-ddadansoddwyr. Postiais y ffeil metadata yn svn, o ble gwneir til i'r cyfeiriadur lleol gyda'r rhaglen. Yr egwyddor yw hyn: a oes endid newydd wedi ymddangos yn y gadwrfa? Mae un dadansoddwr yn mynd i mewn i ymuno posibl i mewn i'r ffeil, yn ymrwymo newidiadau, mae'r gweddill yn gwirio allan iddynt eu hunain ac yn mwynhau'r gwaith auto-gwblhau: cymuned, casgliad o wybodaeth a hynny i gyd. Cynnal gweithdy ar ddefnyddio'r rhaglen ar gyfer cydweithwyr, ysgrifennodd erthygl yn Confluence - erbyn hyn mae gan y cwmni un offeryn mwy cyfleus.
Rhoddodd gweithio ar y nodwedd hon y ddealltwriaeth i mi nad oes angen bod ofn tincian gyda phrosiectau ffynhonnell agored - fel rheol, mae ganddyn nhw bensaernïaeth glir, a bydd hyd yn oed gwybodaeth sylfaenol o'r iaith yn ddigon ar gyfer arbrofion. A chyda rhywfaint o ddyfalbarhad, byddwch hyd yn oed yn gallu cael gwared ar weithrediadau arferol casineb, gan arbed amser i chi'ch hun ar gyfer arbrofion newydd.
Ffynhonnell: hab.com