මම එක් ක්‍රම අත්සනක් වෙනස් කළ අතර දැන් දෝෂ 25,000 කට වඩා තිබේ. දැන් මොකද?


169

මම මෑතකදී නව රැකියාවක් ආරම්භ කළෙමි, එහිදී මම ඉතා විශාල යෙදුමක් (15M loc) මත වැඩ කරමින් සිටිමි. මගේ පෙර රැකියාවේදී අපට සමාන විශාල යෙදුමක් තිබුනද (වඩා හොඳ හෝ නරක සඳහා) අපි OSGi භාවිතා කළෙමු, එයින් අදහස් කළේ යෙදුම ස්වාධීනව වෙනස් කළ හැකි, සම්පාදනය කළ හැකි සහ යෙදවිය හැකි ක්ෂුද්‍ර සේවා රාශියකට බෙදී ඇති බවයි. නව යෙදුම එක් විශාල කේත පදනමක් පමණක් වන අතර සමහර විට .dlls කිහිපයක් ඇත.

ඒ නිසා මට මෙම පන්තියේ අතුරු මුහුණත වෙනස් කිරීමට අවශ්‍යයි, මන්ද එය මගේ ලොක්කා මගෙන් ඉල්ලා සිටියේ එයයි. ඔවුන් මුලින් එය ලිවූයේ සාමාන්‍යකරණය නොවූ සමහර උපකල්පනයන් සමඟ වන අතර, ටික කලක් තිස්සේ ඔවුන් ප්‍රතිචක්‍රීකරණය කිරීමේ ගැටළුව මඟහරවා ගෙන ඇත්තේ එය තදින් බැඳී ඇති බැවිනි. මම අතුරු මුහුණත වෙනස් කළ අතර දැන් දෝෂ 25000 කට වඩා තිබේ. සමහර දෝෂයන් "XYZPriceCalculator" වැනි වැදගත් ශබ්ද නාම සහිත පන්තිවල ඇත.කැඩෙන්න එපා. නමුත් සියලු දෝෂ නිරාකරණය වන තෙක් එය ක්‍රියාත්මක වේදැයි පරීක්ෂා කිරීමට මට යෙදුම ආරම්භ කළ නොහැක. බොහෝ ඒකක පරීක්ෂණ එක්කෝ එම අතුරුමුහුණත කෙලින්ම යොමු කරයි, නැතහොත් එම අතුරුමුහුණත සඳහන් කරන මූලික පංති සමඟ සම්බන්ධ වේ, එබැවින් ඒවා නිවැරදි කිරීම ඉතා විශාල කාර්යයකි. ප්ලස්, මේ සියලු කොටස් එකට ගැලපෙන්නේ කෙසේදැයි මම නොදනිමි, එබැවින් මට එය ආරම්භ කිරීමට හැකි වුවද, දේවල් කැඩී ගියහොත් එය කෙබඳු වේදැයි මම නොදනිමි.

මගේ අන්තිම රැකියාවේදී මම කවදාවත් මේ වගේ ගැටලුවකට මුහුණ දුන්නේ නැහැ. මම මොකද කරන්නේ?


7
කුමන ආකාරයේ දෝෂ සහ "මෙම පංතිය" යනු කුමක්ද යන්න පිළිබඳව ඔබට වැඩි විස්තර ලබා දීමට ඔබට අවශ්‍ය වනු ඇත, අපි පා .කයන්ට කමක් නැත.
whatsisname

137
VS හි පෙන්වා ඇති "25000 කට වඩා දෝෂ" බොහෝ විට වැරදිය. දෝෂ කිහිපයක් ඇත, නමුත් බොහෝ විට භාවිතා කරන ලද ඩීඑල්එල් බිඳී යාමත් සමඟ අනෙකුත් ගොඩනැඟිලි ද අසාර්ථක වන අතර තාරකා විද්‍යාත්මක දෝෂ සංඛ්‍යා ඉහළ නංවයි. මම සෑම විටම නිවැරදි කිරීම ආරම්භ කරන්නේ දෝෂ ලැයිස්තුවේ නොව ගොඩනැගීමේ නිමැවුමේ ඇති පළමු දෝෂ පණිවිඩයෙනි.
බර්න්හාර්ඩ් හිලර්

13
ඔබ වෙනස් කළ ක්‍රමයට පෙර සහ පසු අත්සන් දැකීමට මා කැමතිය. BTW - 25k දෝෂ ඇත්ත වශයෙන්ම ගනුදෙනු කිරීමට තරම් ප්‍රමාණවත් නොවේ. වෙහෙසකාරී ඔව්, බියජනක, ඔව්, පාලනය කළ නොහැකි, නැත.
jmoreno

