1Cக்கான தொழில்நுட்ப தளமாக கிரகணம்: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ்

ஒருவேளை கிரகணம் நீண்ட காலமாக சிறப்பு அறிமுகம் தேவையில்லை. எக்லிப்ஸ் ஜாவா டெவலப்மென்ட் டூல்ஸ் மூலம் பலர் எக்லிப்ஸை நன்கு அறிந்திருக்கிறார்கள் (ஜே.டி.டி.) இந்த பிரபலமான திறந்த மூல ஜாவா ஐடிஇ தான் பெரும்பாலான டெவலப்பர்கள் "எக்லிப்ஸ்" என்ற வார்த்தையுடன் தொடர்புபடுத்துகின்றனர். இருப்பினும், எக்லிப்ஸ் என்பது டெவலப்மென்ட் டூல்களை (எக்லிப்ஸ் பிளாட்ஃபார்ம்) ஒருங்கிணைப்பதற்கான விரிவாக்கக்கூடிய தளமாகும். கிரகணம் என்பது எக்லிப்ஸ் ப்ராஜெக்ட் ஆகும், இது எக்லிப்ஸ் பிளாட்ஃபார்ம் மற்றும் ஜேடிடியின் வளர்ச்சியை ஒருங்கிணைக்கும் உயர்மட்ட திட்டமாகும், மேலும் அந்த வளர்ச்சியின் விளைவாக எக்லிப்ஸ் எஸ்டிகே. இறுதியாக, எக்லிப்ஸ் என்பது ஒரு பெரிய சமூக திட்டங்களுடன் கூடிய திறந்த மூல அறக்கட்டளை ஆகும், இவை அனைத்தும் ஜாவாவில் எழுதப்பட்டவை அல்லது மேம்பாட்டுக் கருவிகளுடன் தொடர்புடையவை அல்ல (எடுத்துக்காட்டாக, திட்டங்கள் கிரகணம் IoT и கிரகண அறிவியல்) கிரகண உலகம் மிகவும் மாறுபட்டது.

இயற்கையின் மேலோட்டமான இந்த கட்டுரையில், ஒருங்கிணைந்த மேம்பாட்டு கருவிகளை உருவாக்குவதற்கான ஒரு தளமாக கிரகண கட்டிடக்கலையின் சில அடிப்படைகளைப் பார்க்க முயற்சிப்போம் மற்றும் தொழில்நுட்பத்தின் அடித்தளத்தை உருவாக்கும் கிரகண கூறுகளின் ஆரம்ப யோசனையை வழங்குவோம். "புதிய கட்டமைப்பாளர்" 1C க்கான தளம்: எண்டர்பிரைஸ். 1C:எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ். நிச்சயமாக, அத்தகைய மதிப்பாய்வு தவிர்க்க முடியாமல் பெரும்பாலும் மேலோட்டமாகவும் குறைவாகவும் இருக்கும், ஏனெனில் நாங்கள் இலக்கு பார்வையாளர்களாக எக்லிப்ஸ் டெவலப்பர்கள் மீது மட்டும் கவனம் செலுத்தவில்லை. இருப்பினும், அனுபவம் வாய்ந்த எக்லிப்ஸ் டெவலப்பர்கள் கூட கட்டுரையில் சுவாரஸ்யமான தகவல்களைக் கண்டுபிடிக்க முடியும் என்று நாங்கள் நம்புகிறோம். எடுத்துக்காட்டாக, ஒப்பீட்டளவில் புதிய மற்றும் அதிகம் அறியப்படாத திட்டமான "கிரகணத்தின் ரகசியங்களில்" ஒன்றைப் பற்றி பேசுவோம். எக்லிப்ஸ் ஹேண்ட்லி, இது 1C ஆல் நிறுவப்பட்டு ஆதரிக்கப்பட்டது.
1Cக்கான தொழில்நுட்ப தளமாக கிரகணம்: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ்

எக்லிப்ஸ் கட்டிடக்கலை அறிமுகம்

உதாரணத்தைப் பயன்படுத்தி கிரகணக் கட்டிடக்கலையின் சில பொதுவான அம்சங்களை முதலில் பார்க்கலாம் எக்லிப்ஸ் ஜாவா மேம்பாட்டு கருவிகள் (JDT). உதாரணமாக JDT தேர்வு தற்செயலானது அல்ல. கிரகணத்தில் தோன்றும் முதல் ஒருங்கிணைந்த வளர்ச்சி சூழல் இதுவாகும். Eclipse C/C++ டெவலப்மென்ட் டூலிங் (CDT) போன்ற பிற *DT எக்லிப்ஸ் திட்டங்கள் பின்னர் உருவாக்கப்பட்டு, அடிப்படை கட்டிடக்கலை கோட்பாடுகள் மற்றும் தனிப்பட்ட மூல குறியீடு துண்டுகள் இரண்டையும் JDT இலிருந்து கடன் வாங்குகின்றன. 1C: எண்டர்பிரைஸ் டெவலப்மென்ட் டூல்ஸ் உட்பட, எக்லிப்ஸ் பிளாட்ஃபார்மின் மேல் கட்டப்பட்ட எந்த ஐடிஇக்கும் JDTயில் குறிப்பிடப்பட்டுள்ள கட்டிடக்கலையின் அடிப்படைகள் இன்றுவரை பொருத்தமானவை.

முதலாவதாக, குறிப்பிட்ட நிரலாக்க மொழிகளை ஆதரிக்க வடிவமைக்கப்பட்ட செயல்பாட்டிலிருந்து மொழி-சுயாதீனமான செயல்பாட்டைப் பிரிப்பது மற்றும் தொடர்புடைய கூறுகளிலிருந்து UI-சுயாதீனமான "கோர்" கூறுகளைப் பிரிப்பதன் மூலம் கிரகணம் மிகவும் தெளிவான கட்டடக்கலை அடுக்குகளால் வகைப்படுத்தப்படுகிறது என்பதைக் கவனத்தில் கொள்ள வேண்டும். ஆதரவு பயனர் இடைமுகத்துடன்.

எனவே, எக்லிப்ஸ் பிளாட்ஃபார்ம் ஒரு பொதுவான, மொழி-சுயாதீன உள்கட்டமைப்பை வரையறுக்கிறது, மேலும் ஜாவா டெவலப்மெண்ட் கருவிகள் முழு அம்சமான ஜாவா ஐடிஇயை கிரகணத்தில் சேர்க்கிறது. எக்லிப்ஸ் பிளாட்ஃபார்ம் மற்றும் ஜேடிடி இரண்டும் பல கூறுகளைக் கொண்டிருக்கின்றன, அவை ஒவ்வொன்றும் ஒரு UI-சுயாதீனமான "கோர்" அல்லது ஒரு UI லேயருக்கு சொந்தமானது (படம் 1).

1Cக்கான தொழில்நுட்ப தளமாக கிரகணம்: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ்
அரிசி. 1. எக்லிப்ஸ் பிளாட்ஃபார்ம் மற்றும் ஜேடிடி

கிரகண தளத்தின் முக்கிய கூறுகளை பட்டியலிடலாம்:

  • நிகழ்நேர - செருகுநிரல் உள்கட்டமைப்பை வரையறுக்கிறது. கிரகணம் ஒரு மட்டு கட்டிடக்கலை மூலம் வகைப்படுத்தப்படுகிறது. அடிப்படையில், கிரகணம் என்பது "நீட்டிப்பு புள்ளிகள்" மற்றும் "நீட்டிப்புகள்" ஆகியவற்றின் தொகுப்பாகும்.
  • பணியிடம் - ஒன்று அல்லது அதற்கு மேற்பட்ட திட்டங்களை நிர்வகிக்கிறது. ஒரு திட்டமானது கோப்பு முறைமைக்கு நேரடியாக வரைபடமாக்கப்பட்ட கோப்புறைகள் மற்றும் கோப்புகளைக் கொண்டுள்ளது.
  • நிலையான விட்ஜெட் கருவித்தொகுப்பு (SWT) - இயங்குதளத்துடன் ஒருங்கிணைக்கப்பட்ட அடிப்படை பயனர் இடைமுக கூறுகளை வழங்குகிறது.
  • ஜேஃபேஸ் — SWTயின் மேல் கட்டப்பட்ட பல UI கட்டமைப்புகளை வழங்குகிறது.
  • ஒர்க்பென்ச் - எக்லிப்ஸ் யுஐ முன்னுதாரணத்தை வரையறுக்கிறது: எடிட்டர்கள், பார்வைகள், முன்னோக்குகள்.

