መደበኛ ስራዎችን ደጋግመው መድገም ይፈልጋሉ? ስለዚህ አላደርግም። ነገር ግን በ SQL ደንበኛ ውስጥ ከ Rostelecom ማከማቻ ጋር በሚሰሩበት ጊዜ ሁሉ በጠረጴዛዎች መካከል ያሉትን ሁሉንም መጋጠሚያዎች በእጅ መመዝገብ ነበረብኝ. እና ይህ ምንም እንኳን በ 90% ከሚሆኑት ጉዳዮች ውስጥ ጠረጴዛዎችን ለመቀላቀል መስኮች እና ሁኔታዎች ከመጠየቅ ጥያቄ ጋር የተገናኙ ናቸው! ማንኛውም የ SQL ደንበኛ በራስ-ማጠናቀቂያ ተግባራት ያለው ይመስላል, ነገር ግን ለማከማቻዎች ሁልጊዜ አይሰራም: አፈፃፀሙን ለማሻሻል ልዩ ገደቦችን እና የውጭ ቁልፍን እምብዛም አያካትቱም, እና ያለዚህ ፕሮግራሙ አካላት ከእያንዳንዱ ጋር እንዴት እንደሚዛመዱ አያውቅም. ሌላ እና ለእርስዎ የሚያቀርበውን ነገር.
ክህደትን፣ ቁጣን፣ ድርድርን፣ የመንፈስ ጭንቀትንና ተቀባይነትን እየተቃረበ ካለፍኩ በኋላ ወሰንኩኝ - ለምን ራሴን blackjack ጋር አውቶሙላን ለመተግበር እና በትክክለኛው መንገድ አላደርገውም? በጃቫ የተፃፈውን dbever ደንበኛ እጠቀማለሁ፣ ክፍት ምንጭ የማህበረሰብ ስሪት አለው። ቀላል እቅድ ደርቋል፡-
- ለራስ ማጠናቀቅ ኃላፊነት ያለባቸውን ክፍሎች በምንጭ ኮድ ውስጥ ያግኙ
- ከውጫዊ ሜታዳታ ጋር እንዲሰሩ ያዟቸው እና ስለ መጋጠሚያዎች መረጃ ከዚያ ይጎትቱ
- ??????
- ትርፍ
የመጀመሪያውን ነጥብ በፍጥነት አውቄያለሁ - በራስ-ሙላ እና በተዛማጅነት ለማስተካከል በ bug tracker ውስጥ ጥያቄ አገኘሁ
ከ json ጋር ለመስራት ቤተ መፃህፍቱን ለመጠቀም ወሰንኩ።
በመጨረሻ የግንባታ ስህተቶቹን ማስተካከል ችያለሁ፡ ቤተ መፃህፍቱን የመዘገብኩት በpom.xml አይደለም፣ ነገር ግን በ OSGI በሚፈለገው መሰረት በ manifest.mf መግለጫ ውስጥ እንደ አስመጪ-ጥቅል እየገለጽኩ ነው። በጣም ቆንጆው መፍትሄ አይደለም, ግን ይሰራል. ከዚያም የሚቀጥለው አስገራሚ ነገር ታየ. በIntellij Idea ውስጥ እያዳበሩ ከሆነ፣ በግርዶሽ መድረክ ላይ በመመስረት ፕሮጀክትዎን ማረም ብቻ መሄድ አይችሉም፡ ልምድ የሌለው ገንቢ መጠይቁን ሳያጠናቅቅ ከተንታኝ ያነሰ ሊሰቃይ አይገባም። የቢቨር አዘጋጆቹ እራሳቸው ለማዳን መጡ፣ በዊኪው ላይ ሁሉንም ጭፈራዎች በከበሮ መከናወን እንዳለበት አመልክተዋል። በጣም የሚያበሳጨው ነገር ከእነዚህ ሁሉ ስኩዊቶች በኋላ እንኳን ፕሮጀክቱ በጄሰን ቤተ-መጽሐፍት በማስመጣት-ጥቅል በኩል በተገናኘ ማረም መጀመር አልፈለገም (ምንም እንኳን አሁንም በተሳካ ሁኔታ በተጠናቀቀው ምርት ውስጥ ተሰብስቦ የነበረ ቢሆንም)።
በዚያን ጊዜ፣ ለተግባሬ 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 ውስጥ አንድ ጽሑፍ ጽፏል - አሁን ኩባንያው አንድ ተጨማሪ ምቹ መሣሪያ አለው.
በዚህ ባህሪ ላይ መስራቴ በክፍት ምንጭ ፕሮጀክቶች ላይ tinker መፍራት አያስፈልግም የሚለውን ግንዛቤ ሰጠኝ - እንደ ደንቡ, ግልጽ የሆነ ስነ-ህንፃ አላቸው, እና የቋንቋው መሰረታዊ እውቀት ለሙከራዎች እንኳን በቂ ይሆናል. እና በተወሰነ ጽናት, የተጠሉ የተለመዱ ስራዎችን እንኳን ማስወገድ ይችላሉ, ለአዳዲስ ሙከራዎች ጊዜዎን ይቆጥባሉ.
ምንጭ: hab.com