ግርዶሽ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ

ምናልባት፣ ዪሐይ መጪለም ከአሁን በኋላ ልዩ መግቢያ አያስፈልግም. ለ Eclipse ጃቫ ልማት መሳሪያዎች ብዙ ሰዎች Eclipseን ያውቃሉ።ጄ.ዲ.ቲ.). አብዛኛዎቹ ገንቢዎች “ግርዶሽ” ከሚለው ቃል ጋር የሚያቆራኙት ይህ ታዋቂ ክፍት ምንጭ Java IDE ነው። ይሁን እንጂ Eclipse ሁለቱም የልማት መሳሪያዎችን (Eclipse Platform) እና በላዩ ላይ የተገነቡ በርካታ አይዲኢዎችን፣ JDT ን ለማዋሃድ ምቹ መድረክ ነው። Eclipse ሁለቱም የ Eclipse ፕሮጀክት፣ የ Eclipse Platform እና JDT ልማትን የሚያስተባብር ከፍተኛ ደረጃ ፕሮጀክት፣ እና Eclipse SDK፣ የዚያ ልማት ውጤት ነው። በመጨረሻም፣ Eclipse ክፍት ምንጭ ፋውንዴሽን ሲሆን እጅግ በጣም ብዙ የፕሮጀክቶች ማህበረሰብ ያለው፣ ሁሉም በጃቫ የተፃፉ ወይም ከልማት መሳሪያዎች ጋር የተገናኙ አይደሉም (ለምሳሌ፣ ፕሮጀክቶች Eclipse IoT и ግርዶሽ ሳይንስ). የግርዶሽ ዓለም በጣም የተለያየ ነው።

በዚህ የግምገማ መጣጥፍ ውስጥ፣ አንዳንድ የግርዶሽ አርክቴክቸር ጥቂቶቹን የተቀናጁ የልማት መሳሪያዎችን ለመገንባት እንደ መድረክ ለማየት እንሞክራለን እና የቴክኖሎጂ መድረክ መሰረት የሆነውን የ Eclipse ክፍሎችን መነሻ ሀሳብ ለመስጠት እንሞክራለን። አዲስ አዋቅር” 1C፡ ድርጅት፣ 1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች. እርግጥ ነው፣ እንዲህ ያለው ግምገማ በአብዛኛው ላይ ላዩን እና የተገደበ መሆኑ የማይቀር ነው፣ ምክንያቱም ኢክሊፕ ገንቢዎችን እንደ ዒላማ ታዳሚ ብቻ እያደረግን ነው። ሆኖም ግን, ልምድ ያላቸው Eclipse ገንቢዎች እንኳን በጽሁፉ ውስጥ አስደሳች መረጃን ማግኘት እንደሚችሉ ተስፋ እናደርጋለን. ለምሳሌ፣ ስለ አንዱ "የግርዶሽ ሚስጥሮች" እንነጋገራለን፣ በአንጻራዊ ሁኔታ አዲስ እና እስካሁን ድረስ ብዙም የማይታወቅ ፕሮጀክት። Eclipse Handyበ 1C የተመሰረተ እና የተያዘው.
ግርዶሽ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ

የ Eclipse ሥነ ሕንፃ መግቢያ

በመጀመሪያ ምሳሌን በመጠቀም የግርዶሽ አርክቴክቸር አንዳንድ አጠቃላይ ገጽታዎችን እንመልከት ግርዶሽ ጃቫ ልማት መሣሪያዎች (ጄዲቲ) የጄዲቲ ምርጫ እንደ ምሳሌ በአጋጣሚ አይደለም. ይህ በ Eclipse ውስጥ የሚታየው የመጀመሪያው IDE ነው። ሌሎች *DT Eclipse ፕሮጀክቶች፣ ለምሳሌ Eclipse C/C++ Development Tooling (CDT)፣ በኋላ የተፈጠሩ እና ሁለቱንም ዋና ዋና የሕንፃ መርሆች እና የምንጭ ኮድ ቁርጥራጮች ከJDT ተበድረዋል። በጄዲቲ ውስጥ የተቀመጡት የአርክቴክቸር መሰረታዊ ነገሮች በግርዶሽ ፕላትፎርም ላይ ለተገነባ ማንኛውም IDE ከሞላ ጎደል 1C፡Enterprise Development Toolsን ጨምሮ እስከ ዛሬ ድረስ ጠቃሚ ናቸው።

በመጀመሪያ ደረጃ, ግርዶሽ በትክክል ግልጽ በሆነ የሕንፃ መዋቅር ተለይቶ የሚታወቅ መሆኑን ልብ ሊባል ይገባል, ቋንቋ-ገለልተኛ ተግባራዊነት የተወሰኑ የፕሮግራም ቋንቋዎችን ለመደገፍ የተነደፈውን ተግባር በመለየት እና በ UI ገለልተኛ "ኮር" (ኮር) መለየት. ከተጠቃሚ ድጋፍ ጋር በተያያዙ ክፍሎች ውስጥ ያሉ ክፍሎች.በይነገጽ.

ለምሳሌ፣ Eclipse Platform የጋራ፣ ከቋንቋ ነጻ የሆነ መሠረተ ልማትን ይገልፃል፣ እና የጃቫ ማጎልበቻ መሳሪያዎች ሙሉ ባህሪ ያለው Java IDE ወደ ግርዶሽ ይጨምራሉ። ሁለቱም Eclipse Platform እና JDT ከበርካታ አካላት የተሠሩ ናቸው፣ እያንዳንዱም UI-dependent "core" ወይም UI layer (ስእል 1) ነው።

ግርዶሽ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ
ሩዝ. 1. Eclipse Platform እና JDT

የግርዶሽ መድረክ ዋና ዋና ክፍሎችን እንዘረዝራለን-

  • አሂድ - የተሰኪውን መሠረተ ልማት ይገልጻል። ግርዶሽ ሞዱል አርክቴክቸር አለው። በመሰረቱ ግርዶሽ የ"ኤክስቴንሽን ነጥቦች" እና "ቅጥያዎች" ስብስብ ነው።
  • የሥራ ቦታ - አንድ ወይም ከዚያ በላይ ፕሮጀክቶችን ያስተዳድራል. ፕሮጀክቱ በቀጥታ ወደ የፋይል ስርዓቱ የሚያሳዩ ማህደሮችን እና ፋይሎችን ያካትታል።
  • መደበኛ መግብር መሣሪያ ስብስብ (SWT) - ከስርዓተ ክወናው ጋር የተዋሃዱ መሰረታዊ የተጠቃሚ በይነገጽ ክፍሎችን ያቀርባል.
  • JFace - በ SWT ላይ የተገነቡ የተለያዩ የUI ማዕቀፎችን ያቀርባል።
  • የመስሪያ ቦታ - የ Eclipse UI ምሳሌን ይገልፃል፡ አዘጋጆች፣ እይታዎች፣ አመለካከቶች።

