BIG පිළිතුර නැවත ලියන්නේ කවදාද?


288

බිග් රීරයිට්ස් පිළිබඳ ප්‍රශ්නය කියවා මට පිළිතුරු දීමට අවශ්‍ය වූ ප්‍රශ්නයක් මට මතක් විය.

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

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

TL; DR විශාල පිළිතුරක් නැවත ලියන්නේ කවදාද සහ එයට සහාය දැක්වීමට ඔබට භාවිතා කළ හැකි තර්ක මොනවාද?



7
එය පරණයි, නමුත් එය සම්භාව්‍යයි - ජොයෙල්ගේ "ඔබ කිසි විටෙකත් නොකළ යුතු දේ, පළමු කොටස" joelonsoftware.com/articles/fog0000000069.html
මොනිකා

මෙය විශිෂ්ට ප්‍රශ්නයකි. ඉතා අදාළ, මෘදුකාංග ඉංජිනේරු විද්‍යාවේ මෙම තත්වය නිතර දක්නට ලැබේ.
බ්‍රැඩ් තෝමස්

Answers:


340

කණගාටුයි, මෙය දීර් be වනු ඇත, නමුත් එය පදනම් වී ඇත්තේ ගෘහ නිර්මාණ ශිල්පියා සහ සංවර්ධකයා යන දෙකම නැවත ලිවීමේ ව්‍යාපෘති වල පෞද්ගලික අත්දැකීම් මත ය.

පහත දැක්වෙන කොන්දේසි මඟින් ඔබ යම් ආකාරයක නැවත ලිවීමක් සලකා බැලීමට හේතු විය යුතුය. ඊට පසු කුමක් කළ යුතුද යන්න තීරණය කරන්නේ කෙසේද යන්න ගැන මම කතා කරමි.

  • සංවර්ධක රැම්ප්-අප් කාලය ඉතා ඉහළ ය. නව සංවර්ධකයෙකු වේගවත් කිරීම සඳහා පහළින් (අත්දැකීම් මට්ටම අනුව) වැඩි කාලයක් ගත වුවහොත්, පද්ධතිය නැවත සැලසුම් කිරීම අවශ්‍ය වේ. වේගවත් වන වේලාව අනුව, මම අදහස් කරන්නේ නව සංවර්ධකයා ඔවුන්ගේ පළමු කැපවීම කිරීමට සූදානම් වීමට පෙර කාලය (කුඩා අංගයක් මත)
    • විශ්ව විද්‍යාලයෙන් නැවුම් - මාස 1.5 යි
    • තවමත් හරිත, නමුත් මීට පෙර වෙනත් ව්‍යාපෘතිවල වැඩ කර ඇත - මාස 1 යි
    • මධ්‍යම මට්ටම - සති 2 යි
    • පළපුරුදු - සති 1 යි
    • ජ්‍යෙෂ් senior මට්ටම - දින 1 යි
  • පවත්නා ගෘහ නිර්මාණ ශිල්පයේ සංකීර්ණතාවය නිසා යෙදවීම ස්වයංක්‍රීය කළ නොහැක
  • පවතින කේතයේ සංකීර්ණතාවය නිසා සරල දෝෂ නිවැරදි කිරීම් පවා බොහෝ කාලයක් ගතවේ
  • කේත විශේෂාංගයේ අන්තර් රඳා පැවැත්ම නිසා නව විශේෂාංග බොහෝ කාලයක් ගත වන අතර අධික පිරිවැයක් දරයි (නව අංග හුදකලා කළ නොහැක, එබැවින් පවතින විශේෂාංග වලට බලපායි)
  • පවත්නා කේත පදනමේ අන්තර් රඳා පැවැත්ම නිසා විධිමත් පරීක්ෂණ චක්‍රය බොහෝ කාලයක් ගතවේ.
  • භාවිතයේ අවස්ථා ඕනෑවට වඩා තිර මත ක්‍රියාත්මක වේ. මෙය පරිශීලකයින්ට සහ සංවර්ධකයින්ට පුහුණු ගැටළු ඇති කරයි.
  • වර්තමාන ක්‍රමය පවතින තාක්‍ෂණය එය ඉල්ලා සිටී
    • තාක්ෂණය පිළිබඳ අත්දැකීම් ඇති ගුණාත්මක සංවර්ධකයින් සොයා ගැනීම දුෂ්කර ය
    • එය අවලංගු කර ඇත (නව වේදිකා / විශේෂාංග සඳහා එය යාවත්කාලීන කළ නොහැක)
    • සරලවම වඩා ප්‍රකාශිත ඉහළ මට්ටමේ තාක්‍ෂණයක් තිබේ
    • පැරණි තාක්ෂණයේ යටිතල පහසුකම් නඩත්තු කිරීමේ පිරිවැය වැඩිය

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

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

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

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

එය සම්පූර්ණ කිරීම දක්වා දේශපාලන අධිෂ් has ානයක් ඇති බවට ඔබට සහතික විය හැකි නම් පමණක් එය කරන්න. මෙයින් අදහස් කරන්නේ විධායක සහ අවසාන පරිශීලක මිලදී ගැනීම යන දෙකම ය. එය නොමැතිව, ඔබ අසමත් වනු ඇත. මම හිතන්නේ ජොයෙල් කියන්නේ ඒක නරක අදහසක් කියලයි. විධායක සහ අවසාන පරිශීලක මිලදී ගැනීම බොහෝ ගෘහ නිර්මාණ ශිල්පීන්ට හිස් දෙකකින් යුත් යුනිකෝනයක් සේ පෙනේ. ඔබ එය ආක්‍රමණශීලීව විකුණා දැමිය යුතු අතර, එය සම්පූර්ණ වන තෙක් අඛණ්ඩව පවත්වාගෙන යාම සඳහා උද් campaign ෝෂනය කරන්න. එය දුෂ්කර වන අතර, ඔබ කතා කරන්නේ සමහරු සාර්ථක වීමට අකමැති දෙයක් මත ඔබේ කීර්තිය රඳවා ගැනීම ගැන ය.

සාර්ථකත්වය සඳහා උපාය මාර්ග කිහිපයක්:

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

27
මම හිතන්නේ ජොයෙල්ගේ අදහස නම් නැවත ලිවීමෙන් ඔබට පැරණි කේතයේ ඇති දැනුම නැති වී යන බවයි.
quant_dev

16
@quant_dev අර්ධ වශයෙන් ඔව්, නමුත් ඔබ නැවත ලියන විට සමහර විට පැරණි පද්ධතියේ බොහෝ දෝෂ ඇති වූයේ පැරණි ක්‍රමය ක්‍රියාත්මක වූ ආකාරය නිසා මිස පරමාදර්ශී පද්ධතිය ක්‍රියාත්මක විය යුතු ආකාරය පිළිබඳ දැඩි තර්කනයකින් නොවන බව ඔබට වැටහේ.
ටජාර්ට්

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

28
මම මේ සියලු නිර්ණායකයන්ට ගැලපෙන කේත පදනමක් සමඟ වැඩ කර ඇත්තෙමි. එහෙත් විශාල නැවත ලිවීම තවමත් අසාර්ථක වී ඇති අතර සමහර ආකාරවලින් දේවල් අඩාල කර ඇති අතර එය හැසිරවීමට අඩක් ක්‍රියාත්මක කළ “නව ගනුදෙනු” කේතයක් ලබා දීමෙන් එය පරණ අවුල් ජාලයට වඩා බෙහෙවින් වෙනස් ය. වඩා කළමනාකරණය කළ හැකි ය. IMO, එය ප්‍රතික්‍රියාකාරකයට සම්පූර්ණයෙන්ම කළ නොහැකි දෙයක් බවට පත්වුවහොත් පමණක්, ඔබ අද දින ගනුදෙනුකරුවන් සඳහා වැයවන අංග එකතු කිරීමෙන් සහ දෝෂ නිවැරදි කිරීමෙන් සියලු අවධානය ඉවත් කළ යුතුය. ඔබ සැබවින්ම නිශ්චිතව කිව නොහැකි කේතයක් කතා නොකරන්නේ නම්, ඔබ යන විට පහසුවෙන් නැවත භාවිතා කිරීම සඳහා මොඩියුලර් බිටු අදින්නට නොහැකි කණ්ඩායමකට කෙසේ හෝ විශාල rw සඳහා ප්‍රමාණවත් තරම් ප්‍රතිනිර්මාණය කළ නොහැක.
එරික් රෙපන්

