ಸ್ನಾತಕೋತ್ತರ ಕಾರ್ಯಕ್ರಮದ ವಿದ್ಯಾರ್ಥಿಗಳು ಭಾಗವಹಿಸಿದ ಸ್ಪ್ರಿಂಗ್ ಹ್ಯಾಕಥಾನ್ ದೇವ್ಡೇಸ್ನ ಯೋಜನೆಗಳ ಬಗ್ಗೆ ನಾವು ಮಾತನಾಡುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತೇವೆ
ಮೂಲಕ, ನಾವು ಸೇರಲು ಓದುಗರನ್ನು ಆಹ್ವಾನಿಸಲು ಬಯಸುತ್ತೇವೆ
ಟೆಲಿಗ್ರಾಮ್ ಡೆಸ್ಕ್ಟಾಪ್ ವಾಯ್ಸ್ ಮೆಸೇಜ್ ಪಾರ್ಸರ್
ಕಲ್ಪನೆಯ ಲೇಖಕ
ಖೊರೊಶೆವ್ ಆರ್ಟಿಯೋಮ್
ತಂಡದ ಸಂಯೋಜನೆ
ಖೊರೊಶೆವ್ ಆರ್ಟೆಮ್ - ಪ್ರಾಜೆಕ್ಟ್ ಮ್ಯಾನೇಜರ್/ಡೆವಲಪರ್/ಕ್ಯೂಎ
ಎಲಿಸೀವ್ ಆಂಟನ್ - ವ್ಯಾಪಾರ ವಿಶ್ಲೇಷಕ/ಮಾರ್ಕೆಟಿಂಗ್ ತಜ್ಞ
ಮಾರಿಯಾ ಕುಕ್ಲಿನಾ - UI ಡಿಸೈನರ್/ಡೆವಲಪರ್
ಬಖ್ವಾಲೋವ್ ಪಾವೆಲ್ - UI ವಿನ್ಯಾಸಕ/ಡೆವಲಪರ್/QA
ನಮ್ಮ ದೃಷ್ಟಿಕೋನದಿಂದ, ಟೆಲಿಗ್ರಾಮ್ ಆಧುನಿಕ ಮತ್ತು ಅನುಕೂಲಕರ ಸಂದೇಶವಾಹಕವಾಗಿದೆ, ಮತ್ತು ಅದರ PC ಆವೃತ್ತಿಯು ಜನಪ್ರಿಯವಾಗಿದೆ ಮತ್ತು ತೆರೆದ ಮೂಲವಾಗಿದೆ, ಇದು ಅದನ್ನು ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ. ಕ್ಲೈಂಟ್ ಸಾಕಷ್ಟು ಶ್ರೀಮಂತ ಕಾರ್ಯವನ್ನು ನೀಡುತ್ತದೆ. ಪ್ರಮಾಣಿತ ಪಠ್ಯ ಸಂದೇಶಗಳ ಜೊತೆಗೆ, ಇದು ಧ್ವನಿ ಕರೆಗಳು, ವೀಡಿಯೊ ಸಂದೇಶಗಳು ಮತ್ತು ಧ್ವನಿ ಸಂದೇಶಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಮತ್ತು ಇದು ಕೆಲವೊಮ್ಮೆ ಅವರ ಸ್ವೀಕರಿಸುವವರಿಗೆ ಅನಾನುಕೂಲತೆಯನ್ನು ತರುವ ಎರಡನೆಯದು. ಕಂಪ್ಯೂಟರ್ ಅಥವಾ ಲ್ಯಾಪ್ಟಾಪ್ನಲ್ಲಿರುವಾಗ ಧ್ವನಿ ಸಂದೇಶವನ್ನು ಕೇಳಲು ಸಾಮಾನ್ಯವಾಗಿ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಸುತ್ತುವರಿದ ಶಬ್ದ, ಹೆಡ್ಫೋನ್ಗಳ ಕೊರತೆ ಇರಬಹುದು ಅಥವಾ ಸಂದೇಶದ ವಿಷಯಗಳನ್ನು ಯಾರೂ ಕೇಳಲು ನೀವು ಬಯಸುವುದಿಲ್ಲ. ನೀವು ಸ್ಮಾರ್ಟ್ಫೋನ್ನಲ್ಲಿ ಟೆಲಿಗ್ರಾಮ್ ಅನ್ನು ಬಳಸಿದರೆ ಅಂತಹ ಸಮಸ್ಯೆಗಳು ಬಹುತೇಕ ಉದ್ಭವಿಸುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಲ್ಯಾಪ್ಟಾಪ್ ಅಥವಾ ಪಿಸಿಗಿಂತ ಭಿನ್ನವಾಗಿ ನೀವು ಅದನ್ನು ನಿಮ್ಮ ಕಿವಿಗೆ ತರಬಹುದು. ನಾವು ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ಪ್ರಯತ್ನಿಸಿದ್ದೇವೆ.
DevDays ನಲ್ಲಿನ ನಮ್ಮ ಯೋಜನೆಯ ಗುರಿಯು ಸ್ವೀಕರಿಸಿದ ಧ್ವನಿ ಸಂದೇಶಗಳನ್ನು ಟೆಲಿಗ್ರಾಮ್ ಡೆಸ್ಕ್ಟಾಪ್ ಕ್ಲೈಂಟ್ಗೆ ಪಠ್ಯವಾಗಿ ಭಾಷಾಂತರಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸುವುದಾಗಿದೆ (ಇನ್ನು ಮುಂದೆ ಟೆಲಿಗ್ರಾಮ್ ಡೆಸ್ಕ್ಟಾಪ್ ಎಂದು ಉಲ್ಲೇಖಿಸಲಾಗುತ್ತದೆ).
ಈ ಸಮಯದಲ್ಲಿ ಎಲ್ಲಾ ಅನಲಾಗ್ಗಳು ಬಾಟ್ಗಳಾಗಿದ್ದು, ನೀವು ಆಡಿಯೊ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸಬಹುದು ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆಯಾಗಿ ಪಠ್ಯವನ್ನು ಸ್ವೀಕರಿಸಬಹುದು. ನಾವು ಇದರಿಂದ ತುಂಬಾ ಸಂತೋಷವಾಗಿಲ್ಲ: ಬೋಟ್ಗೆ ಸಂದೇಶವನ್ನು ಫಾರ್ವರ್ಡ್ ಮಾಡುವುದು ತುಂಬಾ ಅನುಕೂಲಕರವಲ್ಲ; ನಾವು ಸ್ಥಳೀಯ ಕಾರ್ಯವನ್ನು ಹೊಂದಲು ಬಯಸುತ್ತೇವೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಯಾವುದೇ ಬೋಟ್ ಮೂರನೇ ವ್ಯಕ್ತಿಯಾಗಿದ್ದು ಅದು ಧ್ವನಿ ಗುರುತಿಸುವಿಕೆ API ಮತ್ತು ಬಳಕೆದಾರರ ನಡುವೆ ಮಧ್ಯವರ್ತಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಇದು ಕನಿಷ್ಟ, ಅಸುರಕ್ಷಿತವಾಗಿದೆ.
ಮೊದಲೇ ಗಮನಿಸಿದಂತೆ, ಟೆಲಿಗ್ರಾಮ್-ಡೆಸ್ಕ್ಟಾಪ್ ಎರಡು ಗಮನಾರ್ಹ ಪ್ರಯೋಜನಗಳನ್ನು ಹೊಂದಿದೆ: ಕಾರ್ಯಾಚರಣೆಯ ಸುಲಭ ಮತ್ತು ವೇಗ. ಮತ್ತು ಇದು ಕಾಕತಾಳೀಯವಲ್ಲ, ಏಕೆಂದರೆ ಇದನ್ನು ಸಂಪೂರ್ಣವಾಗಿ C ++ ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ. ಮತ್ತು ಕ್ಲೈಂಟ್ಗೆ ನೇರವಾಗಿ ಹೊಸ ಕಾರ್ಯವನ್ನು ಸೇರಿಸಲು ನಾವು ನಿರ್ಧರಿಸಿದ್ದರಿಂದ, ನಾವು ಅದನ್ನು C++ ನಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಬೇಕಾಗಿತ್ತು.
ನಮ್ಮ ತಂಡದಲ್ಲಿ 4 ಜನರಿದ್ದರು. ಆರಂಭದಲ್ಲಿ, ಇಬ್ಬರು ಜನರು ಭಾಷಣ ಗುರುತಿಸುವಿಕೆಗಾಗಿ ಸೂಕ್ತವಾದ ಗ್ರಂಥಾಲಯವನ್ನು ಹುಡುಕುತ್ತಿದ್ದರು, ಒಬ್ಬರು ಟೆಲಿಗ್ರಾಮ್-ಡೆಸ್ಕ್ಟಾಪ್ನ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಅಧ್ಯಯನ ಮಾಡುತ್ತಿದ್ದಾರೆ, ಇನ್ನೊಬ್ಬರು ನಿರ್ಮಾಣ ಯೋಜನೆಯನ್ನು ನಿಯೋಜಿಸುತ್ತಿದ್ದರು
ಉದ್ದೇಶಿತ ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಕಷ್ಟಕರವಲ್ಲ ಎಂದು ತೋರುತ್ತಿದೆ, ಆದರೆ, ಯಾವಾಗಲೂ ಸಂಭವಿಸಿದಂತೆ, ತೊಂದರೆಗಳು ಉದ್ಭವಿಸಿದವು.
ಸಮಸ್ಯೆಯ ಪರಿಹಾರವು ಎರಡು ಸ್ವತಂತ್ರ ಉಪಕಾರ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿತ್ತು: ಸೂಕ್ತವಾದ ಭಾಷಣ ಗುರುತಿಸುವಿಕೆ ಸಾಧನವನ್ನು ಆರಿಸುವುದು ಮತ್ತು ಹೊಸ ಕಾರ್ಯಕ್ಕಾಗಿ UI ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು.
ಧ್ವನಿ ಗುರುತಿಸುವಿಕೆಗಾಗಿ ಲೈಬ್ರರಿಯನ್ನು ಆಯ್ಕೆಮಾಡುವಾಗ, ನಾವು ತಕ್ಷಣವೇ ಎಲ್ಲಾ ಆಫ್ಲೈನ್ API ಗಳನ್ನು ತ್ಯಜಿಸಬೇಕಾಗಿತ್ತು, ಏಕೆಂದರೆ ಭಾಷಾ ಮಾದರಿಗಳು ಸಾಕಷ್ಟು ಜಾಗವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತವೆ. ಆದರೆ ನಾವು ಮಾತನಾಡುತ್ತಿರುವುದು ಒಂದೇ ಭಾಷೆಯ ಬಗ್ಗೆ. ನಾವು ಆನ್ಲೈನ್ API ಅನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ ಎಂಬುದು ಸ್ಪಷ್ಟವಾಯಿತು. ಗೂಗಲ್, ಯಾಂಡೆಕ್ಸ್ ಮತ್ತು ಮೈಕ್ರೋಸಾಫ್ಟ್ನಂತಹ ದೈತ್ಯರ ಭಾಷಣ ಗುರುತಿಸುವಿಕೆ ಸೇವೆಗಳು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಲ್ಲ ಮತ್ತು ನಾವು ಪ್ರಾಯೋಗಿಕ ಅವಧಿಯೊಂದಿಗೆ ತೃಪ್ತರಾಗಿರಬೇಕು ಎಂದು ನಂತರ ಅದು ಬದಲಾಯಿತು. ಪರಿಣಾಮವಾಗಿ, Google ಸ್ಪೀಚ್-ಟು-ಟೆಕ್ಸ್ಟ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ ಏಕೆಂದರೆ ಇದು ಸೇವೆಯನ್ನು ಬಳಸುವುದಕ್ಕಾಗಿ ಟೋಕನ್ ಅನ್ನು ಪಡೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಇದು ಇಡೀ ವರ್ಷದವರೆಗೆ ಇರುತ್ತದೆ.
ನಾವು ಎದುರಿಸಿದ ಎರಡನೇ ಸಮಸ್ಯೆ C++ ನ ಕೆಲವು ನ್ಯೂನತೆಗಳಿಗೆ ಸಂಬಂಧಿಸಿದೆ - ಕೇಂದ್ರೀಕೃತ ರೆಪೊಸಿಟರಿಯ ಅನುಪಸ್ಥಿತಿಯಲ್ಲಿ ವಿವಿಧ ಗ್ರಂಥಾಲಯಗಳ ಮೃಗಾಲಯ. ಟೆಲಿಗ್ರಾಮ್ ಡೆಸ್ಕ್ಟಾಪ್ ಅನೇಕ ಇತರ ಆವೃತ್ತಿ-ನಿರ್ದಿಷ್ಟ ಗ್ರಂಥಾಲಯಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ ಎಂದು ಅದು ಸಂಭವಿಸುತ್ತದೆ. ಅಧಿಕೃತ ಭಂಡಾರ ಹೊಂದಿದೆ
ಟೆಲಿಗ್ರಾಮ್ ಡೆಸ್ಕ್ಟಾಪ್ ಸ್ವತಃ ಜೋಡಿಸಲು ಸಾಕಷ್ಟು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ: ಇಂಟೆಲ್ ಕೋರ್ i5-7200U ಹೊಂದಿರುವ ಲ್ಯಾಪ್ಟಾಪ್ನಲ್ಲಿ, ಎಲ್ಲಾ ಅವಲಂಬನೆಗಳೊಂದಿಗೆ ಸಂಪೂರ್ಣ ಜೋಡಣೆ (ಫ್ಲ್ಯಾಗ್ -ಜೆ 4) ಸುಮಾರು ಮೂರು ಗಂಟೆಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಇವುಗಳಲ್ಲಿ, ಕ್ಲೈಂಟ್ ಅನ್ನು ಲಿಂಕ್ ಮಾಡುವ ಮೂಲಕ ಸುಮಾರು 30 ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ (ನಂತರ ಅದು ಡೀಬಗ್ ಕಾನ್ಫಿಗರೇಶನ್ನಲ್ಲಿ ಲಿಂಕ್ ಮಾಡಲು ಸುಮಾರು 10 ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ) ಮತ್ತು ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಿದ ನಂತರ ಪ್ರತಿ ಬಾರಿ ಲಿಂಕ್ ಮಾಡುವ ಹಂತವನ್ನು ಪುನರಾವರ್ತಿಸಬೇಕಾಗುತ್ತದೆ.
ಸಮಸ್ಯೆಗಳ ಹೊರತಾಗಿಯೂ, ನಾವು ಕಲ್ಪಿಸಿದ ಕಲ್ಪನೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮತ್ತು ನವೀಕರಿಸಲು ನಿರ್ವಹಿಸುತ್ತಿದ್ದೇವೆ
ನಮ್ಮ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, ಇದು ಅನೇಕ ಬಳಕೆದಾರರಿಗೆ ಅನುಕೂಲಕರವಾದ ಕ್ರಿಯಾತ್ಮಕತೆಯ ಪರಿಕಲ್ಪನೆಯ ಉತ್ತಮ ಪುರಾವೆಯಾಗಿದೆ. ಟೆಲಿಗ್ರಾಮ್ ಡೆಸ್ಕ್ಟಾಪ್ನ ಭವಿಷ್ಯದ ಬಿಡುಗಡೆಗಳಲ್ಲಿ ಇದನ್ನು ನೋಡಲು ನಾವು ಭಾವಿಸುತ್ತೇವೆ.
IntelliJ IDEA ನಲ್ಲಿ ವರ್ಧಿತ ನೈಸರ್ಗಿಕ ಭಾಷಾ ಬೆಂಬಲ
ಕಲ್ಪನೆಯ ಲೇಖಕ
ಟ್ಯಾಂಕೋವ್ ವ್ಲಾಡಿಸ್ಲಾವ್
ತಂಡದ ಸಂಯೋಜನೆ
ಟ್ಯಾಂಕೋವ್ ವ್ಲಾಡಿಸ್ಲಾವ್ (ತಂಡದ ಪ್ರಮುಖರು, ಲಾಂಗ್ವೇಜ್ ಟೂಲ್ ಮತ್ತು ಇಂಟೆಲ್ಲಿಜೆ ಐಡಿಯಾ ಜೊತೆ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದಾರೆ)
ನಿಕಿತಾ ಸೊಕೊಲೊವ್ (LanguageTool ಜೊತೆಗೆ ಕೆಲಸ ಮಾಡುವುದು ಮತ್ತು UI ರಚಿಸುವುದು)
ಖ್ವೊರೊವ್ ಅಲೆಕ್ಸಾಂಡರ್ (ಲ್ಯಾಂಗ್ವೇಜ್ ಟೂಲ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದು ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಉತ್ತಮಗೊಳಿಸುವುದು)
ಸಡೋವ್ನಿಕೋವ್ ಅಲೆಕ್ಸಾಂಡರ್ (ಮಾರ್ಕ್ಅಪ್ ಭಾಷೆಗಳು ಮತ್ತು ಕೋಡ್ ಅನ್ನು ಪಾರ್ಸಿಂಗ್ ಮಾಡಲು ಬೆಂಬಲ)
ವ್ಯಾಕರಣ, ಕಾಗುಣಿತ ಮತ್ತು ಶೈಲಿಯ ನಿಖರತೆಗಾಗಿ (ಇಂಗ್ಲಿಷ್ನಲ್ಲಿ ಇದನ್ನು ಪ್ರೂಫ್ ರೀಡಿಂಗ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ) ವಿವಿಧ ಪಠ್ಯಗಳನ್ನು (ಕಾಮೆಂಟ್ಗಳು ಮತ್ತು ದಸ್ತಾವೇಜನ್ನು, ಕೋಡ್ನಲ್ಲಿ ಅಕ್ಷರಶಃ ಸಾಲುಗಳು, ಮಾರ್ಕ್ಡೌನ್ ಅಥವಾ XML ಮಾರ್ಕ್ಅಪ್ನಲ್ಲಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾದ ಪಠ್ಯ) ಪರಿಶೀಲಿಸುವ IntelliJ IDEA ಗಾಗಿ ನಾವು ಪ್ಲಗಿನ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ್ದೇವೆ.
IDE ಒಳಗೆ ಒಂದು ರೀತಿಯ ವ್ಯಾಕರಣವನ್ನು ಮಾಡಲು, ಪ್ರಮಾಣಿತ ಕಾಗುಣಿತ ತಪಾಸಣೆ IntelliJ IDEA ಅನ್ನು ವ್ಯಾಕರಣದ ಪ್ರಮಾಣಕ್ಕೆ ವಿಸ್ತರಿಸುವುದು ಯೋಜನೆಯ ಕಲ್ಪನೆಯಾಗಿದೆ.
ಏನಾಯಿತು ಎಂದು ನೀವು ನೋಡಬಹುದು
ಸರಿ, ಕೆಳಗೆ ನಾವು ಪ್ಲಗಿನ್ನ ಸಾಮರ್ಥ್ಯಗಳ ಬಗ್ಗೆ ಹೆಚ್ಚು ವಿವರವಾಗಿ ಮಾತನಾಡುತ್ತೇವೆ, ಜೊತೆಗೆ ಅದರ ರಚನೆಯ ಸಮಯದಲ್ಲಿ ಉದ್ಭವಿಸಿದ ತೊಂದರೆಗಳು.
ಪ್ರೇರಣೆ
ನೈಸರ್ಗಿಕ ಭಾಷೆಗಳಲ್ಲಿ ಪಠ್ಯವನ್ನು ಬರೆಯಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಅನೇಕ ಉತ್ಪನ್ನಗಳಿವೆ, ಆದರೆ ದಸ್ತಾವೇಜನ್ನು ಮತ್ತು ಕೋಡ್ ಕಾಮೆಂಟ್ಗಳನ್ನು ಹೆಚ್ಚಾಗಿ ಅಭಿವೃದ್ಧಿ ಪರಿಸರದಲ್ಲಿ ಬರೆಯಲಾಗುತ್ತದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, IDE ಗಳು ಕೋಡ್ನಲ್ಲಿ ದೋಷಗಳನ್ನು ಕಂಡುಹಿಡಿಯುವ ಅತ್ಯುತ್ತಮ ಕೆಲಸವನ್ನು ಮಾಡುತ್ತವೆ, ಆದರೆ ನೈಸರ್ಗಿಕ ಭಾಷೆಗಳಲ್ಲಿನ ಪಠ್ಯಗಳಿಗೆ ಸರಿಯಾಗಿ ಸೂಕ್ತವಲ್ಲ. ವ್ಯಾಕರಣ, ವಿರಾಮಚಿಹ್ನೆ ಅಥವಾ ಶೈಲಿಯಲ್ಲಿ ತಪ್ಪುಗಳನ್ನು ಮಾಡಲು ಅಭಿವೃದ್ಧಿ ಪರಿಸರವು ಗಮನಹರಿಸದೆಯೇ ಇದು ತುಂಬಾ ಸುಲಭವಾಗುತ್ತದೆ. ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಬರೆಯುವಲ್ಲಿ ತಪ್ಪು ಮಾಡುವುದು ಅತ್ಯಂತ ನಿರ್ಣಾಯಕವಾಗಿದೆ, ಏಕೆಂದರೆ ಇದು ಕೋಡ್ನ ಅರ್ಥವನ್ನು ಮಾತ್ರವಲ್ಲದೆ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಅಪ್ಲಿಕೇಶನ್ನ ಬಳಕೆದಾರರ ಮೇಲೂ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ.
IntelliJ IDEA, ಹಾಗೆಯೇ IntelliJ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಆಧಾರಿತ IDE ಗಳು ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಮತ್ತು ಅಭಿವೃದ್ಧಿ ಹೊಂದಿದ ಅಭಿವೃದ್ಧಿ ಪರಿಸರಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. IntelliJ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಈಗಾಗಲೇ ಅಂತರ್ನಿರ್ಮಿತ ಕಾಗುಣಿತ ಪರೀಕ್ಷಕವನ್ನು ಹೊಂದಿದೆ, ಆದರೆ ಇದು ಸರಳವಾದ ವ್ಯಾಕರಣ ದೋಷಗಳನ್ನು ಸಹ ತೊಡೆದುಹಾಕುವುದಿಲ್ಲ. ನಾವು ಜನಪ್ರಿಯ ನೈಸರ್ಗಿಕ ಭಾಷಾ ವಿಶ್ಲೇಷಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಂದನ್ನು IntelliJ IDEA ಗೆ ಸಂಯೋಜಿಸಲು ನಿರ್ಧರಿಸಿದ್ದೇವೆ.
Реализация
ನಮ್ಮದೇ ಆದ ಪಠ್ಯ ಪರಿಶೀಲನಾ ವ್ಯವಸ್ಥೆಯನ್ನು ರಚಿಸುವ ಕಾರ್ಯವನ್ನು ನಾವು ಹೊಂದಿಸಿಲ್ಲ, ಆದ್ದರಿಂದ ನಾವು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪರಿಹಾರವನ್ನು ಬಳಸಿದ್ದೇವೆ. ಅತ್ಯಂತ ಸೂಕ್ತವಾದ ಆಯ್ಕೆಯು ಹೊರಹೊಮ್ಮಿತು
ಪ್ಲಗಿನ್ ಕೋಡ್ ಇದೆ
ತೊಂದರೆಗಳು
ಪ್ರತಿ ಬಾರಿ ತಪಾಸಣೆಗಾಗಿ ನಾವು ಎಲ್ಲಾ ಪಠ್ಯವನ್ನು LanguageTool ಗೆ ಫೀಡ್ ಮಾಡಿದರೆ, ನಂತರ IDEA ಇಂಟರ್ಫೇಸ್ ಯಾವುದೇ ಹೆಚ್ಚು ಅಥವಾ ಕಡಿಮೆ ಗಂಭೀರ ಪಠ್ಯದಲ್ಲಿ ಫ್ರೀಜ್ ಆಗುತ್ತದೆ, ಏಕೆಂದರೆ ತಪಾಸಣೆಯು UI ಹರಿವನ್ನು ನಿರ್ಬಂಧಿಸುತ್ತದೆ ಎಂದು ನಾವು ಬೇಗನೆ ಅರಿತುಕೊಂಡಿದ್ದೇವೆ. ಸಮಸ್ಯೆಯನ್ನು `ProgressManager.checkCancelled` ಚೆಕ್ ಮೂಲಕ ಪರಿಹರಿಸಲಾಗಿದೆ - ಇದು ತಪಾಸಣೆಯನ್ನು ಸ್ಥಗಿತಗೊಳಿಸುವ ಸಮಯ ಎಂದು IDEA ನಂಬಿದರೆ ಈ ಕಾರ್ಯವು ಒಂದು ವಿನಾಯಿತಿಯನ್ನು ನೀಡುತ್ತದೆ.
ಇದು ಹೆಪ್ಪುಗಟ್ಟುವಿಕೆಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ತೆಗೆದುಹಾಕುತ್ತದೆ, ಆದರೆ ಅದನ್ನು ಬಳಸುವುದು ಅಸಾಧ್ಯ: ಪಠ್ಯವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಬಹಳ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಇದಲ್ಲದೆ, ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ, ಪಠ್ಯದ ಒಂದು ಸಣ್ಣ ಭಾಗವು ಹೆಚ್ಚಾಗಿ ಬದಲಾಗುತ್ತದೆ ಮತ್ತು ಫಲಿತಾಂಶಗಳನ್ನು ಹೇಗಾದರೂ ಸಂಗ್ರಹಿಸಲು ನಾವು ಬಯಸುತ್ತೇವೆ. ನಾವು ಮಾಡಿದ್ದು ಅದನ್ನೇ. ಪ್ರತಿ ಬಾರಿಯೂ ಎಲ್ಲವನ್ನೂ ಪರಿಶೀಲಿಸದಿರಲು, ನಾವು ಪಠ್ಯವನ್ನು ನಿರ್ಣಾಯಕವಾಗಿ ತುಂಡುಗಳಾಗಿ ವಿಭಜಿಸುತ್ತೇವೆ ಮತ್ತು ಬದಲಾಗಿದ್ದನ್ನು ಮಾತ್ರ ಪರಿಶೀಲಿಸುತ್ತೇವೆ. ಪಠ್ಯಗಳು ದೊಡ್ಡದಾಗಿರಬಹುದು ಮತ್ತು ನಾವು ಸಂಗ್ರಹವನ್ನು ಲೋಡ್ ಮಾಡಲು ಬಯಸುವುದಿಲ್ಲವಾದ್ದರಿಂದ, ನಾವು ಪಠ್ಯಗಳನ್ನು ಅಲ್ಲ, ಆದರೆ ಅವುಗಳ ಹ್ಯಾಶ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸಿದ್ದೇವೆ. ಇದು ಪ್ಲಗಿನ್ ದೊಡ್ಡ ಫೈಲ್ಗಳಲ್ಲಿಯೂ ಸರಾಗವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟಿತು.
LanguageTool 25 ಕ್ಕೂ ಹೆಚ್ಚು ಭಾಷೆಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, ಆದರೆ ಯಾವುದೇ ಒಬ್ಬ ಬಳಕೆದಾರರಿಗೆ ಅವೆಲ್ಲವೂ ಬೇಕಾಗಿರುವುದು ಅಸಂಭವವಾಗಿದೆ. ವಿನಂತಿಯ ಮೇರೆಗೆ ನಿರ್ದಿಷ್ಟ ಭಾಷೆಗಾಗಿ ಲೈಬ್ರರಿಗಳನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ನಾನು ಅವಕಾಶವನ್ನು ನೀಡಲು ಬಯಸುತ್ತೇನೆ (ನೀವು ಅದನ್ನು UI ನಲ್ಲಿ ಟಿಕ್ ಮಾಡಿದರೆ). ನಾವು ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ್ದೇವೆ, ಆದರೆ ಇದು ತುಂಬಾ ಸಂಕೀರ್ಣ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲ ಎಂದು ಬದಲಾಯಿತು. ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, ನಾವು ಪ್ರತ್ಯೇಕ ಕ್ಲಾಸ್ಲೋಡರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಹೊಸ ಭಾಷೆಗಳೊಂದಿಗೆ LanguageTool ಅನ್ನು ಲೋಡ್ ಮಾಡಬೇಕಾಗಿತ್ತು ಮತ್ತು ನಂತರ ಅದನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಪ್ರಾರಂಭಿಸಬೇಕು. ಅದೇ ಸಮಯದಲ್ಲಿ, ಎಲ್ಲಾ ಲೈಬ್ರರಿಗಳು ಬಳಕೆದಾರ .m2 ರೆಪೊಸಿಟರಿಯಲ್ಲಿದ್ದವು ಮತ್ತು ಪ್ರತಿ ಪ್ರಾರಂಭದಲ್ಲಿ ನಾವು ಅವುಗಳ ಸಮಗ್ರತೆಯನ್ನು ಪರಿಶೀಲಿಸಬೇಕಾಗಿತ್ತು. ಕೊನೆಯಲ್ಲಿ, ಬಳಕೆದಾರರು ಪ್ಲಗಿನ್ನ ಗಾತ್ರದಲ್ಲಿ ಸಮಸ್ಯೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ನಂತರ ನಾವು ಹಲವಾರು ಜನಪ್ರಿಯ ಭಾಷೆಗಳಿಗೆ ಪ್ರತ್ಯೇಕ ಪ್ಲಗಿನ್ ಅನ್ನು ಒದಗಿಸುತ್ತೇವೆ ಎಂದು ನಾವು ನಿರ್ಧರಿಸಿದ್ದೇವೆ.
ಹ್ಯಾಕಥಾನ್ ನಂತರ
ಹ್ಯಾಕಥಾನ್ ಕೊನೆಗೊಂಡಿತು, ಆದರೆ ಪ್ಲಗಿನ್ನಲ್ಲಿನ ಕೆಲಸವು ಕಿರಿದಾದ ತಂಡದೊಂದಿಗೆ ಮುಂದುವರೆಯಿತು. ನಾನು ಸ್ಟ್ರಿಂಗ್ಗಳು, ಕಾಮೆಂಟ್ಗಳು ಮತ್ತು ವೇರಿಯಬಲ್ ಮತ್ತು ವರ್ಗ ಹೆಸರುಗಳಂತಹ ಭಾಷಾ ರಚನೆಗಳನ್ನು ಬೆಂಬಲಿಸಲು ಬಯಸುತ್ತೇನೆ. ಪ್ರಸ್ತುತ ಇದು ಜಾವಾ, ಕೋಟ್ಲಿನ್ ಮತ್ತು ಪೈಥಾನ್ಗೆ ಮಾತ್ರ ಬೆಂಬಲಿತವಾಗಿದೆ, ಆದರೆ ಈ ಪಟ್ಟಿಯು ಬೆಳೆಯುತ್ತದೆ ಎಂದು ನಾವು ಭಾವಿಸುತ್ತೇವೆ. ನಾವು ಸಾಕಷ್ಟು ಸಣ್ಣ ದೋಷಗಳನ್ನು ಸರಿಪಡಿಸಿದ್ದೇವೆ ಮತ್ತು ಐಡಿಯಾದ ಅಂತರ್ನಿರ್ಮಿತ ಕಾಗುಣಿತ ಪರೀಕ್ಷಕದೊಂದಿಗೆ ಹೆಚ್ಚು ಹೊಂದಿಕೆಯಾಗುತ್ತೇವೆ. ಜೊತೆಗೆ, XML ಬೆಂಬಲ ಮತ್ತು ಕಾಗುಣಿತ ಪರಿಶೀಲನೆ ಕಾಣಿಸಿಕೊಂಡಿದೆ. ನಾವು ಇತ್ತೀಚೆಗೆ ಪ್ರಕಟಿಸಿದ ಎರಡನೇ ಆವೃತ್ತಿಯಲ್ಲಿ ಇದೆಲ್ಲವನ್ನೂ ಕಾಣಬಹುದು.
ಮುಂದಿನ ಏನು?
ಅಂತಹ ಪ್ಲಗಿನ್ ಡೆವಲಪರ್ಗಳಿಗೆ ಮಾತ್ರವಲ್ಲದೆ ತಾಂತ್ರಿಕ ಬರಹಗಾರರಿಗೂ ಸಹ ಉಪಯುಕ್ತವಾಗಿರುತ್ತದೆ (ಸಾಮಾನ್ಯವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, IDE ನಲ್ಲಿ XML ನೊಂದಿಗೆ). ಸಂಭವನೀಯ ದೋಷಗಳ ಬಗ್ಗೆ ಸಂಪಾದಕರ ಸಲಹೆಗಳ ರೂಪದಲ್ಲಿ ಸಹಾಯಕರನ್ನು ಹೊಂದಿರದೆ ಪ್ರತಿದಿನ ಅವರು ನೈಸರ್ಗಿಕ ಭಾಷೆಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಬೇಕು. ನಮ್ಮ ಪ್ಲಗಿನ್ ಅಂತಹ ಸುಳಿವುಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಹೆಚ್ಚಿನ ಮಟ್ಟದ ನಿಖರತೆಯೊಂದಿಗೆ ಮಾಡುತ್ತದೆ.
ಹೊಸ ಭಾಷೆಗಳನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ಮತ್ತು ಪಠ್ಯ ಪರಿಶೀಲನೆಯನ್ನು ಸಂಘಟಿಸುವ ಸಾಮಾನ್ಯ ವಿಧಾನವನ್ನು ಅನ್ವೇಷಿಸುವ ಮೂಲಕ ಪ್ಲಗಿನ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ನಾವು ಯೋಜಿಸುತ್ತೇವೆ. ನಮ್ಮ ತಕ್ಷಣದ ಯೋಜನೆಗಳು ಸ್ಟೈಲಿಸ್ಟಿಕ್ ಪ್ರೊಫೈಲ್ಗಳ ಅನುಷ್ಠಾನವನ್ನು ಒಳಗೊಂಡಿವೆ (ಪಠ್ಯಕ್ಕಾಗಿ ಶೈಲಿ ಮಾರ್ಗದರ್ಶಿಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ನಿಯಮಗಳ ಸೆಟ್, ಉದಾಹರಣೆಗೆ, "ಉದಾ ಬರೆಯಬೇಡಿ, ಆದರೆ ಪೂರ್ಣ ರೂಪವನ್ನು ಬರೆಯಿರಿ"), ನಿಘಂಟನ್ನು ವಿಸ್ತರಿಸುವುದು ಮತ್ತು ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಸುಧಾರಿಸುವುದು (ನಿರ್ದಿಷ್ಟವಾಗಿ, ನಾವು ಬಳಕೆದಾರರಿಗೆ ಪದವನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು ಅವಕಾಶವನ್ನು ನೀಡಲು ಬಯಸುತ್ತೇವೆ, ಆದರೆ ಅದನ್ನು ನಿಘಂಟಿನಲ್ಲಿ ಸೇರಿಸಲು, ಮಾತಿನ ಭಾಗವನ್ನು ಸೂಚಿಸುತ್ತದೆ).
ಮೂಲ: www.habr.com