እኔ መናገር አለብኝ Eclipse Platform የተቀናጁ የልማት መሳሪያዎችን ለመገንባት ሌሎች ብዙ ጠቃሚ አካላትን ያቀርባል, ከነዚህም መካከል ማረም, ማወዳደር, ፍለጋ እና ቡድን ይገኙበታል. በተጨማሪም JFace ጽሑፍን መጥቀስ አለብን - የምንጭ ኮድ "ስማርት አርታኢዎችን" ለመገንባት መሠረት። እንደ አለመታደል ሆኖ የእነዚህን ክፍሎች ጠቋሚ ግምገማ እና እንዲሁም የዩአይአይ ንብርብር አካል በዚህ ጽሑፍ ማዕቀፍ ውስጥ የማይቻል ነው ፣ ስለሆነም በዚህ ክፍል በተቀረው ክፍል ውስጥ የግርዶሹን ዋና “ዋና” ክፍሎች ለመገምገም እራሳችንን እንገድባለን። መድረክ እና JDT.

ዋና አሂድ ጊዜ

Eclipse Plugin Framework የተመሰረተው ነው። ኦኤስጂ እና በፕሮጀክቱ የቀረበ Eclipse Equinox. እያንዳንዱ Eclipse ፕለጊን የOSGi ጥቅል ነው። የOSGi ዝርዝር መግለጫ ከሌሎች ነገሮች መካከል፣ የስርጭት እና የጥገኝነት አፈታት ዘዴዎችን ይገልጻል። ከእነዚህ መደበኛ ስልቶች በተጨማሪ ኢኩኖክስ ጽንሰ-ሐሳቡን ያስተዋውቃል የኤክስቴንሽን ነጥቦች. እያንዳንዱ ፕለጊን የራሱን የኤክስቴንሽን ነጥቦችን ሊገልጽ ይችላል, እንዲሁም ተጨማሪ ተግባራትን ("ቅጥያዎችን") በስርዓቱ ላይ በተመሳሳይ ወይም በሌሎች ተሰኪዎች የተገለጹ የኤክስቴንሽን ነጥቦችን በመጠቀም ይጨምራል. የ OSGi እና Equinox ስልቶች ማንኛውም ዝርዝር መግለጫ ከዚህ ጽሑፍ ወሰን በላይ ነው። በ Eclipse ውስጥ ያለው ሞጁላራይዜሽን አጠቃላይ መሆኑን ብቻ እናስተውላለን (ማንኛውም ንዑስ ስርዓት ፣ Runtimeን ጨምሮ ፣ አንድ ወይም ከዚያ በላይ ተሰኪዎችን ያቀፈ ነው) እና በ Eclipse ውስጥ ያለው ሁሉም ማለት ይቻላል ቅጥያ ነው። ከዚህም በላይ እነዚህ መርሆዎች OSGi ከመጀመሩ ከረጅም ጊዜ በፊት በ Eclipse ሥነ ሕንፃ ውስጥ ተካተዋል (በዚያን ጊዜ የራሳቸው ቴክኖሎጂ ጥቅም ላይ ውሏል, በብዙ መልኩ ከOSGi ጋር ተመሳሳይ ነው).

ዋና የስራ ቦታ

በግርዶሽ ፕላትፎርም ላይ የተገነባ ማንኛውም IDE ከሞላ ጎደል ከ Eclipse የስራ ቦታ ጋር ይሰራል። ብዙውን ጊዜ በ IDE ውስጥ እየተገነባ ያለውን የመተግበሪያውን የምንጭ ኮድ የያዘው የስራ ቦታ ነው። የስራ ቦታ ካርታዎች በቀጥታ ወደ የፋይል ስርዓቱ እና አቃፊዎችን እና ፋይሎችን ያካተቱ ፕሮጀክቶችን ያካትታል. እነዚህ ፕሮጀክቶች፣ ማህደሮች እና ፋይሎች ተጠርተዋል። ሀብቶች የስራ ቦታ. በ Eclipse ውስጥ ያለው የስራ ቦታ ትግበራ ከፋይል ስርዓቱ ጋር በተያያዘ እንደ መሸጎጫ ሆኖ ያገለግላል, ይህም የዛፍ ዛፎችን መሻገርን በእጅጉ ሊያፋጥን ይችላል. በተጨማሪም, የስራ ቦታን ጨምሮ በርካታ ተጨማሪ አገልግሎቶችን ይሰጣል የንብረት ለውጥ የማሳወቂያ ዘዴ и ተጨማሪ ገንቢ መሠረተ ልማት.

የኮር ሪሶርስ አካል (org.eclipse.core.resources plugin) የስራ ቦታውን እና ሀብቶቹን የመደገፍ ሃላፊነት አለበት። በተለይም ይህ አካል በቅጹ ውስጥ ወደ ሥራ ቦታው የፕሮግራም መዳረሻን ይሰጣል የንብረት ሞዴሎች. ከዚህ ሞዴል ጋር ውጤታማ በሆነ መልኩ ለመስራት ደንበኞች ወደ ሃብት የሚወስድ አገናኝን የሚወክሉበት ቀላል መንገድ ያስፈልጋቸዋል። በተመሳሳይ ጊዜ በአምሳያው ውስጥ ያለውን የንብረቱን ሁኔታ በቀጥታ የሚያከማችውን ነገር ከደንበኛ ተደራሽነት መደበቅ ጥሩ ይሆናል. ያለበለዚያ ፣ ለምሳሌ ፣ ፋይልን መሰረዝ ፣ ደንበኛው በአምሳያው ውስጥ የሌለውን ነገር ከሚከተሉት ችግሮች ጋር መያዙን ሊቀጥል ይችላል። ግርዶሽ የሚባሉትን በመጠቀም ይህንን ችግር ይፈታል መያዣ ምንጭ. እጀታው እንደ ቁልፍ ሆኖ ያገለግላል (በሥራ ቦታው ውስጥ ወደ ሀብቱ የሚወስደውን መንገድ ብቻ ነው የሚያውቀው) እና ስለ ሀብቱ ሁኔታ መረጃን በቀጥታ የሚያከማች የውስጣዊ ሞዴል ነገርን ሙሉ በሙሉ ይቆጣጠራል. ይህ ንድፍ የስርዓተ-ጥለት ልዩነት ነው እጀታ / አካል.

ሩዝ. 2 የሃንድል/የሰውነት ፈሊጥ በሃብት ሞዴል ላይ እንደተተገበረ ያሳያል። የአይሪሶርስ በይነገጽ የሀብት እጀታን ይወክላል እና ኤፒአይ ነው፣ይህን በይነገጽ ከሚተገበረው የመረጃ ክፍል እና አካልን ከሚወክለው የResourceInfo ክፍል በተለየ፣ ኤፒአይ ያልሆኑ። እጀታው ከስራ ቦታ ስር አንፃር ወደ ሃብቱ የሚወስደውን መንገድ የሚያውቅ እና ወደ መገልገያ መረጃ የሚወስድ አገናኝ እንደሌለው አበክረን እንገልፃለን። የመርጃ መረጃ እቃዎች "ኤለመንት ዛፍ" በመባል የሚታወቁትን ይመሰርታሉ. ይህ የውሂብ መዋቅር በማህደረ ትውስታ ውስጥ ሙሉ በሙሉ ተሠርቷል. ከአንዳንድ እጀታ ጋር የሚዛመድ የመርጃ መረጃን ለማግኘት፣ የንጥል ዛፉ የሚተላለፈው በእጀታው ውስጥ በተከማቸ መንገድ ነው።

