ಪ್ರತಿ ಲೈಬ್ರರಿಗೂ ಒಂದು ನೈಜ ಪ್ರಾಜೆಕ್ಟ್ ಏಕೆ ಬೇಕು

ಅನೇಕ ಲೈಬ್ರರಿ ತಯಾರಕರು ಒಂದು ತಪ್ಪು ಮಾಡುತ್ತಾರೆ. ಉದಾಹರಣೆಗಳು ಸಾಕಾಗುತ್ತವೆ ಎಂದು ಅವರು ಭಾವಿಸುತ್ತಾರೆ.

ಉದಾಹರಣೆಗಳು ಸಾಕಾಗುವುದಿಲ್ಲ.

ಉದಾಹರಣೆಗಳು ಒಂದು ಫೀಚರ್ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸುತ್ತವೆ. ನೈಜ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳು ಒಂದು ಲೈಬ್ರರಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸುತ್ತವೆ. ಇವೆರಡೂ ಬೇರೆ ಬೇರೆ ವಿಷಯಗಳು.

ನಾನು ಅನೇಕ ಡೆಮೊ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತೇನೆ. ನಾನು ಮಾದರಿ ವೆಬ್‌ಸೈಟ್‌ಗಳು, APIs ಮತ್ತು ಕಾಂಪೊನೆಂಟ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತೇನೆ. ಡೆಮೊದಲ್ಲಿ ಎಲ್ಲವೂ ಪರಿಪೂರ್ಣವಾಗಿ ಕಾಣುತ್ತದೆ. ಡೆಮೊಗಳು ಸುಗಮ ಹಾದಿಯನ್ನು (happy path) ತೋರಿಸುತ್ತವೆ. ಅವು ಆದರ್ಶ ಕಾರ್ಯಪ್ರವಾಹವನ್ನು (ideal workflow) ತೋರಿಸುತ್ತವೆ.

ಡೆಮೊಗಳು ನಿಯಂತ್ರಿತ ಪರಿಸರಗಳಾಗಿವೆ. ಅಲ್ಲಿನ ಆರ್ಕಿಟೆಕ್ಚರ್ ಸರಳವಾಗಿರುತ್ತದೆ. ಅಗತ್ಯತೆಗಳು (requirements) ಮುನ್ಸೂಚನೆ ನೀಡಬಹುದಾದಂತಿರುತ್ತವೆ.

ನೈಜ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳು ವಿಭಿನ್ನವಾಗಿರುತ್ತವೆ.

ನೀವು ನೈಜ ಪ್ರಾಜೆಕ್ಟ್‌ಗಾಗಿ ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಿದಾಗ, ನಿಯಮಗಳು ಬದಲಾಗುತ್ತವೆ. ನೀವು ಕೇವಲ ಪ್ರದರ್ಶನ ಮಾಡುತ್ತಿಲ್ಲ. ನೀವು ಒಂದು ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುತ್ತಿದ್ದೀರಿ.

ನೈಜ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳು ಇವುಗಳನ್ನು ತರುತ್ತವೆ:

  • ಕಟ್ಟುನಿಟ್ಟಿನ ಗಡುವುಗಳು (Tight deadlines)
  • ಬದಲಾಗುತ್ತಿರುವ ಅಗತ್ಯತೆಗಳು
  • ಸಂಕೀರ್ಣ ಲೇಔಟ್‌ಗಳು
  • ಎಡ್ಜ್ ಕೇಸ್‌ಗಳು (Edge cases)
  • ಮಾನವ ತಪ್ಪುಗಳು

ಇಲ್ಲಿಯೇ ಲೈಬ್ರರಿಯ ನಿಜವಾದ ಸಾಮರ್ಥ್ಯವು ಹೊರಹೊಮ್ಮುತ್ತದೆ. ಅದರ ನಿಜವಾದ ದೌರ್ಬಲ್ಯವೂ ಇಲ್ಲಿ ತಿಳಿಯುತ್ತದೆ. ಲೈಬ್ರರಿಯು ಡೆಮೊದಲ್ಲಿ ಅಲ್ಲ, ಒತ್ತಡದ ಸಂದರ್ಭದಲ್ಲಿ ತನ್ನ ನಿಜವಾದ ಸ್ವರೂಪವನ್ನು ತೋರಿಸುತ್ತದೆ.

ನೈಜ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳು ನಿಮ್ಮ ಕಲ್ಪನೆಗಳನ್ನು (assumptions) ಬಯಲಿಗೆಳೆಯುತ್ತವೆ. ಒಂದು ಕಲ್ಪನೆಯು ಕಾಗದದ ಮೇಲೆ ಸುಂದರವಾಗಿ ಕಾಣಿಸಬಹುದು. ಅಭಿವೃದ್ಧಿಯ ಸಮಯದಲ್ಲಿ ಅದು ಅರ್ಥಪೂರ್ಣವಾಗಿರಬಹುದು. ಆದರೆ ವಾಸ್ತವ ಎದುರಾದಾಗ ಪರಿಸ್ಥಿತಿ ಬದಲಾಗುತ್ತದೆ.