பிழைத்திருத்தம், ஒப்பிடுதல், தேடல் மற்றும் குழு உள்ளிட்ட ஒருங்கிணைந்த மேம்பாட்டுக் கருவிகளை உருவாக்குவதற்கு எக்லிப்ஸ் பிளாட்ஃபார்ம் பல பயனுள்ள கூறுகளையும் வழங்குகிறது என்று சொல்ல வேண்டும். மூலக் குறியீட்டின் "ஸ்மார்ட் எடிட்டர்களை" உருவாக்குவதற்கான அடிப்படையான JFace Text பற்றி சிறப்புக் குறிப்பிட வேண்டும். துரதிர்ஷ்டவசமாக, இந்த கூறுகள் மற்றும் UI அடுக்கு கூறுகளின் மேலோட்டமான ஆய்வு கூட இந்த கட்டுரையின் வரம்பிற்குள் சாத்தியமில்லை, எனவே இந்த பிரிவின் எஞ்சிய பகுதியில் முக்கிய "முக்கிய" கூறுகளின் கண்ணோட்டத்திற்கு நம்மை கட்டுப்படுத்துவோம். எக்லிப்ஸ் பிளாட்ஃபார்ம் மற்றும் ஜே.டி.டி.

முக்கிய இயக்க நேரம்

Eclipse செருகுநிரல் உள்கட்டமைப்பு அடிப்படையாக கொண்டது OSGi மற்றும் திட்டத்தால் வழங்கப்படுகிறது எக்லிப்ஸ் ஈக்வினாக்ஸ். ஒவ்வொரு எக்லிப்ஸ் செருகுநிரலும் ஒரு OSGi தொகுப்பு ஆகும். OSGi விவரக்குறிப்பு, குறிப்பாக, பதிப்பு மற்றும் சார்புத் தீர்மானத்திற்கான வழிமுறைகளை வரையறுக்கிறது. இந்த நிலையான வழிமுறைகளுக்கு கூடுதலாக, Equinox கருத்தை அறிமுகப்படுத்துகிறது விரிவாக்க புள்ளிகள். ஒவ்வொரு செருகுநிரலும் அதன் சொந்த நீட்டிப்பு புள்ளிகளை வரையறுக்கலாம், மேலும் அதே அல்லது பிற செருகுநிரல்களால் வரையறுக்கப்பட்ட நீட்டிப்பு புள்ளிகளைப் பயன்படுத்தி கணினியில் கூடுதல் செயல்பாட்டை ("நீட்டிப்புகள்") அறிமுகப்படுத்தலாம். OSGi மற்றும் Equinox வழிமுறைகள் பற்றிய எந்த விரிவான விளக்கமும் இந்தக் கட்டுரையின் எல்லைக்கு அப்பாற்பட்டது. எக்லிப்ஸில் உள்ள மாடுலரைசேஷன் மொத்தமானது (இயக்க நேரம் உட்பட எந்த துணை அமைப்பும் ஒன்று அல்லது அதற்கு மேற்பட்ட செருகுநிரல்களைக் கொண்டிருக்கும்) மற்றும் எக்லிப்ஸில் உள்ள எல்லாமே நீட்டிப்பு என்பதை மட்டும் கவனத்தில் கொள்வோம். மேலும், இந்த கொள்கைகள் OSGi அறிமுகப்படுத்தப்படுவதற்கு நீண்ட காலத்திற்கு முன்பே கிரகண கட்டமைப்பில் உட்பொதிக்கப்பட்டன (அந்த நேரத்தில் அவர்கள் OSGi ஐப் போலவே தங்கள் சொந்த தொழில்நுட்பத்தைப் பயன்படுத்தினர்).

முக்கிய பணியிடம்

எக்லிப்ஸ் பிளாட்ஃபார்ம் மேல் கட்டப்பட்ட எந்த ஒருங்கிணைக்கப்பட்ட வளர்ச்சி சூழலும் எக்லிப்ஸ் பணியிடத்துடன் வேலை செய்கிறது. இது பொதுவாக IDE இல் உருவாக்கப்பட்ட பயன்பாட்டின் மூலக் குறியீட்டைக் கொண்டிருக்கும் பணியிடமாகும். பணியிடம் நேரடியாக கோப்பு முறைமைக்கு வரைபடங்கள் மற்றும் கோப்புறைகள் மற்றும் கோப்புகளைக் கொண்ட திட்டப்பணிகளைக் கொண்டுள்ளது. இந்த திட்டங்கள், கோப்புறைகள் மற்றும் கோப்புகள் என்று அழைக்கப்படுகின்றன வளங்கள் பணியிடம். எக்லிப்ஸில் உள்ள பணியிட செயலாக்கமானது கோப்பு முறைமையுடன் தொடர்புடைய தற்காலிக சேமிப்பாக செயல்படுகிறது, இது வள மரத்தின் பயணத்தை கணிசமாக விரைவுபடுத்துகிறது. கூடுதலாக, பணியிடம் உட்பட பல கூடுதல் சேவைகளை வழங்குகிறது வள மாற்றங்களுக்கான அறிவிப்பு வழிமுறை и அதிகரிக்கும் பில்டர் உள்கட்டமைப்பு.

கோர் ரிசோர்சஸ் கூறு (org.eclipse.core.resources plugin) பணியிடத்தையும் அதன் ஆதாரங்களையும் ஆதரிக்கும் பொறுப்பாகும். குறிப்பாக, இந்த கூறு படிவத்தில் பணியிடத்திற்கு நிரல் அணுகலை வழங்குகிறது வள மாதிரிகள். இந்த மாதிரியுடன் திறம்பட செயல்பட, வாடிக்கையாளர்களுக்கு ஒரு ஆதாரத்திற்கான இணைப்பை வழங்குவதற்கான எளிய வழி தேவை. இந்த வழக்கில், வாடிக்கையாளர் அணுகலில் இருந்து மாதிரியில் உள்ள வளத்தின் நிலையை நேரடியாக சேமிக்கும் பொருளை மறைக்க விரும்பத்தக்கதாக இருக்கும். இல்லையெனில், எடுத்துக்காட்டாக, ஒரு கோப்பை நீக்கினால், வாடிக்கையாளர் மாதிரியில் இல்லாத ஒரு பொருளைத் தொடர்ந்து வைத்திருக்கலாம். கிரகணம் என்ற ஒன்றைப் பயன்படுத்தி இந்தப் பிரச்சனையைத் தீர்க்கிறது கையாள வளம். கைப்பிடி ஒரு திறவுகோலாக செயல்படுகிறது (இது பணியிடத்தில் உள்ள வளத்திற்கான பாதையை மட்டுமே அறியும்) மற்றும் உள் மாதிரி பொருளுக்கான அணுகலை முழுமையாகக் கட்டுப்படுத்துகிறது, இது வளத்தின் நிலையைப் பற்றிய தகவல்களை நேரடியாகச் சேமிக்கிறது. இந்த வடிவமைப்பு வடிவத்தின் மாறுபாடு ஆகும் கைப்பிடி/உடல்.