ግርዶሽ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ
ሩዝ. 2. IResource እና ResourceInfo

በኋላ እንደምናየው, የመርጃው ሞዴል መሰረታዊ ንድፍ (በእጅ ላይ የተመሰረተ ብለው ሊጠሩት ይችላሉ) በ Eclipse እና ለሌሎች ሞዴሎች ጥቅም ላይ ይውላል. እስከዚያው ድረስ የዚህ ንድፍ አንዳንድ ልዩ ባህሪያት እዚህ አሉ.

  • እጀታ ዋጋ ያለው ነገር ነው። የእሴት እቃዎች እኩልነታቸው በማንነት ላይ ያልተመሰረተ የማይለወጡ ነገሮች ናቸው። እንደነዚህ ያሉ ነገሮች በተጠለፉ መያዣዎች ውስጥ እንደ ቁልፍ በደህና ሊያገለግሉ ይችላሉ. በርካታ የመያዣ ምሳሌዎች አንድ አይነት ሀብትን ሊያመለክቱ ይችላሉ። እነሱን ለማነፃፀር እኩል (ነገር) ዘዴን ይጠቀሙ።
  • Handle የሀብቱን ባህሪ ይገልፃል, ነገር ግን ሾለ ሀብቱ ሁኔታ መረጃ አልያዘም (ያከማቻል ብቸኛው ውሂብ "ቁልፍ" ነው, ወደ ሀብቱ የሚወስደው መንገድ).
  • እጀታ የሌለውን ሃብት (ወይ እስካሁን ያልተፈጠረ ሃብት፣ ወይም አስቀድሞ የተሰረዘ ሃብት) ሊያመለክት ይችላል። የንብረቶች መኖር IResource.exists() ዘዴን በመጠቀም ማረጋገጥ ይቻላል።
  • አንዳንድ ክዋኔዎች በመያዣው ውስጥ በተከማቸው መረጃ ላይ ብቻ ሊተገበሩ ይችላሉ (የእጅ-ብቻ ኦፕሬሽኖች የሚባሉት)። ምሳሌዎች IResource.getParent()፣ getFullPath() ወዘተ ናቸው። እንዲህ ዓይነቱ ተግባር እንዲሳካ ሀብቱ መኖር አያስፈልገውም። ለመሳካት ሀብቱ እንዲኖር የሚያስፈልጋቸው ክዋኔዎች ሃብቱ ከሌለ ልዩ (CoreException) ይጥላል።

ግርዶሽ በስራ ቦታ ሀብቶች ላይ ለውጦችን ለማሳወቅ ቀልጣፋ ዘዴን ይሰጣል (ምስል 3)። በ Eclipse IDE በራሱ ውስጥ በተደረጉ ድርጊቶች እና ከፋይል ስርዓቱ ጋር በማመሳሰል ምክንያት ሃብቶች ሁለቱንም ሊለወጡ ይችላሉ. በሁለቱም ሁኔታዎች ለማሳወቂያዎች የተመዘገቡ ደንበኞች በ "Resource deltas" (የመርጃ ዴልታ) መልክ ለውጦችን በተመለከተ ዝርዝር መረጃ ይሰጣሉ. ዴልታ የስራ ቦታ ሃብት (ንዑስ-) ዛፍ በሁለት ግዛቶች መካከል የተደረጉ ለውጦችን ይገልፃል እና እራሱ ዛፍ ነው፣ እያንዳንዱ መስቀለኛ መንገድ ለአንዳንድ ሀብቶች ለውጥን ይገልፃል እና በልጆች ሀብቶች ላይ የተደረጉ ለውጦችን የሚገልጹ የቀጣይ ደረጃ ዴልታዎች ዝርዝር ይይዛል።

ግርዶሽ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ
ሩዝ. 3. IResourceChangeEvent እና IResourceDelta

በሃብት ዴልታዎች ላይ የተመሰረተው የማሳወቂያ ዘዴ የሚከተሉት ባህሪያት አሉት፡

  • አንድ ነጠላ ለውጥ እና ብዙ ለውጦች አንድ አይነት መዋቅር በመጠቀም ይገለፃሉ, ምክንያቱም ዴልታ የተገነባው በእንደገና ቅንብር መርህ መሰረት ነው. የተመዝጋቢ ደንበኞች የዴልታ ዛፍን በተደጋጋሚ በመውረድ የሀብት ለውጥ ማሳወቂያዎችን ማካሄድ ይችላሉ።
  • ዴልታ ሾለ ሀብቱ ለውጥ የተሟላ መረጃ ይዟል፣ እንቅስቃሴውን እና/ወይም ከእሱ ጋር የተያያዙትን "ማርከሮች" መቀየርን ጨምሮ (ማርከሮች ለምሳሌ የማጠናቀር ስህተቶች)።
  • የሃብት ማመሳከሪያዎች በመያዣው በኩል ስለሚደረጉ፣ ዴልታ በተፈጥሮው የርቀት ምንጭን ሊያመለክት ይችላል።

በቅርቡ እንደምናየው የመርጃ ሞዴል ለውጥ ማሳወቂያ ዘዴ ዋናዎቹ የንድፍ እቃዎች ለሌሎች እጀታ-ተኮር ሞዴሎችም ጠቃሚ ናቸው.

JDT ኮር

የ Eclipse የስራ ቦታ መገልገያ ሞዴል መሰረታዊ ቋንቋ-ገለልተኛ ሞዴል ነው። የJDT ኮር አካል (org.eclipse.jdt.core plugin) የስራ ቦታን መዋቅር ከጃቫ እይታ አንጻር ለማሰስ እና ለመተንተን ኤፒአይ ይሰጣል፣ እሱም "ጃቫ ሞዴል" ተብሎ የሚጠራው (የጃቫ ሞዴል). ይህ ኤፒአይ በአቃፊዎች እና በፋይሎች ከተገለፀው የመርጃ ሞዴል ኤፒአይ በተቃራኒ በጃቫ አካላት ይገለጻል። የጃቫ ኤለመንቱ ዛፍ ዋና መገናኛዎች በምስል ውስጥ ይታያሉ. 4.

ግርዶሽ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ
ሩዝ. 4. የጃቫ ሞዴል ኤለመንቶች