12
මෙය ප්‍රයෝජනවත් පිළිතුරකි, නමුත් එය මනස්කාන්ත වීමට වඩා බොහෝ සෙයින් වෙනස් ය, මන්ද එය සමහර දේ පිළිබඳ වැරදි හැඟීමක් ඇති කරයි. නිදසුනක් ලෙස, "නැවත ලිවීමේ සම්පූර්ණ පිරිවැය සෑම විටම සම්පූර්ණ නැවත ලිවීමට වඩා වැඩි බව මතක තබා ගන්න" - එම වාක්‍යයේ "සැමවිටම" යන වචනය වැරදියි, මන්ද "වර්ධක ලෙස නැවත සකස් කිරීම" ඔබට අවම වශයෙන් සමහර කොටස් නැවත භාවිතා කිරීමට අවස්ථාව ලබා දෙයි. පවත්නා සැලසුමෙහි, “සම්පූර්ණ නැවත ලිවීම” මඟින් ඔබට එය ලබා නොදේ. මම දන්නවා, මම ඇත්ත වශයෙන්ම එම තත්වයේ සිටි බව, එහිදී අපි> 100K LOC අයදුම්පත අර්ධ වශයෙන් පූර්ණ වශයෙන් ලිවූ අතර, අර්ධ වශයෙන් නොවේ.
ඩොක් බ්රවුන්

116

මම විශාල නැවත ලිවීම් දෙකකට සහභාගී වී සිටිමි. පළමුව කුඩා ව්‍යාපෘතියකි. දෙවැන්න මෘදුකාංග සමාගමක ප්‍රධාන නිෂ්පාදනයයි.

අන්තරායන් කිහිපයක් තිබේ:

  • නැවත ලිවීම සැමවිටම බලාපොරොත්තු වූවාට වඩා වැඩි කාලයක් ගතවේ.
  • නැවත ලිවීම පාරිභෝගිකයාට සෘජු බලපෑම් / ප්‍රතිලාභ නොමැත.
  • නැවත ලිවීම සඳහා කැප කළ ධාරිතාව පාරිභෝගිකයාට සහාය වීම සඳහා භාවිතා නොවේ.
  • ඔබට 100% ලියකියවිලි නොමැති නම් නැවත ලිවීමකින් ක්‍රියාකාරීත්වය නැති වේ.

නැවත ලිවීම සැබෑ පිළිතුර වන්නේ කලාතුරකිනි. කිසිවක් අහිමි නොවී හා විශාල අවදානමකින් තොරව ඔබට බොහෝ කේත නැවත ප්‍රතිනිර්මාණය කළ හැකිය.

නැවත ලිවීම පිළිතුර නම්:

  • ඔබ වෙනත් භාෂාවකට හෝ වේදිකාවක් වෙත මාරු වෙමින් සිටී.
  • ඔබ රාමු / බාහිර කොටස් මාරු කරමින් සිටී.
  • පවතින කේත පදනම තවදුරටත් නඩත්තු කළ නොහැක.

නමුත් ප්‍රතිචක්‍රීකරණය භාවිතා කරමින් මන්දගාමී ප්‍රවේශයට මම තරයේ අවවාද කරමි. එය අඩු අවදානම් සහ ඔබ ඔබේ ගනුදෙනුකරුවන් සතුටින් තබයි.


11
ප්‍රතික්‍රියාකාරක ප්‍රවේශය සඳහා +1. පවතින පද්ධතිය නැවත ලිවීමට හා නඩත්තු කිරීමට ප්‍රමාණවත් කාලයක් හෝ මෑන්හවුස් නොමැත.
රයන් හේස්

4
@ ජෝන්: විධායකයෙකු ලෙස, මගේ විකුණුම් කණ්ඩායම විසින් තවමත් ගනුදෙනුකරුවෙකු ලබාගෙන නොමැති යෙදුමක් නැවත ලිවීම හරිතකරණය කිරීමට මට අපහසු වනු ඇත. අවංකවම, මම එයට නිශ්චිත කාලයක් ලබා දෙන්නෙමි, පසුව කුමක් කළ යුතුද යන්න තීරණය කරමි. උනන්දුවක් නොමැති නම්, මම සියල්ලම කුණු කූඩයට දමා වෙනත් දෙයක් කිරීමට තෝරා ගනිමි.
NotMe

4
මම මෑතකදී ජාවා හි දෘශ්‍ය මූලික යෙදුමක් නැවත ලිව්වෙමි. මෙය වින්ඩෝස් යටතේ සේවාවක් ලෙස ක්‍රියාත්මක කිරීමට ඉඩ දී ඇත (ජාවා GUI නැත) - පාරිභෝගිකයාට ප්‍රතිලාභ.

4
"නැවත ලිවීම පාරිභෝගිකයාට සෘජු ප්‍රති / ල / ප්‍රතිලාභ නොමැත" - මෙය බොහෝ විට මිථ්‍යාවකි, මන්ද නව රාමු මඟින් produc ලදායිතා වැඩි දියුණු කිරීම් රාශියක් ගොඩනඟා ඇති අතර ඒවා ක්‍රියාත්මක කිරීමට නොහැකි හෝ මිල අධිකය. එක් උදාහරණයක් ලෙස, .b යෙදුමකට vb6 යෙදුමක් උත්ශ්‍රේණිගත කිරීමෙන් පරිශීලකයන්ට විශාල ලිපිගොනු විවෘත කිරීමට ඉඩ සලසයි (බිට් 64 ගෘහ නිර්මාණ ශිල්පය නිසා), එබැවින් අවසාන පරිශීලකයින්ට ඔවුන්ගේ කෘතිම කෘතිමව බිඳ දැමිය යුතු නැත.
ස්ටීවන්

1
Te ස්ටෙෆන් ඇත්ත, නමුත් එය සමාන වන්නේ ප්ලේස්ටේෂන් 4 සඳහා ලියන ලද ක්‍රීඩාවකට එය ප්ලේස්ටේෂන් 1 සඳහා ලියා ඇතිවාට වඩා හොඳ චිත්‍රක සම්පත් ඇති බවයි. 1. බොහෝ සේවාදායක යෙදුම්, වෙබ් සේවා සහ පසු-කණ්ඩායම් කණ්ඩායම් සකසනයන් සාමාන්‍යයෙන් ලබා නොගනී. එවැනි ප්‍රතිලාභ, සංවර්ධකයින්ට ලබා දී ඇති ප්‍රතිලාභ පසෙක තබා.
Kain0_0

76

නැවත ලිවීමට කාලය මෙයයි:

යෙදුම නැවත ලිවීමේ පිරිවැය + නැවත ලිවූ යෙදුම නඩත්තු කිරීම කාලයත් සමඟ වර්තමාන පද්ධතිය නඩත්තු කිරීමේ පිරිවැයට වඩා අඩුය.

වත්මන් නඩත්තු කිරීම වඩා මිල අධික වන සාධක කිහිපයක්:

  • භාෂාව ඉතා පැරණි බැවින් ඔබට එය වැඩසටහන්ගත කිරීම සඳහා විශාල මුදලක් ගෙවිය යුතුය (COBOL).
  • . මෙය "දෘඩාංග ජීවිත ආධාරක" ලෙස හැඳින්වෙන අතර කොටස් මිල අඩු වන විට ඒවා මිල ඉහළ යා හැකිය. නැතහොත් ඒවා (නියත වශයෙන්ම) කල් ඉකුත් වනු ඇත.
  • එය කොතරම් සංකීර්ණ වී ඇත්ද යත්, //Here be dragons.ඔබේ කේතය පුරාම අදහස් දැක්වීම සිදු වේ.
  • ඔබට වෙනත් ව්‍යාපෘති ලිවීමට සහ සමාගමට නව වටිනාකමක් එක් කිරීමට නොහැකි වන්නේ ඔබ සැමවිටම මෙම කැත මෘගයා අල්ලා ගන්නා බැවිනි.

මා සහභාගී වූ නැවත ලිවීමට එය හේතු වූයේ එයයි. කේතය එතරම් බිඳෙන සුළු වූ අතර නව විශේෂාංග එකතු කිරීමේ පිරිවැය එතරම් ඉහළ බැවින් නැවත ලිවීම තවදුරටත් විකල්පයක් නොවීය.
ෆ්‍රෑන්ක් ෂෙයාර්

16
# 2 වන කරුණ ගැන මම මෙහි සිනාසෙමින් සිටිමි.
පෝල් නේතන්

4
A පෝල්: සේවාදායකයෙක් මට පැවසූ විට මමත් එසේ කළා, එවිට ඔවුන් බරපතල බව මට වැටහුණා ... සහ නැවත ලිවීම සඳහා අවශ්‍යතා එක්රැස් කිරීම මම කරනවා. එය මොනතරම් ප්‍රීතිමත් දවසක්ද?
රයන් හේස්

3
ගැටලුව වන්නේ ඔබ පිරිවැය මනින ආකාරයයි.

2
මම මෙම ප්‍රතිචාරයට කැමතියි, විහිලු සහ සත්‍යය. "අඩු" වීමට පෙර "ප්‍රමාණාත්මකව" එක් කිරීමට මම කැමතියි. බොහෝ වාරයක්, හිමිකම් පෑම පහසුය, නමුත් නාස්ති වූ කාලය ගණනය කිරීමට හැකිවීම වැදගත්ය.
කෙවින් හ්සු

17

