Та ердийн үйлдлүүдийг дахин дахин хийх дуртай юу? Тэгэхээр би тэгэхгүй. Гэхдээ SQL клиент дээр Rostelecom-ийн хадгалалттай ажиллах бүрт би хүснэгтүүдийн хоорондох бүх холболтыг гараар бүртгэх шаардлагатай болдог. Хэдийгээр 90% -д хүснэгтүүдийг нэгтгэх талбарууд болон нөхцөлүүд нь асуулгаас асуулга хооронд давхцаж байсан ч гэсэн! Ямар ч SQL клиент автоматаар дуусгах функцтэй юм шиг санагдаж байна, гэхдээ хадгалалтын хувьд энэ нь үргэлж ажилладаггүй: гүйцэтгэлийг сайжруулахын тулд өвөрмөц хязгаарлалт, гадаад түлхүүрийг оруулах нь ховор бөгөөд үүнгүйгээр програм нь аж ахуйн нэгжүүд тус бүртэй хэрхэн холбоотой болохыг мэдэхгүй байх болно. бусад болон энэ нь танд юу санал болгож чадах вэ.
Татгалзах, уурлах, наймаалцах, сэтгэлийн хямралд орж, хүлээн зөвшөөрөгдөх дөхсөний эцэст би яагаад блэкжактай автоматаар бөглөх ажлыг өөрөө хийж, зөв аргаар хийж болохгүй гэж шийдсэн юм бэ? Би java хэл дээр бичигдсэн dbeaver клиентийг ашигладаг, энэ нь нээлттэй эхийн олон нийтийн хувилбартай. Энгийн төлөвлөгөө боловсорч гүйцсэн:
- Автоматаар бөглөх үүрэгтэй ангиудыг эх кодоос олоорой
- Гадны мета өгөгдөлтэй ажиллахын тулд тэдгээрийг дахин чиглүүлж, тэндээс нэгдлийн талаарх мэдээллийг татаж аваарай
- ??????
- НӨӨЦ
Би эхний санааг маш хурдан олж мэдсэн - би алдаа хянагчаас автоматаар бөглөх тохиргоог тохируулах хүсэлтийг олсон.
json-тэй ажиллахын тулд би номын санг ашиглахаар шийдсэн
Эцэст нь би бүтээх алдааг засч чадсан: Би номын санг pom.xml-д биш, харин OSGI-ийн шаардсан manifest.mf манифест дээр импортын багц гэж зааж өгсөн. Хамгийн үзэсгэлэнтэй шийдэл биш, гэхдээ энэ нь ажилладаг. Дараа нь дараагийн гэнэтийн зүйл гарч ирэв. Хэрэв та Intellij Idea-г хөгжүүлж байгаа бол Elipse платформ дээр тулгуурлан төсөлдөө дибаг хийж эхлэх боломжгүй: туршлагагүй хөгжүүлэгч асуулга бөглөөгүй бол шинжээчээс багагүй зовох ёстой. Минж хөгжүүлэгчид өөрсдөө аврах ажилд ирж, хийх ёстой хэнгэрэгтэй бүх бүжигийг вики дээр зааж өгсөн. Хамгийн ядаргаатай нь энэ олон хов живийн дараа ч гэсэн импортын багцаар холбогдсон json номын сантай (бэлэн бүтээгдэхүүн болгон амжилттай угсарсан ч) төсөл дибаг хийх хүсэлгүй байсан явдал юм.
Тэр үед би json-г даалгавраа ашиглахад тохиромжгүй байдгийг аль хэдийн ойлгосон - эцэст нь мета өгөгдлийг гараар засварлах ёстой байсан бөгөөд xml формат нь үүнд илүү тохиромжтой. Xml-ийг дэмжсэн хоёр дахь аргумент нь JDK-д шаардлагатай бүх ангиуд байгаа нь гадны номын сантай тэмцэхээ зогсоох боломжтой болсон юм. Би маш их баяртайгаар json-оос xml руу бүх мета өгөгдлийг шилжүүлж, автоматаар бөглөх логикийг засварлаж эхлэв.
Мета өгөгдлийн жишээ
<?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>
Үүний үр дүнд би
Кодод өөрчлөлт оруулах үед асуулт гарч ирэв - файлыг мета өгөгдөлөөр хэн дүүргэх вэ? Хадгалах газарт маш олон байгууллага байдаг тул бүх холболтыг өөрөө бүртгүүлэх нь үнэтэй байдаг. Үүний үр дүнд би энэ даалгаврыг шинжээчиддээ даалгахаар шийдсэн. Би мета өгөгдлийн файлыг svn-д байршуулсан бөгөөд тэндээс програмын хамт локал лавлах руу төлбөр тооцоо хийдэг. Энэ зарчим нь: репозиторт шинэ байгууллага бий болсон уу? Нэг шинжээч файлд боломжит нэгдлүүдийг оруулж, өөрчлөлт хийж, бусад нь өөрөө шалгаж, автоматаар бөглөх ажлыг эдэлдэг: нийгэмлэг, мэдлэг хуримтлуулах гэх мэт. Хамтран ажиллагсаддаа програмыг ашиглах талаар семинар зохион байгуулж, Confluence сэтгүүлд нийтлэл бичсэн - одоо компанид илүү тохиромжтой хэрэгсэл бий.
Энэ функц дээр ажиллах нь надад нээлттэй эхийн төслүүдтэй ажиллахаас айх шаардлагагүй гэдгийг ойлгосон - дүрмээр бол тэдгээр нь тодорхой архитектуртай, тэр ч байтугай хэлний анхан шатны мэдлэг нь туршилт хийхэд хангалттай байх болно. Тодорхой хэмжээний тууштай байж та үзэн яддаг ердийн үйлдлүүдээс ангижрах боломжтой болж, шинэ туршилт хийх цагийг хэмнэх болно.
Эх сурвалж: www.habr.com