அரிசி. ரிசோர்ஸ் மாடலுக்குப் பயன்படுத்தப்படும் கைப்பிடி/உடல் இடியோமை படம் 2 விளக்குகிறது. IResource இடைமுகம் ஒரு வளத்தின் கைப்பிடியைக் குறிக்கிறது மற்றும் இந்த இடைமுகத்தைச் செயல்படுத்தும் Resource class போலல்லாமல் API ஆகும், மேலும் API கள் அல்லாத உடலைக் குறிக்கும் ResourceInfo வகுப்பு. பணியிட ரூட்டுடன் தொடர்புடைய ஆதாரத்திற்கான பாதையை கைப்பிடிக்கு மட்டுமே தெரியும் மற்றும் ஆதாரத் தகவலுக்கான இணைப்பைக் கொண்டிருக்கவில்லை என்பதை நாங்கள் வலியுறுத்துகிறோம். ஆதாரத் தகவல் பொருள்கள் "உறுப்பு மரம்" என்று அழைக்கப்படும். இந்த தரவு அமைப்பு நினைவகத்தில் முழுமையாகப் பொருள் கொள்ளப்படுகிறது. ஒரு கைப்பிடியுடன் தொடர்புடைய ஆதாரத் தகவல் நிகழ்வைக் கண்டறிய, உறுப்பு மரம் அந்தக் கைப்பிடியில் சேமிக்கப்பட்ட பாதையின்படி பயணிக்கப்படுகிறது.

1Cக்கான தொழில்நுட்ப தளமாக கிரகணம்: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ்
அரிசி. 2. IResource மற்றும் ResourceInfo

நாம் பின்னர் பார்ப்போம், ஆதார மாதிரியின் அடிப்படை வடிவமைப்பு (நாம் அதை கைப்பிடி அடிப்படையிலானது என்று அழைக்கலாம்) மற்ற மாடல்களுக்கும் கிரகணத்தில் பயன்படுத்தப்படுகிறது. இப்போதைக்கு, இந்த வடிவமைப்பின் சில தனித்துவமான பண்புகளை பட்டியலிடலாம்:

  • கைப்பிடி ஒரு மதிப்பு பொருள். மதிப்புப் பொருள்கள் என்பது மாறாத பொருள்கள், அதன் சமத்துவம் அடையாளத்தின் அடிப்படையில் இல்லை. அத்தகைய பொருட்களை ஹாஷ் செய்யப்பட்ட கொள்கலன்களில் பாதுகாப்பாக ஒரு திறவுகோலாகப் பயன்படுத்தலாம். கைப்பிடியின் பல நிகழ்வுகள் ஒரே வளத்தைக் குறிப்பிடலாம். அவற்றை ஒப்பிட, நீங்கள் சமமான (பொருள்) முறையைப் பயன்படுத்த வேண்டும்.
  • கைப்பிடி ஒரு வளத்தின் நடத்தையை வரையறுக்கிறது, ஆனால் வளத்தின் நிலையைப் பற்றிய தகவல்களைக் கொண்டிருக்கவில்லை (அது சேமிக்கும் ஒரே தரவு "விசை", வளத்திற்கான பாதை).
  • கைப்பிடி இல்லாத ஒரு ஆதாரத்தைக் குறிக்கலாம் (இன்னும் உருவாக்கப்படாத ஆதாரம் அல்லது ஏற்கனவே நீக்கப்பட்ட ஆதாரம்). IResource.exists() முறையைப் பயன்படுத்தி ஒரு வளத்தின் இருப்பை சரிபார்க்கலாம்.
  • சில செயல்பாடுகள் கைப்பிடியில் சேமிக்கப்பட்ட தகவல்களின் அடிப்படையில் மட்டுமே செயல்படுத்தப்படலாம் (கைப்பிடி மட்டுமே செயல்பாடுகள் என்று அழைக்கப்படும்). எடுத்துக்காட்டுகள் IResource.getParent(), getFullPath(), போன்றவை. அத்தகைய செயல்பாடு வெற்றிபெற வளம் இருக்க வேண்டிய அவசியமில்லை. வெற்றிபெற ஒரு ஆதாரம் இருக்க வேண்டிய செயல்பாடுகள், ஆதாரம் இல்லை என்றால், CoreException ஐ வீசுகிறது.

எக்லிப்ஸ், பணியிட வள மாற்றங்களை அறிவிப்பதற்கான திறமையான பொறிமுறையை வழங்குகிறது (படம் 3). Eclipse IDE க்குள் செய்யப்படும் செயல்களின் விளைவாகவோ அல்லது கோப்பு முறைமையுடன் ஒத்திசைத்ததன் விளைவாகவோ வளங்கள் மாறலாம். இரண்டு சந்தர்ப்பங்களிலும், அறிவிப்புகளுக்கு குழுசேரும் வாடிக்கையாளர்களுக்கு "வள டெல்டாக்கள்" வடிவத்தில் மாற்றங்கள் பற்றிய விரிவான தகவல்கள் வழங்கப்படுகின்றன. ஒரு டெல்டா ஒரு பணியிட வளத்தின் (துணை) மரத்தின் இரண்டு நிலைகளுக்கு இடையிலான மாற்றங்களை விவரிக்கிறது மற்றும் அது ஒரு மரமாகும், ஒவ்வொரு முனையும் ஒரு வளத்திற்கான மாற்றத்தை விவரிக்கிறது மற்றும் குழந்தை வளங்களில் ஏற்படும் மாற்றங்களை விவரிக்கும் அடுத்த கட்டத்தில் டெல்டாக்களின் பட்டியலைக் கொண்டுள்ளது.

1Cக்கான தொழில்நுட்ப தளமாக கிரகணம்: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ்
அரிசி. 3. IResourceChangeEvent மற்றும் IResourceDelta

வள டெல்டாக்களின் அடிப்படையிலான அறிவிப்பு பொறிமுறையானது பின்வரும் பண்புகளைக் கொண்டுள்ளது:

  • டெல்டா சுழல்நிலை கலவையின் கொள்கையைப் பயன்படுத்தி கட்டமைக்கப்பட்டுள்ளதால், ஒரு மாற்றம் மற்றும் பல மாற்றங்கள் ஒரே கட்டமைப்பைப் பயன்படுத்தி விவரிக்கப்பட்டுள்ளன. சந்தாதாரர் வாடிக்கையாளர்கள் டெல்டா மரத்தின் மூலம் சுழல்நிலை வம்சாவளியைப் பயன்படுத்தி வள மாற்ற அறிவிப்புகளைச் செயல்படுத்தலாம்.
  • டெல்டாவில் அதன் இயக்கம் மற்றும்/அல்லது அதனுடன் தொடர்புடைய "குறிப்பான்களில்" மாற்றங்கள் உட்பட, வளத்தில் ஏற்படும் மாற்றங்கள் பற்றிய முழுமையான தகவல்கள் உள்ளன (உதாரணமாக, தொகுத்தல் பிழைகள் குறிப்பான்களாக குறிப்பிடப்படுகின்றன).
  • ஆதார குறிப்புகள் கைப்பிடி மூலம் செய்யப்படுவதால், டெல்டா இயற்கையாகவே தொலைநிலை வளத்தைக் குறிப்பிடலாம்.

நாம் விரைவில் பார்ப்பது போல, வள மாதிரி மாற்ற அறிவிப்பு பொறிமுறையின் வடிவமைப்பின் முக்கிய கூறுகள் மற்ற கைப்பிடி அடிப்படையிலான மாதிரிகளுக்கும் பொருத்தமானவை.

ஜேடிடி கோர்

எக்லிப்ஸ் பணியிட ஆதார மாதிரி ஒரு அடிப்படை மொழி-அஞ்ஞான மாதிரி. JDT கோர் கூறு (plugin org.eclipse.jdt.core) ஜாவா கண்ணோட்டத்தில் பணியிட கட்டமைப்பை வழிநடத்துவதற்கும் பகுப்பாய்வு செய்வதற்கும் ஒரு API ஐ வழங்குகிறது, இது "ஜாவா மாடல்" (ஜாவா மாதிரி) இந்த API ஆனது ஜாவா உறுப்புகளின் அடிப்படையில் வரையறுக்கப்படுகிறது, இது அடிப்படை ஆதார மாதிரி API க்கு மாறாக, கோப்புறைகள் மற்றும் கோப்புகளின் அடிப்படையில் வரையறுக்கப்படுகிறது. ஜாவா உறுப்பு மரத்தின் முக்கிய இடைமுகங்கள் படத்தில் காட்டப்பட்டுள்ளன. 4.

1Cக்கான தொழில்நுட்ப தளமாக கிரகணம்: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ்
அரிசி. 4. ஜாவா மாதிரி கூறுகள்