ඔබ මෙම ව්යාපෘතියේ ගෘහ නිර්මාණ ශිල්පය මූලික වෙනසක් අවශ්ය නම්, එය සමහර විට අලුතින් ආරම්භ කිරීමට කාලය.

එය සමඟ වුවද, ඔබගේ නව ව්‍යාපෘතිය තුළ නැවත භාවිතා කිරීම වටී විශාල කේත විශාල ප්‍රමාණයක් තිබිය හැකිය.

සාධාරණ අනතුරු ඇඟවීමක් කරන්න. වර්තමාන ව්‍යාපෘතියක ව්‍යාපාර නීති රීති පරික්‍ෂා කර පිරිපහදු කළ පැය ගණනක සැබෑ භාවිතයෙන් පිරිපහදු කරනු ඇත, මුල සිටම ආරම්භ කරන ලද ව්‍යාපෘතියක සත්‍ය නොවන දෙයක්.

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


3
ඔබ ඉතා පරිස්සම් විය යුතු අතර 'කේත විශාල ප්‍රමාණයක් නැවත භාවිතා කරන්න', මෙය භාවිතයට නොගත් උරුම කේත හා දුර්වල කේත ව්‍යුහයට හේතු විය හැක. ප්‍රතිනිර්මාණය කිරීම මගේ මතය අනුව වඩා හොඳ විසඳුමකි.
mrwooster

1
එකඟ විය. එම ප්‍රකාශයේ කොටසක් ඔබේ 'නව' ව්‍යාපෘතියට 'ප්‍රතික්‍රියාකාරකය' ලෙස අර්ථ දැක්විය යුතුය. එනම්, ඔබ දැනටමත් එම දැඩි මාවතේ ගමන් කර ඇත්නම්. අන් අය සඳහන් කළ පරිදි, මෙය කිසි විටෙකත් නොකළ යුතු අතිශය දුර්ලභත්වයකි.
ඩෑන් මැක්ග්‍රාත්

1
+1. එසේම, නැවත ලිවීමට කාලය ගතවනු ඇත, එම කාලය තුළ නඩත්තු කටයුතු සිදු කිරීමට සිදුවනු ඇත, නමුත් කේත පදනම් දෙකෙහිම එකම වෙනස්කම් සිදු කළ යුතුය.
ලැරී කෝල්මන්

12

ක්‍රාමිගේ පිළිතුරට සහ ජොයෙල්ගේ මතයට මා එකඟ වුවද, නැවත ලිවීම සුදුසු අවස්ථාවන් තිබේ. දිගුකාලීන යෙදුම්වල (මම කතා කරන්නේ අවුරුදු 10-20 හෝ ඊට වැඩි), කාලයත් සමඟ නඩත්තු කිරීම වැඩි වැඩියෙන් මිල අධික වේ. මුල් ගෘහ නිර්මාණ ශිල්පය ඉක්මන් නඩත්තු පැච් සඳහා කැප කරන බැවින් කේතය වැඩි වැඩියෙන් ස්පැගටි-ඊෂ් බවට පත්වීම මෙයට හේතුවයි. එසේම, පැරණි තාක්ෂණයන් සඳහා සංවර්ධකයින් වඩාත් දුර්ලභ හා මිල අධික වේ. අවසාන වශයෙන්, දෘඩාංග වයස්ගත වීමට පටන් ගන්නා අතර පැරණි යෙදුම ඉහළින් ක්‍රියාත්මක කිරීම සඳහා නව දෘඩාංග, මෙහෙයුම් පද්ධති, රාමු ආදිය සොයා ගැනීම දුෂ්කර වේ. එසේම, ව්‍යාපාර පරිණාමය වන අතර බොහෝ දුරට පැරණි පද්ධතියක් සංවිධානයේ ව්‍යාපාරික අවශ්‍යතා සපුරාලන්නේ නැත.

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



12

නවත්වන්න! නැවත ලිවීම කිසි විටෙකත් පිළිතුර නොවේ. බොහෝ විට, ප්‍රතිනිර්මාණය කිරීම වඩා හොඳ ඔට්ටුවක් වේ.


ඇත්ත වශයෙන්ම, එහි සිටින වන නැවත ලිවිය යුක්ති යුක්ත වේ අවස්ථා:

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

නැවත ලිවීමට වඩා නැවත ප්‍රතිනිර්මාණය කිරීමට මා නිර්දේශ කරන්නේ මන්දැයි වටහා ගැනීමට, නැවත ලිවීමට සම්බන්ධ දේ සලකා බලන්න. ඔබ කලයුතුය:

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

  2. පරීක්ෂා කරන ලද සහ විශ්වාසදායක නව යෙදුමක මෙම ක්‍රියාකාරිත්වය (හෝ එහි යාවත්කාලීන කළ අනුවාදයක්) ප්‍රතිනිෂ්පාදනය කරන්න. පවතින කේතය සංවර්ධකයින් විසින් තේරුම් නොගනු ඇත, නමුත් සාමාන්‍යයෙන් එහි පරිශීලකයින් එය හොඳින් වටහා ගනී. එය ඔවුන්ගේ වර්තමාන ව්‍යාපාරික අවශ්‍යතා සපුරාලන්නේ නැත, නමුත් විවිධ තත්වයන් යටතේ යෙදුම කරන්නේ කුමක්දැයි ඔවුන්ට අවම වශයෙන් ඔබට පැවසිය හැකිය.

ප්‍රතිචක්‍රීකරණය කිරීමේ විශාල වාසි වන්නේ:

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

මතක තබා ගන්න, ඔබ නැවත ලිවීමක් කළහොත් නව දෝෂ රාශියක් හඳුන්වා දීමට ඔබට සහතික වන අතර නව කේත පදනමට අවුල් විය.


2
නැවත ලිවීමට වඩා වැඩි වාර ගණනක් ප්‍රතිචක්‍රීකරණය කිරීම වඩා හොඳ වන්නේ මන්දැයි පැහැදිලි කිරීමෙන් ඔබට මෙම පිළිතුර පුළුල් කළ හැකිද? කරන විට ඒ හා ඇතැයි එය නැවත ලිවිය පිළිතුර විය?
gablin

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

11

මෙම ග්‍රැෆික් උදව් විය හැකිය, එය කේත පදනම් ගුණාත්මකභාවය සහ යෙදුමේ ව්‍යාපාරික වටිනාකමෙහි කාර්යයකි:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

පැරණි මෘදුකාංග නැවත ප්‍රතිනිර්මාණය කිරීම යුක්ති සහගත වන විට සහ එය නොමැති විට එය ප්‍රස්ථාරයක් ලෙස මඟ පෙන්වයි. උදාහරණයක් ලෙස, මෘදුකාංගයට ඉහළ ව්‍යාපාරික වටිනාකමක් තිබේ නම් සහ කේතයේ ගුණාත්මකභාවය දුර්වල නම්, ප්‍රතිනිර්මාණය කිරීම යුක්ති සහගත ය.


5
අඩු ව්‍යාපාර වටිනාකමක් ඇති ව්‍යාපෘතියක් නැවත ලිවීමට ඔබ ආයෝජනය කරන්නේ ඇයි? එය සීරීමට!
Jgenrgen Fogh

ඒ නිසා එය "ප්‍රතිස්ථාපනය හෝ ..." ලෙස දක්වයි. ඔබට වටිනාකමක් ඇති යමක් ආදේශ කළ හැකිය. නැතහොත් එය වටිනාකමක් ඇති දෙයක් බවට පත් කරන්න. නමුත් ඔබට කාරණයක් තිබේ. "සීරීමට" විකල්පය එක් කිරීමට මම එය සංස්කරණය කරමි.
ටියුලින්ස් කෝර්ඩෝවා

8

මම හිතන්නේ මගේ වෘත්තියෙහි විශාල නැවත ලිවීමේ පිළිතුර ඇති එකම අවස්ථාව මමයි:

සමාගම් ඒකාබද්ධ කිරීම, පද්ධති ක්‍රියාකාරිත්වයේ අතිච්ඡාදනය. බොහෝ, බොහෝ පද්ධති ඒකාබද්ධ කර විශ්‍රාම ගොස් ඇති අතර අනෙක් ඒවා තවමත් ක්‍රියාත්මක වෙමින් පවතී.

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

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


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

7

මම කුඩා මෘදුකාංග සමාගමක සේවය කළ අතර ඩොස් යෙදුම් කිහිපයක් Y2K හැසිරවීම සඳහා යාවත්කාලීන කරන ලද අතර එය වින්ඩෝස් 16-බිට් යෙදුමක් ලෙස නැවත ලිවූ අතර පසුව බිට් 32 යෙදුමක් ලෙස නැවත ලිවූයේ එක් අමතර 'කුඩා' අංගයක් සමඟය (අවසානයේ භාවිතා කරනුයේ එක් පාරිභෝගිකයෙක්) එය සමස්ත ව්‍යුහයටම බලපෑවේය.

