𝗛𝗼𝘄 𝗪𝗲 𝗗𝗲𝗰𝗶𝗱𝗲 𝗪𝗵𝗲𝗻 𝘁𝗼 𝗥𝗲𝗳𝗮𝗰𝘁𝗼𝗿 𝗮𝗻𝗱 𝗪𝗵𝗲𝗻 𝘁𝗼 𝗥𝗲𝘄𝗿𝗶𝘁𝗲
ಪ್ರತಿಯೊಬ್ಬ ಡೆವಲಪರ್ ಕೂಡ ಈ ಕ್ಷಣವನ್ನು ಎದುರಿಸುತ್ತಾನೆ.
ಕೋಡ್ಬೇಸ್ (Codebase) ನಿಧಾನವಾಗಿದೆ. ಹೊಸ ಫೀಚರ್ಗಳನ್ನು ಸೇರಿಸಲು ತುಂಬಾ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಹೊಸಬರು ಸಿಸ್ಟಮ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಕಷ್ಟಪಡುತ್ತಾರೆ. ಕೊನೆಗೆ ಯಾರಾದರೂ ಪೂರ್ಣ ಪ್ರಮಾಣದ ಮರುಬರಹವನ್ನು (rewrite) ಸೂಚಿಸುತ್ತಾರೆ.
ತಂಡವು ಸಾಮಾನ್ಯವಾಗಿ ಎರಡು ಗುಂಪುಗಳಾಗಿ ವಿಭಜನೆಯಾಗುತ್ತದೆ. ಒಂದು ಗುಂಪು ಹೊಸದಾಗಿ ಪ್ರಾರಂಭಿಸಲು ಬಯಸುತ್ತದೆ. ಇನ್ನೊಂದು ಗುಂಪು ಹಿಂದಿನ ಮರುಬರಹಗಳ ವೈಫಲ್ಯವನ್ನು ಕಂಡು ಹೆದರುತ್ತದೆ. ಎರಡೂ ಕಡೆಯ ವಾದಗಳು ಸಮಂಜಸವಾಗಿವೆ.
ಮರುಬರಹವು ಒಂದು ಮಾಂತ್ರಿಕ ಪರಿಹಾರವಲ್ಲ. ಇದು ಯೋಜಿಸಿದതിಗಿಂತ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ನೀವು ಏಕಕಾಲದಲ್ಲಿ ಎರಡು ಸಿಸ್ಟಮ್ಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಪರಿಸ್ಥಿತಿಗೆ ಸಿಲುಕುತ್ತೀರಿ. ಹೊಸ ಆವೃತ್ತಿಯಲ್ಲಿ ಕೂಡ ನೀವು ಅದೇ ತಪ್ಪುಗಳನ್ನು ಪುನರಾವರ್ತಿಸಬಹುದು.
ಈ ನಿರ್ದಿಷ್ಟ ಸಂದರ್ಭಗಳಲ್ಲಿ ಮರುಬರಹವು ಅರ್ಥಪೂರ್ಣವಾಗಿರುತ್ತದೆ:
• ಡೇಟಾ ಮಾಡೆಲ್ ವ್ಯವಹಾರಕ್ಕೆ ಮೂಲಭೂತವಾಗಿ ತಪ್ಪಾಗಿದೆ. • ತಂತ್ರಜ್ಞಾನವು ಹಳೆಯದಾಗಿದೆ ಮತ್ತು ಯಾವುದೇ ಸೆಕ್ಯೂರಿಟಿ ಅಪ್ಡೇಟ್ಗಳಿಲ್ಲ. • ವ್ಯವಹಾರದ ಅಗತ್ಯಗಳು ಎಷ್ಟು ಬದಲಾಗಿವೆ ಎಂದರೆ ಮೂಲ ಸಿಸ್ಟಮ್ ಈಗ ಅಪ್ರಸ್ತುತವಾಗಿದೆ. • ಪ್ರಸ್ತುತ ತಂಡದಲ್ಲಿ ಸಿಸ್ಟಮ್ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂದು ಯಾರಿಗೂ ತಿಳಿದಿಲ್ಲ.
ಅಷ್ಟಾಗ್ಯೂ, ಒಮ್ಮೆಲೇ ಎಲ್ಲವನ್ನೂ ಬದಲಾಯಿಸಬೇಡಿ (big bang replacement). 'Strangler fig pattern' ಬಳಸಿ. ಹಳೆಯ ಸಿಸ್ಟಮ್ ಜೊತೆಗೆ ಹೊಸ ಸಿಸ್ಟಮ್ ಅನ್ನು ಹಂತ ಹಂತವಾಗಿ ನಿರ್ಮಿಸಿ.
ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ, ನಿಮಗೆ ನಿಜವಾಗಿ ಬೇಕಾಗಿರುವುದು ರಿಫ್ಯಾಕ್ಟರಿಂಗ್ (refactor) ಮಾತ್ರ.
ಈ ಕೆಳಗಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ ರಿಫ್ಯಾಕ್ಟರಿಂಗ್ ಸರಿಯಾದ ಆಯ್ಕೆಯಾಗಿದೆ:
• ನಿಧಾನವಾಗಿದ್ದರೂ ಸಹ ನೀವು ಇನ್ನೂ ಫೀಚರ್ಗಳನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. • ತಂಡಕ್ಕೆ ಪ್ರಸ್ತುತ ಕೋಡ್ ಅರ್ಥವಾಗುತ್ತದೆ. • ಗೊಂದಲವು ಕೇವಲ ನಿರ್ದಿಷ್ಟ ಮಾಡ್ಯೂಲ್ಗಳಿಗೆ ಸೀಮಿತವಾಗಿದೆ. • ವ್ಯವಹಾರವು ಹೊಸ ಫೀಚರ್ಗಳನ್ನು ಬಿಡುಗಡೆ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
ನೀವು ಆಯ್ಕೆ ಮಾಡುವ ಮೊದಲು, ಕೋಡ್ ಏಕೆ ಕೆಟ್ಟದಾಯಿತು ಎಂದು ಕೇಳಿಕೊಳ್ಳಿ.
ಸಮಸ್ಯೆ ತಾಂತ್ರಿಕ ಸಾಲವಾಗಿದ್ದರೆ (technical debt), ಅತ್ಯಂತ ಕೆಟ್ಟ ಭಾಗಗಳನ್ನು ರಿಫ್ಯಾಕ್ಟರ್ ಮಾಡಿ. ಸಮಸ್ಯೆ ಕೋಡ್ ರಿವ್ಯೂಗಳ ಕೊರತೆ ಅಥವಾ ಕಳಪೆ ಸಂಸ್ಕೃತಿಯಾಗಿದ್ದರೆ, ಮರುಬರಹವು ಸಹಾಯ ಮಾಡುವುದಿಲ್ಲ. ನೀವು ಕೇವಲ ಹಳೆಯ ಅಭ್ಯಾಸಗಳೊಂದಿಗೆ ಹೊಸ ಗೊಂದಲವನ್ನೇ ನಿರ್ಮಿಸುತ್ತೀರಿ.
ನೀವು ನಿರ್ಧರಿಸುವ ಮೊದಲು ಈ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಿ:
• ನಾವು ಅತ್ಯಂತ ಕೆಟ್ಟ ಭಾಗಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಸರಿಪಡಿಸಬಹುದೇ? • ಪ್ರಸ್ತುತ ವ್ಯವಹಾರದ ಅಗತ್ಯಗಳಿಗೆ ಡೇಟಾ ಮಾಡೆಲ್ ಅಸಮರ್ಥವಾಗಿದೆಯೇ? • ನಾವು ಮೊದಲಿನಿಂದ ಪ್ರಾರಂಭಿಸಿದರೆ ಯಾವ ಜ್ಞಾನವನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೇವೆ? • ದೀರ್ಘಾವಧಿಯ ಪರಿವರ್ತನೆಯನ್ನು ನಿಭಾಯಿಸಲು ವ್ಯವಹಾರಕ್ಕೆ ಸ್ಥಿರತೆ ಇದೆಯೇ?
ಮೊದಲಿನಿಂದ ಪ್ರಾರಂಭಿಸುವುದು ಕೇಳಲು ಚೆನ್ನಾಗಿರುತ್ತದೆ. ಆದರೆ ಮರುಬರಹವನ್ನು ಪೂರ್ಣಗೊಳಿಸುವುದು ಕಷ್ಟದ ಕೆಲಸ. ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ, ವ್ಯವಸ್ಥಿತವಾದ ರಿಫ್ಯಾಕ್ಟರಿಂಗ್ ಯೋಜನೆಯು ಹೆಚ್ಚು ಸುರಕ್ಷಿತ ಮತ್ತು ಪರಿಣಾಮಕಾರಿಯಾಗಿದೆ.
ಮೂಲ: https://dev.to/daviefano/how-we-decide-when-to-refactor-and-when-to-rewrite-40pk