ஜாவா மாதிரியானது ஆதார மாதிரியின் அதே கைப்பிடி/உடல் ஐடியாமைப் பயன்படுத்துகிறது (படம் 5). IJavaElement என்பது கைப்பிடி, மற்றும் JavaElementInfo உடலின் பாத்திரத்தை வகிக்கிறது. IJavaElement இடைமுகம் அனைத்து ஜாவா உறுப்புகளுக்கும் பொதுவான ஒரு நெறிமுறையை வரையறுக்கிறது. அதன் சில முறைகள் கைப்பிடிக்கு மட்டுமே: getElementName(), getParent() போன்றவை. JavaElementInfo பொருள் தொடர்புடைய உறுப்புகளின் நிலையைச் சேமிக்கிறது: அதன் அமைப்பு மற்றும் பண்புக்கூறுகள்.

1Cக்கான தொழில்நுட்ப தளமாக கிரகணம்: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ்
அரிசி. 5. IJavaElement மற்றும் JavaElementInfo

ஆதார மாதிரியுடன் ஒப்பிடும்போது அடிப்படை கைப்பிடி/உடல் வடிவமைப்பை செயல்படுத்துவதில் ஜாவா மாதிரி சில வேறுபாடுகளைக் கொண்டுள்ளது. மேலே குறிப்பிட்டுள்ளபடி, ஆதார மாதிரியில், உறுப்பு மரம், அதன் முனைகள் ஆதார தகவல் பொருள்கள், முழுவதுமாக நினைவகத்தில் உள்ளது. ஆனால் ஜாவா மாதிரியானது ரிசோர்ஸ் ட்ரீயை விட கணிசமாக அதிக எண்ணிக்கையிலான கூறுகளைக் கொண்டிருக்கலாம், ஏனெனில் இது .java மற்றும் .class கோப்புகளின் உள் கட்டமைப்பையும் குறிக்கிறது: வகைகள், புலங்கள் மற்றும் முறைகள்.

நினைவகத்தில் உள்ள தனிமங்களின் முழு மரத்தையும் முழுமையாகப் பெறுவதைத் தவிர்க்க, ஜாவா மாதிரி செயலாக்கமானது வரையறுக்கப்பட்ட அளவிலான LRU கேச் உறுப்புத் தகவலைப் பயன்படுத்துகிறது, இதில் முக்கிய கைப்பிடி IJavaElement ஆகும். உறுப்பு மரம் வழிசெலுத்தப்படுவதால், உறுப்பு தகவல் பொருள்கள் தேவைக்கேற்ப உருவாக்கப்படுகின்றன. இந்த வழக்கில், குறைவாக அடிக்கடி பயன்படுத்தப்படும் உருப்படிகள் தற்காலிக சேமிப்பில் இருந்து வெளியேற்றப்படும், மேலும் மாதிரியின் நினைவக நுகர்வு குறிப்பிட்ட கேச் அளவுக்கு மட்டுமே இருக்கும். இது கைப்பிடி அடிப்படையிலான வடிவமைப்பின் மற்றொரு நன்மையாகும், இது கிளையன்ட் குறியீட்டிலிருந்து அத்தகைய செயல்படுத்தல் விவரங்களை முற்றிலும் மறைக்கிறது.

ஜாவா உறுப்புகளுக்கு மாற்றங்களை அறிவிப்பதற்கான வழிமுறை பொதுவாக மேலே விவாதிக்கப்பட்ட பணியிட ஆதாரங்களில் மாற்றங்களைக் கண்காணிப்பதற்கான பொறிமுறையைப் போன்றது. ஜாவா மாடலில் ஏற்படும் மாற்றங்களைக் கண்காணிக்க விரும்பும் கிளையன்ட் அறிவிப்புகளுக்குச் சந்தா செலுத்துகிறார், அவை IJavaElementDelta (படம் 6) கொண்டிருக்கும் ElementChangedEvent பொருளாகக் குறிப்பிடப்படுகின்றன.

1Cக்கான தொழில்நுட்ப தளமாக கிரகணம்: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ்
அரிசி. 6. ElementChangedEvent மற்றும் IJavaElementDelta

ஜாவா மாடலில் முறை உடல்கள் அல்லது பெயர் தீர்மானம் பற்றிய தகவல்கள் இல்லை, எனவே ஜாவாவில் எழுதப்பட்ட குறியீட்டின் விரிவான பகுப்பாய்விற்கு, JDT கோர் கூடுதல் (கைப்பிடி அல்லாத) மாதிரியை வழங்குகிறது: சுருக்க தொடரியல் மரம் (சுருக்க தொடரியல் மரம், AST). மூல உரையை பாகுபடுத்துவதன் முடிவை AST குறிக்கிறது. AST முனைகள் மூல தொகுதியின் கட்டமைப்பின் கூறுகளுடன் (அறிவிப்புகள், ஆபரேட்டர்கள், வெளிப்பாடுகள் போன்றவை) ஒத்திருக்கின்றன மற்றும் மூல உரையில் தொடர்புடைய உறுப்புகளின் ஆயத்தொலைவுகள் பற்றிய தகவல்களையும் (ஒரு விருப்பமாக) உள்ள பெயர் தீர்மானம் பற்றிய தகவல்களையும் கொண்டிருக்கும். என்று அழைக்கப்படும் இணைப்புகளின் வடிவம் பிணைப்புகள். பைண்டிங் என்பது கம்பைலருக்குத் தெரிந்த வகைகள், முறைகள் மற்றும் மாறிகள் போன்ற பெயரிடப்பட்ட நிறுவனங்களைக் குறிக்கும் பொருள்கள். ஒரு மரத்தை உருவாக்கும் AST முனைகளைப் போலன்றி, பிணைப்புகள் குறுக்கு-குறிப்புகளை ஆதரிக்கின்றன மற்றும் பொதுவாக ஒரு வரைபடத்தை உருவாக்குகின்றன. ASTNode என்பது அனைத்து AST முனைகளுக்கும் பொதுவான அடிப்படை வகுப்பாகும். ASTNode துணைப்பிரிவுகள் ஜாவா மொழியின் குறிப்பிட்ட தொடரியல் கட்டமைப்பிற்கு ஒத்திருக்கும்.

தொடரியல் மரங்கள் கணிசமான அளவு நினைவகத்தை உட்கொள்ளும் என்பதால், செயலில் உள்ள எடிட்டருக்கு JDT ஒரு ASTயை மட்டுமே சேமிக்கிறது. ஜாவா மாதிரியைப் போலன்றி, AST பொதுவாக "இடைநிலை," "தற்காலிக" மாதிரியாகக் கருதப்படுகிறது, அதன் உறுப்பினர்கள் AST உருவாக்கப்படுவதற்கு வழிவகுத்த செயல்பாட்டின் சூழலுக்கு வெளியே வாடிக்கையாளர்களால் குறிப்பிடப்படக்கூடாது.

பட்டியலிடப்பட்ட மூன்று மாதிரிகள் (ஜாவா மாடல், ஏஎஸ்டி, பைண்டிங்ஸ்) ஒன்றாக JDT இல் "அறிவார்ந்த மேம்பாட்டுக் கருவிகளை" உருவாக்குவதற்கான அடிப்படையை உருவாக்குகின்றன, இதில் பல்வேறு "உதவியாளர்களுடன்" சக்திவாய்ந்த ஜாவா எடிட்டர், மூலக் குறியீட்டைச் செயலாக்குவதற்கான பல்வேறு நடவடிக்கைகள் (இறக்குமதியின் பட்டியலை ஒழுங்கமைப்பது உட்பட. தனிப்பயனாக்கப்பட்ட பாணியின் படி பெயர்கள் மற்றும் வடிவமைப்பு), தேடல் மற்றும் மறுசீரமைப்பு கருவிகள். இந்த வழக்கில், ஜாவா மாதிரி ஒரு சிறப்புப் பாத்திரத்தை வகிக்கிறது, ஏனெனில் இது உருவாக்கப்பட்டு வரும் பயன்பாட்டின் கட்டமைப்பின் காட்சிப் பிரதிநிதித்துவத்திற்கான அடிப்படையாகப் பயன்படுத்தப்படுகிறது (எடுத்துக்காட்டாக, தொகுப்பு எக்ஸ்ப்ளோரர், அவுட்லைன், தேடல், அழைப்பு படிநிலை மற்றும் வகை படிநிலை).

