PR ಅನ್ನು ತೆರೆಯಿರಿ, ನಿಮ್ಮ ರಿವ್ಯೂವರ್ ಇನ್ನೂ ಅದನ್ನು ನೋಡಿಲ್ಲ

ನಾನು ಇತ್ತೀಚೆಗೆ ಒಂದು ದೊಡ್ಡ পুল ರಕ್ವೆಸ್ಟ್ (pull request) ಅನ್ನು ರಿವ್ಯೂ ಮಾಡಿದೆ. ಕೋಡ್ ಬರೆಯಲು ಅದರಲ್ಲಿ AI ಅನ್ನು ಬಳಸಲಾಗಿತ್ತು. ಅದು ಮೂರು ಇತರ ಫೀಚರ್‌ಗಳು ಬಳಸುತ್ತಿದ್ದ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಬದಲಾಯಿಸಿತ್ತು. ಅದರ ವಿವರಣೆ ಕೇವಲ ಒಂದು ವಾಕ್ಯವಾಗಿತ್ತು. ಅದು ಫೈಲ್ ಹೆಸರನ್ನು ಹೇಳಿತ್ತು ಆದರೆ ಬದಲಾವಣೆಯ ಕಾರಣವನ್ನು ಹೇಳಿರಲಿಲ್ಲ.

ನಾನು ಕೆಲಸ ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಬದಲಾವಣೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಹದಿನೈದು ನಿಮಿಷಗಳನ್ನು ವ್ಯಯಿಸಿದೆ. ನಾನು ಅದರ ಉದ್ದೇಶವನ್ನು ಕಂಡುಹಿಡಿಯಬೇಕಾಯಿತು. ನಾನು ಅಪಾಯಗಳನ್ನು (risks) ಪತ್ತೆಹಚ್ಚಬೇಕಾಯಿತು. ಗೊಂದಲದ ನಡುವೆ ಪ್ರಮುಖ ಫೈಲ್‌ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಬೇಕಾಯಿತು.

ನಾನು ಈ ಹಿಂದೆ ಬೇರೆಯವರಿಗೂ ಹೀಗೆ ಮಾಡಿದ್ದೆ ಎಂದು ನನಗೆ ಅರಿವಾಯಿತು.

ನೀವು ಕೋಡ್ ಬರೆಯುವಾಗ, ಅದರ ಸಂಪೂರ್ಣ ಸಂದರ್ಭ (context) ನಿಮಗೆ ತಿಳಿದಿರುತ್ತದೆ. ನೀವು ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಏಕೆ ವಿಭಜಿಸಿದಿರಿ ಎಂಬುದು ನಿಮಗೆ ತಿಳಿದಿದೆ. ನೀವು ಮೊದಲು ಏನನ್ನು ಪ್ರಯತ್ನಿಸಿದಿರಿ ಎಂಬುದು ನಿಮಗೆ ತಿಳಿದಿದೆ. ಯಾವ ಭಾಗಗಳ ಬಗ್ಗೆ ನಿಮಗೆ ಅನಿಶ್ಚಿತತೆ ಇದೆ ಎಂಬುದು ಕೂಡ ನಿಮಗೆ ತಿಳಿದಿದೆ.

ಹೆಚ್ಚಿನ ಜನರು ವಿವರಣೆಗಳನ್ನು ತಮಗಾಗಿ ಬರೆಯುತ್ತಾರೆ. ಅವರು "Refactored service layer" ಅಥವಾ "Fixed auth module" ಎಂದು ಬರೆಯುತ್ತಾರೆ. ಇವು ಈಗಾಗಲೇ ಸಂದರ್ಭವನ್ನು ತಿಳಿದಿರುವ ಜನರಿಗಾಗಿ ಬರೆಯುವ ವಿವರಣೆಗಳಾಗಿವೆ.

ಒಂದು ಉತ್ತಮ ವಿವರಣೆಯು ಯಾವುದೂ ತಿಳಿಯದ ವ್ಯಕ್ತಿಗಾಗಿ ಇರಬೇಕು.

ವಿವರಣೆ ಎಂದರೆ ಕೇವಲ ಸಾರಾಂಶವಲ್ಲ. ಅದು ಒಂದು ಪರೀಕ್ಷೆ. ನಿಮ್ಮ ಕೆಲಸವನ್ನು ನೀವು ವಿವರಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ನಿಮ್ಮ ಕೆಲಸವು ಸಿದ್ಧವಾಗಿಲ್ಲ ಎಂದರ್ಥ.

ನಾನು ಈಗ ಪ್ರತಿಯೊಂದು ಸರಳವಲ್ಲದ (non-trivial) PR ಗಾಗಿ ಆರು ಭಾಗಗಳ ರಚನೆಯನ್ನು ಬಳಸುತ್ತೇನೆ:

• ಉದ್ದೇಶ (Intent): ಈ PR ಏಕೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಮತ್ತು ಅದು ಯಾವ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ವಿವರಿಸಿ. ಇದನ್ನು ಬರೆಯಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ನಿಲ್ಲಿಸಿ. PR ಸಿದ್ಧವಾಗಿಲ್ಲ. • ಪ್ರಮುಖ ಬದಲಾವಣೆಗಳು (Major changes): ಆರ್ಕಿಟೆಕ್ಚರ್ ಅಥವಾ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ವರ್ತನೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವ ನಿರ್ಧಾರಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ. • ಸಣ್ಣ ಬದಲಾವಣೆಗಳು (Minor changes): ಕ್ಲೀನಪ್ ಮತ್ತು ಮರುನಾಮಕರಣಗಳನ್ನು (renames) ಪಟ್ಟಿ ಮಾಡಿ. ಅವುಗಳನ್ನು ರಚನಾತ್ಮಕ ಬದಲಾವಣೆಗಳಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿಡಿ. • ಪರಿಣಾಮ (Impact): ಇದು ಯಾವ ಸಿಸ್ಟಮ್‌ಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ ಎಂಬುದನ್ನು ಪಟ್ಟಿ ಮಾಡಿ. ಅದರ ವ್ಯಾಪ್ತಿಯನ್ನು (blast radius) ತಿಳಿಸಿ. • ಪುರಾವೆ (Evidence): ನೀವು ಏನನ್ನು ರನ್ ಮಾಡಿದ್ದೀರಿ ಮತ್ತು ಯಾವ ಪರೀಕ್ಷೆಗಳನ್ನು (tests) ಪಾಸಾಗಿಸಿದ್ದೀರಿ ಎಂಬುದನ್ನು ಪಟ್ಟಿ ಮಾಡಿ. ನೀವು ಕೆಲಸ ಮಾಡಿದ್ದೀರಿ ಎಂಬುದಕ್ಕೆ ಪುರಾವೆ ತೋರಿಸಿ. • ಅನಿಶ್ಚಿತತೆಗಳು (Uncertainties): ನಿಮಗೆ ಯಾವುದರ ಬಗ್ಗೆ ಅನಿಶ್ಚಿತತೆ ಇದೆ ಎಂಬುದನ್ನು ತಿಳಿಸಿ.

ನೀವು ಅನಿಶ್ಚಿತತೆಯನ್ನು ಒಪ್ಪಿಕೊಂಡಾಗ, ನೀವು ರಿವ್ಯೂವರ್‌ಗೆ ಸಹಾಯ ಮಾಡುತ್ತೀರಿ. ಅವರು ಎಲ್ಲಿ ಸೂಕ್ಷ್ಮವಾಗಿ ಗಮನಿಸಬೇಕು ಎಂಬುದು ಅವರಿಗೆ ತಿಳಿಯುತ್ತದೆ. ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತಿರುವ ಭಾಗಗಳ ಮೇಲೆ ಅವರು ಸಮಯ ವ್ಯರ್ಥ ಮಾಡುವುದಿಲ್ಲ.

ನಿಮ್ಮ ಅನಿಶ್ಚಿತತೆಗಳನ್ನು ನೀವು ಹೆಸರಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ನೀವು ನಿಮ್ಮ ಕೋಡ್ ಬಗ್ಗೆ ಸಾಕಷ್ಟು ಆಳವಾಗಿ ಯೋಚಿಸಿಲ್ಲ ಎಂದರ್ಥ.

ಒಂದು PR ಅನ್ನು ತೆರೆಯಬೇಕೇ ಅಥವಾ ಬೇಡವೇ ಎಂದು ನಿರ್ಧರಿಸುವ ಮೊದಲು ವಿವರಣೆಯು ಕೊನೆಯ ಹಂತವಾಗಿದೆ.

ನಿಮ್ಮ ಉದ್ದೇಶವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ರಿವ್ಯೂವರ್ ಕಠಿಣ ಪ್ರಶ್ನೆಗಳ ಮೇಲೆ ಸಮಯ ವ್ಯಯಿಸುತ್ತಾರೆ. ನಿಮ್ಮ ಉದ್ದೇಶವನ್ನು ಊಹಿಸಬೇಕಾದ ರಿವ್ಯೂವರ್ ಸುಲಭವಾದ ಪ್ರಶ್ನೆಗಳ ಮೇಲೆ ಸಮಯ ವ್ಯಯಿಸುತ್ತಾರೆ. ಅವರು ವಿಷಯಗಳು ಸರಿಯಾಗಿವೆಯೇ ಎಂದು ಕೇಳುವ ಬದಲು, ಅವುಗಳ ಬಗ್ಗೆಯೇ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳುತ್ತಾರೆ.

ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಇನ್ನೂ ನೋಡಿರದ ರಿವ್ಯೂವರ್‌ಗಾಗಿ ಬರೆಯಿರಿ. ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರಿಸಲು ನೀವು ಅಲ್ಲಿ ಇರುವುದಿಲ್ಲ ಎಂಬಂತೆ ಬರೆಯಿರಿ. ಕೆಲಸದ ಬಗ್ಗೆ ಯಾವುದೇ ನೆನಪಿಲ್ಲದೆ, ನೀವು ಮೂರು ದಿನಗಳ ನಂತರ ಇದನ್ನು ಓದುತ್ತಿದ್ದೀರಿ ಎಂಬಂತೆ ಬರೆಯಿರಿ.

ವಿವರಣೆಯು ಸಮರ್ಥವಾಗಿದ್ದರೆ, PR ಸಿದ್ಧವಾಗಿದೆ.

ಮೂಲ: https://dev.to/jeelvankhede/open-the-pr-your-reviewer-has-not-met-yet-4gfe

ಐಚ್ಛಿಕ ಕಲಿಕಾ ಸಮುದಾಯ: https://t.me/GyaanSetuAi