څنګه د ورته کار کولو مخه ونیسئ

ایا تاسو غواړئ چې د معمول عملیات بیا تکرار کړئ؟ نو زه نه. مګر هرکله چې د SQL مراجعینو کې د Rostelecom ذخیره کولو سره کار کول، ما باید د میزونو تر مینځ ټول شمولیت په لاسي ډول ثبت کړي. او دا د دې حقیقت سره سره چې په 90٪ قضیو کې د میزونو سره د یوځای کیدو ساحې او شرایط د غوښتنې څخه غوښتنه سره سمون لري! داسې بریښي چې کوم SQL پیرودونکي د اتوماتیک بشپړولو دندې لري ، مګر د ذخیره کولو لپاره دا تل کار نه کوي: دوی په ندرت سره د فعالیت ښه کولو لپاره ځانګړي محدودیتونه او بهرنۍ کیلي شاملوي ، او له دې پرته برنامه به نه پوهیږي چې څنګه ادارې د هر یو سره تړاو لري. نور او دا ستاسو لپاره څه کولی شي وړاندیز وکړي.

څنګه د ورته کار کولو مخه ونیسئ

د انکار ، غوسه ، معاملې ، خپګان او منلو ته نږدې کیدو سره ، ما پریکړه وکړه - ولې د بلیک جیک سره د آټوفیل پلي کولو هڅه مه کوئ او دا په سمه توګه ترسره کړئ؟ زه د dbeaver مراجع کاروم، په جاوا کې لیکل شوی، دا د خلاصې سرچینې ټولنې نسخه لري. یو ساده پلان بشپړ شوی دی:

  1. د سرچینې کوډ کې ټولګي ومومئ کوم چې د اتوماتیک بشپړولو لپاره مسؤل دي
  2. دوی ته لارښوونه وکړئ چې د بهرني میټاډاټا سره کار وکړي او له هغه ځایه د یوځای کیدو په اړه معلومات راوباسي
  3. ؟؟؟؟؟؟
  4. ګټه

ما لومړی ټکی په چټکۍ سره معلوم کړ - ما په بګ ټریکر کې یوه غوښتنه وموندله چې د اتوماتیک ډکولو او اړونده کې تنظیم کړئ ژمن د SQLCompletionAnalyzer ټولګي وموندل. ما کوډ ته وکتل او دا هغه څه دي چې زه ورته اړتیا لرم. ټول هغه څه چې پاتې دي دا بیا لیکل دي ترڅو هرڅه کار وکړي. ما د وړیا ماښام انتظار وکړ او د پلي کولو له لارې یې فکر پیل کړ. ما پریکړه وکړه چې د جدول لینک قواعد (میټاډاټا) په json کې ولیکم. ما د دې فارمیټ سره د کار کولو کومه عملي تجربه نه درلوده او اوسنۍ دنده د دې نیمګړتیا د سمولو لپاره د فرصت په توګه لیدل کیده.

د json سره کار کولو لپاره ما پریکړه وکړه چې کتابتون وکاروم json - ساده د ګوګل څخه. دا هغه ځای دی چې حیرانتیا پیل شوه. لکه څنګه چې دا معلومه شوه، dbeaver، د ریښتینې غوښتنلیک په توګه، د OSGi چوکاټ په کارولو سره د Eclipse پلیټ فارم کې لیکل شوی و. د تجربه لرونکو پراختیا کونکو لپاره ، دا شی د انحصار اداره کول اسانه کوي ، مګر زما لپاره دا د تیاره جادو په څیر و ، د کوم لپاره چې زه په څرګنده توګه چمتو نه وم: د معمول په څیر ، زه هغه ټولګي واردوم چې زه ورته اړتیا لرم د json ساده کتابتون څخه په سرلیک کې. د ترمیم شوي ټولګي، دا په pom. xml کې مشخص کړئ، وروسته له دې چې پروژه په واضح ډول په نورمال ډول راټولولو څخه انکار کوي او د غلطیو سره ټکر کوي.

په پای کې، ما د جوړونې تېروتنې د حل کولو لپاره اداره کړه: ما کتابتون په pom.xml کې نه، بلکې په manifest.mf منشور کې ثبت کړ، لکه څنګه چې د OSGI لخوا اړین دی، پداسې حال کې چې دا د وارداتو بسته په توګه مشخص کوي. ترټولو ښکلی حل ندی، مګر دا کار کوي. بیا راتلونکی حیرانتیا ښکاره شوه. که تاسو په Intellij Idea کې وده کوئ، تاسو نشئ کولی یوازې لاړ شئ او د Eclipse پلیټ فارم پراساس د خپلې پروژې ډیبګ کول پیل کړئ: یو بې تجربه پراختیا کونکی باید د پوښتنې بشپړولو پرته د شنونکي څخه کم نه وي. د بیور پراختیا کونکي پخپله د ژغورنې لپاره راغلي، په ویکي کې په ګوته کوي چې ټول نڅا د تیمبورین سره چې باید ترسره شي. ترټولو ځورونکی شی دا دی چې حتی د دې ټولو سکواټونو وروسته ، پروژه نه غوښتل د 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>

په پایله کې زه بدلونونه وکړل د SQLUtils او SQLCompletionAnalyzer ټولګیو کې. نظر دا دی: که چیرې برنامه د لومړني منطق په کارولو سره د مناسب اتوماتیک وړاندیزونو موندلو توان ونلري ، نو دا د بهرني xml فایل په کارولو سره د احتمالي شمولیت شتون چیک کوي. فایل پخپله د میزونو جوړه ذخیره کوي چې هغه ساحې په ګوته کوي چې دا میزونه باید وصل شي. د eff_dttm او exp_dttm ریکارډونو تخنیکي اعتبار نیټې او د منطقي حذف کولو بیرغ deleted_ind د ډیفالټ لخوا ټاکل شوي محدودیتونه.

کله چې کوډ کې بدلونونه رامینځته شوي، پوښتنه راپورته شوه - څوک به د میټاډاټا سره فایل ډک کړي؟ په ذخیره کې ډیری ادارې شتون لري، دا ګرانه ده چې ټولې اړیکې پخپله راجستر کړئ. د پایلې په توګه، ما پریکړه وکړه چې دا دنده خپلو ملګرو شنونکو ته وسپارم. ما د میټاډاټا فایل په svn کې پوسټ کړ ، له هغه ځایه چې د برنامه سره محلي لارښود ته چیک آوټ کیږي. اصل دا دی: ایا په ذخیره کې یو نوی وجود څرګند شوی؟ یو شنونکی فایل ته احتمالي یوځای کیدو ته ننوځي ، بدلونونه ترسره کوي ، پاتې نور ځان ته ګوري او د کار اتومات بشپړیدو څخه خوند اخلي: ټولنه ، د پوهې راټولول او دا ټول. د همکارانو لپاره د برنامه کارولو په اړه ورکشاپ ترسره کړ، په Confluence کې یوه مقاله لیکلې - اوس شرکت یو بل اسانه وسیله لري.

په دې ب featureه کار کولو ما ته دا پوهه راکړه چې د خلاصې سرچینې پروژې سره ټینکر کولو ته اړتیا نشته - د یوې قاعدې په توګه ، دوی روښانه جوړښت لري ، او حتی د ژبې لومړني پوهه به د تجربو لپاره کافي وي. او د یوې ټاکلې اندازې دوام سره ، تاسو به حتی وکولی شئ د کرکې معمول عملیاتو څخه ځان خلاص کړئ ، د نوي تجربو لپاره خپل وخت خوندي کړئ.

سرچینه: www.habr.com

Add a comment