የጃቫ ሞዴል እንደ ሃብት ሞዴል ተመሳሳይ እጀታ/አካል ፈሊጥ ይጠቀማል (ምስል 5)። IJavaElement እጀታ ነው እና JavaElementInfo አካል ነው. የIJavaElement በይነገጽ ለሁሉም የጃቫ አካላት የተለመደ ፕሮቶኮልን ይገልጻል። አንዳንዶቹ ዘዴዎቹ በአያያዝ ብቻ፡- getElementName() GetParent() እና የመሳሰሉት ናቸው። የJavaElementInfo ነገር የተዛማጁን ንጥረ ነገር ሁኔታ ያከማቻል፡ አወቃቀሩ እና ባህሪያቱ።

ግርዶሽ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ
ሩዝ. 5. IJavaElement እና JavaElementInfo

የጃቫ ሞዴል ከንብረት ሞዴል ጋር ሲነፃፀር በመሠረታዊ እጀታ / የሰውነት ንድፍ አተገባበር ላይ አንዳንድ ልዩነቶች አሉት. ከላይ እንደተገለጸው፣ በንብረት ሞዴል ውስጥ፣ አንጓዎቹ የመርጃ መረጃ እቃዎች የሆኑበት ንጥረ ነገር ዛፍ ሙሉ በሙሉ በማህደረ ትውስታ ውስጥ ይገኛል። ነገር ግን የጃቫ ሞዴል ከሀብት ዛፍ የበለጠ ብዙ ንጥረ ነገሮች ሊኖሩት ይችላል ምክንያቱም በውስጡም የጃቫ እና የክፍል ፋይሎችን: አይነቶችን, መስኮችን እና ዘዴዎችን ያካትታል.

ሙሉውን የንጥል ዛፍ በማህደረ ትውስታ ውስጥ ሙሉ በሙሉ እንዳይሰራ ለማድረግ፣ የጃቫ ሞዴል ትግበራ በመጠን የተወሰነ ኤለመንት መረጃ LRU መሸጎጫ ይጠቀማል፣ ቁልፉ የሚይዘው IJavaElement ነው። ኤለመንቱ መረጃ ነገሮች የሚፈጠሩት ኤለመንቱ ዛፉ በሚዞርበት ጊዜ በፍላጎት ነው። በዚህ ሁኔታ, በትንሹ በተደጋጋሚ ጥቅም ላይ የዋሉ ንጥረ ነገሮች ከመሸጎጫው ውስጥ ይወጣሉ, እና የአምሳያው ማህደረ ትውስታ ፍጆታ በተወሰነው የመሸጎጫ መጠን የተገደበ ነው. ይህ በእጀታ ላይ የተመሰረተ ንድፍ ሌላ ጥቅም ነው, ይህም እንደነዚህ ያሉ የአተገባበር ዝርዝሮችን ከደንበኛ ኮድ ሙሉ በሙሉ ይደብቃል.

በጃቫ ኤለመንቶች ላይ የተደረጉ ለውጦችን የማሳወቅ ዘዴ ከላይ ከተብራሩት የስራ ቦታ ሃብት ለውጦችን ለመከታተል ካለው ዘዴ ጋር ተመሳሳይ ነው። በጃቫ ሞዴል ላይ ለውጦችን መከታተል የሚፈልግ ደንበኛ ለማሳወቂያዎች ይመዘገባል፣ እነዚህም እንደ ElementChangedEvent ነገር የሚወከሉት IJavaElementDelta (ስእል 6) የያዘ ነው።

ግርዶሽ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ
ሩዝ. 6.ElementChangedEvent እና IJavaElementDelta

የጃቫ ሞዴል ስለ ስልቶች አካል ወይም ስለ ስም አፈታት መረጃ አልያዘም ፣ ስለሆነም በጃቫ ውስጥ ለተፃፈው ኮድ ዝርዝር ትንተና ፣ JDT Core ተጨማሪ (በእጅ ላይ የተመሠረተ) ሞዴል ይሰጣል ። ረቂቅ የአገባብ ዛፍ (አብስትራክት የአገባብ ዛፍ፣ AST)። AST የምንጩን ጽሑፍ የመተንተን ውጤትን ይወክላል። የ AST አንጓዎች ከምንጩ ሞጁል መዋቅር አካላት (መግለጫዎች ፣ ኦፕሬተሮች ፣ መግለጫዎች ፣ ወዘተ.) ጋር ይዛመዳሉ እና በምንጭ ጽሑፍ ውስጥ ስላለው ተዛማጅ ንጥረ ነገር መጋጠሚያዎች እንዲሁም (በአማራጭ) የስም ጥራት መረጃን ወደ አገናኞች መልክ ይይዛሉ- ተብሎ ይጠራል ማያያዣዎች. ማያያዣዎች በአቀነባባሪው ዘንድ የሚታወቁ እንደ ዓይነቶች፣ ዘዴዎች እና ተለዋዋጮች ያሉ ስም የተሰየሙ አካላትን የሚወክሉ ነገሮች ናቸው። ዛፍ ከሚፈጥሩት የ AST ኖዶች በተለየ፣ ማያያዣዎች ተሻጋሪ ማጣቀሻዎችን ይደግፋሉ እና በአጠቃላይ ግራፍ ይመሰርታሉ። የአብስትራክት ክፍል ASTNode ለሁሉም የ AST ኖዶች የጋራ ቤዝ ክፍል ነው። የ ASTNode ንዑስ ክፍሎች ከተወሰኑ የጃቫ ቋንቋ አገባብ ግንባታዎች ጋር ይዛመዳሉ።

የአገባብ ዛፎች ከፍተኛ መጠን ያለው ማህደረ ትውስታን ሊወስዱ ስለሚችሉ፣ JDT በእያንዳንዱ ንቁ አርታኢ አንድ AST ብቻ ይሸፍናል። ከጃቫ ሞዴል በተለየ መልኩ፣ AST በአጠቃላይ እንደ "መካከለኛ"፣ "ጊዜያዊ" ሞዴል ነው የሚታየው፣ ንጥረ ነገሮቹ AST ን ከፈጠረው ኦፕሬሽን አውድ ውጪ በደንበኞች መያዝ የለባቸውም።

እነዚህ ሶስት ሞዴሎች (የጃቫ ሞዴል ፣ AST ፣ bindings) በአንድ ላይ በጄዲቲ ውስጥ “የማሰብ ችሎታ ያላቸው የልማት መሣሪያዎችን” ለመገንባት መሠረት ይሆናሉ ፣ ይህም ኃይለኛ የጃቫ አርታኢ ከተለያዩ “ረዳቶች” ጋር ፣ የምንጭ ኮድን ለማስኬድ የተለያዩ እርምጃዎችን (የስም ማስመጣት ዝርዝርን ማደራጀትን እና ጨምሮ) እንደ ብጁ ዘይቤ ቅርጸት) ፣ የፍለጋ እና የማሻሻያ መሳሪያዎች። በዚህ ጉዳይ ላይ የጃቫ ሞዴል ልዩ ሚና ይጫወታል ፣ ምክንያቱም ለዳበረው መተግበሪያ አወቃቀር ምስላዊ ውክልና መሠረት ሆኖ የሚያገለግለው እሱ ነው (ለምሳሌ ፣ በ Package Explorer ፣ Outline ፣ Search ፣ Call Hierarchy እና ተዋረድ ይተይቡ)።