බිට් 16 කේතය 32 දක්වා ගෙනයාම එක් පුද්ගලයෙකු විසින් මාසයක් තුළ කළ හැකිව තිබුනි, නමුත් NOOOOOOOOO, අපට එය නැවත ලිවීමට සිදු වූයේ Soooooooooo වඩා හොඳය. මෙම දෙය වෙනත් කර්මාන්ත සඳහා අනුවර්තනය කළ හැකි අතර, ඒවා ආරම්භ කිරීමට පෙර සම්පූර්ණ පිරිවිතර සහ psuedo- කේත ඇත. පිරිවිතර නිර්මාණය කරන ලද නමුත් සැබෑ කේතය ලිවීමට පවා කාලයක් ගත නොවීය. එය ප්‍රමාද වී මුදා හරින ලද අතර, බිට් 16 'ආරම්භයට' වඩා වැඩි දෝෂ සහිතව (එය v.3.0 වන අතර අවසානයේ කිසිවෙකු නව දෝෂයක් වාර්තා නොකර සතියකට ආසන්න කාලයක් ගත කළ තැනට).

එකම යෙදුම 3-4 වතාවක් නැවත ලිවීමෙන් යම් දියුණුවක් ලැබෙනු ඇතැයි ඔබ සිතනු ඇත, නමුත් GUI ඉදිරිපස අන්තය එතරම් සාධාරණීකරණය කළ හැකි යැයි මම නොසිතමි.

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


6

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

වසර 2 ක කාලයක් තුළ අපි වැඩි දියුණු කිරීමේ කාර්යයට සමගාමීව බිටු සහ කෑලි ප්‍රතිනිර්මාණය කිරීමට කටයුතු කළෙමු. අපි සෑම විටම ව්‍යාපෘති සැලැස්මක් තුළට 'දැඩි කිරීමේ' කාර්යයක් ඉටු කළෙමු. හොඳින් ක්‍රියාත්මක නොවූ විශේෂිත ප්‍රදේශ කෙරෙහි අවධානය යොමු කිරීමෙන් අපට වැඩිපුරම ලැබුණේ ගාස්තුවයි. වැඩ කළ දේවල් අපි තනි කළා. මෙම කාර්යය සාමාන්‍ය සංවර්ධනයේ දී සිදු කරන ලද අතර එය මුදා හැරීම ද තීරණාත්මක ය. විශාල නැවත ලිවීමේ ගැටලුව ඔබ වසරක් හෝ ඊට වැඩි කාලයක් ඉවත්ව යන අතර පසුව ඔබ ආපසු පැමිණෙන විට සෑම දෙයක්ම කෙසේ හෝ වෙනස් වී ඇති අතර සමහර අප්රසන්න දෝෂ සුමට වී ඇති අතර ඔබේ ROI අහිමි විය.

අපි කවදාවත් සම්පූර්ණ දේම නැවත ලිව්වේ නැහැ. අපි එම වේදිකාව නව වැඩ සඳහා භාවිතා කිරීම නැවැත්වූ අතර විශාල නව ව්‍යාපෘතියක් සඳහා නව නැවුම් වේදිකාවක් සකස් කළෙමු. එය අනුමත වූ අතර සාධාරණ කාලයක් තුළ අපි විශිෂ්ට නිෂ්පාදනයක් ලබා දුන්නෙමු.


5

ඉතින් මෙන්න මම මගේ මේසය මත වාඩි වී සිටිමි, එක් විශාල ඇස්පෙක්ස් ගොනුවක මෙම නිරපේක්ෂ අවුල සඳහා කේතය නැවත ලිවීමට පටන් ගතිමි, එය පිටුපස ඇති දත්ත සමුදාය සහ MS ප්‍රවේශ අතුරු මුහුණත MsSQL වෙත ආදේශ කිරීම.

මෙම asp වැඩසටහන වැනි දේවලින් පිරී ඇත

  • include(close.aspx) ඇතුළත විවෘත කේත දත්ත පේළියක් ඇති අතර එය අවසන් විවෘත දත්ත සමුදා සම්බන්ධතාවය වසා දමයි.
  • උරුම කේතය අහඹු ලෙස අදහස් දැක්වීය
  • ආරක්ෂාව ගැන සැලකිලිමත් නොවේ
  • ස්පැගටි කේතය, එහි පේළි දහස් ගණනක්. සියල්ල එක ගොනුවක.
  • ඒවායේ නම් පිටුපස පැහැදිලි අර්ථයක් නොමැති කාර්යයන් සහ විචල්‍යයන්

අපට කවදා හෝ සුළු වෙනසක් කිරීමට අවශ්‍ය නම්, එය හරියට කැල්-ටෝ ක්‍රීඩා පහක් රාත්‍රී සිහින ප්‍රකාරයේදී ක්‍රීඩා කිරීම වැනි ය.

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

අපට භාණ්ඩය විකිණීමට අවශ්‍ය නොවූයේ නම්, ඔවුන්ට අවශ්‍ය දේ බොහෝමයක් කරන බැවින් ඔවුන්ට නැවත ලිවීමක් අවශ්‍ය නොවනු ඇත - සමහර විට අලංකාර ලෙස නොවේ, නමුත් හොඳ කේතයක් සෑදීම සඳහා මුදල් වියදම් කිරීම විචක්ෂණශීලී නොවේ 'එකම දේ කරන්න.'


4

පවතින විසඳුම පරිමාණය නොවේ.

මම ඔබ දෙස බලමි, MS ප්‍රවේශය.


ඔබ නිවැරදි එක දෙස බලන්නේ දැයි මට විශ්වාස නැත. ජෙට් රෙඩ් කිසි විටෙකත් පරිමාණය කිරීමට අදහස් කළේ නැත, AFAIK.
ජෙන්ස්

ඇසූ ප්‍රශ්නයට මෙය පිළිතුරු දෙන්නේ කෙසේද?
gnat

4

ජොයෙල් ස්පොල්ස්කි මේ පිළිබඳව විශිෂ්ට ලිපියක් ඇත: ඔබ කිසි විටෙකත් නොකළ යුතු දේවල්, 1 කොටස

ඔබට පැවසිය හැකි මාතෘකාවෙන්, එහි එක් පැත්තක් (ඔහු කතා කරන්නේ ඔබ කිසි විටෙකත් කේතය විසි නොකළ යුත්තේ ඇයිද යන්න ගැන ය) IMO, එහි බොහෝ සත්‍යයන් ඇත, මෑතකදී මම එක්සෙල් 25 වන සංවත්සරය වෙනුවෙන් චැනල් 9 වීඩියෝවක් දුටුවෙමි. අද පවා ඔබ මූලාශ්‍රය සොයා බැලුවහොත් ඔබ සංශෝධනය පරීක්ෂා කර වසර 20 කට පෙර ලියා ඇති එක්සෙල් භාවිතා කළ කේතය වෙත ආපසු යනු ඇත.

ඔබට 100% ක් විශ්වාස කළ නොහැකිය (නෙට්ස්කේප් පවා වැරදි කළ විට (ජොයෙල්ස් ලිපියෙන් ), මට හැඟුණේ ජොයෙල්ගේ ලිපිය දෙවියන් විසින් එවන ලද්දක් ලෙසය , මන්ද මට අශුභවාදී විය හැකි අතර කේත ඉවතලෑමට ආදරය කළ හැකි නිසා මට එය තත්පරයකට වඩා හොඳින් ලිවිය හැකිය කාලය, නමුත් මම දැන් තේරුම් ගත්තා මේ සඳහා විශාල මුදලක් වැය වන බව .

ස්ථිර පිළිතුරක් ලබා දීම සඳහා, මම ඔබට කියනුයේ ඔබ පිරිවැය හා වටිනාකම් විශ්ලේෂණය කළ යුතු බවයි.

මගේ තාත්වික ලෝකය: මම සංවර්ධනය කරන v0.6 රිදී ආලෝකකරණ යෙදුමක් මේ දක්වා අසංක ඇමතුම් අවුල් ජාලයක් ඇති අතර එමඟින් කේතය එතරම් කැටි ගැසී ඇත. මම මේ සතියේ ප්‍රතික්‍රියා දිගු සොයාගත් බැවින් බොහෝ කේත නැවත ලිවීමට මට අවශ්‍යය, නමුත් දැන් මම මගේ ගනුදෙනුකරුට කුමක් කියන්නද? වැඩසටහන ඉතා හොඳින් ක්‍රියාත්මක වේ (සමහර මතක කාන්දු වීමත් සමඟ) නමුත් ඒවා ගණන් ගන්නේ නැද්ද? මට යමක් නැවත කිරීමට අවශ්‍ය නිසා මට තව සති 2-3 ක් ගත වන බව ඔවුන්ට පැවසිය නොහැක. කෙසේ වෙතත්, මම මගේ නිදහස් කාලය තුළ කේතය අතුගා දමා නැවත ලිවීමට / සෙල්ලම් කිරීමට යන්නෙමි .

මගේ ශත 2 හොඳයි!?


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

අතු බෙදීම සඳහා +1. බොහෝ අය පවසන්නේ "නැවත ලිවීම නොකරන්න" ඔබ පැරණි කේතය විසි කරන බවක් පෙනෙන නිසා - නමුත් ඔබ එසේ නොවේ. ඔබට සමාන්තර කේත පදනම් තිබිය හැකිය.
lunchmeat317

ඇත්තම කිව්වොත්, ඔබ ජොයෙල් ස්පොල්ස්කිගෙන් උපදෙස් ඉල්ලන පුද්ගලයෙක් නම්, ඔබ සම්පූර්ණ නැවත ලිවීමක් නොකළ යුතුය :-) වෙනත් ආකාරයකින්, ඔබ නැවත ලිවිය යුත්තේ ජොයෙල්ගේ තර්ක ගණන් නොගන්නේ මන්දැයි සියලු පාර්ශවකරුවන්ට ඒත්තු ගැන්විය හැකි නම් පමණි. ඔබේ විශේෂිත අවස්ථාවෙහිදී.
gnasher729