46
පොදු අතුරු මුහුණතක් යනු කොන්ත්රාත්තුවකි. එවැනි ගිවිසුම් කඩ නොකරන්න - නව ඒවා සාදන්න.
මැතිව්

6
දෝෂ 25000 ක්! හූස්ටන්, අපිට ප්‍රශ්නයක් තියෙනවා. නියත වශයෙන්ම වෙනස ආපසු හරවා ඔබේ කළමනාකරු සමඟ කතා කරන්න, ඔබට නව අතුරු මුහුණතක් මුළුමනින්ම නිර්මාණය කිරීමට සිදුවිය හැකි බව ඔහුට පැහැදිලි කරන්න.
කේත විස්පර්

Answers:


350

දෝෂ 25000 ක් මූලික වශයෙන් අදහස් කරන්නේ "එය ස්පර්ශ නොකරන්න" යන්නයි. එය නැවත වෙනස් කරන්න. අපේක්ෂිත අතුරුමුහුණත ඇති නව පන්තියක් සාදන්න සහ පන්තියේ පාරිභෝගිකයින් සෙමෙන් නව පන්තියට ගෙන යන්න. භාෂාව මත පදනම්ව, ඔබට පැරණි පංතිය අතහැර දැමූ ලෙස සලකුණු කළ හැකිය, එය සියලු ආකාරයේ සම්පාදක අනතුරු ඇඟවීම් වලට හේතු විය හැකි නමුත් ඇත්ත වශයෙන්ම ඔබේ ගොඩනැගීම බිඳ නොදමනු ඇත.

අවාසනාවට මේ දේවල් සිදුවන්නේ පැරණි කේත පදනම් වල ය. සෙමින් දේවල් යහපත් කර ගැනීම හැර ඔබට ඒ ගැන බොහෝ දේ කළ නොහැක. ඔබ නව පංති නිර්මාණය කරන විට, ඔබ ඒවා නිසි ලෙස පරීක්‍ෂා කර SOLID මූලධර්ම භාවිතයෙන් ඒවා නිර්මාණය කිරීමට වග බලා ගන්න එවිට අනාගතයේදී ඒවා වෙනස් කිරීමට පහසු වනු ඇත.


79
එය අනිවාර්යයෙන්ම නව පංතියක් විය යුතු නැත . භාෂාව සහ තත්වයන් අනුව එය ශ්‍රිතයක්, අතුරු මුහුණතක්, ගති ලක්ෂණ යනාදිය විය හැකිය
Jan Hudec

33
පැරණි අතුරුමුහුණත නව එකක් වටා අනුකූලතා එතීමෙන් ප්‍රතිස්ථාපනය කළ හැකි නම් එය ද උපකාරී වේ.
ජෑන් හුඩෙක්

79
සමහර විට, දෝෂ 25000 ක් යනු ඇත්ත වශයෙන්ම අපි එය ස්පර්ශ කිරීමට කිසි විටෙකත් එඩිතර වූයේ නැත, නමුත් දැන් නවකයෙකු පැමිණ ඇති හෙයින්, ඕජියන්-අශ්වාරෝහක පිරිසිදු කිරීමේ කාර්යය ඔහුට ලබා දෙමු.
mouviciel

13
DtheDmi: මම එකඟ වෙමි, 1 වෙනසක් සහ 25k දෝෂ බොහෝ දුරට 2.5k වෙනස්වීම් අදහස් කරන අතර, එය 250 ක් පමණ වූ බව දැන ගැනීම මා පුදුම නොවනු ඇත. වැඩ ගොඩක් දෙයාකාරයෙන්ම කළ හැකි නමුත් කළ හැකි ය.
jmoreno

33
එම දෝෂ 25000 සියල්ලම තනි වෙනසකින් නිවැරදි කළ හැකිය. මම විශාල උරුමක්කාරයෙකුගේ මූලික පංතිය බිඳ දැමුවහොත්, ව්‍යුත්පන්න කරන ලද සෑම පංතියක්ම අවලංගු පදනමක් පිළිබඳ දෝෂ ඇති කරයි, එම පංතිවල සෑම භාවිතයක්ම පන්තිය නොපවතින බවට දෝෂ ඇති කරයි. යනාදිය සිතන්න. තර්කයක්. "හසානාම්" ක්‍රියාත්මක කිරීමේ පන්තියේ පෙරළීම දැන් ක්‍රියාත්මක නොවේ (දෝෂය), එයින් උරුම වන සෑම දෙයක්ම දැන් දෝෂ ජනනය කරයි (සියලුම පන්ති 1000), ඒ වගේම මම ඔවුන්ගෙන් ඕනෑම අවස්ථාවක් නිර්මාණය කරන සෑම අවස්ථාවකම (පන්තියකට 24x සාමාන්‍ය). නිවැරදි කිරීම ... එක් පේළියක්.
යක්

