AI ಬರೆಯದ ಕೋಡ್
ನಾನು ತಾಂತ್ರಿಕ ಸಂದರ್ಶನದ ಪ್ರಶ್ನೆಯಾಗಿ ಫಾರ್ಮ್ ವ್ಯಾಲಿಡೇಶನ್ ಅನ್ನು ಬಳಸುತ್ತೇನೆ. ಇದು ಸರಳವಾಗಿ ಕಾಣುತ್ತದೆ. ಜನರು ಅದನ್ನು ಹೇಗೆ ಪರಿಹರಿಸುತ್ತಾರೆ ಎಂಬುದು ಅವರು ಹೇಗೆ ಯೋಚಿಸುತ್ತಾರೆ ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ.
ನಾನು ಈ ಸಮಸ್ಯೆಯನ್ನು Claude, ChatGPT ಮತ್ತು Gemini ನಲ್ಲಿ ಪರೀಕ್ಷಿಸಿದೆ. ಅವೆಲ್ಲವೂ ಒಂದೇ ಪರಿಹಾರವನ್ನು ಕಂಡುಕೊಂಡವು.
ಹೆಚ್ಚಿನ ಜನರು ಇದನ್ನು ಪರಿಹರಿಸಲು ಮೂರು ವಿಧಾನಗಳಲ್ಲಿ ಒಂದನ್ನು ಬಳಸುತ್ತಾರೆ:
- ವಿವಿಧ ಪ್ರಕಾರಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಫ್ಲಾಗ್ಗಳೊಂದಿಗೆ (flags) ಒಂದೇ ಫಂಕ್ಷನ್ ಅನ್ನು ಬಳಸುವುದು.
- ಡೇಟಾ ಶೇಪ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಲು ರಿಸರ್ಶನ್ (recursion) ಬಳಸುವುದು.
- ವ್ಯಾಲಿಡೇಶನ್ ನಡೆಸಲು ಸ್ಕೀಮಾವನ್ನು (schema) ಬಳಸುವುದು.
AI ಮಾಡೆಲ್ಗಳೆಲ್ಲವೂ ಸ್ಕೀಮಾ ವಿಧಾನವನ್ನೇ ಆರಿಸಿಕೊಂಡವು. ಇದು ತಾಂತ್ರಿಕವಾಗಿ ಸರಿಯಾಗಿದೆ. ಇದು ಮಿಸ್ಸಿಂಗ್ ಕೀಗಳನ್ನು (missing keys) ನಿರ್ವಹಿಸುತ್ತದೆ. ಇದು ಉತ್ತಮವಾಗಿ ಸ್ಕೇಲ್ ಆಗುತ್ತದೆ. ನಿಮ್ಮ ಡೇಟಾ ರನ್ಟೈಮ್ನಲ್ಲಿ ಬದಲಾಗುತ್ತಿದ್ದರೆ, ಸ್ಕೀಮಾವೇ ಸರಿಯಾದ ಆಯ್ಕೆ.
ಆದರೆ ಹೆಚ್ಚಿನ ಸಾಫ್ಟ್ವೇರ್ಗಳಿಗೆ ಇದಕ್ಕಿಂತ ಉತ್ತಮವಾದ ಮಾರ್ಗವಿದೆ.
ಎಲ್ಲದಕ್ಕೂ ಒಂದೇ ಮಾದರಿಯನ್ನು ಹುಡುಕಲು ಪ್ರಯತ್ನಿಸುವ ಬದಲು, ಕಂ ಪೊಸಿಷನ್ (composition) ಬಳಸಿ. ಪ್ರತಿಯೊಂದು ಬಿಸಿನೆಸ್ ಕಾನ್ಸೆಪ್ಟ್ಗೆ ಅದರದೇ ಆದ ಫಂಕ್ಷನ್ ನೀಡಿ.
- ಒಂದು ಮೂಲ ವಿಳಾಸ ವ್ಯಾಲಿಡೇಟರ್ ಅನ್ನು ರಚಿಸಿ.
- ಮೂಲ ವ್ಯಾಲಿಡೇಟರ್ ಅನ್ನು ಬಳಸುವ ಶಿಪ್ಪಿಂಗ್ ವ್ಯಾಲಿಡೇಟರ್ ಅನ್ನು ರಚಿಸಿ.
- ಮೂಲ ವ್ಯಾಲಿಡೇಟರ್ ಅನ್ನು ಬಳಸುವ ಬಿಲ್ಲಿಂಗ್ ವ್ಯಾಲಿಡೇಟರ್ ಅನ್ನು ರಚಿಸಿ.
ಈ ವಿಧಾನವು ರಿಸರ್ಶನ್ ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ. ಇದು ಸ್ಕೀಮಾವನ್ನು ಬಳಸುವುದಿಲ್ಲ. ಇದು ಸ್ಪಷ್ಟವಾದ, ಪ್ರತ್ಯೇಕ ಫಂಕ್ಷನ್ಗಳನ್ನು ಬಳಸುತ್ತದೆ.
ಇದರ ಪ್ರಯೋಜನ ಸರಳವಾಗಿದೆ. ಕೋಡ್ ಬಿಸಿನೆಸ್ ಅನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ. ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸವು ಒಂದು ವಿಶಿಷ್ಟ ಪರಿಕಲ್ಪನೆಯಾಗಿದೆ. ಅದಕ್ಕೆ ತನ್ನದೇ ಆದ ಲಾಜಿಕ್ ಇರಬೇಕು. ನೀವು ಹೊಸ ಪ್ರಕಾರವನ್ನು ಸೇರಿಸಿದಾಗ, ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಫಂಕ್ಷನ್ ಅನ್ನು ಬದಲಾಯಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ನೀವು ಹೊಸದನ್ನು ಸೇರಿಸುತ್ತೀರಿ. ಇದು ನಿಮ್ಮ ಬದಲಾವಣೆಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ (local) ಇರಿಸುತ್ತದೆ.
AI ಅಪರೂಪಕ್ಕೆ ಈ ಹಾದಿಯನ್ನು ಆರಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಅದು ಲಾಜಿಕ್ ಅನ್ನು ಕೇಂದ್ರೀಕರಿಸುವ ಮಾದರಿಯನ್ನು ಆರಿಸಿಕೊಳ್ಳುತ್ತದೆ. ನಮ್ಮ ಶಿಕ್ಷಣವು ನಮಗೆ ಡೂಪ್ಲಿಕೇಶನ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲು ಮತ್ತು ಜನರಲೈಸ್ ಮಾಡಲು ಕಲಿಸುತ್ತದೆ. AI ಆ ಸಂಸ್ಕೃತಿಯಿಂದ ಕಲಿಯುತ್ತದೆ.
AI ವಿಫಲವಾಗುತ್ತಿಲ್ಲ. ನಾವು ಅದಕ್ಕೆ ಕಲಿಸಿದ ಅದೇ ಇಂಜಿನಿಯರಿಂಗ್ ಪ್ರವೃತ್ತಿಗಳನ್ನು ಅದು ಕೇವಲ ಅನುಸರಿಸುತ್ತಿದೆ.
ಅತ್ಯುತ್ತಮ ಪರಿಹಾರವು ಕನಿಷ್ಠ ಸಾಲುಗಳ ಕೋಡ್ ಹೊಂದಿರುವದ್ದಲ್ಲ. ಅದು ನಿಮ್ಮ ಬಿಸಿನೆಸ್ ಡೊಮೇನ್ ಅನ್ನು ಅತ್ಯಂತ ಪ್ರಾಮಾಣಿಕವಾಗಿ ಪ್ರತಿಬಿಂಬಿಸುವಂತಿರಬೇಕು.
ಮುಂದಿನ ಬಾರಿ ನೀವು ಪರಿಹಾರವನ್ನು ನಿರ್ಮಿಸುವಾಗ, ನಿಮ್ಮನ್ನು ನೀವೇ ಒಂದು ಪ್ರಶ್ನೆ ಕೇಳಿಕೊಳ್ಳಿ:
ಈ ವೈವಿಧ್ಯತೆಯು (variability) ನನ್ನ ಕೋಡ್ನಲ್ಲಿದೆಯೇ ಅಥವಾ ನನ್ನ ಡೇಟಾದಲ್ಲಿದೆಯೇ?
ಈ ಉತ್ತರವು ನಿಮ್ಮ ಸಂಪೂರ್ಣ ವಿನ್ಯಾಸವನ್ನೇ ಬದಲಾಯಿಸುತ್ತದೆ.