ಬಹುಶಃ,
ಪ್ರಕೃತಿಯಲ್ಲಿ ಅವಲೋಕನವಾಗಿರುವ ಈ ಲೇಖನದಲ್ಲಿ, ಸಂಯೋಜಿತ ಅಭಿವೃದ್ಧಿ ಸಾಧನಗಳನ್ನು ನಿರ್ಮಿಸುವ ವೇದಿಕೆಯಾಗಿ ಎಕ್ಲಿಪ್ಸ್ ಆರ್ಕಿಟೆಕ್ಚರ್ನ ಕೆಲವು ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ನೋಡಲು ನಾವು ಪ್ರಯತ್ನಿಸುತ್ತೇವೆ ಮತ್ತು ತಂತ್ರಜ್ಞಾನದ ಅಡಿಪಾಯವನ್ನು ರೂಪಿಸುವ ಎಕ್ಲಿಪ್ಸ್ ಘಟಕಗಳ ಆರಂಭಿಕ ಕಲ್ಪನೆಯನ್ನು ನೀಡುತ್ತೇವೆ. "ಹೊಸ ಸಂರಚನಾಕಾರಕ" 1C ಗಾಗಿ ವೇದಿಕೆ: ಎಂಟರ್ಪ್ರೈಸ್.
ಎಕ್ಲಿಪ್ಸ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಪರಿಚಯ
ಉದಾಹರಣೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಎಕ್ಲಿಪ್ಸ್ ಆರ್ಕಿಟೆಕ್ಚರ್ನ ಕೆಲವು ಸಾಮಾನ್ಯ ಅಂಶಗಳನ್ನು ಮೊದಲು ನೋಡೋಣ
ಮೊದಲನೆಯದಾಗಿ, ನಿರ್ದಿಷ್ಟ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳನ್ನು ಬೆಂಬಲಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಕ್ರಿಯಾತ್ಮಕತೆಯಿಂದ ಭಾಷಾ-ಸ್ವತಂತ್ರ ಕಾರ್ಯವನ್ನು ಪ್ರತ್ಯೇಕಿಸುವುದರೊಂದಿಗೆ ಮತ್ತು ಸಂಬಂಧಿತ ಘಟಕಗಳಿಂದ UI-ಸ್ವತಂತ್ರ "ಕೋರ್" ಘಟಕಗಳನ್ನು ಬೇರ್ಪಡಿಸುವುದರೊಂದಿಗೆ ಎಕ್ಲಿಪ್ಸ್ ಸಾಕಷ್ಟು ಸ್ಪಷ್ಟವಾದ ವಾಸ್ತುಶಿಲ್ಪದ ಲೇಯರಿಂಗ್ನಿಂದ ನಿರೂಪಿಸಲ್ಪಟ್ಟಿದೆ ಎಂದು ಗಮನಿಸಬೇಕು. ಬೆಂಬಲಿತ ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ನೊಂದಿಗೆ.
ಹೀಗಾಗಿ, ಎಕ್ಲಿಪ್ಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಸಾಮಾನ್ಯ, ಭಾಷೆ-ಸ್ವತಂತ್ರ ಮೂಲಸೌಕರ್ಯವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ ಮತ್ತು ಜಾವಾ ಅಭಿವೃದ್ಧಿ ಸಾಧನಗಳು ಎಕ್ಲಿಪ್ಸ್ಗೆ ಪೂರ್ಣ-ವೈಶಿಷ್ಟ್ಯದ ಜಾವಾ IDE ಅನ್ನು ಸೇರಿಸುತ್ತವೆ. ಎಕ್ಲಿಪ್ಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಮತ್ತು JDT ಎರಡೂ ಹಲವಾರು ಘಟಕಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ, ಪ್ರತಿಯೊಂದೂ UI-ಸ್ವತಂತ್ರ "ಕೋರ್" ಅಥವಾ UI ಲೇಯರ್ಗೆ ಸೇರಿದೆ (ಚಿತ್ರ 1).
ಅಕ್ಕಿ. 1. ಎಕ್ಲಿಪ್ಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಮತ್ತು ಜೆಡಿಟಿ
ಎಕ್ಲಿಪ್ಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ನ ಮುಖ್ಯ ಅಂಶಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡೋಣ:
- ಚಾಲನಾಸಮಯ - ಪ್ಲಗಿನ್ ಮೂಲಸೌಕರ್ಯವನ್ನು ವಿವರಿಸುತ್ತದೆ. ಎಕ್ಲಿಪ್ಸ್ ಅನ್ನು ಮಾಡ್ಯುಲರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಮೂಲಕ ನಿರೂಪಿಸಲಾಗಿದೆ. ಮೂಲಭೂತವಾಗಿ, ಎಕ್ಲಿಪ್ಸ್ ಎನ್ನುವುದು "ವಿಸ್ತರಣಾ ಬಿಂದುಗಳು" ಮತ್ತು "ವಿಸ್ತರಣೆಗಳ" ಸಂಗ್ರಹವಾಗಿದೆ.
- ಕಾರ್ಯಕ್ಷೇತ್ರ - ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಯೋಜನೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಪ್ರಾಜೆಕ್ಟ್ ಫೈಲ್ ಸಿಸ್ಟಮ್ಗೆ ನೇರವಾಗಿ ಮ್ಯಾಪ್ ಮಾಡಲಾದ ಫೋಲ್ಡರ್ಗಳು ಮತ್ತು ಫೈಲ್ಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.
- ಸ್ಟ್ಯಾಂಡರ್ಡ್ ವಿಜೆಟ್ ಟೂಲ್ಕಿಟ್ (SWT) - ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂನೊಂದಿಗೆ ಸಂಯೋಜಿಸಲ್ಪಟ್ಟ ಮೂಲ ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಅಂಶಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
- ಜೆಫೇಸ್ - SWT ಮೇಲೆ ನಿರ್ಮಿಸಲಾದ ಹಲವಾರು UI ಫ್ರೇಮ್ವರ್ಕ್ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
- ವರ್ಕ್ಬೆಂಚ್ - ಎಕ್ಲಿಪ್ಸ್ UI ಮಾದರಿಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ: ಸಂಪಾದಕರು, ವೀಕ್ಷಣೆಗಳು, ದೃಷ್ಟಿಕೋನಗಳು.
ಡೀಬಗ್, ಹೋಲಿಕೆ, ಹುಡುಕಾಟ ಮತ್ತು ತಂಡ ಸೇರಿದಂತೆ ಸಮಗ್ರ ಅಭಿವೃದ್ಧಿ ಸಾಧನಗಳನ್ನು ನಿರ್ಮಿಸಲು ಎಕ್ಲಿಪ್ಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಅನೇಕ ಇತರ ಉಪಯುಕ್ತ ಘಟಕಗಳನ್ನು ಸಹ ಒದಗಿಸುತ್ತದೆ ಎಂದು ಹೇಳಬೇಕು. ಮೂಲ ಕೋಡ್ನ “ಸ್ಮಾರ್ಟ್ ಎಡಿಟರ್ಗಳನ್ನು” ನಿರ್ಮಿಸಲು ಆಧಾರವಾಗಿರುವ JFace Text ಅನ್ನು ವಿಶೇಷವಾಗಿ ಉಲ್ಲೇಖಿಸಬೇಕು. ದುರದೃಷ್ಟವಶಾತ್, ಈ ಲೇಖನದ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ಈ ಘಟಕಗಳು ಮತ್ತು UI ಲೇಯರ್ ಘಟಕಗಳ ಕರ್ಸರ್ ಪರೀಕ್ಷೆಯು ಸಹ ಸಾಧ್ಯವಿಲ್ಲ, ಆದ್ದರಿಂದ ಈ ವಿಭಾಗದ ಉಳಿದ ಭಾಗಗಳಲ್ಲಿ ನಾವು ಮುಖ್ಯ "ಕೋರ್" ಘಟಕಗಳ ಅವಲೋಕನಕ್ಕೆ ನಮ್ಮನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತೇವೆ. ಎಕ್ಲಿಪ್ಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಮತ್ತು JDT.
ಕೋರ್ ರನ್ಟೈಮ್
ಎಕ್ಲಿಪ್ಸ್ ಪ್ಲಗಿನ್ ಮೂಲಸೌಕರ್ಯವನ್ನು ಆಧರಿಸಿದೆ
ಕೋರ್ ಕಾರ್ಯಕ್ಷೇತ್ರ
ಎಕ್ಲಿಪ್ಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ನ ಮೇಲ್ಭಾಗದಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಯಾವುದೇ ಸಮಗ್ರ ಅಭಿವೃದ್ಧಿ ಪರಿಸರವು ಎಕ್ಲಿಪ್ಸ್ ಕಾರ್ಯಸ್ಥಳದೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇದು ಸಾಮಾನ್ಯವಾಗಿ IDE ಯಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾದ ಅಪ್ಲಿಕೇಶನ್ನ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಒಳಗೊಂಡಿರುವ ಕಾರ್ಯಸ್ಥಳವಾಗಿದೆ. ಕಾರ್ಯಸ್ಥಳವು ನೇರವಾಗಿ ಫೈಲ್ ಸಿಸ್ಟಮ್ಗೆ ನಕ್ಷೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಫೋಲ್ಡರ್ಗಳು ಮತ್ತು ಫೈಲ್ಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಯೋಜನೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಈ ಯೋಜನೆಗಳು, ಫೋಲ್ಡರ್ಗಳು ಮತ್ತು ಫೈಲ್ಗಳನ್ನು ಕರೆಯಲಾಗುತ್ತದೆ ಸಂಪನ್ಮೂಲಗಳು ಕಾರ್ಯಕ್ಷೇತ್ರ. ಎಕ್ಲಿಪ್ಸ್ನಲ್ಲಿನ ಕಾರ್ಯಸ್ಥಳದ ಅನುಷ್ಠಾನವು ಫೈಲ್ ಸಿಸ್ಟಮ್ಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ಸಂಗ್ರಹವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಇದು ಸಂಪನ್ಮೂಲ ವೃಕ್ಷದ ಪ್ರಯಾಣವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ವೇಗಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಕಾರ್ಯಸ್ಥಳವು ಸೇರಿದಂತೆ ಹಲವಾರು ಹೆಚ್ಚುವರಿ ಸೇವೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ
ಕಾರ್ಯಸ್ಥಳ ಮತ್ತು ಅದರ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬೆಂಬಲಿಸಲು ಕೋರ್ ಸಂಪನ್ಮೂಲಗಳ ಘಟಕ (org.eclipse.core.resources ಪ್ಲಗಿನ್) ಕಾರಣವಾಗಿದೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, ಈ ಘಟಕವು ರೂಪದಲ್ಲಿ ಕಾರ್ಯಸ್ಥಳಕ್ಕೆ ಪ್ರೋಗ್ರಾಮ್ಯಾಟಿಕ್ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತದೆ ಸಂಪನ್ಮೂಲ ಮಾದರಿಗಳು. ಈ ಮಾದರಿಯೊಂದಿಗೆ ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಕೆಲಸ ಮಾಡಲು, ಗ್ರಾಹಕರು ಸಂಪನ್ಮೂಲಕ್ಕೆ ಲಿಂಕ್ ಅನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲು ಸರಳವಾದ ಮಾರ್ಗದ ಅಗತ್ಯವಿದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಕ್ಲೈಂಟ್ ಪ್ರವೇಶದಿಂದ ಮಾದರಿಯಲ್ಲಿ ಸಂಪನ್ಮೂಲದ ಸ್ಥಿತಿಯನ್ನು ನೇರವಾಗಿ ಸಂಗ್ರಹಿಸುವ ವಸ್ತುವನ್ನು ಮರೆಮಾಡಲು ಇದು ಅಪೇಕ್ಷಣೀಯವಾಗಿದೆ. ಇಲ್ಲದಿದ್ದರೆ, ಉದಾಹರಣೆಗೆ, ಫೈಲ್ ಅನ್ನು ಅಳಿಸುವ ಸಂದರ್ಭದಲ್ಲಿ, ಕ್ಲೈಂಟ್ ನಂತರದ ಸಮಸ್ಯೆಗಳೊಂದಿಗೆ ಮಾದರಿಯಲ್ಲಿ ಇಲ್ಲದ ವಸ್ತುವನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುವುದನ್ನು ಮುಂದುವರಿಸಬಹುದು. ಎಕ್ಲಿಪ್ಸ್ ಎಂಬ ಯಾವುದನ್ನಾದರೂ ಬಳಸಿ ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುತ್ತದೆ ನಿರ್ವಹಿಸು ಸಂಪನ್ಮೂಲ. ಹ್ಯಾಂಡಲ್ ಒಂದು ಕೀಲಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ (ಇದು ಕಾರ್ಯಸ್ಥಳದಲ್ಲಿನ ಸಂಪನ್ಮೂಲದ ಮಾರ್ಗವನ್ನು ಮಾತ್ರ ತಿಳಿದಿದೆ) ಮತ್ತು ಆಂತರಿಕ ಮಾದರಿಯ ವಸ್ತುವಿನ ಪ್ರವೇಶವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿಯಂತ್ರಿಸುತ್ತದೆ, ಇದು ಸಂಪನ್ಮೂಲದ ಸ್ಥಿತಿಯ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ನೇರವಾಗಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಈ ವಿನ್ಯಾಸವು ಮಾದರಿಯ ಬದಲಾವಣೆಯಾಗಿದೆ
ಅಕ್ಕಿ. ಚಿತ್ರ 2 ಸಂಪನ್ಮೂಲ ಮಾದರಿಗೆ ಅನ್ವಯಿಸಿದಂತೆ ಹ್ಯಾಂಡಲ್/ಬಾಡಿ ಭಾಷಾವೈಶಿಷ್ಟ್ಯವನ್ನು ವಿವರಿಸುತ್ತದೆ. IResource ಇಂಟರ್ಫೇಸ್ ಸಂಪನ್ಮೂಲದ ಹ್ಯಾಂಡಲ್ ಅನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ ಮತ್ತು API ಆಗಿದೆ, ಇದು ಈ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಂಪನ್ಮೂಲ ವರ್ಗ ಮತ್ತು API ಗಳಲ್ಲದ ದೇಹವನ್ನು ಪ್ರತಿನಿಧಿಸುವ ResourceInfo ವರ್ಗದಂತಲ್ಲದೆ. ಹ್ಯಾಂಡಲ್ ಕಾರ್ಯಸ್ಥಳದ ಮೂಲಕ್ಕೆ ಸಂಬಂಧಿಸಿದಂತೆ ಸಂಪನ್ಮೂಲದ ಮಾರ್ಗವನ್ನು ಮಾತ್ರ ತಿಳಿದಿದೆ ಮತ್ತು ಸಂಪನ್ಮೂಲ ಮಾಹಿತಿಗೆ ಲಿಂಕ್ ಅನ್ನು ಹೊಂದಿಲ್ಲ ಎಂದು ನಾವು ಒತ್ತಿಹೇಳುತ್ತೇವೆ. ಸಂಪನ್ಮೂಲ ಮಾಹಿತಿ ವಸ್ತುಗಳು "ಎಲಿಮೆಂಟ್ ಟ್ರೀ" ಎಂದು ಕರೆಯಲ್ಪಡುತ್ತವೆ. ಈ ಡೇಟಾ ರಚನೆಯು ಮೆಮೊರಿಯಲ್ಲಿ ಸಂಪೂರ್ಣವಾಗಿ ವಸ್ತುವಾಗಿದೆ. ಹ್ಯಾಂಡಲ್ಗೆ ಅನುಗುಣವಾದ ಸಂಪನ್ಮೂಲ ಮಾಹಿತಿಯ ನಿದರ್ಶನವನ್ನು ಕಂಡುಹಿಡಿಯಲು, ಆ ಹ್ಯಾಂಡಲ್ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಮಾರ್ಗದ ಪ್ರಕಾರ ಎಲಿಮೆಂಟ್ ಟ್ರೀ ಅನ್ನು ಕ್ರಮಿಸಲಾಗುತ್ತದೆ.
ಅಕ್ಕಿ. 2. IResource ಮತ್ತು ResourceInfo
ನಾವು ನಂತರ ನೋಡುವಂತೆ, ಸಂಪನ್ಮೂಲ ಮಾದರಿಯ ಮೂಲ ವಿನ್ಯಾಸವನ್ನು (ನಾವು ಅದನ್ನು ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ ಎಂದು ಕರೆಯಬಹುದು) ಇತರ ಮಾದರಿಗಳಿಗೆ ಎಕ್ಲಿಪ್ಸ್ನಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ. ಇದೀಗ, ಈ ವಿನ್ಯಾಸದ ಕೆಲವು ವಿಶಿಷ್ಟ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡೋಣ:
- ಹ್ಯಾಂಡಲ್ ಒಂದು ಮೌಲ್ಯದ ವಸ್ತುವಾಗಿದೆ. ಮೌಲ್ಯದ ವಸ್ತುಗಳು ಬದಲಾಗದ ವಸ್ತುಗಳಾಗಿವೆ, ಅವರ ಸಮಾನತೆಯು ಗುರುತನ್ನು ಆಧರಿಸಿಲ್ಲ. ಅಂತಹ ವಸ್ತುಗಳನ್ನು ಹ್ಯಾಶ್ ಮಾಡಿದ ಪಾತ್ರೆಗಳಲ್ಲಿ ಸುರಕ್ಷಿತವಾಗಿ ಕೀಲಿಯಾಗಿ ಬಳಸಬಹುದು. ಹ್ಯಾಂಡಲ್ನ ಬಹು ನಿದರ್ಶನಗಳು ಒಂದೇ ಸಂಪನ್ಮೂಲವನ್ನು ಉಲ್ಲೇಖಿಸಬಹುದು. ಅವುಗಳನ್ನು ಹೋಲಿಸಲು, ನೀವು ಸಮಾನ (ಆಬ್ಜೆಕ್ಟ್) ವಿಧಾನವನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ.
- ಹ್ಯಾಂಡಲ್ ಸಂಪನ್ಮೂಲದ ನಡವಳಿಕೆಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ, ಆದರೆ ಸಂಪನ್ಮೂಲದ ಸ್ಥಿತಿಯ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ (ಅದು ಸಂಗ್ರಹಿಸುವ ಏಕೈಕ ಡೇಟಾವೆಂದರೆ "ಕೀ", ಸಂಪನ್ಮೂಲದ ಮಾರ್ಗ).
- ಹ್ಯಾಂಡಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಸಂಪನ್ಮೂಲವನ್ನು ಉಲ್ಲೇಖಿಸಬಹುದು (ಇನ್ನೂ ರಚಿಸದ ಸಂಪನ್ಮೂಲ, ಅಥವಾ ಈಗಾಗಲೇ ಅಳಿಸಲಾದ ಸಂಪನ್ಮೂಲ). IResource.exists() ವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಪನ್ಮೂಲದ ಅಸ್ತಿತ್ವವನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.
- ಕೆಲವು ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಹ್ಯಾಂಡಲ್ನಲ್ಲಿಯೇ ಸಂಗ್ರಹಿಸಲಾದ ಮಾಹಿತಿಯ ಆಧಾರದ ಮೇಲೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು (ಹ್ಯಾಂಡಲ್-ಮಾತ್ರ ಕಾರ್ಯಾಚರಣೆಗಳು ಎಂದು ಕರೆಯಲ್ಪಡುವ). ಉದಾಹರಣೆಗಳೆಂದರೆ IResource.getParent(), getFullPath(), ಇತ್ಯಾದಿ. ಅಂತಹ ಕಾರ್ಯಾಚರಣೆ ಯಶಸ್ವಿಯಾಗಲು ಸಂಪನ್ಮೂಲವು ಅಸ್ತಿತ್ವದಲ್ಲಿರಬೇಕಾಗಿಲ್ಲ. ಸಂಪನ್ಮೂಲ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ ಯಶಸ್ವಿಯಾಗಲು ಸಂಪನ್ಮೂಲ ಅಗತ್ಯವಿರುವ ಕಾರ್ಯಾಚರಣೆಗಳು CoreException ಅನ್ನು ಎಸೆಯುತ್ತವೆ.
ಕಾರ್ಯಸ್ಥಳದ ಸಂಪನ್ಮೂಲ ಬದಲಾವಣೆಗಳನ್ನು ತಿಳಿಸಲು ಎಕ್ಲಿಪ್ಸ್ ಸಮರ್ಥ ಕಾರ್ಯವಿಧಾನವನ್ನು ಒದಗಿಸುತ್ತದೆ (ಚಿತ್ರ 3). ಎಕ್ಲಿಪ್ಸ್ IDE ಯಲ್ಲಿಯೇ ಅಥವಾ ಫೈಲ್ ಸಿಸ್ಟಮ್ನೊಂದಿಗೆ ಸಿಂಕ್ರೊನೈಸೇಶನ್ನ ಪರಿಣಾಮವಾಗಿ ಮಾಡಿದ ಕ್ರಿಯೆಗಳ ಪರಿಣಾಮವಾಗಿ ಸಂಪನ್ಮೂಲಗಳು ಬದಲಾಗಬಹುದು. ಎರಡೂ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಅಧಿಸೂಚನೆಗಳಿಗೆ ಚಂದಾದಾರರಾಗಿರುವ ಕ್ಲೈಂಟ್ಗಳು "ಸಂಪನ್ಮೂಲ ಡೆಲ್ಟಾಸ್" ರೂಪದಲ್ಲಿ ಬದಲಾವಣೆಗಳ ಬಗ್ಗೆ ವಿವರವಾದ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸಲಾಗುತ್ತದೆ. ಡೆಲ್ಟಾವು ಕಾರ್ಯಸ್ಥಳದ ಸಂಪನ್ಮೂಲದ (ಉಪ-) ಮರದ ಎರಡು ಸ್ಥಿತಿಗಳ ನಡುವಿನ ಬದಲಾವಣೆಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ ಮತ್ತು ಸ್ವತಃ ಒಂದು ಮರವಾಗಿದೆ, ಪ್ರತಿ ನೋಡ್ ಸಂಪನ್ಮೂಲಕ್ಕೆ ಬದಲಾವಣೆಯನ್ನು ವಿವರಿಸುತ್ತದೆ ಮತ್ತು ಮಕ್ಕಳ ಸಂಪನ್ಮೂಲಗಳಲ್ಲಿನ ಬದಲಾವಣೆಗಳನ್ನು ವಿವರಿಸುವ ಮುಂದಿನ ಹಂತದಲ್ಲಿ ಡೆಲ್ಟಾಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿರುತ್ತದೆ.
Рис. 3. IResourceChangeEvent и IResourceDelta
ಸಂಪನ್ಮೂಲ ಡೆಲ್ಟಾಗಳ ಆಧಾರದ ಮೇಲೆ ಅಧಿಸೂಚನೆ ಕಾರ್ಯವಿಧಾನವು ಈ ಕೆಳಗಿನ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿದೆ:
- ಪುನರಾವರ್ತಿತ ಸಂಯೋಜನೆಯ ತತ್ವವನ್ನು ಬಳಸಿಕೊಂಡು ಡೆಲ್ಟಾವನ್ನು ನಿರ್ಮಿಸಲಾಗಿರುವುದರಿಂದ ಒಂದೇ ರಚನೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಒಂದೇ ಬದಲಾವಣೆ ಮತ್ತು ಅನೇಕ ಬದಲಾವಣೆಗಳನ್ನು ವಿವರಿಸಲಾಗಿದೆ. ಚಂದಾದಾರ ಗ್ರಾಹಕರು ಡೆಲ್ಟಾಗಳ ಮರದ ಮೂಲಕ ಪುನರಾವರ್ತಿತ ಮೂಲದ ಮೂಲಕ ಸಂಪನ್ಮೂಲ ಬದಲಾವಣೆಯ ಅಧಿಸೂಚನೆಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದು.
- ಡೆಲ್ಟಾವು ಅದರ ಚಲನೆ ಮತ್ತು/ಅಥವಾ ಅದರೊಂದಿಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ "ಮಾರ್ಕರ್ಗಳಲ್ಲಿ" ಬದಲಾವಣೆಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಸಂಪನ್ಮೂಲದಲ್ಲಿನ ಬದಲಾವಣೆಗಳ ಬಗ್ಗೆ ಸಂಪೂರ್ಣ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿದೆ (ಉದಾಹರಣೆಗೆ, ಸಂಕಲನ ದೋಷಗಳನ್ನು ಮಾರ್ಕರ್ಗಳಾಗಿ ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ).
- ಸಂಪನ್ಮೂಲ ಉಲ್ಲೇಖಗಳನ್ನು ಹ್ಯಾಂಡಲ್ ಮೂಲಕ ಮಾಡಲಾಗಿರುವುದರಿಂದ, ಡೆಲ್ಟಾ ನೈಸರ್ಗಿಕವಾಗಿ ರಿಮೋಟ್ ಸಂಪನ್ಮೂಲವನ್ನು ಉಲ್ಲೇಖಿಸಬಹುದು.
ನಾವು ಶೀಘ್ರದಲ್ಲೇ ನೋಡುವಂತೆ, ಸಂಪನ್ಮೂಲ ಮಾದರಿ ಬದಲಾವಣೆ ಅಧಿಸೂಚನೆ ಕಾರ್ಯವಿಧಾನದ ವಿನ್ಯಾಸದ ಮುಖ್ಯ ಅಂಶಗಳು ಇತರ ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ ಮಾದರಿಗಳಿಗೆ ಸಹ ಸಂಬಂಧಿತವಾಗಿವೆ.
ಜೆಡಿಟಿ ಕೋರ್
ಎಕ್ಲಿಪ್ಸ್ ವರ್ಕ್ಸ್ಪೇಸ್ ಸಂಪನ್ಮೂಲ ಮಾದರಿಯು ಮೂಲಭೂತ ಭಾಷೆ-ಅಜ್ಞೇಯತಾವಾದಿ ಮಾದರಿಯಾಗಿದೆ. JDT ಕೋರ್ ಕಾಂಪೊನೆಂಟ್ (plugin org.eclipse.jdt.core) ಜಾವಾ ದೃಷ್ಟಿಕೋನದಿಂದ ಕಾರ್ಯಕ್ಷೇತ್ರದ ರಚನೆಯನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಮತ್ತು ವಿಶ್ಲೇಷಿಸಲು API ಅನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದನ್ನು "ಜಾವಾ ಮಾಡೆಲ್" (ಜಾವಾ ಮಾದರಿ) ಈ API ಅನ್ನು ಫೋಲ್ಡರ್ಗಳು ಮತ್ತು ಫೈಲ್ಗಳ ಪರಿಭಾಷೆಯಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಆಧಾರವಾಗಿರುವ ಸಂಪನ್ಮೂಲ ಮಾದರಿ API ಗೆ ವಿರುದ್ಧವಾಗಿ, ಜಾವಾ ಅಂಶಗಳ ಪರಿಭಾಷೆಯಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. ಜಾವಾ ಎಲಿಮೆಂಟ್ ಟ್ರೀಯ ಮುಖ್ಯ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ಅಂಜೂರದಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ. 4.
ಅಕ್ಕಿ. 4. ಜಾವಾ ಮಾಡೆಲ್ ಎಲಿಮೆಂಟ್ಸ್
ಜಾವಾ ಮಾದರಿಯು ಸಂಪನ್ಮೂಲ ಮಾದರಿಯಂತೆ ಅದೇ ಹ್ಯಾಂಡಲ್/ಬಾಡಿ ಐಡಿಯಮ್ ಅನ್ನು ಬಳಸುತ್ತದೆ (ಚಿತ್ರ 5). IJavaElement ಹ್ಯಾಂಡಲ್ ಆಗಿದೆ, ಮತ್ತು JavaElementInfo ದೇಹದ ಪಾತ್ರವನ್ನು ವಹಿಸುತ್ತದೆ. IJavaElement ಇಂಟರ್ಫೇಸ್ ಎಲ್ಲಾ ಜಾವಾ ಅಂಶಗಳಿಗೆ ಸಾಮಾನ್ಯವಾದ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ಅದರ ಕೆಲವು ವಿಧಾನಗಳು ಹ್ಯಾಂಡಲ್-ಮಾತ್ರ: getElementName(), getParent(), ಇತ್ಯಾದಿ. JavaElementInfo ವಸ್ತುವು ಅನುಗುಣವಾದ ಅಂಶದ ಸ್ಥಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ: ಅದರ ರಚನೆ ಮತ್ತು ಗುಣಲಕ್ಷಣಗಳು.
ಅಕ್ಕಿ. 5. IJavaElement ಮತ್ತು JavaElementInfo
ಮೂಲ ಹ್ಯಾಂಡಲ್/ಬಾಡಿ ವಿನ್ಯಾಸದ ಅನುಷ್ಠಾನದಲ್ಲಿ ಸಂಪನ್ಮೂಲ ಮಾದರಿಗೆ ಹೋಲಿಸಿದರೆ ಜಾವಾ ಮಾದರಿಯು ಕೆಲವು ವ್ಯತ್ಯಾಸಗಳನ್ನು ಹೊಂದಿದೆ. ಮೇಲೆ ಗಮನಿಸಿದಂತೆ, ಸಂಪನ್ಮೂಲ ಮಾದರಿಯಲ್ಲಿ, ಅಂಶ ಟ್ರೀ, ಅದರ ನೋಡ್ಗಳು ಸಂಪನ್ಮೂಲ ಮಾಹಿತಿ ವಸ್ತುಗಳು, ಸಂಪೂರ್ಣವಾಗಿ ಮೆಮೊರಿಯಲ್ಲಿ ಒಳಗೊಂಡಿರುತ್ತವೆ. ಆದರೆ ಜಾವಾ ಮಾದರಿಯು ಸಂಪನ್ಮೂಲ ವೃಕ್ಷಕ್ಕಿಂತ ಗಣನೀಯವಾಗಿ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಅಂಶಗಳನ್ನು ಹೊಂದಬಹುದು, ಏಕೆಂದರೆ ಇದು .ಜಾವಾ ಮತ್ತು .ಕ್ಲಾಸ್ ಫೈಲ್ಗಳ ಆಂತರಿಕ ರಚನೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ: ಪ್ರಕಾರಗಳು, ಕ್ಷೇತ್ರಗಳು ಮತ್ತು ವಿಧಾನಗಳು.
ಮೆಮೊರಿಯಲ್ಲಿನ ಅಂಶಗಳ ಸಂಪೂರ್ಣ ವೃಕ್ಷವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ವಸ್ತುವಾಗುವುದನ್ನು ತಪ್ಪಿಸಲು, ಜಾವಾ ಮಾದರಿಯ ಅನುಷ್ಠಾನವು ಅಂಶದ ಮಾಹಿತಿಯ ಸೀಮಿತ ಗಾತ್ರದ LRU ಸಂಗ್ರಹವನ್ನು ಬಳಸುತ್ತದೆ, ಅಲ್ಲಿ ಕೀಲಿಯು IJavaElement ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಎಲಿಮೆಂಟ್ ಟ್ರೀ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿದಂತೆ ಅಂಶ ಮಾಹಿತಿ ವಸ್ತುಗಳನ್ನು ಬೇಡಿಕೆಯ ಮೇಲೆ ರಚಿಸಲಾಗುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಕಡಿಮೆ ಬಾರಿ ಬಳಸಿದ ಐಟಂಗಳನ್ನು ಸಂಗ್ರಹದಿಂದ ಹೊರಹಾಕಲಾಗುತ್ತದೆ ಮತ್ತು ಮಾದರಿಯ ಮೆಮೊರಿಯ ಬಳಕೆಯು ನಿಗದಿತ ಸಂಗ್ರಹ ಗಾತ್ರಕ್ಕೆ ಸೀಮಿತವಾಗಿರುತ್ತದೆ. ಇದು ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ ವಿನ್ಯಾಸದ ಮತ್ತೊಂದು ಪ್ರಯೋಜನವಾಗಿದೆ, ಇದು ಕ್ಲೈಂಟ್ ಕೋಡ್ನಿಂದ ಅಂತಹ ಅನುಷ್ಠಾನದ ವಿವರಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಮರೆಮಾಡುತ್ತದೆ.
ಜಾವಾ ಅಂಶಗಳಿಗೆ ಬದಲಾವಣೆಗಳನ್ನು ತಿಳಿಸುವ ಕಾರ್ಯವಿಧಾನವು ಸಾಮಾನ್ಯವಾಗಿ ಮೇಲೆ ಚರ್ಚಿಸಿದ ಕಾರ್ಯಸ್ಥಳ ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಬದಲಾವಣೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವ ಕಾರ್ಯವಿಧಾನದಂತೆಯೇ ಇರುತ್ತದೆ. ಜಾವಾ ಮಾದರಿಯಲ್ಲಿನ ಬದಲಾವಣೆಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ಬಯಸುವ ಕ್ಲೈಂಟ್ ಅಧಿಸೂಚನೆಗಳಿಗೆ ಚಂದಾದಾರರಾಗುತ್ತಾರೆ, ಇದು IJavaElementDelta (ಚಿತ್ರ 6) ಅನ್ನು ಒಳಗೊಂಡಿರುವ ElementChangedEvent ವಸ್ತುವಾಗಿ ಪ್ರತಿನಿಧಿಸುತ್ತದೆ.
ಅಕ್ಕಿ. 6. ElementChangedEvent ಮತ್ತು IJavaElementDelta
ಜಾವಾ ಮಾದರಿಯು ವಿಧಾನ ಕಾಯಗಳು ಅಥವಾ ಹೆಸರಿನ ರೆಸಲ್ಯೂಶನ್ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿಲ್ಲ, ಆದ್ದರಿಂದ ಜಾವಾದಲ್ಲಿ ಬರೆಯಲಾದ ಕೋಡ್ನ ವಿವರವಾದ ವಿಶ್ಲೇಷಣೆಗಾಗಿ, JDT ಕೋರ್ ಹೆಚ್ಚುವರಿ (ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತವಲ್ಲದ) ಮಾದರಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ:
ಸಿಂಟ್ಯಾಕ್ಸ್ ಟ್ರೀಗಳು ಗಮನಾರ್ಹ ಪ್ರಮಾಣದ ಮೆಮೊರಿಯನ್ನು ಬಳಸುವುದರಿಂದ, ಸಕ್ರಿಯ ಸಂಪಾದಕಕ್ಕಾಗಿ JDT ಕೇವಲ ಒಂದು AST ಅನ್ನು ಮಾತ್ರ ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಜಾವಾ ಮಾದರಿಯಂತಲ್ಲದೆ, AST ಅನ್ನು ಸಾಮಾನ್ಯವಾಗಿ "ಮಧ್ಯಂತರ", "ತಾತ್ಕಾಲಿಕ" ಮಾದರಿಯಾಗಿ ನೋಡಲಾಗುತ್ತದೆ, ಅದರ ಸದಸ್ಯರನ್ನು AST ರಚನೆಗೆ ಕಾರಣವಾದ ಕಾರ್ಯಾಚರಣೆಯ ಸಂದರ್ಭದ ಹೊರಗೆ ಗ್ರಾಹಕರು ಉಲ್ಲೇಖಿಸಬಾರದು.
ಪಟ್ಟಿ ಮಾಡಲಾದ ಮೂರು ಮಾದರಿಗಳು (ಜಾವಾ ಮಾದರಿ, AST, ಬೈಂಡಿಂಗ್ಗಳು) ಒಟ್ಟಾಗಿ JDT ಯಲ್ಲಿ "ಬುದ್ಧಿವಂತ ಅಭಿವೃದ್ಧಿ ಪರಿಕರಗಳನ್ನು" ನಿರ್ಮಿಸಲು ಆಧಾರವಾಗಿದೆ, ಇದರಲ್ಲಿ ವಿವಿಧ "ಸಹಾಯಕರು" ಹೊಂದಿರುವ ಪ್ರಬಲ ಜಾವಾ ಸಂಪಾದಕರು, ಮೂಲ ಕೋಡ್ ಅನ್ನು ಸಂಸ್ಕರಿಸುವ ವಿವಿಧ ಕ್ರಮಗಳು (ಆಮದು ಪಟ್ಟಿಯನ್ನು ಆಯೋಜಿಸುವುದು ಸೇರಿದಂತೆ) ಕಸ್ಟಮೈಸ್ ಮಾಡಿದ ಶೈಲಿಯ ಪ್ರಕಾರ ಹೆಸರುಗಳು ಮತ್ತು ಫಾರ್ಮ್ಯಾಟಿಂಗ್), ಹುಡುಕಾಟ ಮತ್ತು ರಿಫ್ಯಾಕ್ಟರಿಂಗ್ ಪರಿಕರಗಳು. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಜಾವಾ ಮಾದರಿಯು ವಿಶೇಷ ಪಾತ್ರವನ್ನು ವಹಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ಇದನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗುತ್ತಿರುವ ಅಪ್ಲಿಕೇಶನ್ನ ರಚನೆಯ ದೃಶ್ಯ ಪ್ರಾತಿನಿಧ್ಯಕ್ಕೆ ಆಧಾರವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, ಪ್ಯಾಕೇಜ್ ಎಕ್ಸ್ಪ್ಲೋರರ್, ಔಟ್ಲೈನ್, ಹುಡುಕಾಟ, ಕರೆ ಕ್ರಮಾನುಗತ ಮತ್ತು ಕ್ರಮಾನುಗತ ಪ್ರಕಾರ).
1C: ಎಂಟರ್ಪ್ರೈಸ್ ಡೆವಲಪ್ಮೆಂಟ್ಸ್ ಟೂಲ್ಸ್ನಲ್ಲಿ ಬಳಸಲಾದ ಎಕ್ಲಿಪ್ಸ್ ಘಟಕಗಳು
ಅಂಜೂರದಲ್ಲಿ. 7C: ಎಂಟರ್ಪ್ರೈಸ್ ಡೆವಲಪ್ಮೆಂಟ್ ಟೂಲ್ಸ್ಗಾಗಿ ತಂತ್ರಜ್ಞಾನ ವೇದಿಕೆಯ ಅಡಿಪಾಯವನ್ನು ರೂಪಿಸುವ ಎಕ್ಲಿಪ್ಸ್ ಘಟಕಗಳನ್ನು ಚಿತ್ರ 1 ತೋರಿಸುತ್ತದೆ.
ಅಕ್ಕಿ. 7. ಎಕ್ಲಿಪ್ಸ್ 1C ಗಾಗಿ ವೇದಿಕೆಯಾಗಿ: ಎಂಟರ್ಪ್ರೈಸ್ ಡೆವಲಪ್ಮೆಂಟ್ ಟೂಲ್ಸ್
ಎಕ್ಲಿಪ್ಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಮೂಲಭೂತ ಸೌಕರ್ಯಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಹಿಂದಿನ ವಿಭಾಗದಲ್ಲಿ ಈ ಮೂಲಸೌಕರ್ಯದ ಕೆಲವು ಅಂಶಗಳನ್ನು ನಾವು ನೋಡಿದ್ದೇವೆ.
ಯಾವುದೇ ನಿಜವಾದ ಸಾಮಾನ್ಯ-ಉದ್ದೇಶದ ಸಾಧನದಂತೆ, ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ಮಾಡೆಲಿಂಗ್ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು EMF ಸೂಕ್ತವಾಗಿದೆ, ಆದರೆ ಕೆಲವು ವರ್ಗಗಳ ಮಾದರಿಗಳು (ಉದಾಹರಣೆಗೆ, ಮೇಲೆ ಚರ್ಚಿಸಲಾದ ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ ಮಾದರಿಗಳು) ಹೆಚ್ಚು ವಿಶೇಷವಾದ ಮಾಡೆಲಿಂಗ್ ಉಪಕರಣಗಳ ಅಗತ್ಯವಿರಬಹುದು. EMF ಬಗ್ಗೆ ಮಾತನಾಡುವುದು ಕೃತಜ್ಞತೆಯಿಲ್ಲದ ಕಾರ್ಯವಾಗಿದೆ, ವಿಶೇಷವಾಗಿ ಒಂದು ಲೇಖನದ ಸೀಮಿತ ಮಿತಿಯಲ್ಲಿ, ಇದು ಪ್ರತ್ಯೇಕ ಪುಸ್ತಕದ ವಿಷಯವಾಗಿದೆ ಮತ್ತು ಸಾಕಷ್ಟು ದಪ್ಪವಾಗಿರುತ್ತದೆ. ಇಎಮ್ಎಫ್ಗೆ ಆಧಾರವಾಗಿರುವ ಉನ್ನತ-ಗುಣಮಟ್ಟದ ಸಾಮಾನ್ಯೀಕರಣದ ವ್ಯವಸ್ಥೆಯು ಮಾಡೆಲಿಂಗ್ಗೆ ಮೀಸಲಾಗಿರುವ ಸಂಪೂರ್ಣ ಶ್ರೇಣಿಯ ಯೋಜನೆಗಳ ಜನ್ಮಕ್ಕೆ ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟಿದೆ ಎಂಬುದನ್ನು ನಾವು ಗಮನಿಸೋಣ, ಇವುಗಳನ್ನು ಉನ್ನತ ಮಟ್ಟದ ಯೋಜನೆಯಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ.
1C: ಎಂಟರ್ಪ್ರೈಸ್ ಡೆವಲಪ್ಮೆಂಟ್ ಟೂಲ್ಗಳು ಇಎಮ್ಎಫ್ ಮತ್ತು ಹಲವಾರು ಇತರ ಎಕ್ಲಿಪ್ಸ್ ಮಾಡೆಲಿಂಗ್ ಪ್ರಾಜೆಕ್ಟ್ಗಳನ್ನು ಸಕ್ರಿಯವಾಗಿ ಬಳಸುತ್ತವೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, ಅಂತರ್ನಿರ್ಮಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ ಮತ್ತು ಪ್ರಶ್ನೆ ಭಾಷೆಯಂತಹ 1C: ಎಂಟರ್ಪ್ರೈಸ್ ಭಾಷೆಗಳಿಗೆ ಅಭಿವೃದ್ಧಿ ಸಾಧನಗಳ ಅಡಿಪಾಯಗಳಲ್ಲಿ ಎಕ್ಸ್ಟೆಕ್ಸ್ಟ್ ಒಂದಾಗಿದೆ. ಈ ಅಭಿವೃದ್ಧಿ ಸಾಧನಗಳಿಗೆ ಮತ್ತೊಂದು ಆಧಾರವೆಂದರೆ ಎಕ್ಲಿಪ್ಸ್ ಹ್ಯಾಂಡ್ಲಿ ಯೋಜನೆ, ಇದನ್ನು ನಾವು ಹೆಚ್ಚು ವಿವರವಾಗಿ ಚರ್ಚಿಸುತ್ತೇವೆ (ಪಟ್ಟಿ ಮಾಡಲಾದ ಎಕ್ಲಿಪ್ಸ್ ಘಟಕಗಳಲ್ಲಿ, ಇದು ಇನ್ನೂ ಕಡಿಮೆ ತಿಳಿದಿದೆ).
ಹ್ಯಾಂಡಲ್/ಬಾಡಿ ಭಾಷಾವೈಶಿಷ್ಟ್ಯದಂತಹ ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ ಮಾದರಿಗಳ ಮೂಲ ವಾಸ್ತುಶಿಲ್ಪದ ತತ್ವಗಳನ್ನು ಸಂಪನ್ಮೂಲ ಮಾದರಿ ಮತ್ತು ಜಾವಾ ಮಾದರಿಯನ್ನು ಉದಾಹರಣೆಗಳಾಗಿ ಬಳಸಿಕೊಂಡು ಮೇಲೆ ಚರ್ಚಿಸಲಾಗಿದೆ. ಎಕ್ಲಿಪ್ಸ್ ಜಾವಾ ಡೆವಲಪ್ಮೆಂಟ್ ಟೂಲ್ಗಳಿಗೆ (ಜೆಡಿಟಿ) ಸಂಪನ್ಮೂಲ ಮಾದರಿ ಮತ್ತು ಜಾವಾ ಮಾದರಿ ಎರಡೂ ಪ್ರಮುಖ ಅಡಿಪಾಯಗಳಾಗಿವೆ ಎಂದು ಅದು ಗಮನಿಸಿದೆ. ಮತ್ತು ಬಹುತೇಕ ಎಲ್ಲಾ *DT ಎಕ್ಲಿಪ್ಸ್ ಪ್ರಾಜೆಕ್ಟ್ಗಳು JDT ಯಂತೆಯೇ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಹೊಂದಿರುವುದರಿಂದ, ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ ಮಾದರಿಗಳು ಎಕ್ಲಿಪ್ಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ನ ಮೇಲ್ಭಾಗದಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಎಲ್ಲಾ IDE ಗಳಲ್ಲದಿದ್ದರೂ ಅನೇಕ ಆಧಾರವಾಗಿದೆ ಎಂದು ಹೇಳಲು ಇದು ಒಂದು ದೊಡ್ಡ ಉತ್ಪ್ರೇಕ್ಷೆಯಾಗಿರುವುದಿಲ್ಲ. ಉದಾಹರಣೆಗೆ, ಎಕ್ಲಿಪ್ಸ್ C/C++ ಡೆವಲಪ್ಮೆಂಟ್ ಟೂಲಿಂಗ್ (CDT) ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ C/C++ ಮಾದರಿಯನ್ನು ಹೊಂದಿದ್ದು, ಇದು JDT ಯಲ್ಲಿ ಜಾವಾ ಮಾಡೆಲ್ ಮಾಡುವಂತೆಯೇ CDT ಆರ್ಕಿಟೆಕ್ಚರ್ನಲ್ಲಿ ಅದೇ ಪಾತ್ರವನ್ನು ವಹಿಸುತ್ತದೆ.
ಹ್ಯಾಂಡ್ಲಿ ಮೊದಲು, ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ ಭಾಷಾ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸಲು ಎಕ್ಲಿಪ್ಸ್ ವಿಶೇಷ ಗ್ರಂಥಾಲಯಗಳನ್ನು ನೀಡಲಿಲ್ಲ. ಪ್ರಸ್ತುತ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಮಾದರಿಗಳನ್ನು ಮುಖ್ಯವಾಗಿ ಜಾವಾ ಮಾದರಿ ಕೋಡ್ ಅನ್ನು ನೇರವಾಗಿ ಅಳವಡಿಸಿಕೊಳ್ಳುವ ಮೂಲಕ ರಚಿಸಲಾಗಿದೆ (ಅಕಾ ಕಾಪಿ/ಪೇಸ್ಟ್), ಇದು ಅನುಮತಿಸುವ ಸಂದರ್ಭಗಳಲ್ಲಿ ಎಕ್ಲಿಪ್ಸ್ ಸಾರ್ವಜನಿಕ ಪರವಾನಗಿ (EPL). (ನಿಸ್ಸಂಶಯವಾಗಿ, ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಎಕ್ಲಿಪ್ಸ್ ಯೋಜನೆಗಳಿಗೆ ಕಾನೂನು ಸಮಸ್ಯೆಯಲ್ಲ, ಆದರೆ ಮುಚ್ಚಿದ ಮೂಲ ಉತ್ಪನ್ನಗಳಿಗೆ ಅಲ್ಲ.) ಅದರ ಅಂತರ್ಗತ ಅಡೆತಡೆಗಳ ಜೊತೆಗೆ, ಈ ತಂತ್ರವು ಪ್ರಸಿದ್ಧ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ: ದೋಷಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳುವಾಗ ಕೋಡ್ ನಕಲು ಪರಿಚಯಿಸಲಾಗಿದೆ, ಇತ್ಯಾದಿ ಕೆಟ್ಟದ್ದು ಏನೆಂದರೆ, ಫಲಿತಾಂಶದ ಮಾದರಿಗಳು "ತಮ್ಮಲ್ಲೇ ಇರುವ ವಸ್ತುಗಳು" ಮತ್ತು ಏಕೀಕರಣದ ಸಾಮರ್ಥ್ಯದ ಲಾಭವನ್ನು ಪಡೆಯುವುದಿಲ್ಲ. ಆದರೆ ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ ಭಾಷಾ ಮಾದರಿಗಳಿಗೆ ಸಾಮಾನ್ಯ ಪರಿಕಲ್ಪನೆಗಳು ಮತ್ತು ಪ್ರೋಟೋಕಾಲ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸುವುದು ಇಎಮ್ಎಫ್ನ ಸಂದರ್ಭದಲ್ಲಿ ಏನಾಯಿತು ಎಂಬುದರಂತೆಯೇ ಅವರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಘಟಕಗಳ ರಚನೆಗೆ ಕಾರಣವಾಗಬಹುದು.
ಎಕ್ಲಿಪ್ಸ್ ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲಿಲ್ಲ ಎಂದಲ್ಲ. 2005 ರಲ್ಲಿ ಹಿಂತಿರುಗಿ
ಒಂದು ನಿರ್ದಿಷ್ಟ ಅರ್ಥದಲ್ಲಿ, ಹ್ಯಾಂಡ್ಲಿ ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಇಎಮ್ಎಫ್ನಂತೆಯೇ ಸರಿಸುಮಾರು ಅದೇ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಆದರೆ ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ ಮಾದರಿಗಳಿಗೆ ಮತ್ತು ಪ್ರಾಥಮಿಕವಾಗಿ ಭಾಷಾ ಪದಗಳಿಗಿಂತ (ಅಂದರೆ, ಕೆಲವು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ರಚನೆಯ ಅಂಶಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ). ಹ್ಯಾಂಡ್ಲಿ ವಿನ್ಯಾಸ ಮಾಡುವಾಗ ಹೊಂದಿಸಲಾದ ಮುಖ್ಯ ಗುರಿಗಳನ್ನು ಕೆಳಗೆ ಪಟ್ಟಿ ಮಾಡಲಾಗಿದೆ:
- ವಿಷಯದ ಪ್ರದೇಶದ ಮುಖ್ಯ ಅಮೂರ್ತತೆಗಳ ಗುರುತಿಸುವಿಕೆ.
- ಪ್ರಯತ್ನವನ್ನು ಕಡಿಮೆ ಮಾಡುವುದು ಮತ್ತು ಕೋಡ್ ಮರುಬಳಕೆಯ ಮೂಲಕ ಹ್ಯಾಂಡಲ್ ಆಧಾರಿತ ಭಾಷಾ ಮಾದರಿಗಳ ಅನುಷ್ಠಾನದ ಗುಣಮಟ್ಟವನ್ನು ಸುಧಾರಿಸುವುದು.
- ಫಲಿತಾಂಶದ ಮಾದರಿಗಳಿಗೆ ಏಕೀಕೃತ ಮೆಟಾ-ಮಟ್ಟದ API ಅನ್ನು ಒದಗಿಸುವುದು, ಭಾಷಾ ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ ಮಾದರಿಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಸಾಮಾನ್ಯ IDE ಘಟಕಗಳನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಮಾಡುತ್ತದೆ.
- ನಮ್ಯತೆ ಮತ್ತು ಸ್ಕೇಲೆಬಿಲಿಟಿ.
- ಎಕ್ಸ್ಟೆಕ್ಸ್ಟ್ನೊಂದಿಗೆ ಏಕೀಕರಣ (ಪ್ರತ್ಯೇಕ ಪದರದಲ್ಲಿ).
ಸಾಮಾನ್ಯ ಪರಿಕಲ್ಪನೆಗಳು ಮತ್ತು ಪ್ರೋಟೋಕಾಲ್ಗಳನ್ನು ಹೈಲೈಟ್ ಮಾಡಲು, ಭಾಷಾ ಹ್ಯಾಂಡಲ್ ಆಧಾರಿತ ಮಾದರಿಗಳ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಅಳವಡಿಕೆಗಳನ್ನು ವಿಶ್ಲೇಷಿಸಲಾಗಿದೆ. ಹ್ಯಾಂಡ್ಲಿ ಒದಗಿಸಿದ ಮುಖ್ಯ ಇಂಟರ್ಫೇಸ್ಗಳು ಮತ್ತು ಮೂಲಭೂತ ಅಳವಡಿಕೆಗಳನ್ನು ಅಂಜೂರದಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ. 8.
ಅಕ್ಕಿ. 8. ಸಾಮಾನ್ಯ ಇಂಟರ್ಫೇಸ್ಗಳು ಮತ್ತು ಹ್ಯಾಂಡ್ಲಿ ಅಂಶಗಳ ಮೂಲಭೂತ ಅಳವಡಿಕೆಗಳು
IElement ಇಂಟರ್ಫೇಸ್ ಒಂದು ಅಂಶದ ಹ್ಯಾಂಡಲ್ ಅನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ ಮತ್ತು ಎಲ್ಲಾ ಹ್ಯಾಂಡ್ಲಿ-ಆಧಾರಿತ ಮಾದರಿಗಳ ಅಂಶಗಳಿಗೆ ಸಾಮಾನ್ಯವಾಗಿದೆ. ಅಮೂರ್ತ ವರ್ಗದ ಅಂಶವು ಸಾಮಾನ್ಯೀಕರಿಸಿದ ಹ್ಯಾಂಡಲ್/ಬಾಡಿ ಮೆಕ್ಯಾನಿಸಂ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ (ಚಿತ್ರ 9).
ಅಕ್ಕಿ. 9. ಐಎಲಿಮೆಂಟ್ ಮತ್ತು ಜೆನೆರಿಕ್ ಹ್ಯಾಂಡಲ್/ಬಾಡಿ ಇಂಪ್ಲಿಮೆಂಟೇಶನ್
ಜೊತೆಗೆ, ಹ್ಯಾಂಡ್ಲಿ ಮಾದರಿ ಅಂಶಗಳಲ್ಲಿನ ಬದಲಾವಣೆಗಳ ಬಗ್ಗೆ ತಿಳಿಸಲು ಸಾಮಾನ್ಯೀಕರಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಒದಗಿಸುತ್ತದೆ (ಚಿತ್ರ 10). ನೀವು ನೋಡುವಂತೆ, ಇದು ಸಂಪನ್ಮೂಲ ಮಾದರಿ ಮತ್ತು ಜಾವಾ ಮಾದರಿಯಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿರುವ ಅಧಿಸೂಚನೆ ಕಾರ್ಯವಿಧಾನಗಳಿಗೆ ವಿಶಾಲವಾಗಿ ಹೋಲುತ್ತದೆ ಮತ್ತು ಅಂಶ ಬದಲಾವಣೆಯ ಮಾಹಿತಿಯ ಏಕೀಕೃತ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಒದಗಿಸಲು IElementDelta ಅನ್ನು ಬಳಸುತ್ತದೆ.
ಅಕ್ಕಿ. 10. ಸಾಮಾನ್ಯ ಇಂಟರ್ಫೇಸ್ಗಳು ಮತ್ತು ಹ್ಯಾಂಡ್ಲಿ ಅಧಿಸೂಚನೆ ಕಾರ್ಯವಿಧಾನದ ಮೂಲಭೂತ ಅನುಷ್ಠಾನಗಳು
ಮೇಲೆ ಚರ್ಚಿಸಿದ ಹ್ಯಾಂಡ್ಲಿ ಭಾಗವನ್ನು (ಚಿತ್ರ 9 ಮತ್ತು 10) ಯಾವುದೇ ಹ್ಯಾಂಡಲ್ ಆಧಾರಿತ ಮಾದರಿಗಳನ್ನು ಪ್ರತಿನಿಧಿಸಲು ಬಳಸಬಹುದು. ರಚಿಸಲು ಭಾಷಾಶಾಸ್ತ್ರೀಯ ಮಾದರಿಗಳು, ಯೋಜನೆಯು ಹೆಚ್ಚುವರಿ ಕಾರ್ಯವನ್ನು ನೀಡುತ್ತದೆ - ನಿರ್ದಿಷ್ಟವಾಗಿ, ಸಾಮಾನ್ಯ ಇಂಟರ್ಫೇಸ್ಗಳು ಮತ್ತು ಮೂಲ ಪಠ್ಯ ರಚನೆಯ ಅಂಶಗಳಿಗೆ ಮೂಲಭೂತ ಅನುಷ್ಠಾನಗಳು, ಕರೆಯಲ್ಪಡುವ ಮೂಲ ಅಂಶಗಳು (ಚಿತ್ರ 8). ISourceFile ಇಂಟರ್ಫೇಸ್ ಮೂಲ ಫೈಲ್ ಅನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ ಮತ್ತು ISourceConstruct ಮೂಲ ಫೈಲ್ನಲ್ಲಿನ ಅಂಶವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಅಮೂರ್ತ ವರ್ಗಗಳು SourceFile ಮತ್ತು SourceConstruct ಮೂಲ ಫೈಲ್ಗಳು ಮತ್ತು ಅವುಗಳ ಅಂಶಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದನ್ನು ಬೆಂಬಲಿಸಲು ಸಾಮಾನ್ಯೀಕೃತ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತವೆ, ಉದಾಹರಣೆಗೆ, ಪಠ್ಯ ಬಫರ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದು, ಮೂಲ ಪಠ್ಯದಲ್ಲಿನ ಅಂಶದ ನಿರ್ದೇಶಾಂಕಗಳಿಗೆ ಬಂಧಿಸುವುದು, ಕೆಲಸ ಮಾಡುವ ಕಾಪಿ ಬಫರ್ನ ಪ್ರಸ್ತುತ ವಿಷಯಗಳೊಂದಿಗೆ ಮಾದರಿಗಳನ್ನು ಸಮನ್ವಯಗೊಳಿಸುವುದು , ಇತ್ಯಾದಿ ಈ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಸಾಮಾನ್ಯವಾಗಿ ಸಾಕಷ್ಟು ಸವಾಲಾಗಿದೆ, ಮತ್ತು ಹ್ಯಾಂಡ್ಲಿ ಉತ್ತಮ-ಗುಣಮಟ್ಟದ ಬೇಸ್ ಅನುಷ್ಠಾನಗಳನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ ಭಾಷಾ ಮಾದರಿಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಪ್ರಯತ್ನವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
ಮೇಲೆ ಪಟ್ಟಿ ಮಾಡಲಾದ ಪ್ರಮುಖ ಕಾರ್ಯವಿಧಾನಗಳ ಜೊತೆಗೆ, ಪಠ್ಯ ಬಫರ್ಗಳು ಮತ್ತು ಸ್ನ್ಯಾಪ್ಶಾಟ್ಗಳಿಗೆ ಮೂಲಸೌಕರ್ಯವನ್ನು ಹ್ಯಾಂಡ್ಲಿ ಒದಗಿಸುತ್ತದೆ, ಮೂಲ ಕೋಡ್ ಸಂಪಾದಕರೊಂದಿಗೆ ಏಕೀಕರಣಕ್ಕೆ ಬೆಂಬಲ (Xtext ಎಡಿಟರ್ನೊಂದಿಗೆ ಬಾಕ್ಸ್ ಹೊರಗೆ ಏಕೀಕರಣ ಸೇರಿದಂತೆ), ಹಾಗೆಯೇ ಕೆಲವು ಸಾಮಾನ್ಯ UI ಘಟಕಗಳು ಮೂಲ ಕೋಡ್ ಸಂಪಾದಕರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಿ. ಔಟ್ಲೈನ್ ಫ್ರೇಮ್ವರ್ಕ್ನಂತಹ ಹ್ಯಾಂಡ್ಲಿ ಮಾದರಿಗಳು. ಅದರ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ವಿವರಿಸಲು, ಯೋಜನೆಯು ಹ್ಯಾಂಡ್ಲಿಯಲ್ಲಿ ಜಾವಾ ಮಾದರಿಯ ಅನುಷ್ಠಾನವನ್ನು ಒಳಗೊಂಡಂತೆ ಹಲವಾರು ಉದಾಹರಣೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. (JDT ಯಲ್ಲಿ ಜಾವಾ ಮಾದರಿಯ ಸಂಪೂರ್ಣ ಅನುಷ್ಠಾನಕ್ಕೆ ಹೋಲಿಸಿದರೆ, ಹೆಚ್ಚಿನ ಸ್ಪಷ್ಟತೆಗಾಗಿ ಈ ಮಾದರಿಯನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಸ್ವಲ್ಪ ಸರಳಗೊಳಿಸಲಾಗಿದೆ.)
ಮೊದಲೇ ಗಮನಿಸಿದಂತೆ, ಹ್ಯಾಂಡ್ಲಿಯ ಆರಂಭಿಕ ವಿನ್ಯಾಸ ಮತ್ತು ನಂತರದ ಅಭಿವೃದ್ಧಿಯ ಸಮಯದಲ್ಲಿ ಪ್ರಮುಖ ಗಮನವು ಸ್ಕೇಲೆಬಿಲಿಟಿ ಮತ್ತು ನಮ್ಯತೆಯ ಮೇಲೆ ಮುಂದುವರಿಯುತ್ತದೆ.
ತಾತ್ವಿಕವಾಗಿ, ಹ್ಯಾಂಡಲ್-ಆಧಾರಿತ ಮಾದರಿಗಳು "ವಿನ್ಯಾಸದಿಂದ" ಚೆನ್ನಾಗಿ ಅಳೆಯುತ್ತವೆ. ಉದಾಹರಣೆಗೆ, ಹ್ಯಾಂಡಲ್/ಬಾಡಿ ಭಾಷಾವೈಶಿಷ್ಟ್ಯವು ಮಾದರಿಯಿಂದ ಸೇವಿಸುವ ಮೆಮೊರಿಯ ಪ್ರಮಾಣವನ್ನು ಮಿತಿಗೊಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಆದರೆ ಸೂಕ್ಷ್ಮ ವ್ಯತ್ಯಾಸಗಳೂ ಇವೆ. ಹೀಗಾಗಿ, ಸ್ಕೇಲೆಬಿಲಿಟಿಗಾಗಿ ಹ್ಯಾಂಡ್ಲಿಯನ್ನು ಪರೀಕ್ಷಿಸುವಾಗ, ಅಧಿಸೂಚನೆ ಕಾರ್ಯವಿಧಾನದ ಅನುಷ್ಠಾನದಲ್ಲಿ ಸಮಸ್ಯೆಯನ್ನು ಕಂಡುಹಿಡಿಯಲಾಯಿತು - ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಅಂಶಗಳನ್ನು ಬದಲಾಯಿಸಿದಾಗ, ಡೆಲ್ಟಾಗಳನ್ನು ನಿರ್ಮಿಸಲು ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. JDT ಜಾವಾ ಮಾದರಿಯಲ್ಲಿ ಅದೇ ಸಮಸ್ಯೆ ಇದೆ ಎಂದು ಅದು ಬದಲಾಯಿತು, ಇದರಿಂದ ಅನುಗುಣವಾದ ಕೋಡ್ ಅನ್ನು ಒಮ್ಮೆ ಅಳವಡಿಸಲಾಗಿದೆ. ನಾವು ಹ್ಯಾಂಡ್ಲಿಯಲ್ಲಿ ದೋಷವನ್ನು ಸರಿಪಡಿಸಿದ್ದೇವೆ ಮತ್ತು JDT ಗಾಗಿ ಇದೇ ರೀತಿಯ ಪ್ಯಾಚ್ ಅನ್ನು ಸಿದ್ಧಪಡಿಸಿದ್ದೇವೆ, ಅದನ್ನು ಕೃತಜ್ಞತೆಯಿಂದ ಸ್ವೀಕರಿಸಲಾಗಿದೆ. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಮಾಡೆಲ್ ಅಳವಡಿಕೆಗಳಲ್ಲಿ ಹ್ಯಾಂಡ್ಲಿಯನ್ನು ಪರಿಚಯಿಸುವುದರಿಂದ ಇದು ಕೇವಲ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ, ಏಕೆಂದರೆ ಈ ಸಂದರ್ಭದಲ್ಲಿ ಅಂತಹ ದೋಷವನ್ನು ಕೇವಲ ಒಂದೇ ಸ್ಥಳದಲ್ಲಿ ಸರಿಪಡಿಸಬಹುದು.
ತಾಂತ್ರಿಕವಾಗಿ ಕಾರ್ಯಸಾಧ್ಯವಾಗುವಂತೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಮಾಡೆಲ್ ಅಳವಡಿಕೆಗಳಲ್ಲಿ ಹ್ಯಾಂಡ್ಲಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು, ಗ್ರಂಥಾಲಯವು ಗಮನಾರ್ಹ ನಮ್ಯತೆಯನ್ನು ಹೊಂದಿರಬೇಕು. API ಮಾದರಿಯಾದ್ಯಂತ ಹಿಂದುಳಿದ ಹೊಂದಾಣಿಕೆಯನ್ನು ನಿರ್ವಹಿಸುವುದು ಮುಖ್ಯ ಸಮಸ್ಯೆಯಾಗಿದೆ. ರಲ್ಲಿ ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲಾಗಿದೆ
ನಮ್ಯತೆಯು ಇತರ ಅಂಶಗಳನ್ನು ಸಹ ಹೊಂದಿದೆ. ಉದಾಹರಣೆಗೆ, ಹ್ಯಾಂಡ್ಲಿ ಮಾದರಿಯ ರಚನೆಯ ಮೇಲೆ ಯಾವುದೇ ನಿರ್ಬಂಧಗಳನ್ನು ಹೇರುವುದಿಲ್ಲ ಮತ್ತು ಸಾಮಾನ್ಯ-ಉದ್ದೇಶ ಮತ್ತು ಡೊಮೇನ್-ನಿರ್ದಿಷ್ಟ ಭಾಷೆಗಳೆರಡನ್ನೂ ಮಾದರಿ ಮಾಡಲು ಬಳಸಬಹುದು. ಮೂಲ ಕಡತದ ರಚನೆಯನ್ನು ನಿರ್ಮಿಸುವಾಗ, ಹ್ಯಾಂಡ್ಲಿ ಯಾವುದೇ ನಿರ್ದಿಷ್ಟವಾದ AST ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಸೂಚಿಸುವುದಿಲ್ಲ ಮತ್ತು ತಾತ್ವಿಕವಾಗಿ, AST ಯ ಉಪಸ್ಥಿತಿಯ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ, ಹೀಗಾಗಿ ಯಾವುದೇ ಪಾರ್ಸಿಂಗ್ ಕಾರ್ಯವಿಧಾನದೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಅಂತಿಮವಾಗಿ, ಹ್ಯಾಂಡ್ಲಿ ಎಕ್ಲಿಪ್ಸ್ ವರ್ಕ್ಸ್ಪೇಸ್ನೊಂದಿಗೆ ಪೂರ್ಣ ಏಕೀಕರಣವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, ಆದರೆ ಅದರ ಏಕೀಕರಣಕ್ಕೆ ಧನ್ಯವಾದಗಳು ಫೈಲ್ ಸಿಸ್ಟಮ್ಗಳೊಂದಿಗೆ ನೇರವಾಗಿ ಕೆಲಸ ಮಾಡಬಹುದು
ಪ್ರಸ್ತುತ ಆವೃತ್ತಿ
ಮೇಲೆ ಗಮನಿಸಿದಂತೆ, ಈ ಉತ್ಪನ್ನಗಳಲ್ಲಿ ಒಂದಾದ 1C: ಎಂಟರ್ಪ್ರೈಸ್ ಡೆವಲಪ್ಮೆಂಟ್ ಟೂಲ್ಸ್, ಅಲ್ಲಿ 1C: ಎಂಟರ್ಪ್ರೈಸ್ ಭಾಷೆಗಳ ಉನ್ನತ ಮಟ್ಟದ ರಚನೆಯ ಮಾದರಿ ಅಂಶಗಳಿಗೆ ಮೊದಲಿನಿಂದಲೂ ಹ್ಯಾಂಡ್ಲಿ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಅಂತರ್ನಿರ್ಮಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ ಮತ್ತು ಪ್ರಶ್ನೆ ಭಾಷೆ. . ಮತ್ತೊಂದು ಉತ್ಪನ್ನವು ಸಾಮಾನ್ಯ ಜನರಿಗೆ ಕಡಿಮೆ ತಿಳಿದಿದೆ. ಈ
API ಸ್ಥಿರತೆಯ ಖಾತರಿಯೊಂದಿಗೆ ಆವೃತ್ತಿ 1.0 ಬಿಡುಗಡೆಯಾದ ನಂತರ ಮತ್ತು ಕಾವು ಸ್ಥಿತಿಯನ್ನು ತೊರೆಯುವ ಯೋಜನೆಯು ಹ್ಯಾಂಡ್ಲಿ ಹೊಸ ಅಳವಡಿಕೆದಾರರನ್ನು ಹೊಂದಿರುತ್ತದೆ ಎಂದು ನಾವು ಭಾವಿಸುತ್ತೇವೆ. ಈ ಮಧ್ಯೆ, ಯೋಜನೆಯು API ಅನ್ನು ಪರೀಕ್ಷಿಸಲು ಮತ್ತು ಸುಧಾರಿಸಲು ಮುಂದುವರಿಯುತ್ತದೆ, ಪ್ರತಿ ವರ್ಷ ಎರಡು "ಪ್ರಮುಖ" ಬಿಡುಗಡೆಗಳನ್ನು ಬಿಡುಗಡೆ ಮಾಡುತ್ತದೆ - ಜೂನ್ (ಏಕಕಾಲಿಕ ಎಕ್ಲಿಪ್ಸ್ ಬಿಡುಗಡೆಯ ಅದೇ ದಿನಾಂಕ) ಮತ್ತು ಡಿಸೆಂಬರ್ನಲ್ಲಿ, ಅಳವಡಿಕೆದಾರರು ಅವಲಂಬಿಸಬಹುದಾದ ಊಹಿಸಬಹುದಾದ ವೇಳಾಪಟ್ಟಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ. ಪ್ರಾಜೆಕ್ಟ್ನ "ಬಗ್ ರೇಟ್" ಸ್ಥಿರವಾಗಿ ಕಡಿಮೆ ಮಟ್ಟದಲ್ಲಿ ಉಳಿದಿದೆ ಮತ್ತು ಹ್ಯಾಂಡ್ಲಿ ಮೊದಲ ಆವೃತ್ತಿಗಳಿಂದಲೂ ಆರಂಭಿಕ ಅಳವಡಿಕೆದಾರರ ಉತ್ಪನ್ನಗಳಲ್ಲಿ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ ಎಂದು ನಾವು ಸೇರಿಸಬಹುದು. ಎಕ್ಲಿಪ್ಸ್ ಹ್ಯಾಂಡ್ಲಿ ಅನ್ನು ಮತ್ತಷ್ಟು ಅನ್ವೇಷಿಸಲು, ನೀವು ಬಳಸಬಹುದು
ಮೂಲ: www.habr.com