ಜಾವಾವನ್ನು ಏಕೆ ಕಲಿಯಬೇಕು ಮತ್ತು ಅದನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಾಡುವುದು ಹೇಗೆ. ಯಾಂಡೆಕ್ಸ್ ವರದಿ
ಜಾವಾ ಇತರ ಜನಪ್ರಿಯ ಭಾಷೆಗಳಿಗಿಂತ ಹೇಗೆ ಭಿನ್ನವಾಗಿದೆ? ಕಲಿಯಲು ಜಾವಾ ಏಕೆ ಮೊದಲ ಭಾಷೆಯಾಗಬೇಕು? ಮೊದಲಿನಿಂದಲೂ ಮತ್ತು ಇತರ ಭಾಷೆಗಳಲ್ಲಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಕೌಶಲ್ಯಗಳನ್ನು ಅನ್ವಯಿಸುವ ಮೂಲಕ ಜಾವಾವನ್ನು ಕಲಿಯಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುವ ಯೋಜನೆಯನ್ನು ನಾವು ರಚಿಸೋಣ. ಜಾವಾದಲ್ಲಿ ಪ್ರೊಡಕ್ಷನ್ ಕೋಡ್ ರಚಿಸುವುದು ಮತ್ತು ಇತರ ಭಾಷೆಗಳಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸುವುದರ ನಡುವಿನ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡೋಣ. ಭವಿಷ್ಯದ ಭಾಗವಹಿಸುವವರ ಸಭೆಯಲ್ಲಿ ಮಿಖಾಯಿಲ್ ಝಟೆಪ್ಯಾಕಿನ್ ಈ ವರದಿಯನ್ನು ಓದಿದರು ಇಂಟರ್ನ್ಶಿಪ್ಗಳು ಯಾಂಡೆಕ್ಸ್ ಮತ್ತು ಇತರ ಆರಂಭಿಕ ಅಭಿವರ್ಧಕರು - ಜಾವಾ ಜೂನಿಯರ್ ಭೇಟಿ.
- ಎಲ್ಲರಿಗೂ ನಮಸ್ಕಾರ, ನನ್ನ ಹೆಸರು ಮಿಶಾ. ನಾನು Yandex.Market ನಿಂದ ಡೆವಲಪರ್ ಆಗಿದ್ದೇನೆ ಮತ್ತು ಜಾವಾವನ್ನು ಏಕೆ ಕಲಿಯಬೇಕು ಮತ್ತು ಅದನ್ನು ಹೇಗೆ ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಾಡಬೇಕೆಂದು ಇಂದು ನಾನು ನಿಮಗೆ ಹೇಳುತ್ತೇನೆ. ನೀವು ಸಮಂಜಸವಾದ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳಬಹುದು: ನಾನು ಈ ಕಥೆಯನ್ನು ಏಕೆ ಹೇಳುತ್ತಿದ್ದೇನೆ ಮತ್ತು ಹಲವು ವರ್ಷಗಳ ಅನುಭವ ಹೊಂದಿರುವ ಬಲವಾದ ಡೆವಲಪರ್ ಅಲ್ಲವೇ? ಸಂಗತಿಯೆಂದರೆ ನಾನು ಇತ್ತೀಚೆಗೆ ಜಾವಾವನ್ನು ಸುಮಾರು ಒಂದೂವರೆ ವರ್ಷಗಳ ಹಿಂದೆ ಅಧ್ಯಯನ ಮಾಡಿದ್ದೇನೆ, ಆದ್ದರಿಂದ ಅದು ಹೇಗಿತ್ತು ಮತ್ತು ಯಾವ ಅಪಾಯಗಳಿವೆ ಎಂದು ನನಗೆ ಇನ್ನೂ ನೆನಪಿದೆ.
ಒಂದು ವರ್ಷದ ಹಿಂದೆ ನಾನು Yandex.Market ನಲ್ಲಿ ಇಂಟರ್ನ್ಶಿಪ್ ಪಡೆದುಕೊಂಡೆ. ನಾನು ಬೆರುಗಾಗಿ ಬ್ಯಾಕೆಂಡ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ್ದೇನೆ, ಮಾರುಕಟ್ಟೆಗಾಗಿಯೇ, ನೀವು ಬಹುಶಃ ಅದನ್ನು ಬಳಸಿದ್ದೀರಿ. ಈಗ ನಾನು ಅಲ್ಲಿ ಬೇರೆ ತಂಡದಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತೇನೆ. ವ್ಯಾಪಾರ ಪಾಲುದಾರರಿಗಾಗಿ ನಾವು Yandex.Market ಗಾಗಿ ವಿಶ್ಲೇಷಣಾತ್ಮಕ ವೇದಿಕೆಯನ್ನು ರಚಿಸುತ್ತೇವೆ.
ನಾವೀಗ ಆರಂಭಿಸೋಣ. ಪ್ರಾಯೋಗಿಕ ದೃಷ್ಟಿಕೋನದಿಂದ ಜಾವಾವನ್ನು ಏಕೆ ಕಲಿಯಬೇಕು? ವಾಸ್ತವವೆಂದರೆ ಜಾವಾ ಬಹಳ ಪ್ರಸಿದ್ಧವಾದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾಗಿದೆ. ಇದು ಬಹಳ ದೊಡ್ಡ ಸಮುದಾಯವನ್ನು ಹೊಂದಿದೆ.
ಉದಾಹರಣೆಗೆ, ಅಂತಹ TIOBE ಸೂಚ್ಯಂಕವಿದೆ, ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳ ಜನಪ್ರಿಯತೆಯ ಜನಪ್ರಿಯ ಸೂಚ್ಯಂಕ, ಮತ್ತು ಜಾವಾ ಅಲ್ಲಿ ಮೊದಲ ಸ್ಥಾನದಲ್ಲಿದೆ. ಅಲ್ಲದೆ, ಉದ್ಯೋಗ ಸೈಟ್ಗಳಲ್ಲಿ, ಹೆಚ್ಚಿನ ಖಾಲಿ ಹುದ್ದೆಗಳು ಜಾವಾದಲ್ಲಿ ಇರುವುದನ್ನು ನೀವು ಗಮನಿಸಬಹುದು, ಅಂದರೆ, ಜಾವಾದಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಮೂಲಕ, ನೀವು ಯಾವಾಗಲೂ ಕೆಲಸವನ್ನು ಹುಡುಕಬಹುದು.
ಸಮುದಾಯವು ತುಂಬಾ ದೊಡ್ಡದಾಗಿರುವುದರಿಂದ, ನೀವು ಹೊಂದಿರುವ ಯಾವುದೇ ಪ್ರಶ್ನೆಗೆ ಕೆಲವು ಸ್ಟಾಕ್ ಓವರ್ಫ್ಲೋ ಅಥವಾ ಇತರ ಸೈಟ್ಗಳಲ್ಲಿ ಉತ್ತರವನ್ನು ಕಾಣಬಹುದು. ಅಲ್ಲದೆ, ಜಾವಾದಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸುವಾಗ, ನೀವು ನಿಜವಾಗಿಯೂ JVM ನಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಬರೆಯುತ್ತಿದ್ದೀರಿ, ಆದ್ದರಿಂದ ನೀವು ಸುಲಭವಾಗಿ ಕೋಟ್ಲಿನ್, ಸ್ಕಾಲಾ ಮತ್ತು JVM ಅನ್ನು ಬಳಸುವ ಇತರ ಭಾಷೆಗಳಿಗೆ ಬದಲಾಯಿಸಬಹುದು.
ಸೈದ್ಧಾಂತಿಕ ದೃಷ್ಟಿಕೋನದಿಂದ ಜಾವಾದಲ್ಲಿ ಯಾವುದು ಒಳ್ಳೆಯದು? ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಿವೆ. ಅವರು ವಿಭಿನ್ನ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುತ್ತಾರೆ, ಅದು ನಿಮಗೆ ತಿಳಿದಿದೆ. ಉದಾಹರಣೆಗೆ, ತ್ವರಿತ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಒಂದು ಸಾಲಿನ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಬರೆಯಲು ಪೈಥಾನ್ ಉತ್ತಮವಾಗಿದೆ.
ಪ್ಲಸ್ ಸೈಡ್ನಲ್ಲಿ, ನೀವು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಕೋಡ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿಯಂತ್ರಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ನಾವು ಕಾರುಗಳನ್ನು ಹೊಂದಿದ್ದೇವೆ, ಯಾಂಡೆಕ್ಸ್ ಚಾಲಕರಹಿತ ಕಾರುಗಳು, ಅವರ ಕೋಡ್ ಅನ್ನು ಪ್ಲಸಸ್ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ. ಏಕೆ? ಜಾವಾದಲ್ಲಿ ಅಂತಹ ವಿಷಯವಿದೆ - ಕಸ ಸಂಗ್ರಾಹಕ. ಇದು ಅನಗತ್ಯ ವಸ್ತುಗಳ RAM ಅನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ. ಈ ವಿಷಯವು ಸ್ವಯಂಪ್ರೇರಿತವಾಗಿ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಸ್ಟಾಪ್-ದಿ-ವರ್ಲ್ಡ್ ಮಾಡುತ್ತದೆ, ಅಂದರೆ, ಇದು ಪ್ರೋಗ್ರಾಂನ ಉಳಿದ ಭಾಗವನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ ಮತ್ತು ವಸ್ತುಗಳನ್ನು ಎಣಿಸಲು ಹೋಗುತ್ತದೆ, ವಸ್ತುಗಳ ಸ್ಪಷ್ಟ ಸ್ಮರಣೆ. ಅಂತಹ ವಿಷಯವು ಡ್ರೋನ್ನಲ್ಲಿ ಕೆಲಸ ಮಾಡಿದರೆ, ಅದು ತಂಪಾಗಿಲ್ಲ. ನಿಮ್ಮ ಡ್ರೋನ್ ನೇರವಾಗಿ ಚಲಿಸುತ್ತದೆ, ಈ ಕ್ಷಣದಲ್ಲಿ ಅದರ ಸ್ಮರಣೆಯನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ರಸ್ತೆಯತ್ತ ನೋಡುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ಡ್ರೋನ್ ಅನ್ನು ಸಾಧಕದಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ.
ಜಾವಾ ಯಾವ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುತ್ತದೆ? ಇದು ಪ್ರಾಥಮಿಕವಾಗಿ ದೊಡ್ಡ ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಒಂದು ಭಾಷೆಯಾಗಿದೆ, ಇದನ್ನು ವರ್ಷಗಳಲ್ಲಿ ಡಜನ್ಗಟ್ಟಲೆ ಅಥವಾ ನೂರಾರು ಜನರು ಬರೆಯುತ್ತಾರೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ, Yandex.Market ನಲ್ಲಿ ಬಹಳಷ್ಟು ಬ್ಯಾಕೆಂಡ್ ಅನ್ನು ಜಾವಾದಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ. ನಾವು ಹಲವಾರು ನಗರಗಳಲ್ಲಿ ವಿತರಿಸಿದ ತಂಡವನ್ನು ಹೊಂದಿದ್ದೇವೆ, ಪ್ರತಿಯೊಂದರಲ್ಲಿ ಹತ್ತು ಜನರು. ಮತ್ತು ಕೋಡ್ ನಿರ್ವಹಿಸಲು ಸುಲಭವಾಗಿದೆ, ಇದು ಹತ್ತು ವರ್ಷಗಳ ಅಥವಾ ಅದಕ್ಕಿಂತ ಹೆಚ್ಚು ಕಾಲ ಬೆಂಬಲಿತವಾಗಿದೆ, ಮತ್ತು ಅದೇ ಸಮಯದಲ್ಲಿ ಹೊಸ ಜನರು ಬಂದು ಈ ಕೋಡ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತಾರೆ.
ಭಾಷೆಯು ಯಾವ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿರಬೇಕು ಇದರಿಂದ ಅದರಲ್ಲಿರುವ ಕೋಡ್ ಅನ್ನು ಸುಲಭವಾಗಿ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ದೊಡ್ಡ ತಂಡಗಳಲ್ಲಿ ಸುಲಭವಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಬಹುದು. ಮೊದಲನೆಯದಾಗಿ, ಇದು ಓದಬಹುದಾದ ಕೋಡ್ ಆಗಿರಬೇಕು ಮತ್ತು ಸಂಕೀರ್ಣವಾದ ವಾಸ್ತುಶಿಲ್ಪದ ಪರಿಹಾರಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸುಲಭವಾಗಿರಬೇಕು. ಅಂದರೆ, ಉನ್ನತ ಮಟ್ಟದ ಅಮೂರ್ತತೆಗಳನ್ನು ಬರೆಯಲು ಸುಲಭವಾಗಬೇಕು, ಇತ್ಯಾದಿ. ಇದೆಲ್ಲವೂ ಜಾವಾ ನಮಗೆ ಒದಗಿಸುತ್ತದೆ. ಇದು ವಸ್ತು ಆಧಾರಿತ ಭಾಷೆಯಾಗಿದೆ. ಉನ್ನತ ಮಟ್ಟದ ಅಮೂರ್ತತೆಗಳು ಮತ್ತು ಸಂಕೀರ್ಣ ವಾಸ್ತುಶಿಲ್ಪಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ನಿಜವಾಗಿಯೂ ಸುಲಭವಾಗಿದೆ.
ಜಾವಾಕ್ಕೆ ಸಾಕಷ್ಟು ಚೌಕಟ್ಟುಗಳು ಮತ್ತು ಗ್ರಂಥಾಲಯಗಳಿವೆ, ಏಕೆಂದರೆ ಭಾಷೆ 15 ವರ್ಷಗಳಿಗಿಂತ ಹೆಚ್ಚು ಹಳೆಯದು. ಈ ಸಮಯದಲ್ಲಿ, ಬರೆಯಬಹುದಾದ ಎಲ್ಲವನ್ನೂ ಅದರ ಮೇಲೆ ಬರೆಯಲಾಗಿದೆ, ಆದ್ದರಿಂದ ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ಎಲ್ಲದಕ್ಕೂ ಟನ್ಗಳಷ್ಟು ಗ್ರಂಥಾಲಯಗಳಿವೆ.
ನನ್ನ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, ಆರಂಭಿಕ JA ಆಟಗಾರನು ಯಾವ ಮೂಲಭೂತ ಕೌಶಲ್ಯಗಳನ್ನು ಹೊಂದಿರಬೇಕು? ಮೊದಲನೆಯದಾಗಿ, ಇದು ಜಾವಾ ಕೋರ್ ಭಾಷೆಯ ಜ್ಞಾನವಾಗಿದೆ. ಮುಂದಿನದು ಕೆಲವು ರೀತಿಯ ಅವಲಂಬನೆ ಇಂಜೆಕ್ಷನ್ ಫ್ರೇಮ್ವರ್ಕ್. ಮುಂದಿನ ಸ್ಪೀಕರ್, ಕಿರಿಲ್, ಈ ಬಗ್ಗೆ ಹೆಚ್ಚು ಸಂಪೂರ್ಣವಾಗಿ ಮಾತನಾಡುತ್ತಾರೆ. ನಾನು ತುಂಬಾ ಆಳಕ್ಕೆ ಹೋಗುವುದಿಲ್ಲ. ಮುಂದಿನದು ವಾಸ್ತುಶಿಲ್ಪ ಮತ್ತು ವಿನ್ಯಾಸದ ಮಾದರಿಗಳು. ದೊಡ್ಡ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಬರೆಯಲು ವಾಸ್ತುಶಿಲ್ಪೀಯವಾಗಿ ಸುಂದರವಾದ ಕೋಡ್ ಅನ್ನು ಬರೆಯಲು ನಮಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಮತ್ತು ಡೇಟಾಬೇಸ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಕಾರ್ಯಗಳಿಗಾಗಿ ಇದು ಕೆಲವು ರೀತಿಯ SQL ಅಥವಾ ORM ಆಗಿದೆ. ಮತ್ತು ಇದು ಬ್ಯಾಕೆಂಡ್ಗೆ ಹೆಚ್ಚು ಅನ್ವಯಿಸುತ್ತದೆ.
ಹೋಗು! ಜಾವಾ ಕೋರ್. ನಾನು ನಿಜವಾಗಿಯೂ ಇಲ್ಲಿ ಅಮೇರಿಕಾವನ್ನು ಕಂಡುಹಿಡಿಯುವುದಿಲ್ಲ - ನೀವು ಭಾಷೆಯನ್ನು ತಿಳಿದಿರಬೇಕು. ನೀವು ಏನು ಗಮನ ಕೊಡಬೇಕು. ಮೊದಲನೆಯದಾಗಿ, ಜಾವಾ ಇತ್ತೀಚಿನ ವರ್ಷಗಳಲ್ಲಿ ಸಾಕಷ್ಟು ಆವೃತ್ತಿಗಳನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದೆ, ಅಂದರೆ, 2014-2015ರಲ್ಲಿ ಏಳನೆಯದನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಯಿತು, ನಂತರ ಎಂಟನೇ, ಒಂಬತ್ತನೇ, ಹತ್ತನೇ, ಬಹಳಷ್ಟು ಹೊಸ ಆವೃತ್ತಿಗಳು ಮತ್ತು ಅವುಗಳಲ್ಲಿ ಬಹಳಷ್ಟು ಹೊಸ ತಂಪಾದ ವಿಷಯಗಳನ್ನು ಪರಿಚಯಿಸಲಾಯಿತು. , ಉದಾಹರಣೆಗೆ, Java Stream API , ಲ್ಯಾಂಬ್ಡಾ, ಇತ್ಯಾದಿ. ಪ್ರೊಡಕ್ಷನ್ ಕೋಡ್ನಲ್ಲಿ ಬಳಸಲಾಗುವ ಅತ್ಯಂತ ತಂಪಾದ, ತಾಜಾ, ತಂಪಾದ ವಸ್ತುಗಳು, ಸಂದರ್ಶನಗಳಲ್ಲಿ ಅವರು ಏನು ಕೇಳುತ್ತಾರೆ ಮತ್ತು ನೀವು ತಿಳಿದುಕೊಳ್ಳಬೇಕಾದದ್ದು. ಆದ್ದರಿಂದ, ನೀವು ಜಾವಾ-4 ಲೈಬ್ರರಿಯಲ್ಲಿರುವ ಶೆಲ್ಫ್ನಿಂದ ಪುಸ್ತಕವನ್ನು ತೆಗೆದುಕೊಂಡು ಅದನ್ನು ಕಲಿಯಲು ಹೋಗಬಾರದು. ಇದು ನಮ್ಮ ಯೋಜನೆ: ನಾವು ಜಾವಾ-8 ಅಥವಾ ಹೆಚ್ಚಿನದನ್ನು ಕಲಿಯುತ್ತೇವೆ.
ಸ್ಟ್ರೀಮ್ API, var, ಇತ್ಯಾದಿಗಳಂತಹ ನಾವೀನ್ಯತೆಗಳಿಗೆ ನಾವು ಹೆಚ್ಚು ಗಮನ ಹರಿಸುತ್ತೇವೆ. ಸಂದರ್ಶನಗಳ ಸಮಯದಲ್ಲಿ ಅವುಗಳನ್ನು ಕೇಳಲಾಗುತ್ತದೆ ಮತ್ತು ಉತ್ಪಾದನೆಯಲ್ಲಿ ನಿರಂತರವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಅಂದರೆ, ಸ್ಟ್ರೀಮ್ API ಲೂಪ್ಗಳಿಗಿಂತ ಹೆಚ್ಚು ತಂಪಾಗಿರುತ್ತದೆ, ಸಾಮಾನ್ಯವಾಗಿ, ತುಂಬಾ ತಂಪಾದ ವಿಷಯ. ಗಮನ ಕೊಡಲು ಮರೆಯದಿರಿ.
ಮತ್ತು ಪುನರಾವರ್ತಕಗಳು, ವಿನಾಯಿತಿಗಳು ಮತ್ತು ಮುಂತಾದ ಎಲ್ಲಾ ರೀತಿಯ ವಿಷಯಗಳಿವೆ. ನೀವು ಕೆಲವು ಸಣ್ಣ ಕೋಡ್ ಅನ್ನು ನೀವೇ ಬರೆಯುವವರೆಗೆ ನಿಮಗೆ ಮುಖ್ಯವಲ್ಲ ಎಂದು ತೋರುವ ವಿಷಯಗಳು. ನಿಮಗೆ ಈ ವಿನಾಯಿತಿಗಳು ಅಗತ್ಯವಿಲ್ಲ, ಹೇಗಾದರೂ ಯಾರಿಗೆ ಬೇಕು? ಆದರೆ ಸಂದರ್ಶನಗಳಲ್ಲಿ ಅವರನ್ನು ಖಂಡಿತವಾಗಿ ಕೇಳಲಾಗುತ್ತದೆ, ಅವರು ಖಂಡಿತವಾಗಿಯೂ ಉತ್ಪಾದನೆಯಲ್ಲಿ ನಿಮಗೆ ಉಪಯುಕ್ತವಾಗುತ್ತಾರೆ. ಸಾಮಾನ್ಯವಾಗಿ, ನೀವು ವಿನಾಯಿತಿಗಳು, ಪುನರಾವರ್ತಕಗಳು ಮತ್ತು ಇತರ ವಿಷಯಗಳಿಗೆ ಗಮನ ಕೊಡಬೇಕು.
ಡೇಟಾ ರಚನೆಗಳು. ನೀವು ರಚನೆಗಳಿಲ್ಲದೆ ಹೋಗಲು ಸಾಧ್ಯವಿಲ್ಲ, ಆದರೆ ಸೆಟ್ಗಳು, ನಿಘಂಟುಗಳು ಮತ್ತು ಹಾಳೆಗಳು ಇವೆ ಎಂದು ನಿಮಗೆ ತಿಳಿದಿಲ್ಲದಿದ್ದರೆ ಅದು ಉತ್ತಮವಾಗಿರುತ್ತದೆ. ಮತ್ತು ರಚನೆಗಳ ವಿವಿಧ ಅನುಷ್ಠಾನಗಳು. ಉದಾಹರಣೆಗೆ, ಜಾವಾದಲ್ಲಿನ ಅದೇ ನಿಘಂಟಿನಲ್ಲಿ ಹ್ಯಾಶ್ಮ್ಯಾಪ್ ಮತ್ತು ಟ್ರೀಮ್ಯಾಪ್ ಸೇರಿದಂತೆ ಹಲವು ಅಳವಡಿಕೆಗಳಿವೆ. ಅವು ವಿಭಿನ್ನ ಅಸಿಂಪ್ಟೋಟಿಕ್ಗಳನ್ನು ಹೊಂದಿವೆ, ಅವು ಒಳಗೆ ವಿಭಿನ್ನವಾಗಿ ರಚನೆಯಾಗುತ್ತವೆ. ಅವು ಹೇಗೆ ಭಿನ್ನವಾಗಿರುತ್ತವೆ ಮತ್ತು ಯಾವುದನ್ನು ಯಾವಾಗ ಬಳಸಬೇಕು ಎಂಬುದನ್ನು ನೀವು ತಿಳಿದುಕೊಳ್ಳಬೇಕು.
ಈ ಡೇಟಾ ರಚನೆಗಳು ಆಂತರಿಕವಾಗಿ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಎಂದು ನಿಮಗೆ ತಿಳಿದಿದ್ದರೆ ಅದು ತುಂಬಾ ತಂಪಾಗಿರುತ್ತದೆ. ಅಂದರೆ, ಅವರ ಅಸಿಂಪ್ಟೋಟಿಕ್ಸ್ ಅನ್ನು ತಿಳಿದುಕೊಳ್ಳುವುದು ಸುಲಭವಲ್ಲ - ಪಂತವು ಎಷ್ಟು ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಪಾಸ್ ಎಷ್ಟು ಸಮಯ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಆದರೆ ರಚನೆಯು ಒಳಗೆ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ - ಉದಾಹರಣೆಗೆ, ಹ್ಯಾಶ್ಮ್ಯಾಪ್ನಲ್ಲಿ ಬಕೆಟ್ ಎಂದರೇನು.
ಮರಗಳು ಮತ್ತು ಗ್ರಾಫ್ಗಳಿಗೆ ಗಮನ ಕೊಡುವುದು ಸಹ ಯೋಗ್ಯವಾಗಿದೆ. ಇವುಗಳು ಪ್ರೊಡಕ್ಷನ್ ಕೋಡ್ನಲ್ಲಿ ಹೆಚ್ಚು ಸಾಮಾನ್ಯವಲ್ಲದ ವಿಷಯಗಳಾಗಿವೆ, ಆದರೆ ಅವು ಸಂದರ್ಶನಗಳಲ್ಲಿ ಜನಪ್ರಿಯವಾಗಿವೆ. ಅಂತೆಯೇ, ನೀವು ಮರಗಳು, ಅಗಲ ಮತ್ತು ಆಳದಲ್ಲಿ ಗ್ರಾಫ್ಗಳನ್ನು ಹಾದುಹೋಗಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಇವೆಲ್ಲವೂ ಸರಳ ಕ್ರಮಾವಳಿಗಳು.
ನೀವು ಯಾವುದೇ ದೊಡ್ಡ ಕೋಡ್, ಕಾಂಪ್ಲೆಕ್ಸ್, ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸಿ, ಬಹು-ವರ್ಗದ ಕೋಡ್ ಅನ್ನು ಬರೆಯಲು ಪ್ರಾರಂಭಿಸಿದ ತಕ್ಷಣ, ಸಿಸ್ಟಮ್ಗಳನ್ನು ನಿರ್ಮಿಸದೆ ಮತ್ತು ಅವಲಂಬನೆಗಳನ್ನು ಪರಿಹರಿಸದೆಯೇ ನಿಮಗೆ ಕಷ್ಟ ಎಂದು ನೀವು ಅರಿತುಕೊಳ್ಳುತ್ತೀರಿ. ಇವುಗಳು ಪ್ರಾಥಮಿಕವಾಗಿ ಮಾವೆನ್ ಮತ್ತು ಗ್ರೇಡಲ್. ಒಂದೇ ಸಾಲಿನಲ್ಲಿ ನಿಮ್ಮ ಯೋಜನೆಗೆ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಲು ಅವು ನಿಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತವೆ. ಅಂದರೆ, ನೀವು ಒಂದು ಸಾಲಿನ xml ಅನ್ನು ಬರೆಯಿರಿ ಮತ್ತು ಯೋಜನೆಗೆ ಲೈಬ್ರರಿಗಳನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ. ದೊಡ್ಡ ವ್ಯವಸ್ಥೆಗಳು. ಅವು ಸರಿಸುಮಾರು ಒಂದೇ ಆಗಿರುತ್ತವೆ, ಒಂದನ್ನು ಬಳಸಿ - ಮಾವೆನ್ ಅಥವಾ ಗ್ರೇಡಲ್.
ಮುಂದೆ - ಕೆಲವು ರೀತಿಯ ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆ. ನಾನು Git ಅನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ ಏಕೆಂದರೆ ಅದು ಜನಪ್ರಿಯವಾಗಿದೆ ಮತ್ತು ಟನ್ಗಳಷ್ಟು ಟ್ಯುಟೋರಿಯಲ್ಗಳಿವೆ. ಬಹುತೇಕ ಎಲ್ಲರೂ Git ಅನ್ನು ಬಳಸುತ್ತಾರೆ, ಇದು ತಂಪಾದ ವಿಷಯವಾಗಿದೆ, ನೀವು ಇಲ್ಲದೆ ಬದುಕಲು ಸಾಧ್ಯವಿಲ್ಲ.
ಮತ್ತು ಕೆಲವು ರೀತಿಯ ಅಭಿವೃದ್ಧಿ ಪರಿಸರ. ನಾನು IntelliJ ಐಡಿಯಾವನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ. ಇದು ಅಭಿವೃದ್ಧಿ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಹೆಚ್ಚು ವೇಗಗೊಳಿಸುತ್ತದೆ, ನಿಮಗೆ ಬಹಳಷ್ಟು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ನಿಮಗಾಗಿ ಎಲ್ಲಾ ಬಾಯ್ಲರ್ ಕೋಡ್ ಅನ್ನು ಬರೆಯುತ್ತದೆ, ಸಾಮಾನ್ಯವಾಗಿ, ಇದು ತಂಪಾಗಿದೆ.
SQL. ಬೆಂಬಲಿಗರ ಬಗ್ಗೆ ಸ್ವಲ್ಪ. ಇಲ್ಲಿ ನಿಜವಾಗಿಯೂ ಒಂದು ತಮಾಷೆಯ ಪ್ರಕರಣವಿತ್ತು. ನನ್ನ ಎರಡನೇ ಇಂಟರ್ನ್ಶಿಪ್ ಸಂದರ್ಶನಕ್ಕೆ ಎರಡು ದಿನಗಳ ಮೊದಲು, ಒಬ್ಬ ಎಚ್ಆರ್ ಹುಡುಗಿ ನನಗೆ ಕರೆ ಮಾಡಿ ಎರಡು ದಿನಗಳಲ್ಲಿ ಅವರು ನನ್ನನ್ನು SQL ಮತ್ತು HTTP ಬಗ್ಗೆ ಕೇಳುತ್ತಾರೆ, ನಾನು ಅದನ್ನು ಕಲಿಯಬೇಕಾಗಿದೆ ಎಂದು ಹೇಳಿದರು. ಮತ್ತು SQL ಅಥವಾ HTTP ಬಗ್ಗೆ ನನಗೆ ಏನೂ ತಿಳಿದಿರಲಿಲ್ಲ. ಮತ್ತು ನಾನು ಈ ತಂಪಾದ ಸೈಟ್ ಅನ್ನು ಕಂಡುಕೊಂಡಿದ್ದೇನೆ - SQLZOO. ನಾನು SQL ಅನ್ನು 12 ಗಂಟೆಗಳಲ್ಲಿ ಕಲಿತಿದ್ದೇನೆ, ಅಂದರೆ, SQL ಸಿಂಟ್ಯಾಕ್ಸ್, SELECT ಪ್ರಶ್ನೆಗಳನ್ನು ಬರೆಯುವುದು ಹೇಗೆ, JOIN, ಇತ್ಯಾದಿ. ತುಂಬಾ ತಂಪಾದ ಸೈಟ್, ನಾನು ಅದನ್ನು ಹೆಚ್ಚು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ. ವಾಸ್ತವವಾಗಿ, 12 ಗಂಟೆಗಳಲ್ಲಿ ನಾನು ಈಗ ತಿಳಿದಿರುವ 90% ಅನ್ನು ಕಲಿತಿದ್ದೇನೆ.
ಮತ್ತು ಡೇಟಾಬೇಸ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ತಿಳಿದುಕೊಳ್ಳುವುದು ಸಹ ಅದ್ಭುತವಾಗಿದೆ. ಇವು ಎಲ್ಲಾ ರೀತಿಯ ಕೀಗಳು, ಸೂಚ್ಯಂಕಗಳು, ಸಾಮಾನ್ಯೀಕರಣ. ಹಬ್ರೆಯಲ್ಲಿ ಈ ಕುರಿತು ಸರಣಿ ಪೋಸ್ಟ್ಗಳಿವೆ.
ಜಾವಾದಲ್ಲಿ, SQL ಜೊತೆಗೆ, JPA ನಂತಹ ಎಲ್ಲಾ ರೀತಿಯ ಆಬ್ಜೆಕ್ಟ್-ರಿಲೇಷನಲ್ ಮ್ಯಾಪಿಂಗ್ ಸಿಸ್ಟಮ್ಗಳಿವೆ. ಕೆಲವು ಕೋಡ್ ಇದೆ. ಮೊದಲ ವಿಧಾನದಲ್ಲಿ ಕೆಲವು SQL ಕೋಡ್ ಇದೆ - SELECT id name from info.users Id IN userIds. ಬಳಕೆದಾರರ ಡೇಟಾಬೇಸ್ನಿಂದ, ಟೇಬಲ್ನಿಂದ, ಅವರ ಐಡಿಗಳು ಮತ್ತು ಹೆಸರುಗಳನ್ನು ಪಡೆಯಲಾಗುತ್ತದೆ.
ಮುಂದೆ, ಬೇಸ್ನಿಂದ ವಸ್ತುವನ್ನು ಜಾವಾ ವಸ್ತುವಾಗಿ ಪರಿವರ್ತಿಸುವ ನಿರ್ದಿಷ್ಟ ಮ್ಯಾಪರ್ ಇದೆ. ಮತ್ತು ಕೆಳಗೆ ಮೂರನೇ ವಿಧಾನವಿದೆ ವಾಸ್ತವವಾಗಿ ಈ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಕೆಳಗೆ ಬರೆಯಲಾದ ಒಂದು ಸಾಲಿನೊಂದಿಗೆ ಜೆಪಿಎ ಬಳಸಿ ಎಲ್ಲವನ್ನೂ ಬದಲಾಯಿಸಬಹುದು. ಇದು ಅದೇ ಕೆಲಸವನ್ನು ಮಾಡುತ್ತದೆ - ಎಲ್ಲಾ ByIdIn ಅನ್ನು ಹುಡುಕಿ. ಅಂದರೆ, ವಿಧಾನದ ಹೆಸರನ್ನು ಆಧರಿಸಿ, ಅದು ನಿಮಗಾಗಿ SQL ಪ್ರಶ್ನೆಯನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ.
ಬಹಳ ತಂಪಾದ ವಿಷಯ. ನಾನೇ, ನನಗೆ SQL ತಿಳಿದಿಲ್ಲದಿದ್ದಾಗ, JPA ಅನ್ನು ಬಳಸಿದ್ದೇನೆ. ಸಾಮಾನ್ಯವಾಗಿ, ಗಮನ ಕೊಡಿ. ನೀವು SQL ಕಲಿಯಲು ತುಂಬಾ ಸೋಮಾರಿಯಾಗಿದ್ದರೆ, ಅದು ದುರಂತವಾಗಿದೆ. ಮತ್ತು, ಸಾಮಾನ್ಯವಾಗಿ, ಬೆಂಕಿ!
ವಸಂತ. ಸ್ಪ್ರಿಂಗ್ ಫ್ರೇಮ್ವರ್ಕ್ನಂತಹ ವಿಷಯದ ಬಗ್ಗೆ ಯಾರು ಕೇಳಿದ್ದಾರೆ? ನಿಮ್ಮಲ್ಲಿ ಎಷ್ಟು ಮಂದಿ ಇದ್ದಾರೆ ಎಂದು ನೀವು ನೋಡುತ್ತೀರಾ? ಕಾರಣವಿಲ್ಲದೆ ಅಲ್ಲ. ಪ್ರತಿ ಸೆಕೆಂಡ್ ಜಾವಾ ಬ್ಯಾಕೆಂಡ್ ಖಾಲಿ ಇರುವ ಅಗತ್ಯತೆಗಳಲ್ಲಿ ಸ್ಪ್ರಿಂಗ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಅದು ಇಲ್ಲದೆ, ದೊಡ್ಡ ಬೆಳವಣಿಗೆಯಲ್ಲಿ ಎಲ್ಲಿಯೂ ಇಲ್ಲ. ಸ್ಪ್ರಿಂಗ್ ಎಂದರೇನು? ಮೊದಲನೆಯದಾಗಿ, ಇದು ಡಿಪೆಂಡೆನ್ಸಿ ಇಂಜೆಕ್ಷನ್ ಫ್ರೇಮ್ವರ್ಕ್ ಆಗಿದೆ. ಈ ಬಗ್ಗೆಯೂ ಹೇಳುತ್ತೇನೆ ಮುಂದಿನ ಸ್ಪೀಕರ್. ಆದರೆ ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳುವುದಾದರೆ, ಇದು ಕೆಲವು ವರ್ಗಗಳ ಅವಲಂಬನೆಗಳನ್ನು ಇತರರ ಮೇಲೆ ಆಮದು ಮಾಡಿಕೊಳ್ಳುವುದನ್ನು ಸುಲಭಗೊಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಒಂದು ವಿಷಯವಾಗಿದೆ. ಅಂದರೆ, ಅವಲಂಬನೆಗಳ ಜ್ಞಾನವನ್ನು ಸರಳೀಕರಿಸಲಾಗಿದೆ.
ಸ್ಪ್ರಿಂಗ್ ಬೂಟ್ ಎಂಬುದು ಸ್ಪ್ರಿಂಗ್ನ ಒಂದು ಭಾಗವಾಗಿದ್ದು ಅದು ನಿಮ್ಮ ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಒಂದು ಬಟನ್ನೊಂದಿಗೆ ಚಲಾಯಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ನೀವು THID ಗೆ ಹೋಗಿ, ಒಂದೆರಡು ಬಟನ್ಗಳನ್ನು ಒತ್ತಿರಿ ಮತ್ತು ಈಗ ನೀವು ನಿಮ್ಮ ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹೊಂದಿದ್ದೀರಿ ಮತ್ತು ಲೋಕಲ್ ಹೋಸ್ಟ್ 8080 ನಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವಿರಿ. ಅಂದರೆ, ನೀವು ಇನ್ನೂ ಒಂದು ಸಾಲಿನ ಕೋಡ್ ಅನ್ನು ಬರೆದಿಲ್ಲ, ಆದರೆ ಅದು ಈಗಾಗಲೇ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ. ಬಹಳ ತಂಪಾದ ವಿಷಯ. ನಿಮ್ಮದೇನಾದರೂ ಬರೆದರೆ ಬೆಂಕಿ!
ವಸಂತವು ಬಹಳ ದೊಡ್ಡ ಚೌಕಟ್ಟು. ಇದು ನಿಮ್ಮ ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಮಾತ್ರ ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ ಮತ್ತು ಡಿಪೆಂಡೆನ್ಸಿ ಇಂಜೆಕ್ಷನ್ ಅನ್ನು ಪರಿಹರಿಸುತ್ತದೆ. REST API ವಿಧಾನಗಳನ್ನು ರಚಿಸುವುದು ಸೇರಿದಂತೆ ಹಲವಾರು ವಿಷಯಗಳನ್ನು ಮಾಡಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಅಂದರೆ, ನೀವು ಕೆಲವು ವಿಧಾನವನ್ನು ಬರೆದಿದ್ದೀರಿ ಮತ್ತು ಅದಕ್ಕೆ ಗೆಟ್ ಮ್ಯಾಪಿಂಗ್ ಟಿಪ್ಪಣಿಯನ್ನು ಲಗತ್ತಿಸಿದ್ದೀರಿ. ಮತ್ತು ಈಗ ನೀವು ಈಗಾಗಲೇ ಲೋಕಲ್ ಹೋಸ್ಟ್ನಲ್ಲಿ ಕೆಲವು ವಿಧಾನವನ್ನು ಹೊಂದಿದ್ದೀರಿ ಅದು ನಿಮಗೆ ಹಲೋ ವರ್ಲ್ಡ್ ಅನ್ನು ಬರೆಯುತ್ತದೆ. ಕೋಡ್ನ ಎರಡು ಸಾಲುಗಳು ಮತ್ತು ಅದು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಕೂಲ್ ಸ್ಟಫ್.
ವಸಂತವು ಪರೀಕ್ಷೆಗಳನ್ನು ಬರೆಯುವುದನ್ನು ಸುಲಭಗೊಳಿಸುತ್ತದೆ. ದೊಡ್ಡ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಪರೀಕ್ಷೆಯಿಲ್ಲದೆ ಯಾವುದೇ ಮಾರ್ಗವಿಲ್ಲ. ಕೋಡ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಬೇಕಾಗಿದೆ. ಈ ಉದ್ದೇಶಕ್ಕಾಗಿ, ಜಾವಾ ತಂಪಾದ ಲೈಬ್ರರಿಯನ್ನು ಹೊಂದಿದೆ ಜುನಿಟ್ 5. ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಜುನಿಟ್, ಆದರೆ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯು ಐದನೆಯದು. ಪರೀಕ್ಷೆಗಾಗಿ ಎಲ್ಲವೂ ಇದೆ, ಎಲ್ಲಾ ರೀತಿಯ ಸಮರ್ಥನೆಗಳು ಮತ್ತು ಇತರ ವಿಷಯಗಳು.
ಮತ್ತು ಅದ್ಭುತವಾದ ಮೋಕಿಟೊ ಚೌಕಟ್ಟನ್ನು ಹೊಂದಿದೆ. ನೀವು ಪರೀಕ್ಷಿಸಲು ಬಯಸುವ ಕೆಲವು ಕಾರ್ಯಗಳನ್ನು ನೀವು ಹೊಂದಿರುವಿರಿ ಎಂದು ಊಹಿಸಿ. ಕ್ರಿಯಾತ್ಮಕತೆಯು ಬಹಳಷ್ಟು ಕೆಲಸಗಳನ್ನು ಮಾಡುತ್ತದೆ, ಎಲ್ಲೋ ಮಧ್ಯದಲ್ಲಿ, ಇದು ನಿಮ್ಮ ID ಯೊಂದಿಗೆ VKontakte ಗೆ ಲಾಗ್ ಮಾಡುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, ಮತ್ತು ID ಯಿಂದ VKontakte ಬಳಕೆದಾರರ ಮೊದಲ ಮತ್ತು ಕೊನೆಯ ಹೆಸರನ್ನು ಪಡೆಯುತ್ತದೆ. ನೀವು ಬಹುಶಃ ಪರೀಕ್ಷೆಗಳಲ್ಲಿ VKontakte ಅನ್ನು ಸೇರಿಸುವುದಿಲ್ಲ, ಅದು ವಿಚಿತ್ರವಾಗಿದೆ. ಆದರೆ ನೀವು ಕಾರ್ಯವನ್ನು ಪರೀಕ್ಷಿಸಬೇಕಾಗಿದೆ, ಆದ್ದರಿಂದ ನೀವು ಈ ವರ್ಗವನ್ನು ಮಾಡಿದ್ದೀರಿ, ಮೋಕಿಟೊ ಬಳಸಿ, ಅದನ್ನು ಮೋಕ್ ಮಾಡಿ, ಅದನ್ನು ಅನುಕರಿಸಿ.
ಅಂತಹ ID ಯೊಂದಿಗೆ ಈ ವರ್ಗಕ್ಕೆ ವಿನಂತಿಯು ಬಂದಾಗ, ಅದು ಕೆಲವು ಕೊನೆಯ ಹೆಸರನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, Vasya Pupkin. ಮತ್ತು ಇದು ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಅಂದರೆ, ನೀವು mok ಒಂದು ವರ್ಗದ ಎಲ್ಲಾ ಕಾರ್ಯಗಳನ್ನು ಪರೀಕ್ಷಿಸುವಿರಿ. ಬಹಳ ತಂಪಾದ ವಿಷಯ.
ವಿನ್ಯಾಸ ಮಾದರಿಗಳು. ಅದು ಏನು? ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಉದ್ಭವಿಸುವ ವಿಶಿಷ್ಟ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಇವು ಟೆಂಪ್ಲೆಟ್ಗಳಾಗಿವೆ. ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ, ಒಂದೇ ರೀತಿಯ ಅಥವಾ ಒಂದೇ ರೀತಿಯ ಸಮಸ್ಯೆಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಉದ್ಭವಿಸುತ್ತವೆ, ಅದು ಹೇಗಾದರೂ ಚೆನ್ನಾಗಿ ಪರಿಹರಿಸಲು ಉತ್ತಮವಾಗಿದೆ. ಆದ್ದರಿಂದ, ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಹೇಗೆ ಪರಿಹರಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ಜನರು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು, ಕೆಲವು ಟೆಂಪ್ಲೆಟ್ಗಳೊಂದಿಗೆ ಬಂದರು.
ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಮಾದರಿಗಳೊಂದಿಗೆ ವೆಬ್ಸೈಟ್ ಇದೆ - refactoring.guru, ನೀವು ಅದನ್ನು ಓದಬಹುದು, ಯಾವ ಮಾದರಿಗಳಿವೆ ಎಂಬುದನ್ನು ಕಂಡುಹಿಡಿಯಬಹುದು, ಸಿದ್ಧಾಂತದ ಗುಂಪನ್ನು ಓದಿ. ಸಮಸ್ಯೆಯೆಂದರೆ ಅದು ಪ್ರಾಯೋಗಿಕವಾಗಿ ನಿಷ್ಪ್ರಯೋಜಕವಾಗಿದೆ. ವಾಸ್ತವವಾಗಿ, ಅಭ್ಯಾಸವಿಲ್ಲದ ಮಾದರಿಗಳು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಲ್ಲ.
ಸಿಂಗಲ್ಟೋನ್ ಅಥವಾ ಬಿಲ್ಡರ್ನಂತಹ ಕೆಲವು ಮಾದರಿಗಳ ಬಗ್ಗೆ ನೀವು ಕೇಳುತ್ತೀರಿ. ಈ ಮಾತುಗಳನ್ನು ಯಾರು ಕೇಳಿದರು? ಬಹಳ ಮಂದಿ. ನೀವೇ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಅಂತಹ ಸರಳ ಮಾದರಿಗಳಿವೆ. ಆದರೆ ಹೆಚ್ಚಿನ ಮಾದರಿಗಳು: ತಂತ್ರ, ಕಾರ್ಖಾನೆ, ಮುಂಭಾಗ - ಅವುಗಳನ್ನು ಎಲ್ಲಿ ಅನ್ವಯಿಸಬೇಕು ಎಂಬುದು ಸ್ಪಷ್ಟವಾಗಿಲ್ಲ.
ಮತ್ತು ಈ ಮಾದರಿಯನ್ನು ಅನ್ವಯಿಸುವ ಸ್ಥಳವನ್ನು ಇತರ ವ್ಯಕ್ತಿಯ ಕೋಡ್ನಲ್ಲಿ ನೀವು ಪ್ರಾಯೋಗಿಕವಾಗಿ ನೋಡುವವರೆಗೆ, ಅದನ್ನು ನೀವೇ ಅನ್ವಯಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ಮಾದರಿಗಳೊಂದಿಗೆ ಅಭ್ಯಾಸವು ಬಹಳ ಮುಖ್ಯವಾಗಿದೆ. ಮತ್ತು refactoring.guru ನಲ್ಲಿ ಅವರ ಬಗ್ಗೆ ಓದುವುದು ತುಂಬಾ ಸಹಾಯಕವಾಗುವುದಿಲ್ಲ, ಆದರೆ ಇದು ಖಂಡಿತವಾಗಿಯೂ ಮಾಡಲು ಯೋಗ್ಯವಾಗಿದೆ.
ಮಾದರಿಗಳು ಏಕೆ ಬೇಕು? ನೀವು ನಿರ್ದಿಷ್ಟ ಬಳಕೆದಾರ ವರ್ಗವನ್ನು ಹೊಂದಿದ್ದೀರಿ ಎಂದು ಹೇಳೋಣ. ಇದು ಐಡಿ ಮತ್ತು ಹೆಸರನ್ನು ಹೊಂದಿದೆ. ಪ್ರತಿಯೊಬ್ಬ ಬಳಕೆದಾರರು ಐಡಿ ಮತ್ತು ಹೆಸರು ಎರಡನ್ನೂ ಹೊಂದಿರಬೇಕು. ಮೇಲಿನ ಎಡಭಾಗವು ತರಗತಿ ಕೋಣೆಯಾಗಿದೆ.
ಬಳಕೆದಾರರನ್ನು ಪ್ರಾರಂಭಿಸುವ ಮಾರ್ಗಗಳು ಯಾವುವು? ಎರಡು ಆಯ್ಕೆಗಳಿವೆ - ಕನ್ಸ್ಟ್ರಕ್ಟರ್ ಅಥವಾ ಸೆಟ್ಟರ್. ಎರಡೂ ವಿಧಾನಗಳ ಅನಾನುಕೂಲಗಳು ಯಾವುವು?
ಕನ್ಸ್ಟ್ರಕ್ಟರ್. ಹೊಸ ಬಳಕೆದಾರ (7, "ಬಾಂಡ್"), ಸರಿ. ಈಗ ನಾವು ಬಳಕೆದಾರರ ವರ್ಗವನ್ನು ಹೊಂದಿಲ್ಲ ಎಂದು ಹೇಳೋಣ, ಆದರೆ ಬೇರೆ ಕೆಲವು ಏಳು ಸಂಖ್ಯಾ ಕ್ಷೇತ್ರಗಳೊಂದಿಗೆ. ನೀವು ಏಳು ಸತತ ಸಂಖ್ಯೆಗಳನ್ನು ಹೊಂದಿರುವ ಕನ್ಸ್ಟ್ರಕ್ಟರ್ ಅನ್ನು ಹೊಂದಿರುತ್ತೀರಿ. ಈ ಸಂಖ್ಯೆಗಳು ಯಾವುವು ಮತ್ತು ಅವುಗಳಲ್ಲಿ ಯಾವುದು ಯಾವ ಆಸ್ತಿಗೆ ಸೇರಿದೆ ಎಂಬುದು ಸ್ಪಷ್ಟವಾಗಿಲ್ಲ. ಡಿಸೈನರ್ ಮಹಾನ್ ಅಲ್ಲ.
ಎರಡನೆಯ ಆಯ್ಕೆಯು ಸೆಟ್ಟರ್ ಆಗಿದೆ. ನೀವು ಸ್ಪಷ್ಟವಾಗಿ ಬರೆಯುತ್ತೀರಿ: setId(7), setName("Bond"). ಯಾವ ಕ್ಷೇತ್ರಕ್ಕೆ ಯಾವ ಆಸ್ತಿ ಸೇರಿದೆ ಎಂಬುದು ನಿಮಗೆ ಅರ್ಥವಾಗುತ್ತದೆ. ಆದರೆ ಸೆಟ್ಟರ್ಗೆ ಸಮಸ್ಯೆ ಇದೆ. ಮೊದಲನೆಯದಾಗಿ, ನೀವು ಏನನ್ನಾದರೂ ನಿಯೋಜಿಸಲು ಮರೆತುಬಿಡಬಹುದು, ಮತ್ತು ಎರಡನೆಯದಾಗಿ, ನಿಮ್ಮ ವಸ್ತುವು ರೂಪಾಂತರಗೊಳ್ಳುತ್ತದೆ. ಇದು ಥ್ರೆಡ್ ಸುರಕ್ಷಿತವಲ್ಲ ಮತ್ತು ಕೋಡ್ನ ಓದುವಿಕೆಯನ್ನು ಸ್ವಲ್ಪ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಅದಕ್ಕಾಗಿಯೇ ಜನರು ತಂಪಾದ ಮಾದರಿಯೊಂದಿಗೆ ಬಂದರು - ಬಿಲ್ಡರ್.
ಇದು ಯಾವುದರ ಬಗ್ಗೆ? ಸೆಟ್ಟರ್ ಮತ್ತು ಕನ್ಸ್ಟ್ರಕ್ಟರ್-ಎರಡೂ ವಿಧಾನಗಳ ಅನುಕೂಲಗಳನ್ನು ಒಂದರಲ್ಲಿ ಸಂಯೋಜಿಸಲು ಪ್ರಯತ್ನಿಸೋಣ. ನಾವು ಬಿಲ್ಡರ್ ಎಂಬ ನಿರ್ದಿಷ್ಟ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ತಯಾರಿಸುತ್ತೇವೆ, ಅದು ಐಡಿ ಮತ್ತು ಹೆಸರು ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಅದು ಸೆಟ್ಟರ್ ಅನ್ನು ಆಧರಿಸಿ ನಿರ್ಮಿಸಲ್ಪಡುತ್ತದೆ ಮತ್ತು ಎಲ್ಲಾ ನಿಯತಾಂಕಗಳೊಂದಿಗೆ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ನಿಮಗೆ ಹಿಂದಿರುಗಿಸುವ ಬಿಲ್ಡ್ ವಿಧಾನವನ್ನು ಹೊಂದಿರುತ್ತದೆ. ನಾವು ಬದಲಾಗದ ವಸ್ತು ಮತ್ತು ಸೆಟ್ಟರ್ ಅನ್ನು ಪಡೆಯುತ್ತೇವೆ. ಕೂಲ್!
ಸಮಸ್ಯೆಗಳೇನು? ಇಲ್ಲಿ ನಾವು ಕ್ಲಾಸಿಕ್ ಬಿಲ್ಡರ್ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ. ಸಮಸ್ಯೆಯೆಂದರೆ ನಾವು ಇನ್ನೂ ಕೆಲವು ಕ್ಷೇತ್ರದಲ್ಲಿ ಪರಿಶೀಲಿಸಲು ಮರೆಯಬಹುದು. ಮತ್ತು ನಾವು ID ಗೆ ಭೇಟಿ ನೀಡಲು ಮರೆತಿದ್ದರೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ ಬಿಲ್ಡರ್ನಲ್ಲಿ ಅದನ್ನು ಶೂನ್ಯಕ್ಕೆ ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ, ಏಕೆಂದರೆ ಇಂಟ್ ಪ್ರಕಾರವು ಶೂನ್ಯವಾಗುವುದಿಲ್ಲ. ಮತ್ತು ನಾವು "ಬಾಂಡ್" ಎಂಬ ಹೆಸರನ್ನು ಮಾಡಿದರೆ ಮತ್ತು ID ಕಚೇರಿಗೆ ಭೇಟಿ ನೀಡಲು ಮರೆತರೆ, ನಾವು "0" ಐಡಿ ಮತ್ತು "ಬಾಂಡ್" ಹೆಸರಿನೊಂದಿಗೆ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಹೊಂದಿರುತ್ತೇವೆ. ತಣ್ಣಗೆ ಇಲ್ಲ.
ಇದರ ವಿರುದ್ಧ ಹೋರಾಡಲು ಪ್ರಯತ್ನಿಸೋಣ. ಬಿಲ್ಡರ್ನಲ್ಲಿ ನಾವು ಇಂಟ್ ಅನ್ನು ಇಂಟ್ಗೆ ಬದಲಾಯಿಸುತ್ತೇವೆ ಇದರಿಂದ ಅದು ಶೂನ್ಯವಾಗಿರುತ್ತದೆ. ಈಗ ಎಲ್ಲವೂ ಅದ್ಭುತವಾಗಿದೆ.
ನಾವು "ಬಾಂಡ್" ಹೆಸರಿನೊಂದಿಗೆ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಲು ಪ್ರಯತ್ನಿಸಿದರೆ, ಅವರ ID ಅನ್ನು ಹಾಕಲು ಮರೆತರೆ, ನಾವು ಶೂನ್ಯ ಪಾಯಿಂಟರ್ ವಿನಾಯಿತಿಯನ್ನು ಪಡೆಯುತ್ತೇವೆ, ಏಕೆಂದರೆ ID ಶೂನ್ಯವಲ್ಲ, ಮತ್ತು ಬಿಲ್ಡರ್ ಶೂನ್ಯ, ನಿರ್ದಿಷ್ಟವಾಗಿ ಪಾಯಿಂಟರ್ ವಿನಾಯಿತಿಯನ್ನು ಹೊಂದಿದೆ.
ಆದರೆ ನಾವು ಇನ್ನೂ ಹೆಸರನ್ನು ಹಾಕಲು ಮರೆಯಬಹುದು, ಆದ್ದರಿಂದ ನಾವು ವಸ್ತುವಿನ ಮರುಪಂದ್ಯವನ್ನು ಶೂನ್ಯಕ್ಕೆ ಹೊಂದಿಸುತ್ತೇವೆ. ಈಗ, ನಾವು ಬಿಲ್ಡರ್ನಿಂದ ನಮ್ಮ ವಸ್ತುವನ್ನು ನಿರ್ಮಿಸಿದಾಗ, ಕ್ಷೇತ್ರವು ಶೂನ್ಯವಾಗಿಲ್ಲ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಮತ್ತು ಅಷ್ಟೆ ಅಲ್ಲ.
ಕೊನೆಯ ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಐಡಿ ರನ್ಟೈಮ್ನಲ್ಲಿ ನಾವು ಹೇಗಾದರೂ ಶೂನ್ಯವನ್ನು ಹಾಕಿದರೆ, ನೀವು ಅದನ್ನು ಮಾಡಿದ್ದೀರಿ ಮತ್ತು ನೀವು ಈಗ ತಪ್ಪು ಮಾಡುತ್ತಿದ್ದೀರಿ ಎಂದು ತಕ್ಷಣವೇ ತಿಳಿದುಕೊಳ್ಳುವುದು ಉತ್ತಮವಾಗಿದೆ.
ನೀವು ದೋಷವನ್ನು ಎಸೆದಿರುವುದು ಬಳಕೆದಾರರ ರಚನೆಯ ಕ್ಷಣದಲ್ಲಿ ಅಲ್ಲ, ಆದರೆ ನೀವು ID ಗೆ ಶೂನ್ಯವನ್ನು ಹೊಂದಿಸಿದಾಗ. ಆದ್ದರಿಂದ, ಬಿಲ್ಡರ್ನಲ್ಲಿ ನಾವು ಸೆಟ್ಟರ್ ಪೂರ್ಣಾಂಕವನ್ನು ಇಂಟ್ಗೆ ಬದಲಾಯಿಸುತ್ತೇವೆ ಮತ್ತು ಅವರು ಶೂನ್ಯವನ್ನು ಎಸೆದಿದ್ದಾರೆ ಎಂದು ಅವರು ತಕ್ಷಣವೇ ಪ್ರತಿಜ್ಞೆ ಮಾಡುತ್ತಾರೆ.
ಸಂಕ್ಷಿಪ್ತವಾಗಿ, ಪಾಯಿಂಟ್ ಏನು? ಸರಳವಾದ ಬಿಲ್ಡರ್ ಮಾದರಿ ಇದೆ, ಆದರೆ ಅದರ ಅನುಷ್ಠಾನವು ಕೆಲವು ಸೂಕ್ಷ್ಮತೆಗಳನ್ನು ಹೊಂದಿದೆ, ಆದ್ದರಿಂದ ಮಾದರಿಗಳ ವಿಭಿನ್ನ ಅನುಷ್ಠಾನಗಳನ್ನು ನೋಡಲು ಇದು ತುಂಬಾ ತಂಪಾಗಿದೆ. ಪ್ರತಿ ಮಾದರಿಯು ಡಜನ್ಗಟ್ಟಲೆ ಅನುಷ್ಠಾನಗಳನ್ನು ಹೊಂದಿದೆ. ಇದೆಲ್ಲವೂ ತುಂಬಾ ಆಸಕ್ತಿದಾಯಕವಾಗಿದೆ.
ಉತ್ಪಾದನಾ ಕೋಡ್ನಲ್ಲಿ ಬಿಲ್ಡರ್ ಅನ್ನು ಹೇಗೆ ಬರೆಯುವುದು? ಇಲ್ಲಿ ನಮ್ಮ ಬಳಕೆದಾರ. ನಾವು ಅದಕ್ಕೆ ಲಂಬೋಕ್ ಲೈಬ್ರರಿಯಿಂದ ಬಿಲ್ಡರ್ ತಿರುಗುವಿಕೆಯನ್ನು ಲಗತ್ತಿಸುತ್ತೇವೆ ಮತ್ತು ಅದು ಸ್ವತಃ ನಮಗೆ ಬಿಲ್ಡರ್ ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ. ಅಂದರೆ, ನಾವು ಯಾವುದೇ ಕೋಡ್ ಅನ್ನು ಬರೆಯುವುದಿಲ್ಲ, ಆದರೆ ಈ ವರ್ಗವು ಬಿಲ್ಡರ್ ಅನ್ನು ಹೊಂದಿದೆ ಎಂದು ಜಾವಾ ಈಗಾಗಲೇ ಭಾವಿಸುತ್ತದೆ, ಮತ್ತು ನಾವು ಅದನ್ನು ಈ ರೀತಿ ಕರೆಯಬಹುದು.
ಜಾವಾದಲ್ಲಿ ಲೊಂಬೋಕ್ ಸೇರಿದಂತೆ ಬಹುತೇಕ ಎಲ್ಲದಕ್ಕೂ ಲೈಬ್ರರಿಗಳಿವೆ ಎಂದು ನಾನು ಈಗಾಗಲೇ ಹೇಳಿದ್ದೇನೆ, ಬಾಯ್ಲರ್ ಪ್ಲೇಟ್ ಬರೆಯುವುದನ್ನು ತಪ್ಪಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ತಂಪಾದ ಲೈಬ್ರರಿ. ಬಿಲ್ಡರ್, GET.
ನಮೂನೆಗಳು ವಾಸ್ತುಶಿಲ್ಪೀಯವಾಗಿರಬಹುದು - ಒಂದು ವರ್ಗಕ್ಕೆ ಮಾತ್ರವಲ್ಲ, ಒಟ್ಟಾರೆಯಾಗಿ ವ್ಯವಸ್ಥೆಗೆ ಸಂಬಂಧಿಸಿದೆ. ಸಿಸ್ಟಮ್ ವಿನ್ಯಾಸದಲ್ಲಿ ಅಂತಹ ತಂಪಾದ ತತ್ವವಿದೆ: ಏಕ ಜವಾಬ್ದಾರಿ ತತ್ವ. ಅವನು ಏನು ಮಾತನಾಡುತ್ತಿದ್ದಾನೆ? ಪ್ರತಿಯೊಂದು ವರ್ಗವು ತನ್ನದೇ ಆದ ಕೆಲವು ಕಾರ್ಯಚಟುವಟಿಕೆಗಳಿಗೆ ಜವಾಬ್ದಾರರಾಗಿರಬೇಕು. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ನಾವು ಬಳಕೆದಾರರು, JSON ಆಬ್ಜೆಕ್ಟ್ಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುವ ನಿಯಂತ್ರಕವನ್ನು ಹೊಂದಿದ್ದೇವೆ. ಮುಂಭಾಗವಿದೆ, ಇದು JSON ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು ಮಾದರಿಗಳಾಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ, ಅದು ನಂತರ ಜಾವಾ ಅಪ್ಲಿಕೇಶನ್ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಈ ಮಾದರಿಗಳೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಸಂಕೀರ್ಣ ತರ್ಕವನ್ನು ಹೊಂದಿರುವ ಸೇವೆ ಇದೆ. ಡೇಟಾ ಆಕ್ಸೆಸ್ ಆಬ್ಜೆಕ್ಟ್ ಇದೆ ಅದು ಈ ಮಾದರಿಗಳನ್ನು ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಇರಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಡೇಟಾಬೇಸ್ನಿಂದ ಹಿಂಪಡೆಯುತ್ತದೆ. ಮತ್ತು ಡೇಟಾಬೇಸ್ ಸ್ವತಃ ಇದೆ. ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಇದು ಒಂದು ತರಗತಿಯಲ್ಲಿ ಅಲ್ಲ, ಆದರೆ ನಾವು ಐದು ವಿಭಿನ್ನ ವರ್ಗಗಳನ್ನು ಮಾಡುತ್ತಿದ್ದೇವೆ ಮತ್ತು ಅದು ಮತ್ತೊಂದು ಮಾದರಿಯಾಗಿದೆ.
ಒಮ್ಮೆ ನೀವು ಜಾವಾವನ್ನು ಹೆಚ್ಚು ಅಥವಾ ಕಡಿಮೆ ಕಲಿತರೆ, ಡೇಟಾಬೇಸ್ ಹೊಂದಿರುವ ನಿಮ್ಮ ಸ್ವಂತ ಯೋಜನೆಯನ್ನು ಬರೆಯುವುದು ಉತ್ತಮವಾಗಿದೆ, ಇತರ API ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು REST API ಕ್ಲೈಂಟ್ಗಳಿಗೆ ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ. ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ಗೆ ಸೇರಿಸಲು ಇದು ಉತ್ತಮ ವಿಷಯವಾಗಿದೆ, ಇದು ನಿಮ್ಮ ಶಿಕ್ಷಣಕ್ಕೆ ತಂಪಾದ ಅಂತ್ಯವಾಗಿದೆ. ಇದರೊಂದಿಗೆ ನೀವು ಹೋಗಿ ಕೆಲಸ ಪಡೆಯಬಹುದು.
ನನ್ನ ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್ನ ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ. ನನ್ನ ಎರಡನೇ ವರ್ಷದಲ್ಲಿ, ನಾನು ಹುಡುಗರೊಂದಿಗೆ ಟರ್ಮ್ ಪೇಪರ್ ಬರೆದೆ. ಅವರು ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಆಯೋಜಿಸಲು ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್ ಬರೆಯುತ್ತಿದ್ದರು. ಅಲ್ಲಿ, ಬಳಕೆದಾರರು VKontakte ಮೂಲಕ ಲಾಗ್ ಇನ್ ಮಾಡಬಹುದು, ನಕ್ಷೆಯಲ್ಲಿ ಅಂಕಗಳನ್ನು ಇರಿಸಬಹುದು, ಈವೆಂಟ್ಗಳನ್ನು ರಚಿಸಬಹುದು, ಅವರ ಸ್ನೇಹಿತರನ್ನು ಅವರಿಗೆ ಆಹ್ವಾನಿಸಬಹುದು, ಈವೆಂಟ್ಗಳ ಚಿತ್ರಗಳನ್ನು ಉಳಿಸಬಹುದು, ಇತ್ಯಾದಿ.
ಯೋಜನೆಯಲ್ಲಿ ನಾನು ಏನು ಮಾಡಿದೆ? SQL ಬಳಸದೆಯೇ ಸ್ಪ್ರಿಂಗ್ ಬೂಟ್ನಲ್ಲಿ ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಬರೆಯಲಾಗಿದೆ. ನಾನು ಅವನನ್ನು ತಿಳಿದಿರಲಿಲ್ಲ, ನಾನು ಜೆಪಿಎ ಬಳಸಿದ್ದೇನೆ. ಅದು ಏನು ಮಾಡಬಲ್ಲದು? OAuth-2 ಮೂಲಕ VK ಗೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ. ಬಳಕೆದಾರರ ಟೋಕನ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ, ಅದರೊಂದಿಗೆ VK ಗೆ ಹೋಗಿ, ಅದು ನಿಜವಾದ ಬಳಕೆದಾರ ಎಂದು ಪರಿಶೀಲಿಸಿ. VKontakte ಮೂಲಕ ಬಳಕೆದಾರರ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಸ್ವೀಕರಿಸಿ. ಇದು JPA ಮೂಲಕ ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಮಾಹಿತಿಯನ್ನು ಉಳಿಸಲು ಸಾಧ್ಯವಾಯಿತು. ಕಂಪ್ಯೂಟರ್ ಮೆಮೊರಿಯಲ್ಲಿ ಚಿತ್ರಗಳು ಮತ್ತು ಇತರ ಫೈಲ್ಗಳನ್ನು ಕೌಶಲ್ಯದಿಂದ ಉಳಿಸಿ ಮತ್ತು ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಲಿಂಕ್ಗಳನ್ನು ಉಳಿಸಿ. ಆ ಸಮಯದಲ್ಲಿ ಡೇಟಾಬೇಸ್ನಲ್ಲಿ CLOB ಆಬ್ಜೆಕ್ಟ್ಗಳಿವೆ ಎಂದು ನನಗೆ ತಿಳಿದಿರಲಿಲ್ಲ, ಆದ್ದರಿಂದ ನಾನು ಅದನ್ನು ಈ ರೀತಿ ಮಾಡಿದ್ದೇನೆ. ಬಳಕೆದಾರರು, ಕ್ಲೈಂಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗಾಗಿ REST API ಇತ್ತು. ಮತ್ತು ಮೂಲಭೂತ ಕಾರ್ಯನಿರ್ವಹಣೆಗಾಗಿ ಘಟಕ ಪರೀಕ್ಷೆಗಳು ಇದ್ದವು.
[…] ಜಾವಾದ ನನ್ನ ಯಶಸ್ವಿ ಕಲಿಕೆಯ ಒಂದು ಸಣ್ಣ ಉದಾಹರಣೆ. ವಿಶ್ವವಿದ್ಯಾನಿಲಯದಲ್ಲಿ ನನ್ನ ಮೊದಲ ವರ್ಷದಲ್ಲಿ, ನನಗೆ C# ಅನ್ನು ಕಲಿಸಲಾಯಿತು ಮತ್ತು OOP ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಬಗ್ಗೆ ತಿಳುವಳಿಕೆಯನ್ನು ನೀಡಲಾಯಿತು - ಯಾವ ತರಗತಿಗಳು, ಇಂಟರ್ಫೇಸ್ಗಳು, ಅಮೂರ್ತತೆ ಮತ್ತು ಅವು ಏಕೆ ಬೇಕು. ಇದು ನನಗೆ ತುಂಬಾ ಸಹಾಯ ಮಾಡಿತು. ಇದು ಇಲ್ಲದೆ, ಜಾವಾ ಕಲಿಯುವುದು ತುಂಬಾ ಕಷ್ಟ; ತರಗತಿಗಳು ಏಕೆ ಬೇಕು ಎಂಬುದು ಸ್ಪಷ್ಟವಾಗಿಲ್ಲ.
ವಿಶ್ವವಿದ್ಯಾನಿಲಯದಲ್ಲಿ ನನ್ನ ಎರಡನೇ ವರ್ಷದಲ್ಲಿ, ಅವರು ಮತ್ತೆ ಜಾವಾ ಕೋರ್ ಅನ್ನು ಕಲಿಸಿದರು, ಆದರೆ ನಾನು ಅಲ್ಲಿ ನಿಲ್ಲಲಿಲ್ಲ, ನಾನು ಸ್ಪ್ರಿಂಗ್ ಅನ್ನು ಅಧ್ಯಯನ ಮಾಡಲು ಹೋದೆ ಮತ್ತು ನಾನು ಮೇಲೆ ತಿಳಿಸಿದ ಕೋರ್ಸ್ ಪೇಪರ್, ನನ್ನ ಯೋಜನೆ ಬರೆದಿದ್ದೇನೆ. ಮತ್ತು ಈ ಎಲ್ಲದರ ಜೊತೆಗೆ, ನಾನು ಯಾಂಡೆಕ್ಸ್ನಲ್ಲಿ ಇಂಟರ್ನ್ಶಿಪ್ಗೆ ಹೋದೆ, ಸಂದರ್ಶನದಲ್ಲಿ ಉತ್ತೀರ್ಣನಾಗಿದ್ದೆ ಮತ್ತು Yandex.Market ಗೆ ಪ್ರವೇಶಿಸಿದೆ. ಅಲ್ಲಿ ನಾನು Beru ಗೆ ಬ್ಯಾಕೆಂಡ್ ಬರೆದಿದ್ದೇನೆ, ಇದು ನಮ್ಮ ಮಾರುಕಟ್ಟೆ, ಮತ್ತು Yandex.Market ಗಾಗಿ.
ಅದರ ನಂತರ, ಆರು ತಿಂಗಳ ಹಿಂದೆ, ನಾನು ಅದೇ ಮಾರ್ಕೆಟ್ನ ಮತ್ತೊಂದು ತಂಡಕ್ಕೆ ವರ್ಗಾಯಿಸಿದೆ. ವ್ಯಾಪಾರ ಪಾಲುದಾರರಿಗಾಗಿ ನಾವು ವಿಶ್ಲೇಷಣೆಗಳನ್ನು ಮಾಡುತ್ತೇವೆ. ನಾವು ವಿಶ್ಲೇಷಣಾತ್ಮಕ ವೇದಿಕೆಯಲ್ಲಿದ್ದೇವೆ, ನಮ್ಮಲ್ಲಿ ಮೂವರು ಬ್ಯಾಕೆಂಡ್ನಲ್ಲಿದ್ದೇವೆ, ಆದ್ದರಿಂದ ನಾನು ಯೋಜನೆಯ ಮೇಲೆ ಪ್ರಭಾವದ ದೊಡ್ಡ ಪಾಲನ್ನು ಹೊಂದಿದ್ದೇನೆ. ಇದು ತುಂಬಾ ಆಸಕ್ತಿದಾಯಕವಾಗಿದೆ, ವಾಸ್ತವವಾಗಿ. ಅಂದರೆ, ನಾವು ವಾಸ್ತವವಾಗಿ ಮಾರುಕಟ್ಟೆಯಲ್ಲಿ ಡೇಟಾವನ್ನು ಒದಗಿಸುತ್ತೇವೆ - ಯಾವ ಮಾರಾಟಗಳು, ಯಾವ ವರ್ಗಗಳಲ್ಲಿ, ಯಾವ ಮಾದರಿಗಳಲ್ಲಿ, ವ್ಯಾಪಾರ ಪಾಲುದಾರರಿಗೆ, ದೊಡ್ಡ ಪ್ರಸಿದ್ಧ ಕಂಪನಿಗಳಿಗೆ. ಮತ್ತು ನಮ್ಮಲ್ಲಿ ಕೇವಲ ಮೂವರು ಇದ್ದಾರೆ, ನಾವು ಈ ಕೋಡ್ ಅನ್ನು ಬರೆಯುತ್ತೇವೆ ಮತ್ತು ಅದು ತುಂಬಾ ತಂಪಾಗಿದೆ.