ግርዶሽ ክፍሎች በ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች ጥቅም ላይ ይውላሉ

በለስ ላይ. ምስል 7 ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ መሰረት የሆኑትን Eclipse ክፍሎች ያሳያል።

ግርዶሽ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ
ሩዝ. 7. ግርዶሽ እንደ መድረክ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች

Eclipse Platform መሰረታዊ መሠረተ ልማቶችን ያቀርባል. የዚህን መሠረተ ልማት አንዳንድ ገፅታዎች ባለፈው ክፍል ውስጥ ተመልክተናል.

Eclipse ሞዴሊንግ ማዕቀፍ (EMF) የተዋቀረ መረጃን ለመቅረጽ አጠቃላይ ማዕቀፍ ያቀርባል. EMF ከ Eclipse Platform ጋር የተዋሃደ ነው, ነገር ግን በመደበኛ የጃቫ አፕሊኬሽኖች ውስጥ ለብቻው ጥቅም ላይ ሊውል ይችላል. ብዙውን ጊዜ ጀማሪ Eclipse ገንቢዎች ስለ EMF ጠንቅቀው ያውቃሉ፣ ምንም እንኳን የግርዶሽ መድረክን ውስብስብነት ገና ሙሉ በሙሉ ባይረዱም። እንደዚህ ላለው ተወዳጅነት ከሚያስፈልጉት ምክንያቶች አንዱ ሁለንተናዊ ንድፍ ነው, ከሌሎች ነገሮች በተጨማሪ, የተዋሃደ የሜታ-ደረጃ ኤፒአይ, ይህም በአጠቃላይ ከማንኛውም EMF ሞዴል ጋር እንዲሰሩ ያስችልዎታል. በኤምኤፍ (EMF) ለሞዴል ዕቃዎች የቀረቡት የመሠረት አተገባበር እና ከሜታ-ሞዴል የሞዴል ኮድ ለማምረት ንዑስ ስርዓት የእድገት ፍጥነትን በእጅጉ ይጨምራሉ እና የስህተቶችን ብዛት ይቀንሳሉ ። EMF በተጨማሪም ሞዴሎችን ተከታታይ ለማድረግ፣ በአምሳያው ላይ ለውጦችን ለመከታተል እና ሌሎች ብዙ ዘዴዎችን ይዟል።

ልክ እንደ ማንኛውም ሁለገብ ሁለገብ መሳሪያ፣ EMF ለብዙ የሞዴሊንግ ስራዎች ተስማሚ ነው፣ ነገር ግን አንዳንድ የሞዴሎች ክፍሎች (ለምሳሌ፣ ከላይ የተብራሩት በእጀታ ላይ የተመሰረቱ ሞዴሎች) የበለጠ ልዩ የሞዴሊንግ መሳሪያዎች ያስፈልጉ ይሆናል። ስለ EMF ማውራት በተለይ በአንድ መጣጥፍ ውስን ማዕቀፍ ውስጥ ይህ የተለየ መጽሐፍ ርዕሰ ጉዳይ ስለሆነ እና በጣም ወፍራም ስለሆነ ምስጋና ቢስ ተግባር ነው። በ EMF ስር ያለው አጠቃላይ የጥራት ስርዓት በከፍተኛ ደረጃ ፕሮጀክት ውስጥ የተካተቱ አጠቃላይ የሞዴሊንግ ፕሮጄክቶች እንዲወለዱ መፍቀዱን ብቻ እናስተውላለን። Eclipse ሞዴሊንግ ከኢ.ኤም.ኤፍ እራሱ ጋር። ከእነዚህ ፕሮጀክቶች አንዱ Eclipse Xtext ነው።

Eclipse Xtext "የጽሑፍ ሞዴል" መሠረተ ልማት ያቀርባል. Xtext ይጠቀማል ANTLR የመነሻውን ጽሑፍ ለመተንተን እና EMF የተገኘውን ASG ለመወከል ( abstract የትርጉም ግራፍ፣ በእርግጥ፣ የ AST እና ማያያዣዎች ጥምረት ነው) እንዲሁም “የትርጉም ሞዴል” ተብሎም ይጠራል። በXtext የተቀረፀው የቋንቋ ሰዋሰው በXtext የትውልድ ቋንቋ ውስጥ ተገልጿል. ይህ ለ ANTLR የሰዋሰው መግለጫ ለማፍለቅ ብቻ ሳይሆን የAST ተከታታይ አሰራርን (ማለትም Xtext ሁለቱንም ተንታኝ እና ያልተፈታ)፣ የአውድ ፍንጭ እና ሌሎች በርካታ የቋንቋ ክፍሎችን ለማግኘት ያስችላል። በሌላ በኩል፣ በXtext ውስጥ ጥቅም ላይ የዋለው የሰዋሰው መግለጫ ቋንቋ፣ በ ANTLR ውስጥ ካለው የሰዋሰው መግለጫ ቋንቋ ያነሰ ተለዋዋጭ ነው። ስለዚህ, አንዳንድ ጊዜ የተተገበረውን ቋንቋ ወደ Xtext "ማጠፍ" አስፈላጊ ነው, ይህም ብዙውን ጊዜ ከባዶ የዳበረ ቋንቋ ሲመጣ ችግር አይደለም, ነገር ግን ቀደም ሲል የተቋቋመ አገባብ ላላቸው ቋንቋዎች ተቀባይነት ላይኖረው ይችላል. ይህ ሆኖ ሳለ፣ Xtext በአሁኑ ጊዜ በ Eclipse ውስጥ የፕሮግራም አወጣጥ ቋንቋዎችን እና ማጎልበቻ መሳሪያዎችን ለመገንባት በሳል፣ በባህሪያት የበለጸገ እና ሁለገብ መሳሪያ ነው። በተለይም ለፈጣን ፕሮቶታይፕ ተስማሚ መሳሪያ ነው. ጎራ-ተኮር ቋንቋዎች (ጎራ-ተኮር ቋንቋ፣ DSL)። ከላይ ከተጠቀሰው ANTLR እና EMF ላይ ከተመሰረተው “ቋንቋ ኮር” በተጨማሪ፣ Xtext ብዙ ጠቃሚ የከፍተኛ ደረጃ ክፍሎችን ያቀርባል፣ መረጃ ጠቋሚ ስልቶችን፣ ተጨማሪ ህንጻዎችን፣ “ስማርት አርታዒ”ን እና ሌሎችንም ጨምሮ፣ ነገር ግን መያዣውን ይተዋል- የተመሠረተ የቋንቋ ሞዴሎች. እንደ EMF፣ Xtext የተለየ መጽሐፍ ሊሰጠው የሚገባ ርዕሰ ጉዳይ ነው፣ እና ሁሉንም አቅሞቹን አሁን ልንገልጸው እንኳን አንችልም።