79

ප්‍රතික්‍රියාකාරක සමඟ බෙදන්න

බොහෝ විට, ඔබ කළ යුතු වෙනස කුඩා පියවරයන් ලෙස බිඳ දැමීම උපකාරී වනු ඇත, මන්ද ඔබට මෘදුකාංගය කිසිසේත් බිඳ නොදමන අයුරින් කුඩා පියවර බොහොමයක් සිදු කළ හැකිය. ප්‍රතිනිර්මාණය කිරීමේ මෙවලම් එවැනි කාර්යයන් සඳහා බොහෝ උපකාර කරයි.

බෙදනවා

පළමුව, ඔබට සාක්ෂාත් කර ගැනීමට අවශ්‍ය වෙනසට සමාන විය හැකි කුඩාම වෙනස්කම් (තාර්කික වෙනස්කම් අනුව, වෙනස් කළ දේශ සීමාව අනුව නොව) හඳුනා ගන්න. විශේෂයෙන් පිරිසිදු ප්‍රතික්‍රියාකාරක සහ මෙවලම් මඟින් සිදු කළ හැකි පියවර හුදකලා කිරීමට උත්සාහ කරන්න .

ජය ගන්න

ඔබ වැනි සංකීර්ණ අවස්ථාවන් සඳහා, වරකට එක් කුඩා ප්‍රතිචක්‍රීකරණයක් සිදු කිරීම අර්ථවත් විය හැකි අතර පසුව ගැටළුව සමනය වීමට ඉඩ සලසයි, එවිට සියලු අඛණ්ඩ ඒකාබද්ධ කිරීමේ පද්ධතිවල වෙනස සත්‍යාපනය කළ හැකි අතර පරීක්ෂණ කණ්ඩායමටද පෙනුමක් තිබිය හැකිය. මෙය ඔබ ගන්නා පියවර වලංගු වේ.

විශේෂිත ප්‍රතිනිර්මාණයක් සිදු කිරීම සඳහා, ඔබට වෙනස් කිරීමට අවශ්‍ය ක්‍රමයේ ඇමතුම් අඩවි 25,000 ක් ඇති අවස්ථාවකදී ඔබට මෙවලම් සහාය අවශ්‍ය වේ. සමහර විට සෙවීම් සහ ප්‍රතිස්ථාපන ක්‍රියා ද විය හැකිය, නමුත් එවැනි තීරණාත්මක අවස්ථාවකට, මම එයින් බිය වනු ඇත.

උදාහරණයක්

C # දී, උදාහරණයක් ලෙස, එය කළ හැකි භාවිතා කිරීමට වේ Resharper කිරීමට අත්සන වෙනස් ක්රමයක් වන. වෙනස ප්‍රමාණවත් තරම් සරල නම්, උදා: නව පරාමිතියක් එක් කිරීම, එවිට ඔබට සම්පාදක දෝෂයක් ඇති ඇමතුම් අඩවි වල භාවිතා කළ යුතු අගය සඳහන් කළ හැකිය.

එවිට ඔබ වහාම දෝෂ රහිත කේත පදනමක් ඇති අතර සියලු ඒකක පරීක්ෂණ ක්‍රියාත්මක කළ හැකිය, එය සමත් වනු ඇත, මන්ද එය ප්‍රතිචක්‍රීකරණය කිරීම පමණි.

ක්‍රමයේ අත්සන හොඳ පෙනුමක් ඇති පසු, ඔබට ගොස් අලුතින් හඳුන්වා දුන් පරාමිතියට තර්ක ලෙස රීෂාර්පර් එකතු කළ අගයන් ප්‍රතිස්ථාපනය කළ හැකිය. මෙය තවදුරටත් ප්‍රතිචක්‍රීකරණය කිරීමක් නොවේ, නමුත් ඔබට දෝෂ රහිත කේත පදනමක් ඇති අතර ඔබ වෙනස් කරන සෑම පේළියකටම පසුව පරීක්ෂණ ක්‍රියාත්මක කළ හැකිය.

සමහර විට එය ක්‍රියාත්මක නොවේ

