ತಪ್ಪು ಅಬ್ಸ್ಟ್ರಾಕ್ಷನ್ಗಳಿಗಿಂತ ಕೋಡ್ ಡೂಪ್ಲಿಕೇಶನ್ ಅಗ್ಗವಾಗಿದೆ
ಡೆವಲಪರ್ಗಳು DRY ತತ್ವವನ್ನು ಇಷ್ಟಪಡುತ್ತಾರೆ.
ನೀವು ಒಂದೇ ವಿಷಯವನ್ನು ಪದೇ ಪದೇ ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸಲು ಬಯಸುತ್ತೀರಿ. ನೀವು ಸುಂದರವಾದ ಮತ್ತು ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಕೋಡ್ ಅನ್ನು ಬಯಸುತ್ತೀರಿ.
ಆದರೆ ಈ ಗುರಿಯು ಹೆಚ್ಚಾಗಿ ಒಂದು ಬಲೆಯಲ್ಲಿ ಬೀಳುವಂತೆ ಮಾಡುತ್ತದೆ: ಅಕಾಲಿಕ ಅಬ್ಸ್ಟ್ರಾಕ್ಷನ್ (premature abstraction).
ಕೋಡ್ ಅನ್ನು ಪುನರಾವರ್ತಿಸುವುದು ತಪ್ಪೆಂದು ಅನಿಸುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಒಂದು ಕೆಟ್ಟ ಅಬ್ಸ್ಟ್ರಾಕ್ಷನ್ಗಿಂತ ಡೂಪ್ಲಿಕೇಶನ್ ಮಾಡುವುದು ಹೆಚ್ಚಾಗಿ ಅಗ್ಗವಾಗಿರುತ್ತದೆ.
ನಾವು ಪರಿಪೂರ್ಣ ಮಾಡ್ಯುಲರ್ ಸಿಸ್ಟಮ್ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತೇವೆ. ಸಂಕೀರ್ಣತೆಯನ್ನು ನಿರ್ವಹಿಸಲು ನಾವು ಪ್ಯಾಟರ್ನ್ಗಳನ್ನು ಹುಡುಕುತ್ತೇವೆ ಮತ್ತು ಲಾಜಿಕ್ ಅನ್ನು ಹೊರತೆಗೆಯುತ್ತೇವೆ.
ಉತ್ತಮವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಅಬ್ಸ್ಟ್ರಾಕ್ಷನ್ಗಳು ಸಾಫ್ಟ್ವೇರ್ ಸ್ಕೇಲ್ ಮಾಡಲು ಸಹಾಯ ಮಾಡುತ್ತವೆ.
ಆದರೆ ಅನೇಕ ಅಬ್ಸ್ಟ್ರಾಕ್ಷನ್ಗಳನ್ನು ತುಂಬಾ ಬೇಗನೆ ನಿರ್ಮಿಸಲಾಗುತ್ತದೆ. ನೀವು ಸಮಸ್ಯೆಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳದಿದ್ದರೆ, ನಿಮ್ಮ ಅಬ್ಸ್ಟ್ರಾಕ್ಷನ್ ಒಂದು ಹೊರೆಯಾಗುತ್ತದೆ.
ತಪ್ಪು ಅಬ್ಸ್ಟ್ರಾಕ್ಷನ್ ಹಲವಾರು ಸಮಸ್ಯೆಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ:
- ಓವರ್-ಇಂಜಿನಿಯರಿಂಗ್ (Over-engineering): ಸರಳ ಸಮಸ್ಯೆಗಳಿಗೆ ನೀವು ಸಂಕೀರ್ಣ ಪರಿಹಾರಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತೀರಿ.
- ರಿಜಿಡಿಟಿ (Rigidity): ನಿಮ್ಮ ಕೋಡ್ ಬದಲಾಯಿಸುವುದು ಕಷ್ಟವಾಗುತ್ತದೆ ಏಕೆಂದರೆ ಅದು ಎಂದಿಗೂ ಸಂಭವಿಸದ ಭವಿಷ್ಯವನ್ನು ಊಹಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ.
- ಅಸ್ಪಷ್ಟ ಉದ್ದೇಶ (Obscured Intent): ಬಿಸಿನೆಸ್ ಲಾಜಿಕ್ ಜೆನೆರಿಕ್ ಇಂಟರ್ಫೇಸ್ಗಳ ಪದರಗಳ ಅಡಿಯಲ್ಲಿ ಅಡಗಿಕೊಳ್ಳುತ್ತದೆ. ಇದು ಡಿಬಗ್ ಮಾಡುವುದನ್ನು ಕಷ್ಟವಾಗಿಸುತ್ತದೆ.
- ಟೈಟ್ ಕಪ್ಲಿಂಗ್ (Tight Coupling): ನಿಮ್ಮ ಸಿಸ್ಟಮ್ನ ಭಾಗಗಳು ಅಬ್ಸ್ಟ್ರಾಕ್ಷನ್ಗೆ ಅಂಟಿಕೊಳ್ಳುತ್ತವೆ.
ಇದರ ವೆಚ್ಚ ಹೆಚ್ಚಾಗುತ್ತದೆ. ಬಳಕೆದಾರರ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುವ ಬದಲು ನೀವು ನಿಮ್ಮದೇ ಆರ್ಕಿಟೆಕ್ಚರ್ ಜೊತೆ ಹೋರಾಡಲು ಸಮಯ ವ್ಯಯಿಸುತ್ತೀರಿ. ಇದು ನಿಮ್ಮ ತಂಡದ ವೇಗವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ರಿಫ್ಯಾಕ್ಟರಿಂಗ್ ಅನ್ನು ಕಷ್ಟವಾಗಿಸುತ್ತದೆ.
ನಾನು ಎಲ್ಲವನ್ನೂ ಕಾಪಿ ಮತ್ತು ಪೇಸ್ಟ್ ಮಾಡಲು ಹೇಳುತ್ತಿಲ್ಲ. ನಾನು ಒಂದು ಪ್ರಾಯೋಗಿಕ ವಿಧಾನವನ್ನು (pragmatic approach) ಸೂಚಿಸುತ್ತಿದ್ದೇನೆ.
ನಿಯಂತ್ರಿತ ಡೂಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಒಂದು ಸಾಧನವಾಗಿ ಬಳಸಿ. ಅವಶ್ಯಕತೆಗಳು ವೇಗವಾಗಿ ಬದಲಾಗುವ ಅಥವಾ ಅನಿಶ್ಚಿತತೆ ಎದುರಾಗುವ ಪ್ರದೇಶಗಳಲ್ಲಿ ಇದನ್ನು ಬಳಸಿ.
ಅಬ್ಸ್ಟ್ರಾಕ್ಷನ್ ನಿರ್ಮಿಸುವ ಮೊದಲು ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ನೋಡುವವರೆಗೆ ಕಾಯಿರಿ.