1C:የኢንተርፕራይዝ ልማት መሳሪያዎች ሁለቱንም EMF እራሱን እና ሌሎች በርካታ የ Eclipse ሞዴሊንግ ፕሮጄክቶችን በንቃት ይጠቀማሉ። በተለይም Xtext ለእንደዚህ ያሉ 1C፡የኢንተርፕራይዝ ቋንቋዎች እንደ አብሮገነብ የፕሮግራም ቋንቋ እና የመጠይቅ ቋንቋ አንዱ የልማት መሳሪያዎች መሠረቶች አንዱ ነው። ሌላው የእነዚህ የልማት መሳሪያዎች መሰረት የሆነው Eclipse Handly ፕሮጀክት ነው, እሱም በበለጠ ዝርዝር ውስጥ እንኖራለን (ከተዘረዘሩት የ Eclipse ክፍሎች ውስጥ, እስካሁን ድረስ በጣም ትንሹ ነው).

Eclipse Handy, የ Eclipse ቴክኖሎጂ ከፍተኛ ደረጃ ፕሮጀክት ንዑስ ፕሮጀክት, በ 1 በ 2014C ለ Eclipse ፋውንዴሽን የመጀመሪያ ኮድ አስተዋጽዖ ተገኝቷል. ከዚያን ጊዜ ጀምሮ 1C የፕሮጀክቱን ልማት መደገፉን ቀጥሏል: Handly Committeeers የኩባንያው ሰራተኞች ናቸው. ፕሮጀክቱ ትንሽ ነው ፣ ግን በ Eclipse ውስጥ ልዩ ልዩ ቦታን ይይዛል-ዋናው ግቡ እጀታ ላይ የተመሰረቱ ሞዴሎችን ልማት መደገፍ ነው።

እንደ እጀታ/የሰውነት ፈሊጥ ያሉ በእጅ ላይ የተመሰረቱ ሞዴሎች መሰረታዊ የስነ-ህንፃ መርሆች ከላይ የሃብት ሞዴሉን እና የጃቫን ሞዴል እንደ ምሳሌ ተጠቅመው ተብራርተዋል። በተጨማሪም የመርጃ ሞዴል እና የጃቫ ሞዴል ለ Eclipse Java development tools (JDT) አስፈላጊ መሰረት መሆናቸውንም ተመልክቷል። እና ሁሉም ማለት ይቻላል Eclipse *DT ፕሮጀክቶች ከጄዲቲ ጋር የሚመሳሰል አርክቴክቸር ስላላቸው፣ በግርዶሽ መድረክ ላይ የተሰሩ ሁሉም አይዲኢዎች ካልሆነ ብዙዎችን በያዙት ላይ የተመሰረቱ ሞዴሎች ናቸው ቢባል ትልቅ ማጋነን አይሆንም። ለምሳሌ፣ Eclipse C/C++ Development Tooling (CDT) በጄዲቲ ውስጥ ካለው የጃቫ ሞዴል ጋር ተመሳሳይ ሚና የሚጫወተው በሲዲቲ አርክቴክቸር ውስጥ የሚሰራ C/C++ ሞዴል አለው።

ከሃንድሊ በፊት፣ Eclipse በእጅ ላይ የተመሰረቱ የቋንቋ ሞዴሎችን ለመገንባት ልዩ ቤተ-መጻሕፍት አልሰጠም። ዛሬ ያሉት ሞዴሎች በዋናነት የተፈጠሩት የጃቫ ሞዴል ኮድን (በመገልበጥ/መለጠፍ) በቀጥታ በማስተካከል ነው። በሚፈቅድባቸው ሁኔታዎች ውስጥ Eclipse Public License (EPL)። (በእርግጥ ፣ የ Eclipse የራሱ ፕሮጀክቶች ፣ ይህ ብዙውን ጊዜ የሕግ ጉዳይ አይደለም ፣ ይህም ለተዘጋው ምንጭ ምርቶች አይደለም ።) ከባህሪው ድንጋጤ በተጨማሪ ፣ ይህ ዘዴ ወደ ታዋቂ ችግሮች ያመራል-የኮድ ማባዛት በ አስተዋወቀ። ከስህተቶች ጋር በሚስማማበት ጊዜ, ወዘተ. ይባስ ብሎም የተገኙት ሞዴሎች "በራሳቸው ውስጥ ያሉ ነገሮች" ይቀራሉ እና አሁን ያለውን የመዋሃድ አቅም አይጠቀሙም. ነገር ግን የጋራ ጽንሰ-ሀሳቦችን እና ፕሮቶኮሎችን ለቋንቋ እጀታ-ተኮር ሞዴሎች መመደብ በ EMF ጉዳይ ላይ እንደተከሰተው ሁሉ ከእነሱ ጋር አብሮ ለመስራት እንደገና ጥቅም ላይ ሊውሉ የሚችሉ ክፍሎችን መፍጠር ይችላል።

ይህ ማለት ግርዶሽ ስለነዚህ ችግሮች ግንዛቤ አልነበረውም ማለት አይደለም. በ 2005 ተመለስ ማርቲን አሽሊማንየሲዲቲ ፕሮቶታይፕ የማዘጋጀት ልምድን በማጠቃለል፣ በማለት ተከራከረ በእጀታ ላይ የተመሰረቱ ሞዴሎችን ጨምሮ ለቋንቋ ሞዴሎች የጋራ መሠረተ ልማት የመፍጠር አስፈላጊነት። ነገር ግን, ብዙ ጊዜ እንደሚከሰት, ቅድሚያ በሚሰጣቸው ተግባራት ምክንያት, የእነዚህ ሃሳቦች ትግበራ በዚያን ጊዜ እጅ ላይ አልደረሰም. ይህ በእንዲህ እንዳለ፣ የ*DT ፕሮጀክቶች ኮድ ማባዛት አሁንም በግርዶሽ ውስጥ ካሉት ርእሶች መካከል አንዱ ነው።

በተወሰነ መልኩ፣ ሃንድሊ ፕሮጄክቱ እንደ EMF ተመሳሳይ ስራዎችን ለመፍታት የተነደፈ ነው፣ ነገር ግን በእጀታ ላይ ለተመሰረቱ ሞዴሎች እና በዋነኛነት ቋንቋዎች (ማለትም፣ የፕሮግራም አወጣጥ ቋንቋን የሚወክሉ)። ለ Handly ዋናዎቹ የንድፍ ግቦች የሚከተሉት ናቸው።

  • የርዕሰ-ጉዳዩን ዋና ዋና ማጠቃለያዎች ማግለል.
  • ጥረቱን መቀነስ እና የቋንቋ አያያዝ-ተኮር ሞዴሎችን በኮድ እንደገና ጥቅም ላይ በማዋል ጥራትን ማሻሻል።
  • የተዋሃደ የሜታ-ደረጃ ኤፒአይ ለተፈጠሩት ሞዴሎች ማቅረብ፣ በቋንቋ እጀታ ላይ ከተመሰረቱ ሞዴሎች ጋር የሚሰሩ የጋራ IDE ክፍሎችን መፍጠር ያስችላል።
  • ተለዋዋጭነት እና መለካት.
  • ከ Xtext ጋር (በተለየ ንብርብር) ውህደት.