1C: எண்டர்பிரைஸ் டெவலப்மெண்ட்ஸ் கருவிகளில் பயன்படுத்தப்படும் கிரகண கூறுகள்

படத்தில். 7C: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்களுக்கான தொழில்நுட்ப தளத்தின் அடித்தளத்தை உருவாக்கும் கிரகண கூறுகளை படம் 1 காட்டுகிறது.

1Cக்கான தொழில்நுட்ப தளமாக கிரகணம்: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ்
அரிசி. 7. எக்லிப்ஸ் ஒரு தளமாக 1C:Enterprise Development Tools

கிரகண மேடை அடிப்படை கட்டமைப்பு வசதிகளை வழங்குகிறது. இந்த உள்கட்டமைப்பின் சில அம்சங்களை முந்தைய பகுதியில் பார்த்தோம்.

எக்லிப்ஸ் மாடலிங் ஃபிரேம்வொர்க் (EMF) கட்டமைக்கப்பட்ட தரவை மாதிரியாக்குவதற்கான பொதுவான வழிமுறையை வழங்குகிறது. EMF எக்லிப்ஸ் பிளாட்ஃபார்முடன் ஒருங்கிணைக்கப்பட்டுள்ளது, ஆனால் வழக்கமான ஜாவா பயன்பாடுகளிலும் தனித்தனியாகப் பயன்படுத்தலாம். பெரும்பாலும், புதிய எக்லிப்ஸ் டெவலப்பர்கள் ஏற்கனவே EMF உடன் நன்கு அறிந்திருக்கிறார்கள், இருப்பினும் அவர்கள் கிரகண தளத்தின் நுணுக்கங்களை இன்னும் முழுமையாக புரிந்து கொள்ளவில்லை. அத்தகைய தகுதியான பிரபலத்திற்கான காரணங்களில் ஒன்று உலகளாவிய வடிவமைப்பு ஆகும், இதில் மற்றவற்றுடன், ஒரு ஒருங்கிணைந்த மெட்டா-நிலை API அடங்கும், இது எந்த EMF மாதிரியுடனும் பொதுவான வழியில் வேலை செய்ய உங்களை அனுமதிக்கிறது. EMF வழங்கிய மாதிரி பொருள்களுக்கான அடிப்படை செயலாக்கங்கள் மற்றும் மெட்டா-மாடலின் அடிப்படையில் மாதிரிக் குறியீட்டை உருவாக்குவதற்கான துணை அமைப்பு ஆகியவை வளர்ச்சியின் வேகத்தை கணிசமாக அதிகரிக்கின்றன மற்றும் பிழைகளின் எண்ணிக்கையைக் குறைக்கின்றன. EMF ஆனது மாதிரிகளை வரிசைப்படுத்துதல், மாதிரியில் மாற்றங்களைக் கண்காணிப்பது மற்றும் பலவற்றிற்கான வழிமுறைகளையும் கொண்டுள்ளது.

எந்தவொரு உண்மையான பொது-நோக்கக் கருவியைப் போலவே, EMF ஆனது பரந்த அளவிலான மாடலிங் சிக்கல்களைத் தீர்ப்பதற்கு ஏற்றது, ஆனால் சில வகை மாதிரிகள் (உதாரணமாக, மேலே விவாதிக்கப்பட்ட கைப்பிடி அடிப்படையிலான மாதிரிகள்) மிகவும் சிறப்பு வாய்ந்த மாடலிங் கருவிகள் தேவைப்படலாம். EMF பற்றி பேசுவது நன்றியற்ற பணியாகும், குறிப்பாக ஒரு கட்டுரையின் வரையறுக்கப்பட்ட வரம்புகளுக்குள், இது ஒரு தனி புத்தகத்தின் தலைப்பு மற்றும் மிகவும் அடர்த்தியானது. EMF இன் அடிப்படையிலான பொதுமைப்படுத்தல்களின் உயர்தர அமைப்பு மாடலிங்கிற்கு அர்ப்பணிக்கப்பட்ட முழு அளவிலான திட்டங்களின் பிறப்பை அனுமதித்தது என்பதை மட்டும் கவனத்தில் கொள்வோம், அவை உயர்மட்ட திட்டத்தில் சேர்க்கப்பட்டுள்ளன. எக்லிப்ஸ் மாடலிங் EMF உடன் சேர்ந்து. அத்தகைய திட்டங்களில் ஒன்று Eclipse Xtext ஆகும்.

கிரகணம் Xtext "உரை மாதிரியாக்கம்" உள்கட்டமைப்பை வழங்குகிறது. Xtext பயன்படுத்துகிறது ஏஎன்டிஎல்ஆர் இதன் விளைவாக வரும் ASG (சுருக்க சொற்பொருள் வரைபடம், இது அடிப்படையில் AST மற்றும் பிணைப்புகளின் கலவையாகும்), "சொற்பொருள் மாதிரி" என்றும் அழைக்கப்படும் மூல உரை மற்றும் EMF ஐ பாகுபடுத்துவதற்கு. Xtext மூலம் வடிவமைக்கப்பட்ட மொழியின் இலக்கணம் Xtext இன் சொந்த மொழியில் விவரிக்கப்பட்டுள்ளது. இது ANTLRக்கான இலக்கண விளக்கத்தை உருவாக்குவது மட்டுமல்லாமல், AST வரிசைப்படுத்தல் பொறிமுறையைப் பெறவும் அனுமதிக்கிறது (அதாவது Xtext ஒரு பாகுபடுத்தி மற்றும் ஒரு பிரிப்பான் இரண்டையும் வழங்குகிறது), ஒரு சூழல் குறிப்பு மற்றும் பல மொழி கூறுகள். மறுபுறம், Xtext இல் பயன்படுத்தப்படும் இலக்கண மொழி ANTLR இல் பயன்படுத்தப்படும் இலக்கண மொழியை விட குறைவான நெகிழ்வுத்தன்மை கொண்டது. எனவே, சில நேரங்களில் செயல்படுத்தப்பட்ட மொழியை Xtext க்கு "வளைக்க" அவசியம், இது பொதுவாக புதிதாக உருவாக்கப்பட்ட ஒரு மொழியைப் பற்றி பேசினால் பிரச்சனை இல்லை, ஆனால் ஏற்கனவே நிறுவப்பட்ட தொடரியல் கொண்ட மொழிகளுக்கு ஏற்றுக்கொள்ள முடியாததாக இருக்கலாம். இது இருந்தபோதிலும், Xtext தற்போது மிகவும் முதிர்ந்த, அம்சம் நிறைந்த மற்றும் பல்துறை கருவியாக உள்ளது. குறிப்பாக, விரைவான முன்மாதிரிக்கு இது ஒரு சிறந்த கருவியாகும் டொமைன் சார்ந்த மொழிகள் (டொமைன் சார்ந்த மொழி, DSL). ANTLR மற்றும் EMF அடிப்படையிலான மேலே குறிப்பிடப்பட்ட "மொழி மையத்திற்கு" கூடுதலாக, Xtext பல பயனுள்ள உயர்-நிலை கூறுகளை வழங்குகிறது, இதில் குறியீட்டு வழிமுறைகள், அதிகரிக்கும் கட்டுமானம், ஒரு "ஸ்மார்ட் எடிட்டர்" மற்றும் பல, ஆனால் கைப்பிடியை விட்டு விடுகின்றன- அடிப்படையிலான மொழி மாதிரிகள். EMF ஐப் போலவே, Xtext என்பது ஒரு தனி புத்தகத்திற்கு தகுதியான ஒரு பாடமாகும், மேலும் அதன் அனைத்து திறன்களையும் பற்றி இப்போது நாம் சுருக்கமாக பேச முடியாது.