ඔබට ඇමතුම් අඩවි විශාල ප්‍රමාණයක් ඇති ඔබගේ වැනි අවස්ථා සඳහා මෙය ඉතා ප්‍රයෝජනවත් ප්‍රවේශයකි. ඔබ සතුව දැන් වැඩ කරන මෘදුකාංගයක් ඇත, එබැවින් අත්සන ටිකක් වෙනස් කිරීම සඳහා කුඩා ප්‍රතිනිර්මාණය කිරීමේ පියවරයන් ගත හැකි අතර පසුව තවත් එකක් කරන්න.

අවාසනාවට, අත්සන වෙනස් කිරීම ඉතා සංකීර්ණ නම් සහ කුඩා වෙනස්කම් වලට බෙදිය නොහැකි නම් එය ක්‍රියා නොකරනු ඇත. නමුත් මෙය දුර්ලභ ය; කුඩා ගැටලු බවට ප්රශ්නය පැලෙන සාමාන්යයෙන් එය බවයි වේ හැකි.


12
මෙය. ඔබට හැකි නම් (ආරක්ෂිතව) ප්‍රතික්‍රියාකාරකය, එසේ නොමැතිනම් ඔබට නිසි සංක්‍රමණයක් අවශ්‍ය වේ.
sleske

3
ඕනෑම දෙයකට ආදරය කිරීම සඳහා, කරුණාකර (උදා) ක්‍රමයේ අත්සන දේශීයව වෙනස් කර, එහි ප්‍රති ent ල වශයෙන් ඇති වන දෝෂ නිරාකරණය කර ගැනීමට වඩා, ඔබේ IDE හි ප්‍රතිනිර්මාණය කිරීමේ මෙවලම් භාවිතා කරන්න.
ක්ලේමන් ඩීකේ

36

වෘත්තීය මෘදුකාංග සංවර්ධකයෙකු ලෙස ගැටලුව සහ ඔබේ අවශ්‍යතා තේරුම් ගැනීමට ඔබේ ලොක්කාට උදව් කිරීමට ඔබේ කාර්යය පැහැදිලි කරන්න.

ඔබ කණ්ඩායමක කොටසක් නම්, ඊයම් සංවර්ධකයා සොයා ඔහුගෙන් උපදෙස් ඉල්ලන්න.

වාසනාව.


15
මම ගන්නා පළමු පියවර මෙයයි - "මම කනිෂ් and යෙක්. මගේ ලොක්කා මට යමක් කරන්න කිව්වා. දැන් මට ලොකු දෝෂ පණිවිඩයක් ලැබෙනවා, නමුත් මගේ ලොක්කා ඒ ගැන මට කිව්වේ නැහැ." පියවර 1: "ඒයි ලොක්කා, මම ඒ දේ කළා, නමුත් මට දැන් දෝෂ 25 ක් ලැබුණා. එය සිදුවිය
යුතුද

28

එය ස්පර්ශ නොකරන්න. කිසිවක් නොකරන්න.

ඒ වෙනුවට, ඔබේ පුටුවේ වාඩි වී "හීහෙල්ප් !!!!!" ඔබට හැකි තරම් හයියෙන්.

හොඳයි, හරියටම එසේ නොවේ, නමුත් ඔබේ ජ්‍යෙෂ් senior සගයන්ගෙන් ඕනෑම අයෙකුගෙන් උපදෙස් ඉල්ලන්න. ඔබට දෝෂ 25,000 ක් තිබේ නම්, ඔබ දෝෂ නිවැරදි නොකරයි, දෝෂ ඇතිවීමට හේතුව ඔබ නිවැරදි කරයි. දෝෂ 25,000 ක් නොමැතිව ඔබේ ලොක්කාට අවශ්‍ය වෙනස සිදු කරන්නේ කෙසේදැයි ඔබට උපදෙස් දීමට ජ්‍යෙෂ් senior සගයකුට හැකි විය යුතුය . මෙය කිරීමට විවිධ ක්‍රම තිබේ, නමුත් හොඳ ක්‍රමයක් යනු ඔබේ විශේෂිත තත්වය මත රඳා පවතී.

සමහර විට ලොක්කා ඔබේ ජ්‍යෙෂ් senior සගයන්ට එම වෙනස සිදු කරන ලෙස පැවසූ අතර ඔවුන් “එපා” යැයි පැවසූහ. මොකද වෙන්නේ කියලා එයාලා දැනගෙන හිටියා. ඔබට රැකියාව ලබා දුන්නේ එබැවිනි.