2

කිසි විටෙකත්, සෑම විටම ප්‍රතික්‍රියාකාරකය - සත්‍යය නම් කේතය ඔබ විසින් ලියා ඇත්නම් - ඔබට මීට වඩා හොඳ දෙයක් කිරීමට නොහැකි වනු ඇත.

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

සෑම දෙයක්ම කළු පෙට්ටියක් ලෙස සැලසුම් කළ යුතුය. මොඩියුලර්, සරල ඒපීඅයි, ඇතුළත ඇති දේ ... එය අඩු වැදගත්කමක් ඇත :) ඔබට ස්පැගටි තිබේ නම් ඔබට එය කළු පෙට්ටියක් තුළ වසා දැමිය හැකිය, එබැවින් එය හොඳ කේතයක් දූෂණය නොකරනු ඇත.


නියමයි, ස්ලාවෙක්! extremeprogramming.org/rules/refactor.html
ලූකස් ඊඩර්

+1 මම ඔබේ මතයට කැමතියි, නව API කට්ටලයකට නැවත ලිවීම පිළිබඳ ඔබේ අදහස් දැන ගැනීමට කැමතිද? (මගේ පිළිතුර පහත බලන්න)
ගිඩියොන්

ඔව්, මේවා හොඳ කරුණු. මයික්‍රොසොෆ්ට් විසින් වින්එක්ස්පී කේතය නැවත ලිවූ අතර ඔවුන්ට පළමු විස්ටා සිල්ලර අනුවාදයෙන් ලිපිගොනු මකාදැමීමට / පිටපත් කිරීමට පවා නොහැකි විය. ඔවුන් කේත පදනම ඉදිරියට යමින් සිටියදී අපට නිරන්තරයෙන් වඩා හොඳ තත්ත්වයක් ලැබෙනු ඇත (W3.11 => W95 => W98 => ME => XP), ඔවුන් බොහෝ මූලික කොටස් නැවත ලිවූ විස්ටා ව්‍යසනයකි. නව API සඳහා ... මම දැනට පවතින කේතය මට හැකි තරම් වෙන් කර වෙන් කර, ඉහළ ස්ථරයේ නව API භාවිතා කරමි. උදා. ඔබේ මූලික පංති එලෙසම පවතී, නමුත් ඒකාබද්ධ කිරීම නව API භාවිතා කරයි. 0 සිට ආරම්භ කිරීම හැර වෙන කිසිවක් කළ නොහැකි තරමට සියල්ල අවුල් සහගත නොවේ නම්
ස්ලාවෙක්

1
"... සත්‍යය නම් කේතය ඔබ විසින් ලියා ඇත්නම් - ඔබට මීට වඩා හොඳ දෙයක් කිරීමට නොහැකි වනු ඇත." මට ප්‍රමාණවත් නියෝජිතයෙකු සිටී නම් මෙම තනතුරට ඡන්දය දෙන්න. එය පරාජිත, යථාර්ථවාදී නොවන අතර එයින් ගම්‍ය වන්නේ යම් ආකාරයකින් මිනිසුන්ට ඉදිරියට යා නොහැකි බවයි. ඔවුන් ලියන කේතය ඔවුන් අතීතයේ ලියා ඇති කේතයේ වැඩිදියුණු කිරීමකි.
JᴇᴇMᴇᴇ

1
@ JᴀʏMᴇᴇ: එකඟයි - ඔබ පළමු වරට කිසිවක් ක්‍රියාවට නංවා අත්දැකීම් ලබා නොගත්තේ නම් සහ / හෝ ඔබට වඩා හොඳ රැකියාවක් කළ නොහැකි නම් ඔබට වැඩි දැනුමක් / පළපුරුද්දක් / පසු විපරමක් තිබේ නම්; එවිට ඔබ අර්තාපල් මිස ක්‍රමලේඛකයෙකු නොවේ.
බ්‍රෙන්ඩන්

2

නැවත ලිවීම යුක්ති සහගත කිරීමට ප්‍රධාන හේතුව වේදිකා වෙනස්වීම් බව මම සිතමි. උදාහරණයක් ලෙස, ඔබ සතුව වින්ඩෝස් ඩෙස්ක්ටොප් GUI යෙදුමක් තිබේ නම් සහ සමාගමේ හිමිකරු තීරණය කරන්නේ ඊළඟ අනුවාදය වෙබ් පාදක යෙදුමක් වීමට අවශ්‍ය බවය. සෑම විටම නොවුනත්, මගේ අත්දැකීම් අනුව බොහෝ විට මෙය නැවත ලිවීමක් අවශ්‍ය වනු ඇත, මුල් සංවර්ධකයින් ඉතා මොඩියුලර් සහ නැවත භාවිතා කළ හැකි කේතයක් ලියා ඇත්නම් මිස (කිසිසේත්ම සිදු නොවේ).


2

ජොයෙල්ට අනුව, විශාල නැවත ලිවීම යනු සමාගමකට කළ හැකි නරකම උපායමාර්ගික වැරැද්දයි :

ඔබ කිසි විටෙකත් නොකළ යුතු දේවල්, 1 කොටස

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

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


5
ඔව්. මම ඒ සඳහා ප්‍රතිප්‍රහාර කිහිපයක් සොයමින් සිටියෙමි. එය සමහර විට කළ යුතුය.
ජෝන්

3
ජොයෙල්ගේ ලිපියට යොමු නොකර සෑම නැවත ලිවීමේ තර්කයක්ම සම්පූර්ණ නොවේ. මා පවසන දෙය, ලිපියට හොඳ කරුණු කිහිපයක් ඇති නමුත්, ඔබම සිතන්න. සමහර විට ඔබ ලිපිය සමඟ එකඟ වන්නේ මන්දැයි ඔබ පැවසිය යුතුය. මම ජොයෙල් සමඟ පෞද්ගලිකව එකඟ නොවෙමි - මන්දයත් සමහර විට ඔබ නව වළක් හාරා ගැනීම වඩා හොඳ නිසා ඔබ තව දුරටත් වළට වැටීමට වඩා ශෝකය අවසන් වේ. කෙසේ වෙතත්, නැවත ලිවීම, මම සිතන්නේ, එම ගුප්ත ව්‍යාපාර ක්‍රියාවලීන් නැවත ඇගයීම සඳහා මතුපිටට ගෙන එනු ඇත.
අහමඩ්

නරක දේ සිදුවිය හැකි ආකාරය ප්‍රවේශමෙන් පැහැදිලි කරන බැවින් ජොයෙල්ස් ලිපිය හොඳයි .

6
ජොයෙල් නෙට්ස්කේප් නැවිගේටර් බ්‍රව්සරයේ උදාහරණයක් භාවිතා කරයි. එය විශාල අයවැයක් සමඟ තරඟයට එරෙහිව වැඩ කරන දැවැන්ත වර්ධන වක්‍රය මධ්‍යයේ පැවති පාරිභෝගික නිෂ්පාදනයක්. එය නෙට්ස්කේප් සඳහා උපායමාර්ගික වැරැද්දකි. අනෙක් අතට, අභිරුචි අභිරුචි "ව්යවසාය" මෘදුකාංග ව්යාපෘති වෙනස් වේ. ඔබ වෙළඳපල කොටස සඳහා ඉක්මන් නොවේ. ඔබගේ සියලු පරිශීලකයින් තරඟකාරී නිෂ්පාදනයක් වෙත යාමේ අනතුරක් නොමැත. එය ව්‍යාපාරික තීරණයකට එළඹේ: නැවත ලිවීමේ පිරිවැය දිගු කාලීනව තමාටම ගෙවනු ඇත්ද සහ / හෝ ව්‍යාපාර අරමුණු සාක්ෂාත් කර ගැනීම සඳහා හොඳම ක්‍රමයද?
ස්කොට් විට්ලොක්