የጋራ ጽንሰ-ሀሳቦችን እና ፕሮቶኮሎችን ለማጉላት፣ አሁን ያሉት የቋንቋ አያያዝ-ተኮር ሞዴሎች አተገባበር ተተነተነ። በሃንድly የቀረቡት ዋና መገናኛዎች እና የመሠረት አተገባበር በስእል 8-XNUMX ይታያሉ። XNUMX.

ግርዶሽ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ
ሩዝ. 8. የጋራ መገናኛዎች እና የሃንድly አካላት መሰረታዊ አተገባበር

የIElement በይነገጽ የአንድን ኤለመንት እጀታ ይወክላል እና በሁሉም ሃንድly ላይ የተመሰረቱ ሞዴሎች አካላት የተለመደ ነው። የአብስትራክት ክፍል ኤለመንት አጠቃላይ እጀታ/የሰውነት ዘዴን ተግባራዊ ያደርጋል (ስእል 9)።

ግርዶሽ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ
ሩዝ. 9. የመያዣ / አካል አጠቃላይ እና አጠቃላይ አተገባበር

በተጨማሪም ሃንድሊ የሞዴል ክፍሎችን ለመለወጥ አጠቃላይ የማሳወቂያ ዘዴን ያቀርባል (ምስል 10)። እንደሚመለከቱት፣ በጥቅሉ ሲታይ፣ በንብረት ሞዴል እና በጃቫ ሞዴል ውስጥ ከተተገበሩት የማሳወቂያ ዘዴዎች ጋር ተመሳሳይ ነው፣ እና IelementDeltaን ለተዋሃደ የንጥል ለውጥ መረጃን ይጠቀማል።

ግርዶሽ ለ1C፡የኢንተርፕራይዝ ልማት መሳሪያዎች የቴክኖሎጂ መድረክ
ሩዝ. 10. የሃንድly ማሳወቂያ ዘዴ የተለመዱ መገናኛዎች እና መሰረታዊ አተገባበር

ከላይ የተመለከተው የሃንድሊ ክፍል (ምስል 9 እና 10) ማንኛውንም በእጅ ላይ የተመሰረቱ ሞዴሎችን ለመወከል ሊያገለግል ይችላል። ለመፍጠር የቋንቋ ሞዴሎች ፣ ፕሮጀክቱ ተጨማሪ ተግባራትን ያቀርባል - በተለይም የጋራ በይነገጾች እና የመሠረት ትግበራዎች የምንጭ ጽሑፍ መዋቅር አካላት ፣ የሚባሉት ምንጭ አባሎች (ምስል 8) የISourceFile በይነገጽ የምንጭ ፋይልን ይወክላል፣ እና ISourceConstruct በምንጭ ፋይሉ ውስጥ ያለውን አካል ይወክላል። የ አብስትራክት ክፍሎች SourceFile እና SourceConstruct ከምንጭ ፋይሎች እና ክፍሎቻቸው ጋር አብሮ ለመስራት ሁለንተናዊ ስልቶችን ይተገብራሉ፣ ለምሳሌ ከጽሑፍ ማቋረጫዎች ጋር አብሮ መስራት፣ ከምንጩ ጽሑፍ ውስጥ ከአባል መጋጠሚያዎች ጋር ማያያዝ፣ ሞዴሉን አሁን ካለው የስራ ቅጂ ቋት ይዘቶች ጋር ማስታረቅ፣ ወዘተ. . እነዚህን ስልቶች መተግበር ብዙ ጊዜ በጣም ፈታኝ ነው፣ እና ሃንድሊ ጥራት ያለው መሰረታዊ አተገባበርን በማቅረብ እጀታ ላይ የተመሰረቱ የቋንቋ ሞዴሎችን ለማዘጋጀት የሚደረገውን ጥረት በእጅጉ ይቀንሳል።

ከላይ ከተዘረዘሩት ዋና ስልቶች በተጨማሪ ሃንድሊ የጽሑፍ ቋት እና ቅጽበተ-ፎቶ መሠረተ ልማትን፣ ከምንጭ ኮድ አርታዒዎች ጋር ለመዋሃድ ድጋፍን (ከሳጥን ውጭ ከ Xtext አርታ editor ጋር መቀላቀልን ጨምሮ) እንዲሁም የሚሰሩ አንዳንድ የተለመዱ የዩአይኤ ክፍሎችን ያቀርባል። በሃንድሊ ሞዴሎች እንደ የዝርዝር ማዕቀፍ. አቅሙን ለማሳየት ፕሮጀክቱ በሃንድሊ ላይ የጃቫ ሞዴል መተግበርን ጨምሮ በርካታ ምሳሌዎችን ይሰጣል። (በጄዲቲ ውስጥ ካለው የጃቫ ሞዴል ሙሉ አተገባበር ጋር ሲነፃፀር ይህ ሞዴል ሆን ተብሎ ለተሻለ ግልጽነት በተወሰነ ደረጃ ቀለል ያለ ነው።)

ቀደም ሲል እንደተገለፀው የሃንድሊ የመጀመሪያ ንድፍ እና ልማት በከፍተኛ ሁኔታ እና በተለዋዋጭነት ላይ ያተኮረ ነበር እና ቀጥሏል።

በመርህ ደረጃ, በእጀታ ላይ የተመሰረቱ ሞዴሎች "በንድፍ" በደንብ ይለካሉ. ለምሳሌ, እጀታ / የሰውነት ፈሊጥ በአምሳያው የሚበላውን ማህደረ ትውስታ መጠን እንዲገድቡ ያስችልዎታል. ግን አንዳንድ ልዩነቶችም አሉ. ስለዚህ ፣ Handly ለ scalability በሚሞከርበት ጊዜ ፣ ​​​​በማሳወቂያው ዘዴ ትግበራ ላይ ችግር ታይቷል - ብዙ ንጥረ ነገሮችን ሲቀይሩ ፣ ዴልታዎችን መገንባት በጣም ብዙ ጊዜ ወስዷል። ተመሳሳዩ ችግር በጄዲቲ ጃቫ ሞዴል ውስጥ እንዳለ ተገለጠ ፣ ከዚያ ተጓዳኝ ኮድ በአንድ ጊዜ ተስተካክሏል። በሃንድly ላይ ስህተት አስተካክለናል እና ለJDT ተመሳሳይ የሆነ ፕላስተር አዘጋጅተናል፣ እሱም በአመስጋኝነት ተቀበለው። ሃንድlyን ወደ ነባር ሞዴል ትግበራዎች መተግበሩ ጠቃሚ ሊሆን የሚችልበት አንድ ምሳሌ ብቻ ነው፣ ምክንያቱም እንዲህ ያለውን ስህተት በአንድ ቦታ ብቻ ማስተካከል ስለሚቻል።

