Ganahan ka ba nga balik-balikon ang naandan nga mga operasyon? So dili ko. Apan sa matag higayon sa kliyente sa SQL kung nagtrabaho kauban ang pagtipig sa Rostelecom, kinahanglan nako nga irehistro ang tanan nga mga pagdugtong taliwala sa mga lamesa nga mano-mano. Ug kini bisan pa sa kamatuoran nga sa 90% sa mga kaso ang mga uma ug mga kondisyon alang sa pag-apil sa mga lamesa nagdungan gikan sa pangutana ngadto sa pangutana! Mopatim-aw nga ang bisan unsang kliyente sa SQL adunay mga function sa auto-completion, apan alang sa mga pagtipig dili kini kanunay nga molihok: panagsa ra nila gilakip ang talagsaon nga pagpugong ug langyaw nga yawe aron mapauswag ang pasundayag, ug kung wala kini ang programa dili mahibal-an kung giunsa ang mga entidad adunay kalabotan sa matag usa. uban pa ug kung unsa ang mahimo niini alang sa imong gitanyag.
Nakaagi sa pagdumili, kasuko, bargaining, depresyon ug nagkaduol nga pagdawat, nakahukom ko - nganong dili sulayan nga ipatuman ang autofill sa blackjack sa akong kaugalingon ug buhaton kini sa husto nga paagi? Gigamit nako ang kliyente sa dbeaver, gisulat sa java, kini adunay bukas nga gigikanan nga bersyon sa komunidad. Usa ka yano nga plano nahamtong:
- Pangitag mga klase sa source code nga maoy responsable sa autocompletion
- I-redirect sila aron magtrabaho uban ang eksternal nga metadata ug kuhaa ang kasayuran bahin sa mga pag-apil gikan didto
- ???
- kapuslanan
Dali nakong nahibal-an ang una nga punto - nakit-an nako ang usa ka hangyo sa tracker sa bug aron ma-adjust ang autofill ug sa mga may kalabutan
Aron magtrabaho kauban si json nakahukom ko nga gamiton ang librarya
Sa katapusan, nakahimo ako sa pag-ayo sa mga sayop sa pagtukod: Girehistro nako ang librarya dili sa pom.xml, apan sa manifest.mf manifest, sumala sa gikinahanglan sa OSGI, samtang gipiho kini isip import-package. Dili ang labing nindot nga solusyon, apan kini molihok. Unya mitungha ang sunod nga surpresa. Kung nag-develop ka sa Intellij Idea, dili ka mahimo nga moadto ug magsugod sa pag-debug sa imong proyekto base sa eclipse platform: ang usa ka walay kasinatian nga developer kinahanglan nga mag-antus dili moubos sa usa ka analista nga wala’y pagkompleto sa pangutana. Ang mga nag-develop sa beaver mismo mitabang, nga nagpakita sa wiki sa tanan nga mga sayaw nga adunay tamburin nga kinahanglan buhaton. Ang labing makalagot nga butang mao nga bisan human niining tanan nga mga squats, ang proyekto dili gusto nga ilunsad sa debug uban sa json library nga konektado pinaagi sa import-package (bisan pa sa kamatuoran nga kini malampuson gihapon nga gitigum ngadto sa nahuman nga produkto).
Nianang panahona, nakaamgo na ko sa kahasol sa paggamit sa json alang sa akong buluhaton - human sa tanan, ang metadata kinahanglan nga i-edit sa mano-mano, ug ang xml format mas haum alang niini. Ang ikaduha nga argumento pabor sa xml mao ang presensya sa tanan nga gikinahanglan nga mga klase sa JDK, nga nagpaposible sa paghunong sa pagpakig-away sa usa ka eksternal nga librarya. Uban sa dakong kalipay, akong gibalhin ang tanang metadata gikan sa json ngadto sa xml ug gisugdan ang pag-edit sa autocomplete logic.
Pananglitan sa 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>
Ingon usa ka sangputanan ako
Kung gihimo ang mga pagbag-o sa code, mitungha ang pangutana - kinsa ang mopuno sa file sa metadata? Adunay daghang mga entidad sa repository, mahal ang pagparehistro sa tanan nga mga koneksyon sa imong kaugalingon. Ingon usa ka sangputanan, nakahukom ako nga ihatag kini nga buluhaton sa akong kauban nga mga analista. Gi-post nako ang metadata file sa svn, gikan diin ang usa ka checkout gihimo sa lokal nga direktoryo nga adunay programa. Ang prinsipyo mao kini: adunay bag-ong entidad nga nagpakita sa repository? Ang usa ka analista mosulod sa posible nga pag-apil sa file, maghimo mga pagbag-o, ang uban magsusi sa ilang kaugalingon ug malingaw sa pagtrabaho nga auto-completion: komunidad, panagtigum sa kahibalo ug tanan nga. Naghimo usa ka workshop sa paggamit sa programa alang sa mga kauban, nagsulat usa ka artikulo sa Confluence - karon ang kompanya adunay usa nga labi ka dali nga himan.
Ang pagtrabaho sa kini nga bahin naghatag kanako sa pagsabut nga dili kinahanglan nga mahadlok nga mag-tinker sa mga bukas nga gigikanan nga mga proyekto - ingon usa ka lagda, sila adunay usa ka tin-aw nga arkitektura, ug bisan ang sukaranan nga kahibalo sa sinultian igo na alang sa mga eksperimento. Ug sa usa ka piho nga kantidad sa pagpadayon, mahimo nimong mapapas ang dili gusto nga naandan nga mga operasyon, nga makatipig oras sa imong kaugalingon alang sa mga bag-ong eksperimento.
Source: www.habr.com