මම සිතුවේ ජොයෙල් ප්‍රධාන සංකල්පයට පහර දුන් බවයි, “ඔබ අමාරු ක්‍රමයක් ඉගෙන ගත යුතු බවට ලේඛනගත කර නොමැති තීරණ මොනවාදැයි ඔබ කිසි විටෙකත් නොදනී”
MathAttack

2

"මම XI වෙත යන්නේ නම් මෙතැන් සිට ආරම්භ නොවේ" යන්න පිළිබඳ සම්භාව්‍ය විහිළුවක් තිබේ.

මම වරක් රැකියාවක් කළෙමි, එහිදී සේවායෝජකයාගේ මූලික අභිප්‍රාය වූයේ ව්‍යාපාර විවේචනාත්මක යෙදුමක දීර් overd කාලයක් තිස්සේ නැවත ලිවීම දියත් කිරීම සඳහා කුසලතා නැව තුළට ගෙන ඒමයි. මා ඇසීමට අපොහොසත් වූ ප්‍රශ්නය නම්, ඔබ මෙම තත්වයට මුල් තැන දුන්නේ ඇයි? හේතුව රතු කොඩියක් විය යුතුව තිබුණි

  • මෘගයා නඩත්තු කිරීම සහ වැඩි දියුණු කිරීම සඳහා ක්‍රියාකාරීත්වය එක් කිරීමට අධික පීඩනය,

  • දෙපාර්තමේන්තුවේ ඇති හැකියාව අඩුයි,

  • වර්ධක වැඩ සඳහා සේවාදායකයින්ගෙන් හෝ කළමනාකරණයෙන් මිලදී ගැනීම ඉතා අල්පය,

හෝ කුමක් වුවත්, ගැටළුව නොඉවසිය හැකි මට්ටමකට ළඟා වන තුරු මෙය දුරස් වේ.

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


2

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

ඒ වෙනුවට, කළමනාකරණ කනස්සල්ල සමනය කිරීම සඳහා නැවත ලිවීම බොහෝ විට සිදු වේ:

  • සෑම දෙයක්ම .NET,
  • අපගේ සංවර්ධකයින් පවසන්නේ අපගේ කේතය උරා බොන බවයි,
  • අපි තාක්‍ෂණිකව පසුබසිනවා,
  • අපගේ පද්ධතියට සහය දැක්වීම සඳහා සම්පත් සොයා ගැනීමට අපට නොහැකි වනු ඇත.
  • දැන් අවුරුදු දහයක් ගත වී ඇත.

මෙම කනස්සල්ලෙන් බොහොමයක් ඉටු නොවනු ඇති අතර ඒවා එසේ වුවහොත් ඒවා හැසිරවිය හැකිය. කෙසේවෙතත්, එම අන්තිම එක නරකම දෙයකි. එය අත්‍යවශ්‍යයෙන්ම: අපට හේතුවක් නැත.

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

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

මෑත වසරවලදී අපට විශාල ගිණුම් දිනා ගැනීමේ අවස්ථාව අහිමි වී ඇත්තේ අපට ඔවුන්ගේ අවශ්‍යතා කාලෝචිත හෝ මිල අධික ආකාරයකින් සපුරාලීමට නොහැකි වූ බැවිනි. අභිරුචිකරණයන් ප්ලග් ඉන් කිරීමට ඉඩ දෙන විස්තාරණ ගෘහ නිර්මාණ ශිල්පයක් භාවිතා කර අපගේ පද්ධතිය නැවත ලියනු ලැබේ (අප දැනට කරන ආකාරයට දෘ c කේත කර නැත). මෙය විශේෂ අවශ්‍යතා සහිත ගනුදෙනුකරුවන්ට නවාතැන් ගැනීමේ කාලය හා පිරිවැය නාටකාකාර ලෙස අඩු කරනු ඇත. අපි තවත් ගිණුම් දිනා අපගේ වර්තමාන ගනුදෙනුකරුවන්ගේ අවශ්‍යතා වඩා හොඳින් සපුරාලන්නෙමු.


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

1

අපේක්ෂිත ක්‍රියාකාරිත්වය සැපයීම සඳහා සම්පූර්ණයෙන්ම නව තාක්‍ෂණයකට ගමන් කරන විට අවශ්‍ය වේ.

"සම්පුර්ණයෙන්ම අළුත්": ඔබ නැවත ලිවීමට සැලසුම් කර එකම වේදිකාවක් භාවිතා කිරීමට අදහස් කරන්නේ නම්, ප්‍රතිනිර්මාණය හා විනිශ්චය ප්‍රතිව්‍යුහගත කිරීම වඩා හොඳ විසඳුමකි. මෙහි භාවිතා වන පරිදි “වේදිකාව” තරමක් අපැහැදිලි ය - එය භාෂාව ඇතුළත් කිරීම ලෙස සලකන්න, සමහර විට මෙහෙයුම් පද්ධතිය (ලිනක්ස් සිට වින්ඩෝස් දක්වා විහිදේ හෝ අනෙක් අතට මතකයට එයි), නමුත් බොහෝ විට රාමුවක් නොවේ (උදා: ස්ට්‍රට්ස් වසන්තය වෙනුවට).

"අපේක්ෂිත ක්‍රියාකාරීත්වය සැපයීමට අවශ්‍යයි": 2000 දී පමණ, මම ජාවා හි ප්‍රධාන සේවාදායක අංගයක් C ++ වෙතින් නැවත ලිවීමේ ව්‍යාපෘතියක් ආරම්භ කළෙමි. එය පිටතින් නූල් දැමීම, වස්තු හැඹිලිය සහ සේවාදායකයා විසින් පාලනය කරන ලද ගනුදෙනු සක්‍රීය කිරීම සඳහා ය. ඒ වන විට C ++ සඳහා බහු නූල් පුස්තකාල තිබූ අතර අපට සහාය වීමට සිදුවනු ඇති අතර අපගේ දත්ත සමුදා කේතයෙන් වැඩි ප්‍රමාණයක් නූල් සක්‍රීය කිරීමෙන් සම්පූර්ණ නැවත ලිවීමක් අවශ්‍ය වනු ඇත. සේවාදායකයින් විසින් පාලනය කරනු ලබන ගනුදෙනු සඳහා ... පැරණි ගෘහ නිර්මාණ ශිල්පය සමඟ සිදු නොවේ.

වර්තමාන පද්ධතියේ හැසිරීම පිළිබඳ සවිස්තරාත්මක දැනුමක් මා සතුව තිබීම හැර, නැවත ලිවීම සිදු කරනු ඇතැයි මට විශ්වාස නැත. එය සාපේක්ෂව පිරිසිදු කේතයක් වන අතර එහි අවුරුදු 11 ක කාලය තුළ ඉන්නන් විශාල ප්‍රමාණයක් වර්ධනය වී නොමැත.


0

ඔබ ආරම්භ කළ යුතු ස්ථානය තීරණය කිරීම සඳහා, ඔබේ වර්තමාන ව්‍යාපෘතියේ අඛණ්ඩව පවත්වාගෙන යාමේ වටිනාකම නැවත ආරම්භ කිරීමේ වටිනාකමට වඩා අඩු වන්නේ කොතැනදැයි ඔබ සොයා බැලිය යුතුය.

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


0

මගේ මෙට්‍රික් සමඟ, නැවත ලිවීම සාධාරණීකරණය කිරීම සඳහා ඔබට කොන්දේසි දෙකක් සපුරාලිය යුතුය:

  1. නැවත ලිවීමෙන් පසු නව විශේෂාංග ලිවීමට පහසු / ඉක්මන් / අඩු දෝෂ සහිත වනු ඇත
  2. නැවත ලිවීම වත්මන් නව අංගය එකතු කිරීමට වඩා අඩු හෝ සමාන කාලයක් ගතවනු ඇත.

එසේ වුවද ඔබේ නැවත ලිවීමේ විෂය පථය සීමා කිරීමට ඔබට අවශ්‍යය. නිදසුනක් ලෙස, මොඩියුලරිටි බව නොදන්නා සී ක්‍රමලේඛකයෙකුගේ මනස සමඟ සී ++ හි ලියා ඇති සමාගමක පැරණි මෘදුකාංග කිහිපයක් අප සතුව තිබුණි. අවසාන ප්‍රති result ලය වූයේ බහු පන්ති සහ ඩීඑල්එල් දක්වා විහිදුණු සීමිත රාජ්‍ය යන්ත්‍රයක ස්වරූපයෙන් ස්පීගෙටි කේතයයි. අපට නව අවශ්‍යතාවයක් ඇති අතර එය කේතය තුළ ගොඩනගා ඇති උපකල්පනවලට වඩා බෙහෙවින් වෙනස් වන අතර සමාගමේ පේටන්ට් බලපත්රලාභී අගය එකතු කිරීමේ කොටසක් එහි ගනුදෙනුකරුවන්ට ලැබෙනු ඇත.