ಕಾರ್ಯಪ್ರವಾಹವು ಅಸಹಜವಾಗಿ ಅನಿಸಬಹುದು. ಕಾನ್ಫಿಗರೇಶನ್ ಪುನರಾವರ್ತಿತವಾಗಿ ಅನಿಸಬಹುದು. API ನೈಸರ್ಗಿಕವಾಗಿ ಕಾಣದೆ ಇರಬಹುದು. ನಿಮ್ಮ ವಿನ್ಯಾಸ ತಪ್ಪಾಗಿರಲಿಕ್ಕಿಲ್ಲ, ಆದರೆ ಅದು ಇನ್ನೂ ವಾಸ್ತವಕ್ಕೆ ಹೊಂದಿಲ್ಲ ಎಂದರ್ಥ.

ಒಬ್ಬ ಲೈಬ್ರರಿ ತಯಾರಕನು ಮಾಡಬಹುದಾದ ಅತ್ಯುತ್ತಮ ಕೆಲಸವೆಂದರೆ ತನ್ನದೇ ಸಾಫ್ಟ್‌ವೇರ್‌ನ ಬಳಕೆದಾರನಾಗುವುದು. ಕೇವಲ ಡೆಮೋಗಳನ್ನು ಮಾತ್ರ ನಿರ್ಮಿಸಬೇಡಿ. ನಿಮ್ಮ ಪರಿಕರಗಳನ್ನು ಬಳಸಿ ವೆಬ್‌ಸೈಟ್‌ಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ವ್ಯವಹಾರಗಳನ್ನು ನಿರ್ಮಿಸಿ. ಅವುಗಳ ಮೇಲೆ ಅವಲಂಬಿತರಾಗಿ.

ನೀವು ನಿಮ್ಮ ಸಾಫ್ಟ್‌ವೇರ್ ಮೇಲೆ ಅವಲಂಬಿತರಾದಾಗ, ನಿಮ್ಮ ದೃಷ್ಟಿಕೋನ ಬದಲಾಗುತ್ತದೆ. ನೀವು ಒಬ್ಬ ತಯಾರಕನಂತೆ ಯೋಚಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ, ಒಬ್ಬ ಬಳಕೆದಾರನಂತೆ ಯೋಚಿಸಲು ಪ್ರಾರಂಭಿಸುತ್ತೀರಿ.

ಬಳಕೆದಾರರು ಇವುಗಳ ಬಗ್ಗೆ ಕಾಳಜಿ ವಹಿಸುತ್ತಾರೆ:

  • ಅಡೆತಡೆಗಳು (Friction)
  • ಸ್ಪಷ್ಟತೆ
  • ಕೆಲಸವನ್ನು ಪೂರ್ಣಗೊಳಿಸುವುದು

ನೈಜ ವಸ್ತುಗಳನ್ನು ನಿರ್ಮಿಸುವುದು ನಿಮ್ಮ ಪ್ರಶ್ನೆಗಳನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. "ನಾವು ಯಾವ ಫೀಚರ್‌ಗಳನ್ನು ಸೇರಿಸಬೇಕು?" ಎಂದು ಕೇಳುವುದನ್ನು ನೀವು ನಿಲ್ಲಿಸುತ್ತೀರಿ. ಬದಲಾಗಿ, ನೀವು ಹೀಗೆ ಕೇಳುತ್ತೀರಿ:

  • ಈ ಕಾರ್ಯಪ್ರವಾಹವು ಏಕೆ ಅಸಹಜವಾಗಿ ಅನಿಸುತ್ತಿದೆ?
  • ನಾನು ಏಕೆ ಒಂದೇ ಕೆಲಸವನ್ನು ಪದೇ ಪದೇ ಮಾಡುತ್ತಿದ್ದೇನೆ?
  • ಇದಕ್ಕೆ ಏಕೆ ಇಷ್ಟೊಂದು ಸಮಯ ತಗುಲುತ್ತಿದೆ?

ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುವುದು ಯಾವುದೇ ಬ್ರೈನ್ ಸ್ಟಾರ್ಮಿಂಗ್ ಸೆಷನ್‌ಗಿಂತ ಉತ್ತಮ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ.

ಪ್ರತಿ ಲೈಬ್ರರಿಗೂ ಒಂದು ನೈಜ ಪ್ರಾಜೆಕ್ಟ್ ಬೇಕು. ಈ ಪ್ರಾಜೆಕ್ಟ್ ಮಾರ್ಕೆಟಿಂಗ್‌ಗಾಗಿ ಅಲ್ಲ. ಇದು ಒಂದು ಪರೀಕ್ಷಾ ವೇದಿಕೆ (proving ground). ಇದು ಲೈಬ್ರರಿಯು ನೈಜ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುವಂತೆ ಮಾಡುತ್ತದೆ. ನಿಮ್ಮ ಬಳಕೆದಾರರಿಗಿಂತ ಮೊದಲೇ ಇದು ದೌರ್ಬಲ್ಯಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತದೆ.

ನಿಮ್ಮ ಲೈಬ್ರರಿಯು ಪರಿಪೂರ್ಣವಾಗಿದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸುವುದು ಗುರಿಯಲ್ಲ. ನಿಮ್ಮ ಲೈಬ್ರರಿಯು ಸುಧಾರಿಸಿಕೊಳ್ಳಲು ಒಂದು ಮಾರ್ಗವನ್ನು ಸೃಷ್ಟಿಸುವುದು ಗುರಿಯಾಗಿದೆ.

ಮೂಲ: https://dev.to/stinklewinks/why-every-library-needs-a-real-project-1ae7