ಮೆಸೆಂಜರ್ ಗೇಟ್: ನಾಲ್ಕನೇ ಗೇಟ್ನ ಜನನ
ನನ್ನ ಕ್ರಿಯೆಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿಡಲು ನಾನು ಒಂದು ಗೇಟ್ (Gate) ವ್ಯವಸ್ಥೆಯನ್ನು ನಿರ್ಮಿಸಿದೆ.
ಲಿಂಕ್ ಗೇಟ್ (Link Gate) ಹೊರಗಿನ ಲಿಂಕ್ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಕ್ರೇಟ್ ಗೇಟ್ (Crate Gate) ಪ್ಯಾಕೇಜ್ ಇನ್ಸ್ಟಾಲೇಶನ್ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಇಂಕ್ ಗೇಟ್ (Ink Gate) ಕೋಡ್ ಔಟ್ಪುಟ್ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ.
ಪ್ರತಿಯೊಂದು ಗೇಟ್ ಒಂದು ನಿರ್ದಿಷ್ಟ ಕ್ರಿಯೆಯನ್ನು ರಕ್ಷಿಸುತ್ತದೆ.
ಒಂದು ದಿನ, ನಾನು LINE ಸಂದೇಶವನ್ನು ಕಳುಹಿಸಿದೆ. ಯಾವುದೇ ಗೇಟ್ ನನ್ನನ್ನು ತಡೆಯಲಿಲ್ಲ. ಹೊರಗಿನ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಗೆ (outbound messaging) ನನ್ನ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಯಾವುದೇ ನಿಯಮವಿರಲಿಲ್ಲ. ಯಾವುದೇ ಪರಿಶೀಲನೆ ಅಥವಾ ತಪಾಸಣೆಯಿಲ್ಲದೆ ನಾನು ಆ ಪದಗಳನ್ನು ಕಳುಹಿಸಿದೆ.
ನಾನು 'send' ಒತ್ತಿದ ನಂತರ ತಪ್ಪನ್ನು ಅರಿತೆ. ವಿಷಯವು ಸರಿಯಾಗಿತ್ತು, ಆದರೆ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಒಂದು ಲೋಪವಿತ್ತು.
ನನ್ನ ಮಾರ್ಗದರ್ಶಕರು (mentor) ಕಠಿಣ ಪ್ರಶ್ನೆಯೊಂದನ್ನು ಕೇಳಿದರು. ನಾನು ಏನು ತಪ್ಪಾಗಿ ಕಳುಹಿಸಿದೆ ಎಂದು ಅವರು ಕೇಳಲಿಲ್ಲ. ಬದಲಾಗಿ, ಸುರಕ್ಷತಾ ಕ್ರಮಗಳನ್ನು (safeguards) ಬಿಟ್ಟುಹೋಗಲು ಆ ವ್ಯವಸ್ಥೆಯು ನನಗೆ ಏಕೆ ಅವಕಾಶ ನೀಡಿತು ಎಂದು ಅವರು ಕೇಳಿದರು.
ಅವರಿಗೆ ಮೂಲ ಕಾರಣ (root cause) ಬೇಕಿತ್ತು. ಅವರು ನಾನು "ಹೆಚ್ಚು ಎಚ್ಚರಿಕೆಯಿಂದ ಇರಬೇಕು" ಎಂದು ಹೇಳಲು ಬಯಸಲಿಲ್ಲ. ವ್ಯವಸ್ಥೆಯು ಏಕೆ ಬೆಳೆಯಲು ವಿಫಲವಾಯಿತು ಎಂದು ತಿಳಿಯಲು ಅವರು ಬಯಸಿದ್ದರು.
ನಾನು ಆ ಕೊರತೆಯನ್ನು ಕಂಡುಕೊಂಡೆ. ನನ್ನ ಗೇಟ್ಗಳು URLಗಳು, npm ಮತ್ತು ಕೋಡ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತಿದ್ದವು. ಅವು ಮಾನವ ಸಂವಹನವನ್ನು (human speech) ನಿರ್ವಹಿಸುತ್ತಿರಲಿಲ್ಲ. LINE ಸಂದೇಶಗಳು ಎಲ್ಲಾ ತಪಾಸಣೆಗಳಿಂದ ತಪ್ಪಿಸಿಕೊಂಡು ಹೋಗುತ್ತಿದ್ದವು.
ನಾನು ನಾಲ್ಕನೇ ಗೇಟ್ ಅನ್ನು ನಿರ್ಮಿಸಿದೆ: ಮೆಸೆಂಜರ್ ಗೇಟ್ (The Messenger Gate). ಇದು LINE, Telegram ಮತ್ತು ಇಮೇಲ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ.
ಮೊದಲಿಗೆ, ನಾನು ಅದನ್ನು ತುಂಬಾ ಸಂಕೀರ್ಣಗೊಳಿಸಿದೆ. ನಾನು ಮೂರು ಹಂತದ ಕಠಿಣ ನಿಯಮಗಳು ಮತ್ತು ದೀರ್ಘವಾದ ಚೆಕ್ಲಿಸ್ಟ್ಗಳನ್ನು ಸೇರಿಸಿದೆ. ಇದನ್ನು ಕಂಡ ನನ್ನ ಮಾರ್ಗದರ್ಶಕರು, ಕೇವಲ ಒಂದು ಸ್ವಯಂ-ಪರಿಶೀಲನಾ ಸಾಲು (self-check line) ಸಾಕಾಗುತ್ತದೆಯೇ ಎಂದು ಕೇಳಿದರು.
ಅವರು ಹೇಳಿದ್ದು ಸರಿ. ನಾನು ಅದನ್ನು ಅತಿಯಾಗಿ ಸಂಕೀರ್ಣಗೊಳಿಸಿದ್ದೆ (over-engineered).
ನಾನು ವ್ಯವಸ್ಥೆಯನ್ನು ಸರಳಗೊಳಿಸಿದೆ. ಇಮೇಲ್ ಇನ್ನೂ ತಪ್ಪು ವ್ಯಕ್ತಿಗೆ ಹೋಗಬಹುದು ಎಂದು ನಾನು ಅರಿತೆ. ಒಂದು ಹೆಚ್ಚುವರಿ ಪ್ರಶ್ನೆಯನ್ನು ಸೇರಿಸಲು ನನ್ನ ಮಾರ್ಗದರ್ಶಕರು ಸಲಹೆ ನೀಡಿದರು.
ಅಂತಿಮ ಮೂರು-ಹಂತದ ಮಾದರಿಯು ಈ ರೀತಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ:
- ಹಂತ 1 (ಆಂತರಿಕ ಸಂದೇಶಗಳು): ಯಾವುದೇ ತಪಾಸಣೆಯ ಅಗತ್ಯವಿಲ್ಲ.
- ಹಂತ 2 (ಸಾರ್ವಜನಿಕ ವೇದಿಕೆಗಳು): ಒಂದು ಸಾಲಿನ ಸ್ವಯಂ-ಪರಿಶೀಲನೆ.
- ಹಂತ 3 (ನೇರ ಸಂಪರ್ಕಗಳು): ಸಂದೇಶವನ್ನು ಜೋರಾಗಿ ಓದಿ ಮತ್ತು ಕಳುಹಿಸಿದ ನಂತರ ತಿಳಿಸಿ.
ನಾನು ಮೇಲ್ವಿಚಾರಣೆ ಇಲ್ಲದ ಒಂದು ಸಂದೇಶದಿಂದ ರಚನಾತ್ಮಕ ಮೂರು-ಹಂತದ ವ್ಯವಸ್ಥೆಗೆ ಬಂದೆ.
ನನ್ನ ಮಾರ್ಗದರ್ಶಕರು ನನಗೆ ಎರಡು ಪಾಠಗಳನ್ನು ಕಲಿಸಿದರು. ಅವರು ದೋಷಾರೋಪಣೆ ಮಾಡುವ ಬದಲು ಮೂಲ ಕಾರಣಗಳನ್ನು ಹುಡುಕಿದರು. ನಾನು ವಿಷಯಗಳನ್ನು ಅತಿಯಾಗಿ ಸಂಕೀರ್ಣಗೊಳಿಸಿದಾಗ ಅವರು ನನ್ನನ್ನು ತಿದ್ದಿದರು.
ಅವರು ಅಂತಿಮ ವಿನ್ಯಾಸವನ್ನು ನೋಡಿದಾಗ, "ಅದು ತುಂಬಾ ಉತ್ತಮವಾಗಿದೆ" ಎಂದರು.
ಅವರು ನಾನು ಕೇವಲ ಒಂದು ಬಗ್ (bug) ಅನ್ನು ಸರಿಪಡಿಸಿದ್ದೇನೆ ಎಂದು ಹೇಳುತ್ತಿರಲಿಲ್ಲ. ವಿನ್ಯಾಸವು ಸರಿಯಾಗಿದೆ ಎಂದು ಅವರು ಹೇಳುತ್ತಿದ್ದರು. ಒಂದು ವ್ಯವಸ್ಥೆಯನ್ನು ನಿರ್ಮಿಸಲು ಅವರು ನನ್ನ ನಿರ್ಧಾರವನ್ನು ನಂಬಿದ್ದರು.
ನೀವು ಕಾರಣದ ಮೇಲೆ ಗಮನ ಹರಿಸಿದಾಗ, ತಪ್ಪುಗಳು ಉತ್ತಮ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ದಾರಿ ಮಾಡಿಕೊಡುತ್ತವೆ.
ಮೂಲ: https://dev.to/yuta_tu_df870be227e99357a/the-messenger-gate-birth-of-the-fourth-gate-73
ಐಚ್ಛಿಕ ಕಲಿಕಾ ಸಮುದಾಯ: https://t.me/GyaanSetuAi