වෙනත් විශේෂාංග ක්‍රියාත්මක කරමින් කේතය සමඟ කාලය ගත කිරීමෙන් පසුව, මට වෙනස් කළ යුතු ස්විච් ප්‍රකාශ කිහිපයෙන් කවරක් දැයි දැන ගැනීමට මට හොඳ අදහසක් තිබුණි. මගේ යෝජනාව වූයේ කේතයේ කොටස නැවත ලිවීමයි විශාල සීමිත රාජ්‍ය යන්ත්‍රය - පවතින කේතය දිගු කිරීමට වඩා අඩු කාලයක් ගත විය යුතුය. තුනකට පෙර තිබූ එක් ඩීඑල්එල් එකකට ඒකාබද්ධ කිරීමට මට හැකි වූ අතර, වඩාත් ක්‍රියාකාරී වස්තු නැඹුරු ව්‍යුහයක් සැපයීමට හැකි වූ අතර එමඟින් නව ක්‍රියාකාරිත්වය එක් කිරීම පහසු කිරීමත් සමඟම විවේචනාත්මක නව ක්‍රියාකාරිත්වය කිරීම පහසු වනු ඇත.

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


0

OP ව්‍යාපෘතියේ විෂය පථය දක්වන්නේ නැත, නමුත් මා ගත් ප්‍රධාන හෝඩුවාව “පැරණි [භාෂාවෙන් / උපභාෂාවෙන්] පැරණි [ලිබ්] භාවිතා කර ලියා ඇත”, එය නැවත ලිවීමේ මූලික ධාවක වේ. ඇත්ත වශයෙන්ම, මම ඕනෑම සැලකිය යුතු වෙළඳපල දීර් onge ායුෂයක් කර ඇති බොහෝ ව්‍යාපෘති අවසානයේ තේරුම් ගන්නේ කේත සම්පාදක නඩත්තු කිරීමේදී සම්පාදකයින් / පරිවර්තකයන් / මෙහෙයුම් පද්ධති සඳහා යාවත්කාලීන කිරීම් වැදගත් කාර්යයක් බවයි.

කෙටියෙන් කිවහොත්, නැවත ලිවීම අදියර වශයෙන් සැලසුම් කරමි. සමහර විට ඔබට වෙනත් ප්‍රශස්තිකරණයන්හි සැරිසැරීමට හැකිය, නමුත් පසුකාලීන අවධියකට යම් යම් වෙනස්කම් කල් දැමීමට ඔබ සැලසුම් කර තිබීම කාලසටහනට අනුව සිටීමට සහ "හිරවී" සිටීම වළක්වා ගැනීමට හොඳ ක්‍රමයක් විය හැකිය.


0

මම දැනට පවතින කේත පදනම ඉවත දැමිය හැකි උපකල්පිත අවස්ථා මට සිතාගත හැකිය (බකල් බෝලවල බර හා පරිමාව ඇති උපකල්පිත තත්වයන්, නොසලකා හරින ලද විශේෂාංග සහ දෝෂ එකතු කිරීමට අප පොරකන විට සති හෝ මාසවල tivity ලදායිතාව නැති වුවහොත් කිසිවෙකු ගණන් ගන්නේ නැත. පද්ධතියට විසඳුම් ලබා දෙන අතර, පද්ධතිය විසින් එතරම්ම සුළු හා වෛරයට ලක්ව ඇති තැනක, සර්වරයන්ගේ මුළු දේම සහ හමුදාවම නොට්පෑඩ් ++ සහ නෙට්බුක් සමඟ විනාඩි දහයකින් ප්‍රතිස්ථාපනය කර සෑම කෙනෙකුගේම tivity ලදායිතාව සහ සදාචාරය ඉහළ නැංවිය හැකිය.)

ඕනෑම තාත්වික ලෝක වාතාවරණයක් සඳහා මම නිර්දේශ කරමි. ^ _ ^. ලේඛනගත නොකළ නෛතික හා ව්‍යාපාරික අවශ්‍යතා උත්පතන වීමට පටන් ගන්නා විට සහ නැවත ලිවීමට සෑහෙන සැඟවුණු, බලාපොරොත්තු නොවූ පිරිවැයක් ඇති අතර අවසාන මොහොතේ දේවල් එකට අනවසරයෙන් ඇතුළුවීම ආරම්භ වේ.

== වඩා හොඳ සඳහා ප්‍රතිස්ථාපනය කිරීම සහ දේවල් ==

පැරණි පැරණි වර්ධක ප්‍රවේශය සමඟ පැරණි කේතය ප්‍රතිනිර්මාණය කිරීම,

  1. ඔබට යූඑම්එල් වෙත පරිවර්තනය වීමට අවස්ථාවක් ඇත්නම් සහ එහි ඇති කුඩා ගෘහ නිර්මාණ ශිල්පය ලේඛනගත කරන්න.
  2. ඔබ අනුවාද පාලනයේ සිටී නම්, කේත කේත වාර්තා ජනනය කිරීම සහ බොහෝ විට වෙනස් කර ඇති ගොනු සහ ගොනු කොටස් මොනවාදැයි සොයා බලන්න. මේවා ගැන සටහනක් තබන්න, මන්ද ඒවා ඔබට මුලින්ම ගනුදෙනු කිරීමට අවශ්‍ය ක්ෂේත්‍ර විය හැකි බැවිනි.
  3. ඔබ ඕනෑම කේතයක් වෙනස් කිරීමට පෙර සෑම විටම පරීක්ෂණ ආවරණයක් එක් කිරීමට උත්සාහ කරන්න (අවලස්සන පූර්ණ සිරස් ක්‍රියාකාරී පරීක්ෂණ පවා කරනු ඇත). විශාල අවුල් සහගත ක්‍රියා පටිපාටි කේත නිස්සාරණ තර්කනය සමඟ කටයුතු කරන්නේ නම්, ඔබ සාධාරණ ලෙස නම් කරන ලද ක්‍රමයක් හෝ ශ්‍රිතයක් බවට වෙනස් කිරීමට අදහස් කරන අතර හැකි නම් ඔබේ නව ක්‍රමය සත්‍යාපනය කරන පරීක්ෂණ අවස්ථා කිහිපයක් එකතු කරන්න. ඔබට කළ යුතු ඕනෑම දෙවියන්ගේ භයානක හැක් කරන්න, හැකි නම් එය ආන්තික පළල හෝ මාතෘකාව වැනි පොදුවේ වෙනස් කළ දෙයක් නම් වෙනස පරාමිතිකරණය කරන්න, එවිට එය ඊළඟ වතාවේ යාවත්කාලීන කිරීමට තව ටිකක් forward ජුව ඉදිරියට යනු ඇත.
  4. ඇඩැප්ටරයේ රටාව භාවිතා කර තාර්කිකව නම් කරන ලද පංති හා ක්‍රමවේදයන් යටතේ උරුම කේතයේ බිටු සැඟවීමට කටයුතු කරන්න, එවිට ඔබ සහ අනෙකුත් සංවර්ධකයින් විසින් සිදු කරනු ලබන බොහෝ පොදු කාර්යයන් සඳහා ඔබ පිටුපසින් යන බියජනක බිටු ගැන කරදර විය යුතු නැත. ඔබ එම උරුම කේතය පිටුපස සඟවා ඇති ලස්සන කුඩා පිරිසිදු ක්‍රම සහ පංති පිටුපස - විකෘති මිනීමරු පිල්ලියක් හිටපු පවුලේ සාමාජිකයන් අාර් ඒන් තුළ තබා ඇති යහපත් පවුල් මෙන්, එදිනෙදා කටයුතුවල නරක් නොවීමට. ගොවිපල. . . සාමාන්යයෙන්.
  5. ඔබ දිගින් දිගටම සුදුමැලි වී කේතයේ කොටස් පිරිසිදු කරන විට ඔබේ පරීක්ෂණ ආවරණය වැඩි කරයි. දැන් ඔබට ඊටත් වඩා ගැඹුරට හාරා, අවශ්‍ය විටෙක / වැඩි වැඩියෙන් විශ්වාසයෙන් යුතුව අවශ්‍ය විටෙක / නැවත ලිවීමට හැකිය.
  6. ඔබේ කේත පදනම වැඩි දියුණු කිරීම සඳහා නැවත නැවත ප්‍රතික්‍රියා කිරීමේ ප්‍රවේශයන් නැවත කරන්න.