1C: எண்டர்பிரைஸ் டெவலப்மென்ட் டூல்ஸ் EMF மற்றும் பல எக்லிப்ஸ் மாடலிங் திட்டங்கள் இரண்டையும் தீவிரமாகப் பயன்படுத்துகிறது. குறிப்பாக, உள்ளமைக்கப்பட்ட நிரலாக்க மொழி மற்றும் வினவல் மொழி போன்ற 1C: எண்டர்பிரைஸ் மொழிகளுக்கான மேம்பாட்டு கருவிகளின் அடித்தளங்களில் Xtext ஒன்றாகும். இந்த மேம்பாட்டுக் கருவிகளுக்கான மற்றொரு அடிப்படையானது எக்லிப்ஸ் ஹேண்ட்லி திட்டமாகும், இதை நாம் இன்னும் விரிவாக விவாதிப்போம் (பட்டியலிடப்பட்ட கிரகண கூறுகளில், இது இன்னும் குறைவாகவே அறியப்படுகிறது).

எக்லிப்ஸ் ஹேண்ட்லி, எக்லிப்ஸ் டெக்னாலஜி உயர்மட்ட திட்டத்தின் துணைத் திட்டம், 1 இல் 2014C ஆல் செய்யப்பட்ட எக்லிப்ஸ் அறக்கட்டளைக்கான ஆரம்பக் குறியீடு பங்களிப்பின் விளைவாக உருவானது. அப்போதிருந்து, 1C திட்டத்தின் மேம்பாட்டிற்கு தொடர்ந்து ஆதரவளித்து வருகிறது: கையோடு செயல்படுபவர்கள் நிறுவனத்தின் ஊழியர்கள். திட்டம் சிறியது, ஆனால் இது கிரகணத்தில் ஒரு தனித்துவமான இடத்தை ஆக்கிரமித்துள்ளது: அதன் முக்கிய குறிக்கோள் கைப்பிடி அடிப்படையிலான மாதிரிகளின் வளர்ச்சியை ஆதரிப்பதாகும்.

கைப்பிடி/உடல் இடியம் போன்ற கைப்பிடி அடிப்படையிலான மாதிரிகளின் அடிப்படை கட்டடக்கலை கோட்பாடுகள், ஆதார மாதிரி மற்றும் ஜாவா மாதிரியை எடுத்துக்காட்டுகளாகப் பயன்படுத்தி மேலே விவாதிக்கப்பட்டது. ரிசோர்ஸ் மாடல் மற்றும் ஜாவா மாடல் இரண்டும் எக்லிப்ஸ் ஜாவா டெவலப்மெண்ட் டூல்களுக்கு (ஜேடிடி) முக்கியமான அடித்தளம் என்றும் அது குறிப்பிட்டது. மேலும் அனைத்து *DT எக்லிப்ஸ் திட்டங்களும் JDT போன்ற கட்டமைப்பைக் கொண்டிருப்பதால், எக்லிப்ஸ் பிளாட்ஃபார்மின் மேல் கட்டப்பட்ட அனைத்து IDE களும் இல்லாவிட்டாலும், கைப்பிடி அடிப்படையிலான மாதிரிகள் பலவற்றின் கீழ் உள்ளது என்று கூறுவது மிகையாகாது. எடுத்துக்காட்டாக, எக்லிப்ஸ் சி/சி++ டெவலப்மெண்ட் டூலிங் (சிடிடி) கைப்பிடி அடிப்படையிலான சி/சி++ மாடலைக் கொண்டுள்ளது, இது ஜேடிடியில் ஜாவா மாடல் செய்யும் அதே பாத்திரத்தை சிடிடி கட்டமைப்பில் செய்கிறது.

ஹேண்ட்லிக்கு முன், எக்லிப்ஸ் கைப்பிடி அடிப்படையிலான மொழி மாதிரிகளை உருவாக்குவதற்கான சிறப்பு நூலகங்களை வழங்கவில்லை. தற்போது இருக்கும் மாதிரிகள் முக்கியமாக ஜாவா மாடல் குறியீட்டை (நகல்/பேஸ்ட்) நேரடியாக மாற்றியமைப்பதன் மூலம் உருவாக்கப்பட்டன. அது அனுமதிக்கும் சந்தர்ப்பங்களில் எக்லிப்ஸ் பொது உரிமம் (EPL). (வெளிப்படையாக, இது பொதுவாக எக்லிப்ஸ் திட்டங்களுக்கு ஒரு சட்டப் பிரச்சினை அல்ல, ஆனால் மூடிய மூல தயாரிப்புகளுக்கு அல்ல.) அதன் உள்ளார்ந்த இடையூறுக்கு கூடுதலாக, இந்த நுட்பம் நன்கு அறியப்பட்ட சிக்கல்களை அறிமுகப்படுத்துகிறது: பிழைகளை மாற்றியமைக்கும் போது குறியீடு நகல் அறிமுகப்படுத்தப்பட்டது, முதலியன மோசமான விஷயம் என்னவென்றால், இதன் விளைவாக வரும் மாதிரிகள் "தங்களுக்குள் உள்ளவைகளாக" இருக்கின்றன, மேலும் ஒன்றிணைவதற்கான திறனைப் பயன்படுத்துவதில்லை. ஆனால் கைப்பிடி அடிப்படையிலான மொழி மாதிரிகளுக்கான பொதுவான கருத்துக்கள் மற்றும் நெறிமுறைகளை தனிமைப்படுத்துவது, EMF விஷயத்தில் என்ன நடந்தது என்பதைப் போலவே, அவற்றுடன் பணிபுரிய மீண்டும் பயன்படுத்தக்கூடிய கூறுகளை உருவாக்க வழிவகுக்கும்.

இந்த சிக்கல்களை கிரகணம் புரிந்து கொள்ளவில்லை என்பதல்ல. மீண்டும் 2005 இல் மார்ட்டின் ஏஷ்லிமன், CDT முன்மாதிரியை உருவாக்கும் அனுபவத்தை சுருக்கமாக, வாதிட்டார் கைப்பிடி அடிப்படையிலான மாதிரிகள் உட்பட மொழி மாதிரிகளுக்கான பொதுவான உள்கட்டமைப்பை உருவாக்க வேண்டிய அவசியம். ஆனால், பெரும்பாலும் நடப்பது போல, அதிக முன்னுரிமைப் பணிகள் காரணமாக, இந்த யோசனைகளை செயல்படுத்துவது ஒருபோதும் வரவில்லை. இதற்கிடையில், *DT குறியீட்டின் காரணியாக்கம் இன்னும் கிரகணத்தின் வளர்ச்சியடையாத தலைப்புகளில் ஒன்றாகும்.

ஒரு குறிப்பிட்ட அர்த்தத்தில், ஹேண்ட்லி திட்டம் EMF போன்ற தோராயமாக அதே சிக்கல்களைத் தீர்க்க வடிவமைக்கப்பட்டுள்ளது, ஆனால் கைப்பிடி அடிப்படையிலான மாதிரிகள் மற்றும் முதன்மையாக மொழிக்கு (அதாவது, சில நிரலாக்க மொழியின் கட்டமைப்பின் கூறுகளைக் குறிக்கிறது). ஹேண்ட்லியை வடிவமைக்கும்போது அமைக்கப்படும் முக்கிய இலக்குகள் கீழே பட்டியலிடப்பட்டுள்ளன:

  • பொருள் பகுதியின் முக்கிய சுருக்கங்களை அடையாளம் காணுதல்.
  • முயற்சியைக் குறைத்தல் மற்றும் குறியீட்டு மறுபயன்பாட்டின் மூலம் கைப்பிடி அடிப்படையிலான மொழி மாதிரிகளை செயல்படுத்துவதன் தரத்தை மேம்படுத்துதல்.
  • இதன் விளைவாக வரும் மாடல்களுக்கு ஒரு ஒருங்கிணைந்த மெட்டா-நிலை API ஐ வழங்குதல், மொழி கைப்பிடி அடிப்படையிலான மாதிரிகளுடன் வேலை செய்யும் பொதுவான IDE கூறுகளை உருவாக்குவதை சாத்தியமாக்குகிறது.
  • நெகிழ்வுத்தன்மை மற்றும் அளவிடுதல்.
  • Xtext உடன் ஒருங்கிணைப்பு (ஒரு தனி அடுக்கில்).