ሃንድሊ ወደ ነባር የሞዴል አተገባበር በቴክኒካል ተግባራዊ ለማድረግ ቤተ መፃህፍቱ በጣም ተለዋዋጭ መሆን አለበት። ዋናው ችግር ከአምሳያው ኤፒአይ ጋር ወደ ኋላ ተኳሃኝነትን መጠበቅ ነው። ይህ ችግር የተፈታው እ.ኤ.አ ምቹ 0.5 በገንቢው የተገለጸውን እና ሙሉ በሙሉ የሚቆጣጠረውን ሞዴል-ተኮር ኤፒአይ በቤተ-መጽሐፍት ከሚቀርበው የተዋሃደ የሜታ-ደረጃ ኤፒአይ በግልጽ በመለየት። ይህ ሃንድሊ ወደ ነባር አተገባበር መተግበር በቴክኒካል እንዲቻል ብቻ ሳይሆን ለአዲሱ ሞዴል ገንቢ በኤፒአይ ዲዛይን ላይ ብዙ ነፃነትን ይሰጣል።

ተለዋዋጭነት ሌሎች ገጽታዎችም አሉት. ለምሳሌ ሃንድሊ በአምሳያው መዋቅር ላይ ምንም ገደቦችን አይጥልም እና አጠቃላይ ዓላማ ያላቸውን ቋንቋዎች እንዲሁም ጎራ-ተኮር ቋንቋዎችን ለመቅረጽ ሊያገለግል ይችላል። የምንጭ ፋይል አወቃቀሩን በሚገነቡበት ጊዜ ሃንድሊ ምንም አይነት የ AST ውክልና አይገልጽም እና በመርህ ደረጃ የ AST እራሱን እንኳን አይጠይቅም, ስለዚህ ከማንኛውም የመተንተን ዘዴ ጋር ተኳሃኝነትን ያረጋግጣል. በመጨረሻም ሃንድሊ ከ Eclipse የስራ ቦታ ጋር ሙሉ ውህደትን ይደግፋል፣ ነገር ግን ከፋይል ስርዓቶች ጋር በመዋሃዱ በቀጥታ መስራት ይችላል። Eclipse ፋይል ስርዓት (ኢኤፍኤስ)

የአሁኑ ስሪት ምቹ 0.6 በታህሳስ 2016 ተለቋል። ምንም እንኳን ፕሮጀክቱ በአሁኑ ጊዜ የመታቀፉን ሁኔታ እና ኤፒአይ ገና ያልተስተካከለ ቢሆንም ፣ Handly ቀድሞውኑ ወደ “ቅድመ አሳዳጊዎች” ሚና በገቡ ሁለት ትላልቅ የንግድ ምርቶች ውስጥ ጥቅም ላይ ይውላል እና እኔ እላለሁ ፣ ያድርጉት እስካሁን አልጸጸትም.

ከላይ እንደተገለፀው ከእነዚህ ምርቶች ውስጥ አንዱ 1C: የኢንተርፕራይዝ ልማት መሳሪያዎች ነው, ሃንድሊ ገና ከመጀመሪያው ጀምሮ ጥቅም ላይ የሚውለው የ 1C: ኢንተርፕራይዝ ቋንቋዎችን እንደ የተከተተ የፕሮግራም ቋንቋ እና የመጠይቅ ቋንቋን ለመቅረጽ ነው. ሌላ ምርት በሕዝብ ዘንድ ብዙም አይታወቅም። ይህ ኮዳሲፕ ስቱዲዮበቼክ ኩባንያ ኮዳሲፕ በራሱ እና በደንበኞቹ ጥቅም ላይ የዋለ የተቀናጀ የንድፍ አካባቢ ለትግበራ-ተኮር መመሪያ-ስብስብ ማቀነባበሪያዎች (ASIP) የ AMD, AVG, ሞባይል, ሲግማ ዲዛይነሮች. ኮዳሲፕ ከ2015 ጀምሮ በሃንድly 0.2 ጀምሮ ሃንድሊ በምርት ላይ ሲጠቀም ቆይቷል። የኮዳሲፕ ስቱዲዮ የቅርብ ጊዜ ልቀት በአሁኑ ጊዜ በሰኔ 0.5 የተለቀቀውን 2016 ስሪት ይጠቀማል። በኮዳሲፕ የ IDE እድገትን የሚመራው Ondřej Ilčík ከፕሮጀክቱ ጋር ተገናኝቷል, "የሶስተኛ ወገን አሳዳጊ" ወክሎ ወሳኝ ግብረ መልስ ይሰጣል. ለአንዱ የሃንድሊ ምሳሌዎች የጃቫ ሞዴል UI ንብርብርን (~ 4000 መስመሮችን) በመተግበር ለፕሮጀክቱ እድገት ቀጥተኛ አስተዋፅኦ ለማድረግ የተወሰነ ነፃ ጊዜ ማግኘት ችሏል። ስለ Handly by adapters አጠቃቀም የበለጠ የመጀመሪያ እጅ መረጃ ለማግኘት፣ ይመልከቱ ስኬት ታሪኮች ፕሮጀክት.

ስሪት 1.0 ከተለቀቀ በኋላ ለኤፒአይ መረጋጋት ዋስትና እና ፕሮጀክቱ ከክትባቱ ሁኔታ ከወጣ በኋላ ሃንድሊ አዳዲስ አሳዳጊዎች እንደሚኖረው ተስፋ እናደርጋለን። እስከዚያው ድረስ፣ ፕሮጀክቱ በዓመት ሁለት "ትልቅ" ልቀቶች በጁን (በተመሳሳይ ግርዶሽ የሚለቀቅበት ቀን) እና ዲሴምበር ላይ ኤፒአይን የበለጠ መሞከር እና ማጥራት ቀጥሏል፣ ይህም ጉዲፈቻዎች ሊተማመኑበት የሚችል ሊተነበይ የሚችል የጊዜ ሰሌዳ ይሰጣል። በተጨማሪም የፕሮጀክቱ "የሳንካ መጠን" በቋሚ ዝቅተኛ ደረጃ ላይ እንደሚቆይ እና Handly ከመጀመሪያዎቹ ስሪቶች ጀምሮ በቅድመ አሳዳጊዎች ምርቶች ላይ በአስተማማኝ ሁኔታ እየሰራ መሆኑን ማከል እንችላለን። ከ Eclipse Handly ጋር የበለጠ ለማወቅ፣ መጠቀም ይችላሉ። ትምህርት መጀመር и የስነ-ሕንጻ አጠቃላይ እይታ.

ምንጭ: hab.com

አስተያየት ያክሉ