Angular ನಲ್ಲಿನ Leaky Abstractions ನ ನಿಯಮ
Angular ಸಂಕೀರ್ಣತೆಯನ್ನು ಮರೆಮಾಚುತ್ತದೆ. ಇದು ನಿಮಗೆ Router, HttpClient ಮತ್ತು Signals ನಂತಹ ಪರಿಕರಗಳನ್ನು ನೀಡುತ್ತದೆ. ಈ ಪರಿಕರಗಳು ಬ್ರೌಸರ್ನ ಆಂತರಿಕ ವಿಷಯಗಳ ಬಗ್ಗೆ ಚಿಂತಿಸದೆ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತವೆ.
ಆದರೆ abstractions ಸೋರಿಕೆಯಾಗುತ್ತವೆ (leaky). ಇದು ಸಾಫ್ಟ್ವೇರ್ ಎಂಜಿನಿಯರಿಂಗ್ನಲ್ಲಿ ಒಂದು ನಿಯಮ. ಒಂದು abstraction ಸಂಕೀರ್ಣತೆಯನ್ನು ಮರೆಮಾಚುತ್ತದೆ, ಆದರೆ ಅದನ್ನು ತೆಗೆದುಹಾಕುವುದಿಲ್ಲ.
Angular ನ HttpClient ಅನ್ನು ಗಮನಿಸಿ. ಇದು ರಿಕ್ವೆಸ್ಟ್ಗಳನ್ನು ಕಳುಹಿಸುವುದನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ. ಆದರೆ ನೀವು CORS error ಅಥವಾ timeout ಅನ್ನು ಎದುರಿಸಿದಾಗ, ಇದ್ದಕ್ಕಿದ್ದಂತೆ ನೀವು HTTP ಮತ್ತು ನೆಟ್ವರ್ಕ್ ಸಂವಹನವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕಾಗುತ್ತದೆ. ಇಲ್ಲಿ abstraction ಸೋರಿಕೆಯಾಗಿದೆ.
RxJS ಅನ್ನು ಗಮನಿಸಿ. ಇದು data streams ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಬಳಕೆದಾರರ ಕ್ರಿಯೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನೀವು operators ಬಳಸುತ್ತೀರಿ. switchMap ಏಕೆ mergeMap ಗಿಂತ ವಿಭಿನ್ನವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ನೀವು ವಿವರಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ನೀವು JavaScript event loop ಅನ್ನು ಅಧ್ಯಯನ ಮಾಡಲೇಬೇಕು. RxJS ಆ ಜ್ಞಾನವನ್ನು ಬದಲಿಸುವಂತಿಲ್ಲ.
AI ಪರಿಕರಗಳು abstraction ನ ಅತ್ಯಂತ ಹೊಸ ಪದರಗಳಾಗಿವೆ. ನೀವು components, tests ಅಥವಾ features ಬರೆಯಲು AI ಅನ್ನು ಬಳಸುತ್ತೀರಿ. ಇದು ನಿಮ್ಮ ಕೆಲಸವನ್ನು ವೇಗಗೊಳಿಸುತ್ತದೆ.
Leaky Abstractions ನ ನಿಯಮವು AI ಗೆ ಕೂಡ ಅನ್ವಯಿಸುತ್ತದೆ. AI ಕೋಡ್ ವಿಫಲವಾದಾಗ ಅಥವಾ ಭದ್ರತಾ ಅಪಾಯಗಳನ್ನು ಸೃಷ್ಟಿಸಿದಾಗ, ಮೇಲ್ಮೈ ಅಡಿಯಲ್ಲಿ ಏನಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ನೀವು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲೇಬೇಕು. AI ಎಂಬುದು TypeScript ಅಥವಾ software architecture ಬಗ್ಗೆ ತಿಳಿದುಕೊಳ್ಳುವ ಅಗತ್ಯವನ್ನು ಹೋಗಲಾಡಿಸುವುದಿಲ್ಲ.
ವಾಸ್ತವವಾಗಿ, AI ಮೇಲೆ ಅವಲಂಬಿತವಾಗುವುದು ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು (fundamentals) ಇನ್ನಷ್ಟು ಮುಖ್ಯವಾಗಿಸುತ್ತದೆ. AI ನಿಮಗೆ ನೀಡುವ ಕೋಡ್ನ ಗುಣಮಟ್ಟವನ್ನು ನೀವು ಮೌಲ್ಯಮಾಪನ ಮಾಡಲೇಬೇಕು.
Frameworks ನಿಮ್ಮ ಉತ್ಪಾದಕತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತವೆ. AI ನಿಮ್ಮ ವೇಗವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಆದರೆ ಇವುಗಳಲ್ಲಿ ಯಾವುದೂ JavaScript, DOM ಅಥವಾ networking ಅನ್ನು ಐಚ್ಛಿಕವಾಗಿಸುವುದಿಲ್ಲ. ಏನಾದರೂ ಕೆಟ್ಟುಹೋದಾಗದ ಹೊರತು, ಇವು ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಮರೆಯುವಂತೆ ಮಾಡಬಹುದು ಅಷ್ಟೆ.
ಹಿರಿಯ ಎಂಜಿನಿಯರ್ಗಳು (Senior engineers) ಇತರರಿಗಿಂತ ಭಿನ್ನವಾಗಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತಾರೆ ಏಕೆಂದರೆ ಅವರಿಗೆ abstraction ಅಡಿಯಲ್ಲಿ ಏನಿದೆ ಎಂಬುದು ತಿಳಿದಿರುತ್ತದೆ. ಪರಿಕರಗಳು ವಿಫಲವಾದಾಗ ಅವರು ಮೂಲ ಕಾರಣವನ್ನು (root cause) ಪತ್ತೆಹಚ್ಚುತ್ತಾರೆ.
Source: https://dev.to/duskoperic/the-law-of-leaky-abstractions-in-the-angular-ecosystem-59da
Optional learning community: https://t.me/GyaanSetuAi