பொதுவான கருத்துக்கள் மற்றும் நெறிமுறைகளை முன்னிலைப்படுத்த, மொழி கைப்பிடி அடிப்படையிலான மாதிரிகளின் தற்போதைய செயலாக்கங்கள் பகுப்பாய்வு செய்யப்பட்டன. ஹேண்ட்லி வழங்கிய முக்கிய இடைமுகங்கள் மற்றும் அடிப்படை செயலாக்கங்கள் படத்தில் காட்டப்பட்டுள்ளன. 8.

1Cக்கான தொழில்நுட்ப தளமாக கிரகணம்: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ்
அரிசி. 8. பொதுவான இடைமுகங்கள் மற்றும் ஹேண்ட்லி உறுப்புகளின் அடிப்படை செயலாக்கங்கள்

IElement இடைமுகம் ஒரு தனிமத்தின் கைப்பிடியைக் குறிக்கிறது மற்றும் அனைத்து ஹேண்ட்லி-அடிப்படையிலான மாதிரிகளின் கூறுகளுக்கும் பொதுவானது. சுருக்க வகுப்பு உறுப்பு பொதுமைப்படுத்தப்பட்ட கைப்பிடி/உடல் பொறிமுறையை செயல்படுத்துகிறது (படம் 9).

1Cக்கான தொழில்நுட்ப தளமாக கிரகணம்: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ்
அரிசி. 9. IElement மற்றும் பொதுவான கைப்பிடி/உடல் செயல்படுத்தல்

கூடுதலாக, மாதிரி உறுப்புகளில் ஏற்படும் மாற்றங்களைப் பற்றி அறிவிப்பதற்கான பொதுவான வழிமுறையை Handly வழங்குகிறது (படம் 10). நீங்கள் பார்க்க முடியும் என, இது வள மாதிரி மற்றும் ஜாவா மாதிரியில் செயல்படுத்தப்பட்ட அறிவிப்பு வழிமுறைகளைப் போலவே உள்ளது, மேலும் உறுப்பு மாற்றத் தகவலின் ஒருங்கிணைந்த பிரதிநிதித்துவத்தை வழங்க IElementDelta ஐப் பயன்படுத்துகிறது.

1Cக்கான தொழில்நுட்ப தளமாக கிரகணம்: எண்டர்பிரைஸ் டெவலப்மெண்ட் டூல்ஸ்
அரிசி. 10. ஹேண்ட்லி அறிவிப்பு பொறிமுறையின் பொதுவான இடைமுகங்கள் மற்றும் அடிப்படை செயலாக்கங்கள்

மேலே விவாதிக்கப்பட்ட ஹேண்ட்லி பகுதி (படம். 9 மற்றும் 10) கிட்டத்தட்ட எந்த கைப்பிடி அடிப்படையிலான மாதிரிகளையும் குறிக்கப் பயன்படுத்தலாம். உருவாக்குவதற்கு மொழியியல் மாதிரிகள், திட்டம் கூடுதல் செயல்பாட்டை வழங்குகிறது - குறிப்பாக, பொதுவான இடைமுகங்கள் மற்றும் மூல உரை கட்டமைப்பின் கூறுகளுக்கான அடிப்படை செயலாக்கங்கள், என்று அழைக்கப்படும் மூல கூறுகள் (படம் 8). ISourceFile இடைமுகம் ஒரு மூலக் கோப்பைக் குறிக்கிறது, மேலும் ISourceConstruct என்பது மூலக் கோப்பில் உள்ள ஒரு உறுப்பைக் குறிக்கிறது. சுருக்க வகுப்புகளான SourceFile மற்றும் SourceConstruct ஆகியவை மூலக் கோப்புகள் மற்றும் அவற்றின் உறுப்புகளுடன் வேலை செய்வதை ஆதரிக்கும் பொதுவான வழிமுறைகளை செயல்படுத்துகின்றன, எடுத்துக்காட்டாக, உரை இடையகங்களுடன் பணிபுரிதல், மூல உரையில் உள்ள ஒரு தனிமத்தின் ஒருங்கிணைப்புகளுடன் பிணைத்தல், வேலை செய்யும் நகல் இடையகத்தின் தற்போதைய உள்ளடக்கங்களுடன் மாதிரிகளை ஒத்திசைத்தல் , முதலியன இந்த வழிமுறைகளை செயல்படுத்துவது பொதுவாக மிகவும் சவாலானது, மேலும் உயர்தர அடிப்படை செயலாக்கங்களை வழங்குவதன் மூலம் கைப்பிடி அடிப்படையிலான மொழி மாதிரிகளை உருவாக்கும் முயற்சியை Handly கணிசமாகக் குறைக்கலாம்.

மேலே பட்டியலிடப்பட்டுள்ள முக்கிய வழிமுறைகளுக்கு கூடுதலாக, ஹேண்ட்லி உரை இடையகங்கள் மற்றும் ஸ்னாப்ஷாட்களுக்கான உள்கட்டமைப்பை வழங்குகிறது, மூலக் குறியீடு எடிட்டர்களுடன் ஒருங்கிணைப்பதற்கான ஆதரவு (Xtext எடிட்டருடன் அவுட்-ஆஃப்-பாக்ஸ் ஒருங்கிணைப்பு உட்பட), அத்துடன் சில பொதுவான UI கூறுகள் மூல குறியீடு எடிட்டர்களுடன் பணிபுரியலாம். அவுட்லைன் ஃப்ரேம்வொர்க் போன்ற கையாளக்கூடிய மாதிரிகள். அதன் திறன்களை விளக்க, திட்டம் ஜாவா மாதிரியை ஹேண்ட்லியில் செயல்படுத்துவது உட்பட பல எடுத்துக்காட்டுகளை வழங்குகிறது. (JDT இல் ஜாவா மாதிரியின் முழு செயலாக்கத்துடன் ஒப்பிடும்போது, ​​இந்த மாதிரியானது அதிக தெளிவுக்காக வேண்டுமென்றே ஓரளவு எளிமைப்படுத்தப்பட்டுள்ளது.)

முன்பு குறிப்பிட்டது போல, ஹேண்ட்லியின் ஆரம்ப வடிவமைப்பு மற்றும் அதைத் தொடர்ந்த மேம்பாட்டின் போது முக்கிய கவனம் செலுத்தப்பட்டது மற்றும் தொடர்ந்து அளவிடுதல் மற்றும் நெகிழ்வுத்தன்மை உள்ளது.

கொள்கையளவில், கைப்பிடி அடிப்படையிலான மாதிரிகள் "வடிவமைப்பு மூலம்" நன்றாக அளவிடப்படுகின்றன. எடுத்துக்காட்டாக, கைப்பிடி/உடல் இடியம் ஒரு மாதிரியால் நுகரப்படும் நினைவகத்தின் அளவைக் கட்டுப்படுத்த உங்களை அனுமதிக்கிறது. ஆனால் நுணுக்கங்களும் உள்ளன. எனவே, அளவிடக்கூடிய தன்மைக்காக ஹேண்ட்லியை சோதிக்கும் போது, ​​அறிவிப்பு பொறிமுறையை செயல்படுத்துவதில் ஒரு சிக்கல் கண்டறியப்பட்டது - அதிக எண்ணிக்கையிலான உறுப்புகள் மாற்றப்பட்டபோது, ​​டெல்டாக்களை உருவாக்க அதிக நேரம் எடுத்தது. அதே பிரச்சனை JDT ஜாவா மாடலிலும் உள்ளது, அதில் இருந்து தொடர்புடைய குறியீடு ஒருமுறை மாற்றப்பட்டது. ஹேண்ட்லியில் உள்ள பிழையை சரிசெய்து, JDT க்கு இதேபோன்ற பேட்சை தயார் செய்தோம், அது நன்றியுடன் பெறப்பட்டது. ஏற்கனவே உள்ள மாதிரி செயலாக்கங்களில் ஹேண்ட்லியை அறிமுகப்படுத்துவது பயனுள்ளதாக இருக்கும் என்பதற்கு இது ஒரு எடுத்துக்காட்டு, ஏனெனில் இந்த விஷயத்தில் இதுபோன்ற பிழையை ஒரே இடத்தில் சரிசெய்ய முடியும்.