2
මෙය අනිවාර්යයෙන්ම මතක තබා ගත යුතු වැදගත් දෙයකි. නව සේවකයෙකු සැබවින්ම විශාල වශයෙන් අභිලාෂකාමී නම්, ඔවුන් බයිට් 5 ක මතක වාසියක් ලබා ගැනීම පමණක් අවසන් කරන විශාල කාර්යයක් කිරීමට තරම් කඩිසර (රැවටිලිකාර) විය හැකිය.
user64742

@TheGreatDuck: සෑම තැනකම භාවිතා අතුරු මුහුණතක් ඔබ කවදාවත් දැකලා නැහැ කියලා මට කියන්න වැරදි සෑම තැනකම. මට විශ්වාසයි.
යෝෂුවා

@ ජොෂුවා මම කියපු දේටවත් අදාළ නැහැ. සුළු දෝෂයක් නිරාකරණය කරන අවස්ථා තිබේ, සෑම විටම එහි ඇති දක්ෂම අදහස වන්නේ කේත පේළි 10,000+ නැවත ලිවීමයි. අවාසනාවකට මෙන්, නව සේවකයෙකු සිය රාත්‍රී ලොක්කා 10 දෙනෙකු රැකියාවෙන් පිටතට ඇද ගැනීමට තරම් රැවටිලිකාර විය හැකිය. ෂුවර්, එය කිරීම හොඳ දෙයක්, නමුත් සමහර විට ප්රමාණවත්ය. ඔබ දෝෂයේ පැවැත්ම පිළිගත යුතුය.
user64742

1
Os ජෝෂුවා btw, මම මෙම ප්‍රජාවට සම්බන්ධ වූයේ මගේ ජනප්‍රිය ප්‍රශ්න සංග්‍රහය මත මෙම ප්‍රශ්නය පැමිණි බැවිනි. මේ වගේ මහා පරිමාණ නිර්මාණ ගැන මට අත්දැකීම් නැහැ. මම මේ පුද්ගලයාගේ මතයට එකඟයි.
user64742

22

මුල්බැසගත් API වෙනස් කළ නොහැක. ඔබට ඒවා සැබවින්ම වෙනස් කිරීමට අවශ්‍ය නම් , ඒවා අවලංගු කර ඇති බව නිර්වචනය කරන්න සහ / හෝ ලේඛනගත කරන්න (භාෂාව ඉඩ දෙන ඕනෑම ආකාරයකින්) සහ ඒ වෙනුවට කුමන API භාවිතා කළ යුතුද යන්න ලේඛනගත කරන්න. පැරණි API පසුව සෙමින් ක්‍රමානුකූලව ඉවත් කළ හැකිය ... සමහර විට ඉතා සෙමින් ප්‍රතිනිර්මාණය සඳහා ඔබගේ කාල අයවැය මත පදනම්ව.


10

ඇගයීමට ලක්

මෙම වෙනස අත්‍යවශ්‍යද, නැතිනම් ඔබට නව ක්‍රමයක් එකතු කර අනෙකා ඉවත් කළ හැකිද යන්න තක්සේරු කරන්න .

ඉදිරියට

වෙනස් කිරීම අවශ්ය නම්; එවිට සංක්‍රමණ සැලැස්මක් අවශ්‍ය වේ.

පළමු පියවර වන්නේ නව ක්‍රමය හඳුන්වා දීම සහ පැරණි ක්‍රමය එහි තර්ක සම්බාහනය කිරීම නිසා නව ක්‍රමය හැඳින්විය හැකිය. මේ සඳහා කරුණු කිහිපයක් තදින් කේත කිරීම අවශ්‍ය විය හැකිය; ඒක හොදයි.

මෙය කැපවිය යුතු කරුණකි: සියලුම පරීක්ෂණ සමත් වී ඇත්දැයි පරීක්ෂා කරන්න.

සංක්‍රමණය වන්න

කාර්යබහුල කාර්යය වන්නේ පැරණි ක්‍රමයේ සියලුම අමතන්නන් නව ක්‍රමයට සංක්‍රමණය කිරීමයි. ස්තූතියි, එය ක්‍රමානුකූලව ඉදිරියට ගෙන යා හැකි අයට කළ හැකිය.

එබැවින් ඉදිරියට යන්න; සහාය වීමට මෙවලම් භාවිතා කිරීමට පසුබට නොවන්න ( sedවඩාත්ම මූලික, තවත් අය සිටිති).

