எல்லை மீறலைத் தவிர்த்தல்¶
"எல்லை மீறல்" என்பது, ஒரு தனிப்பட்ட பங்களிப்பால் சரிசெய்யப்பட்ட சிக்கல்கள் அல்லது செயல்படுத்தப்பட்ட அம்சங்களின் பட்டியல், வேலை தொடங்கியபோது நோக்கமாக இருந்தது என்பதை விட கணிசமாக அதிகமாக வளரும்போது நிகழ்கிறது. நீங்கள் ஒரு எளிய சிக்கலுடன் தொடங்குகிறீர்கள்; அதனுடன் நெருங்கிய தொடர்புடைய மற்றொரு சிக்கலைக் கண்டறிந்து, அந்தத் தீர்வையும் சேர்க்க முடிவு செய்கிறீர்கள்; பின்னர் மூன்றாவது… நீங்கள் உணர்வதற்குள், டஜன் கணக்கான கோப்புகளை உள்ளடக்கி, 5 சிக்கல்களைத் தீர்த்து 3 புதிய அம்சங்களைச் சேர்க்கும் ஒரு புல் கோரிக்கையை நீங்கள் பெற்றிருப்பீர்கள்.
திட்ட வரம்பு மீறல் அனைவருக்கும் நடப்பதுண்டு. இது அனுபவமிக்க டெவலப்பர்களுக்கு நன்கு தெரிந்த ஒரு கருத்தாகும்; நாம் அனைவரும் பலமுறை இதைச் செய்திருக்கிறோம், அதனால் ஏற்படும் அனைத்துப் பிரச்சனைகளையும் அனுபவித்திருக்கிறோம்.
வளர்ச்சி எல்லை மீறலைத் தவிர்ப்பதற்கு மிகவும் நடைமுறைக்குரிய காரணங்கள் உள்ளன. ஒரு பங்களிப்பு எவ்வளவு பெரியதாகிறதோ, அதைக் கையாள்வது அவ்வளவு கடினமாகிறது. விளிம்புநிலை நிகழ்வுகள் அல்லது சாத்தியமான சிக்கல்களைக் கண்டறிவது கடினமாகிவிடும், இதன் பொருள் அந்தப் பங்களிப்பின் ஒட்டுமொத்தத் தரம் குறையக்கூடும். மதிப்பாய்வாளர் ஒன்றுக்கு மேற்பட்ட, தொடர்பில்லாத சூழல்களைக் கையாள வேண்டியிருக்கும்போது, மதிப்பாய்வுகளும் மிகவும் சவாலானதாகின்றன. ஒரு பெரிய பங்களிப்பு என்பது அதிக மதிப்பாய்வுக் கருத்துக்களைக் குறிக்கும், மேலும் ஒரு பங்களிப்பாளராக, பல மதிப்பாய்வுத் திரிகளைப் பின்தொடர்வது கடினமாகிவிடும். உங்கள் GitHub அனுபவமும் பாதிக்கப்படும் - ஒரு PR-இன் அளவு அதிகரிக்கும்போது GitHub-இன் பயனர் இடைமுகம் (UI) மெதுவாகிவிடும், அதாவது GitHub இடைமுகம் மூலம் கோப்புகளைப் பார்ப்பதும், மதிப்பாய்வுக் கருத்துக்களை இடுவதும் மிகவும் கடினமாகிவிடும்.
அசல் முன்மொழிவு அல்லது பிழை அறிக்கையின் வெளிப்படையான பகுதியாக இல்லாத எதையும் உங்கள் பங்களிப்பில் சேர்க்க ஒரு காரணத்தைக் கண்டறியும் போதெல்லாம், நீங்கள் வரம்பு மீறலை நோக்கிச் செல்கிறீர்களா என்பதைக் கருத்தில் கொள்ள வேண்டும். தனித்தனியாகச் செயல்படுத்தக்கூடிய இரண்டு வெவ்வேறு அம்சங்கள் உள்ளனவா? ஒரு அம்சத்தை அறியப்பட்ட வரம்பு அல்லது பிழையுடன் செயல்படுத்தி, அந்தப் பிழையை ஒரு பின்தொடர் புல் ரிக்வெஸ்டில் சரிசெய்ய முடியுமா? ஒரு பிழைச் சரிசெய்தலின் ஒரு பகுதி மற்றொன்றிலிருந்து தன்னிச்சையாக உள்ளதா? ஒரு மாற்றத்தின் ஒரு பகுதியை அசல் பங்களிப்பை மாற்றாமல் தவிர்க்க முடிந்தால், அது அநேகமாக தவிர்க்கப்பட வேண்டும்.
மென்பொருளை உருவாக்குவது என்பது எப்போதும் படிப்படியான முன்னேற்றத்தின் ஒரு செயல்முறையாகும். ஒவ்வொரு தனிப்பட்ட பங்களிப்பும் இணைக்கப்படும்போது குறியீட்டுத் தொகுப்பை ஒரு சிறந்த நிலையில் விட்டுச் செல்ல வேண்டும், ஆனால் பிழைகள் அல்லது அம்சங்களின் பகுதிகளை எதிர்கால மேம்பாட்டிற்கான பணியாக விட்டுச் செல்வது முற்றிலும் ஏற்றுக்கொள்ளத்தக்கது. இதன் பொருள், ஒரு இழுப்புக் கோரிக்கையை (pull request) தன்னிச்சையாக மதிப்பாய்வு செய்யக்கூடிய பல பகுதிகளாகப் பிரித்தல், அல்லது வேறு யாராவது சிக்கலை ஆராய்ந்து தீர்க்கும் வகையில் ஒரு சிக்கலைப் பதிவு செய்தல் ஆகியவையாக இருக்கலாம்.
ஒவ்வொரு பங்களிப்பின் வரம்பைக் கட்டுப்படுத்துவது, உங்களை உள்ளடக்கி சம்பந்தப்பட்ட அனைவருக்கும் உதவுகிறது. உங்கள் மதிப்பாய்வாளர்கள், ஏன் நீங்களும் கூட, இதைப் பாராட்டுவார்கள்.