தற்போதுள்ள மாதிரி செயலாக்கங்களில் ஹேண்ட்லியை செயல்படுத்துவது தொழில்நுட்ப ரீதியாக சாத்தியமானதாக இருக்க, நூலகம் குறிப்பிடத்தக்க நெகிழ்வுத்தன்மையைக் கொண்டிருக்க வேண்டும். API மாதிரி முழுவதும் பின்தங்கிய இணக்கத்தன்மையை பராமரிப்பதே முக்கிய பிரச்சனை. இல் இந்த பிரச்சனை தீர்க்கப்பட்டது கைப்பிடி 0.5 டெவலப்பரால் வரையறுக்கப்பட்ட மற்றும் முழுமையாகக் கட்டுப்படுத்தப்படும் மாதிரி-குறிப்பிட்ட API ஐ, நூலகத்தால் வழங்கப்பட்ட ஒருங்கிணைந்த மெட்டா-நிலை API இலிருந்து தெளிவாகப் பிரிப்பதன் மூலம். இது தொழில்நுட்ப ரீதியாக ஹேண்ட்லியை ஏற்கனவே உள்ள செயலாக்கங்களில் செயல்படுத்துவது மட்டுமல்லாமல், ஏபிஐ வடிவமைக்கும் போது புதிய மாடல் டெவலப்பருக்கு குறிப்பிடத்தக்க சுதந்திரத்தையும் அளிக்கிறது.

நெகிழ்வுத்தன்மை மற்ற அம்சங்களையும் கொண்டுள்ளது. எடுத்துக்காட்டாக, மாதிரியின் கட்டமைப்பில் Handly ஏறக்குறைய எந்தக் கட்டுப்பாடுகளையும் விதிக்கவில்லை, மேலும் பொது-நோக்கம் மற்றும் டொமைன்-குறிப்பிட்ட மொழிகள் இரண்டையும் மாதிரியாக்கப் பயன்படுத்தலாம். மூலக் கோப்பின் கட்டமைப்பை உருவாக்கும் போது, ​​ஹேண்ட்லி எந்த குறிப்பிட்ட வகை AST பிரதிநிதித்துவத்தையும் பரிந்துரைக்காது, கொள்கையளவில், AST இன் இருப்பு கூட தேவையில்லை, இதனால் கிட்டத்தட்ட எந்த பாகுபடுத்தும் பொறிமுறையுடன் இணக்கத்தன்மையை உறுதி செய்கிறது. இறுதியாக, Handly எக்லிப்ஸ் பணியிடத்துடன் முழு ஒருங்கிணைப்பை ஆதரிக்கிறது, ஆனால் கோப்பு முறைமைகளுடன் நேரடியாக வேலை செய்ய முடியும். எக்லிப்ஸ் பைல் சிஸ்டம் (EFS).

நடப்பு வடிவம் கைப்பிடி 0.6 டிசம்பர் 2016 இல் வெளிவந்தது. திட்டம் தற்போது அடைகாக்கும் நிலையில் உள்ளது மற்றும் ஏபிஐ இன்னும் இறுதியாக சரி செய்யப்படவில்லை என்ற போதிலும், ஹேண்ட்லி ஏற்கனவே இரண்டு பெரிய வணிக தயாரிப்புகளில் பயன்படுத்தப்படுகிறது, இது "ஆரம்பகால தத்தெடுப்பாளர்களாக" செயல்படும் அபாயத்தை எடுத்தது, மேலும், நான் சொல்ல வேண்டும், இன்னும் வருத்தப்பட வேண்டாம்.

மேலே குறிப்பிட்டுள்ளபடி, இந்த தயாரிப்புகளில் ஒன்று 1C: எண்டர்பிரைஸ் டெவலப்மென்ட் டூல்ஸ் ஆகும், இதில் 1C: எண்டர்பிரைஸ் மொழிகளின் உள்ளமைக்கப்பட்ட நிரலாக்க மொழி மற்றும் வினவல் மொழி போன்ற உயர்-நிலை கட்டமைப்பின் மாதிரி கூறுகளுக்கு ஆரம்பத்தில் இருந்து ஹேண்ட்லி பயன்படுத்தப்படுகிறது. . மற்றொரு தயாரிப்பு பொது மக்களுக்கு குறைவாகவே அறியப்படுகிறது. இது கோடாசிப் ஸ்டுடியோ, பயன்பாட்டு-குறிப்பிட்ட அறிவுறுத்தல்-செட் செயலிக்கான (ASIP) ஒருங்கிணைந்த வடிவமைப்பு சூழல், செக் நிறுவனமான Codasip க்குள் மற்றும் அதன் வாடிக்கையாளர்களால் பயன்படுத்தப்பட்டது, உட்பட அது AMD, சராசரி, மொபைல், சிக்மா வடிவமைப்புகள். கோடாசிப் 2015 ஆம் ஆண்டு முதல் ஹேண்ட்லி 0.2 பதிப்பில் தொடங்கி, தயாரிப்பில் பயன்படுத்தப்படுகிறது. கோடாசிப் ஸ்டுடியோவின் சமீபத்திய வெளியீடு ஜூன் 0.5 இல் வெளியிடப்பட்ட பதிப்பு 2016 ஐப் பயன்படுத்துகிறது. Codasip இல் IDE வளர்ச்சிக்கு தலைமை தாங்கும் Ondřej Ilčík, "மூன்றாம் தரப்பு தத்தெடுப்பவர்" சார்பாக முக்கியமான கருத்துக்களை வழங்குவதன் மூலம் திட்டத்துடன் தொடர்பில் உள்ளார். ஹேண்ட்லி உதாரணங்களில் ஒன்றான ஜாவா மாடலுக்கான UI லேயரை (~4000 கோடுகள் குறியீடு) செயல்படுத்தி, திட்டத்தின் வளர்ச்சியில் நேரடியாகப் பங்கேற்பதற்கு சில இலவச நேரத்தை அவரால் கண்டுபிடிக்க முடிந்தது. தத்தெடுப்பவர்களால் Handly பயன்பாடு பற்றிய விரிவான முதல்-நிலைத் தகவலைப் பக்கத்தில் காணலாம் வெற்றி கதைகள் திட்டம்.

பதிப்பு 1.0 வெளியீட்டிற்குப் பிறகு, API நிலைத்தன்மைக்கான உத்தரவாதம் மற்றும் திட்டம் இன்குபேஷன் நிலையை விட்டு வெளியேறிய பிறகு, Handly புதிய தத்தெடுப்பாளர்களைக் கொண்டிருக்கும் என்று நம்புகிறோம். இதற்கிடையில், திட்டம் தொடர்ந்து API ஐ சோதித்து மேலும் மேம்படுத்துகிறது, ஆண்டுக்கு இரண்டு "பெரிய" வெளியீடுகளை வெளியிடுகிறது - ஜூன் (ஒரே நேரத்தில் கிரகணம் வெளியான அதே தேதி) மற்றும் டிசம்பரில், தத்தெடுப்பவர்கள் நம்பக்கூடிய கணிக்கக்கூடிய அட்டவணையை வழங்குகிறது. திட்டத்தின் "பிழை விகிதம்" தொடர்ந்து குறைந்த மட்டத்தில் உள்ளது என்பதையும், ஹேண்ட்லி முதல் பதிப்புகளில் இருந்தே, முந்தைய தத்தெடுப்பாளர்களின் தயாரிப்புகளில் நம்பகத்தன்மையுடன் செயல்படுகிறது என்பதையும் நாம் சேர்க்கலாம். எக்லிப்ஸ் ஹேண்ட்லியை மேலும் ஆராய, நீங்கள் பயன்படுத்தலாம் பயிற்சியைத் தொடங்குதல் и கட்டடக்கலை கண்ணோட்டம்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்