පැරණි ක්‍රමය අතහැර දැමූ ලෙස සලකුණු කරන්න (නව ක්‍රමයට මාරුවීමේ ඉඟියක් සහිතව); එය ඔබට කිසිවක් අමතක වී ඇත්දැයි සොයා ගැනීමට උපකාරී වන අතර ඔබ මේ පිළිබඳව වැඩ කරන අතරතුර සහායකයකු පැරණි ක්‍රමයට ඇමතුමක් හඳුන්වා දෙන්නේ නම් එය උපකාරී වේ.

මෙය කැපවීමේ ලක්ෂ්‍යයකි (හෝ සමහර විට බැඳීම් කරුණු කිහිපයක්): සියලුම පරීක්ෂණ සමත් වී ඇත්දැයි පරීක්ෂා කරන්න.

ඉවත් කරන්න

යම් කාලයක් ගත වූ පසු (සමහර විට දිනකට තරම් කුඩා විය හැක), පැරණි ක්‍රමය ඉවත් කරන්න.


4
sedබොහෝ විට නරක අදහසක් විය හැකිය ... ඇත්ත වශයෙන්ම භාෂාව "තේරුම් ගෙන" ඇති අතර අනපේක්ෂිත ලෙස දැඩි වෙනස්කම් සිදු නොකරන හොඳය.
wizzwizz4

1
@ wizzwizz4: අවාසනාවකට මෙන්, C ++ සඳහා භාෂාව හොඳින් වටහා ගත හැකි මෙවලම් ඉතා ස්වල්පයක් මට හමු විය ; බොහෝ මෙවලම් නැවත නම් කිරීම සපුරාලන බව පෙනේ. නිසැකවම, නිශ්චිත ක්‍රම ඇමතුම් පමණක් නම් කිරීම (සහ කිසිදු අධි බරක් හෝ සම්බන්ධයක් නැති නමුත් ඒ හා සමානව නම් කරන ලද ක්‍රම ඇමතුම් නොවේ) දැනටමත් සිත් ඇදගන්නා සුළු ය, නමුත් වඩා සංකීර්ණ කිසිවක් සඳහා එය ප්‍රමාණවත් නොවේ. අවම වශයෙන්, ඔබට (1) තර්ක විතර්ක කිරීමේ හැකියාවන් අවශ්‍ය වනු ඇත, (2) දී ඇති තර්කයකට පරිවර්තනයක් යොදන්න ( .c_str()උදාහරණයක් ලෙස අමතන්න ) සහ නව තර්ක හඳුන්වා දෙන්න. sedකාරුණිකව ක්‍රියා කරයි, සම්පාදකයා පසුව එහි ගැටළු හඳුනා ගනී.
මැතිව් එම්

1
sed(හෝ ed) මේ ආකාරයේ දේ සඳහා ප්‍රමාණවත් විය හැකිය - ඔබ සිදු කිරීමට පෙර වෙනස නිසි ලෙස සමාලෝචනය කරන තාක් කල්.
ටෝබි ස්පයිට්

මෙය html හි TCRR, ඔව්? :)
ඩැනියෙල් ස්ප්‍රින්ගර්

8

ක්‍රම අත්සන සඳහා ඔබ වෙනස් කිරීම හුදෙක් නම වෙනස් කිරීමක් නම්, සරල විසඳුම නම්, පන්ති 25,000 ක වෙනස ස්වයංක්‍රීය කිරීමට මෙවලම් භාවිතා කිරීමයි.

මම හිතන්නේ ඔබ හුදෙක් කේතය අතින් සංස්කරණය කර ඇති අතර එමඟින් සියලු දෝෂ ඇති විය. ඔබ ජාවා ගැන හුරුපුරුදු යැයි මම සිතමි. ක්‍රමයට සියලු යොමු කිරීම් යාවත්කාලීන කිරීමට, එමඟින් ඔබට කිසිදු දෝෂයක් නොමැත.

හුදෙක් නම් කිරීමකට වඩා ඔබ ක්‍රම අත්සනෙහි වෙනත් වෙනස්කම් සිදු කරන්නේ නම් (පරාමිති ගණන හෝ වර්ග වෙනස් කිරීම), ඔබට "ප්‍රතිචක්‍රීකරණය -> ක්‍රම අත්සන වෙනස් කිරීම" භාවිතා කළ හැකිය. කෙසේ වෙතත්, අනෙක් පිළිතුරු යෝජනා කරන පරිදි ඔබට වඩාත් සැලකිලිමත් විය යුතු අවස්ථා තිබේ. එසේම, කුමන ආකාරයේ වෙනසක් නොසලකා කාර්යබහුල කේත පදනමක් තුළ එම සියලු වෙනස්කම් සිදු කිරීම තවමත් කාර්යයක් විය හැකිය.