වියුක්ත කිරීම මගින් ශාඛා කිරීම

  1. ඔබට ඉවත් කිරීමට අවශ්‍ය කේතයේ ඇති කරදරකාරී ස්ථානය නිර්වචනය කරන්න (නොනැසී පවතින ස්තරය, පීඩීඑෆ් උත්පාදක යන්ත්රය, ඉන්වොයිසි ගණනය කිරීමේ යාන්ත්‍රණය, විජට් උත්පාදක යනාදිය).
  2. සාමාන්‍ය හැසිරීම සමඟ මෙම ක්‍රියාකාරිත්වය ඉලක්ක කරන කේත පදනමට එරෙහිව සමහර ක්‍රියාකාරී පරීක්ෂණ අවස්ථා (ස්වයංක්‍රීය හෝ අත්පොත නමුත් ඔබ ස්වයංක්‍රීයව දනී) ධාවනය කරන්න (අවශ්‍ය නම් ලියන්න).
  3. එම සංරචකයට අදාළ තර්කනය පවත්නා ප්‍රභව පදනමේ සිට යම් සාධාරණ අතුරු මුහුණතක් සහිත පන්තියකට උපුටා ගන්න.
  4. කේතය පුරා අහඹු ලෙස විසුරුවා හරින ලද X ක්‍රියාකාරකම් සිදු කිරීම සඳහා සියලු කේත දැන් නව අතුරු මුහුණත භාවිතා කරන බව තහවුරු කරන්න (කේත පදනම ග්‍රහණය කර, නව පන්තියට හෝඩුවාවක් එක් කරන්න සහ එය කැඳවිය යුතු පිටු සත්‍යාපනය කරන්න, ආදිය), සහ තනි ගොනුවක් වෙනස් කිරීමෙන් කුමන ක්‍රියාත්මක කිරීම භාවිතා කළ හැකිද යන්න ඔබට පාලනය කළ හැකිය. (වස්තු ලේඛකාධිකාරය, කර්මාන්තශාලා පන්තිය, ඕනෑම IActivityXClass = සැකසීම්. ඇසිටිව්ටිඑක්ස්ඉම්ප්ලිමර් ();)
  5. සෑම දෙයක්ම සත්‍යාපනය කරන ක්‍රියාකාරී පරීක්ෂණ අවස්ථා නැවත ක්‍රියාත්මක කරන්න ඔබගේ සියලු ක්‍රියාකාරකම් X විසි කිරීම් සමඟ ඔබේ නව පන්තියට ක්‍රියාත්මක වේ.
  6. නව ක්‍රියාකාරකම් X එතීමේ පන්තිය වටා හැකි සෑම තැනකම ඒකක පරීක්ෂණ ලියන්න.
  7. උරුමය පන්තියට සමාන අතුරු මුහුණතක් අනුගමනය කරන උරුමය ක්‍රියාත්මක කිරීමට වඩා අඩු උමතු ස්පැගටි තර්කනයක් සහිත නව පන්තියක් ක්‍රියාත්මක කරන්න.
  8. නව පන්තිය ඔබ උරුම පන්තිය සඳහා ලියූ ඒකක පරීක්ෂණ සමත් බව තහවුරු කරන්න.
  9. පැරණි පන්තිය වෙනුවට නව පන්තිය භාවිතා කිරීම සඳහා රෙජිස්ට්රි / ෆැක්ටරි මෙතඩ් / ඕනෑම දෙයක් වෙනස් කිරීමෙන් ඔබේ කේතය යාවත්කාලීන කරන්න.
  10. ඔබගේ ක්‍රියාකාරී පරීක්ෂණ තවමත් සමත් බව තහවුරු කරන්න.

සංවෘත මූලධර්මය සහ පොදු ව්‍යාපාර තර්කනය / ස්ථර ස්ථරය විවෘත කරන්න

ඔබගේ ඉදිරිපත් කිරීම, ව්‍යාපාර සහ නොනැසී පවතින ස්තරය වෙන් කිරීම සහ උරුම විසඳුම සමඟ සම්පුර්ණයෙන්ම පසුපසට අනුකූල වන නව යෙදුමක් ලිවීමෙන් ඔබට යම් දුරකට ගැලවිය හැකිය, නැතහොත් අවම වශයෙන් උරුම විසඳුමෙන් ආදානය කළ දත්ත හැසිරවිය හැකිය. මම බොහෝ විට මෙම ප්‍රවේශය නිර්දේශ නොකරමි නමුත් සමහර විට එය කාලය / කාලසටහන / සම්පත් / අවශ්‍ය නව ක්‍රියාකාරිත්වය පිළිබඳ සාධාරණ සම්මුතියකි.

  • අවම වශයෙන් ඉදිරිපත් කිරීමේ ස්තරය ව්‍යාපාරයෙන් හා නොනැසී පවතින ස්ථර වලින් වෙන් කරන්න.
  • එකම පොදු ව්‍යාපාරයක් සහ අඛණ්ඩ ස්ථරයක් භාවිතා කරන නව ui සහ වඩා හොඳ ඉදිරිපත් කිරීමේ ස්තරයක් ක්‍රියාත්මක කරන්න.
  • නව ui සමඟ සාදන ලද දත්ත පැරණි ui බිඳ නොදමන බව තහවුරු කරන්න. (නව මෙවලම භාවිතා කරන්නන් පැරණි මෙවලම භාවිතා කරන්නන්ට බාධා කළහොත් ඔබ උණු වතුරේ සිටිනු ඇත). ඔබ සම්පූර්ණ පසුගාමී අනුකූලතාව සඳහා උත්සාහ කරන්නේ නම්, ඔබ එකම ස්ථර වලට සියල්ල ඉතිරි කළ යුතුය. ඔබට නව මෙවලම සමඟ ඉදිරියට ගැළපීමට අවශ්‍ය නම්, නව දත්ත ගබඩාවක් සහ නව වගු හෝ දිගු වගු භාවිතා කර පැරණි පද්ධතියේ නොවන දත්ත සොයා ගැනීමට.
  • නව ක්‍රියාකාරීත්වය සහ අඛණ්ඩ ස්ථර අවශ්‍යතා සඳහා නව වගු එකතු කරන්න සහ ක්‍රම මඟින් පවතින උරුම තර්කනය වෙනස් නොකරයි, නැතහොත් තීරු එකතු කරන්න, පවතින වගු වලට බාධක. උදා: ඔබට සේවා යෝජකයන්ගේ හදිසි සම්බන්ධතා ලුහුබැඳීම ආරම්භ කිරීමට අවශ්‍ය නම් සහ වෙනත් ක්ෂේත්‍රයන් දැනට පවතින සේවක වගුව වෙනස් නොකරන්නේ නම් (එම වගුව පිළිබඳ උරුම දත්ත මගින් උපකල්පනය කරන්නේ කුමක් දැයි අපට අදහසක් නැත) සේවක_එක් හැඳුනුම්පත, සේවක_අයිඩී, හදිසි_ සම්බන්ධතා_අයිඩී, ආදිය එකතු කරන්න.
  • නව පද්ධතියට පරිශීලකයින් සෙමින් සංක්‍රමණය කරන්න. හැකිනම් උරුම පද්ධතිය කියවීමට පමණක් ප්‍රකාරයට දමන්න, නැතහොත් පරිශීලකයින්ට පවසන අනතුරු ඇඟවීමක් එක් කරන්න X දිනයෙන් පසුව එය තවදුරටත් නොලැබේ.
  • නව ui හි කිසියම් ප්‍රමුඛතා මඟ හැරුණු ක්‍රියාකාරීත්වයක් හෝ ව්‍යාපාර අවශ්‍යතා ක්‍රියාත්මක කරන්න
  • පරිශීලකයින්ගේ පදනම මත රෝල් කරන්න.
  • ව්‍යාපාර තර්කනය සහ ස්ථර ස්ථර භාවිතා කරන්නන් වෙනත් ප්‍රතිනිර්මාණය කිරීමේ ක්‍රමවේදයන් පිරිසිදු කිරීම දිගටම කරගෙන යන්න.

0

Refactor vs Rewrite අවකාශයේ තුන්වන කාණ්ඩයක් ඇති බව මම කියමි ... තවද එය ඔබේ භාෂා අනුවාද, සම්පාදක සහ පුස්තකාල යාවත්කාලීන කරයි ... සමහර විට නවීන කේතීකරණ ක්‍රමවේදයන් අනුගමනය කිරීමෙන් විශාල වාසියක් ඇත.

උදාහරණයක් ලෙස C # ගන්න, v7 කේතය v2 ට වඩා පිරිසිදු, ආරක්ෂිත සහ වඩා සංක්ෂිප්තව ලියයි .. එල්විස් සහ ශුන්‍ය සිසිලන ක්‍රියාකරු වැනි දෑ ටොන් ගණනක් උපකාරී වේ.

සම්පාදකයින් මාරු කිරීමෙන් පැරණි කේතයට නව ජීවයක් ලැබෙනු ඇත. නව පුස්තකාල සමඟ වැඩ කිරීමට සහ ක්‍රියාත්මක කිරීමට පහසු වන පරිදි ... ජාලකරණය යනු ක්‍රියාත්මක කිරීමේ දුෂ්කරතාවයේ වර්ණාවලියක් සඳහා විශිෂ්ට උදාහරණයකි.

එසේම- කාවැද්දූ ලිනක්ස් පද්ධති ... නව මෙවලම් ස්ථාපනය කිරීම ගැන සිතන්න- svn වෙතින් git වෙත මාරු වන්න. හෝ ඔබේ පද්ධතියට Vi එක් කරන්න.

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


-2

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

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

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

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.