2
OP නිශ්චිතවම කියා සිටියේ OSGi ඔවුන්ගේ පෙර රැකියාවෙහි සිටි බැවින් එය මෙහි ඇත්ත වශයෙන්ම අදාළ නොවන බවයි.
CVn

3
@ මයිකල් ජෝර්ලිං OP ඔවුන්ගේ පෙර රැකියාවේ ජාවා ක්‍රමලේඛකයෙකු නම්, ඔවුන් මෙම රැකියාවෙහි ද ජාවා ක්‍රමලේඛකයෙකු වන අතර, ඊටත් වඩා හොඳ අවස්ථාවක් තිබේ.
පොහොසත්

@ MichaelKjörling OP ජාවා ගැන හුරුපුරුදු නිසා ප්‍රතිචක්‍රීකරණය සඳහා සූර්යග්‍රහණය භාවිතා කරමින් මට ස්ථිර නිර්දේශයක් ලබා දීමට අවශ්‍ය විය. OP ඇත්ත වශයෙන්ම වර්තමාන ව්‍යාපෘතිය සඳහා ජාවා භාවිතා කරන්නේද යන්න මම සිතන්නේ අඩු වැදගත්කමක් ඇති නමුත් මගේ පිළිතුර පැහැදිලි කළ යුතුය. ස්තූතියි.
MikkelRJ

6

මෙන්න මගේ දායකත්වය.

මම මෑතකදී නව රැකියාවක් ආරම්භ කළෙමි, එහිදී මම ඉතා විශාල යෙදුමක් (කේත 15M රේඛා) මත වැඩ කරමින් සිටිමි.

ඔබ බොහෝ විට ව්‍යාපෘතිය සහ එහි "විශේෂාංග" ගැන හුරුපුරුදු නැත. කේතයේ තනි පේළියක් ටයිප් කිරීමට පෙර, ව්‍යාපෘතිය පිළිබඳව හුරුපුරුදු වීම වැදගත්ය. එබැවින් ඔබගේ වෙනස්කම් පෙරළා කේතය විශ්ලේෂණය කිරීමෙන් ආරම්භ කරන්න . (අවම වශයෙන් බලපෑමට ලක්වූ එකක්)

පවත්නා විසඳුම අවබෝධ කර ගැනීමෙන් ඔබ යන්නේ කොතැනටද යන්න පිළිබඳ වඩා හොඳ ඉදිරිදර්ශනයක් ලබා දේ. විසඳුම හා එහි වැදගත්කම සන්දර්භගත කරන්න.

@ ග්‍රෙග් පෙන්වා දුන් පරිදි, (ප්‍රතිගාමී පරීක්ෂණ) සමඟ සැසඳීම සඳහා වලංගු යොමු කිරීමක් සඳහා පවතින කේතය පරීක්ෂා කිරීමට ඔබට හැකි විය යුතුය. ඔබගේ විසඳුම පවත්නා ප්‍රති than ලයට වඩා එකම ප්‍රති results ල ජනනය කිරීමේ හැකියාව තිබිය යුතුය . මෙම අවස්ථාවෙහිදී, ප්‍රති results ල නිවැරදිද නැද්ද යන්න ගැන ඔබ තැකීමක් නොකරයි . පළමු ඉලක්කය වන්නේ දෝෂ නිවැරදි කිරීම නොව ප්‍රතික්‍රියාකාරකයයි. පවතින විසඳුම "2 + 2 = 42" යැයි කියන්නේ නම්, ඔබේ විසඳුම ද එසේ විය යුතුය. එය ව්‍යතිරේකයන් විසි නොකරන්නේ නම්, ඔබේ ද එසේ නොවිය යුතුය. එය ශුන්‍ය ආපසු ලබා දෙන්නේ නම්, ඔබත් ශුන්‍යය ආපසු ලබා දිය යුතුය. සහ යනාදි. එසේ නොමැතිනම්, ඔබ කේත පේළි 25k සමඟ සම්මුතියකට එළඹෙනු ඇත.

මෙය රෙට්රෝ-ගැළපුම සඳහා ය.

මන්ද? මොකද දැන්, එය සාර්ථක ප්‍රතික්‍රියාකාරකයක් පිළිබඳ ඔබේ සුවිශේෂී සහතිකයයි.

බොහෝ ඒකක පරීක්ෂණ එක්කෝ එම අතුරුමුහුණත කෙලින්ම යොමු කරයි, නැතහොත් එම අතුරුමුහුණත සඳහන් කරන මූලික පන්ති සමඟ සම්බන්ධ වේ.

රෙට්රෝ-ගැළපුම සහතික කිරීම සඳහා ක්රමයක් ඔබට වහාම අවශ්ය වේ, එබැවින් මෙන්න ඔබේ පළමු අභියෝගය. ඒකක පරීක්ෂණ සඳහා සංරචකය හුදකලා කරන්න.

පවතින කේතයේ ප්‍රති results ල උපකල්පනය කරමින් එම කේත පේළි 25k සාදන ලද බව මතක තබා ගන්න. ඔබ කොන්ත්රාත්තුවේ මෙම කොටස බිඳ නොදමන්නේ නම්, ඔබ අවසාන විසඳුම සඳහා අඩක් පමණ වේ. ඔබ එසේ කරන්නේ නම් හොඳයි: බලය ඔබ සමඟ සිටිය හැක

ඔබ නව "කොන්ත්රාත්තුව" සැලසුම් කර ක්රියාත්මක කළ පසු, පැරණි ගිවිසුම ප්රතිස්ථාපනය කරන්න. එය ඉවත් කරන්න හෝ පිටතට ගන්න.

ප්‍රතිව්‍යුහගත කිරීම සහ දෝෂ නිවැරදි කිරීම නිසා දෝෂ තනිවම තැබීම මම යෝජනා කර ඇත්තෙමි. ඔබ ඒවා එකට ඉදිරියට ගෙන යාමට උත්සාහ කරන්නේ නම්, ඔබ දෙදෙනාම අසමත් විය හැකිය. ඔබ දෝෂ සොයාගෙන ඇතැයි ඔබ සිතනු ඇත, කෙසේ වෙතත්, ඒවා "විශේෂාංග" විය හැකිය. එබැවින් ඒවා තනිවම තබන්න (විනාඩියකට).

කේත පේළි 25 ක් මට එක කාර්යයක් කෙරෙහි පමණක් අවධානය යොමු කිරීමට ප්‍රමාණවත් ගැටළු ඇති බව පෙනේ.

ඔබේ පළමු කාර්යය අවසන් වූ පසු. එම දෝෂ / විශේෂාංග ඔබේ ලොක්කාට හෙළි කරන්න.

අවසාන වශයෙන්, ස්ටෙෆන් පැවසූ පරිදි:

සෙමින් දේවල් යහපත් කර ගැනීම හැර ඔබට ඒ ගැන බොහෝ දේ කළ නොහැක. ඔබ නව පංති නිර්මාණය කරන විට, ඔබ ඒවා නිසි ලෙස පරීක්‍ෂා කර SOLID මූලධර්ම භාවිතයෙන් නිර්මාණය කරන බවට වග බලා ගන්න එවිට අනාගතයේදී ඒවා වෙනස් කිරීමට පහසු වනු ඇත


5

එය පරීක්ෂා කරන්න.

අනෙක් සියල්ලන්ම නිර්දේශ කරන්නේ ප්‍රතිචක්‍රීකරණය කරන්නේ කෙසේද යන්නයි. නමුත් බොහෝ දෝෂ සහිතව, ඔබ කේත පේළි 10 ක් තරම් අඩු ප්‍රමාණයක් ප්‍රතිනිර්මාණය කිරීමට සමත් වුවද (ඔබට බොහෝ විට හැකි), එවිට ඔබට කේත නැවත ප්‍රවාහයන් 25,000 කට බලපෑම් කර ඇත, ඔබට ඒවා නැවත ලිවීමට අවශ්‍ය නොවුවද.

ඉතින්, ඊළඟට කළ යුත්තේ ඔබේ ප්‍රතිගාමී පරීක්ෂණ කට්ටලය පියාසර වර්ණ සමඟ සමත් වන බවට වග බලා ගැනීමයි. ඔබ සතුව එකක් නොමැති නම්, එසේ කරන්න. ඔබේ මොනොලිතික් ව්‍යාපෘතියට සවිස්තරාත්මක ප්‍රතිගාමී පරීක්ෂණ කට්ටලයක් එක් කිරීම නීරස බවක් පෙනුනද, නිදහස් කරන අපේක්ෂකයින් කෙරෙහි විශ්වාසය වැඩි කිරීමටත්, කට්ටලය හොඳින් ස්වයංක්‍රීයව තිබේ නම් ඒවා වේගයෙන් මුදා හැරීමටත් හොඳ ක්‍රමයකි.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.