ฉันค่อนข้างบางส่วนกับบทสรุปของ Wikipediaเอง:
ระบบเดิมเป็นวิธีการเก่าเทคโนโลยีระบบคอมพิวเตอร์หรือโปรแกรมแอปพลิเคชันที่ยังคงใช้งานตามปกติเนื่องจากยังคงใช้งานได้ตามความต้องการของผู้ใช้แม้ว่าจะมีเทคโนโลยีที่ใหม่กว่าหรือวิธีที่มีประสิทธิภาพมากขึ้นในการทำงาน
สิ่งที่คนอื่น ๆ อธิบายไว้ในคำตอบของพวกเขานั้นเป็นเหตุผลว่าทำไมรหัสจึงกลายเป็น "มรดก" แต่คำถามสำคัญก็คือ:
แต่มันยังคงใช้ในระบบการผลิต - ดังนั้นมันจึงเป็นมรดกจริงๆ และอะไรทำให้เป็นมรดก
ความจริงที่ว่ามันจะยังคงใช้ในการผลิตเป็นสิ่งที่ทำให้มันเป็นมรดก หากรหัสไม่ทำงานอย่างถูกต้องหรือไม่ได้ใช้ในการผลิตอีกต่อไปแสดงว่ารหัสนั้น "เสียหาย" หรือ "ปลดเกษียณ" ตามลำดับ มรดกหมายความว่ามันยังคงใช้งานอยู่และทำงานได้ดี แต่รวมเอาการออกแบบหรือเทคนิคที่ไม่ได้ใช้งานทั่วไปอีกต่อไป
รหัสหรือระบบใด ๆ ที่คุณ (ก) ต้องการอัปเกรด / อัปเดต แต่ไม่สามารถหรือ (b) ยังอยู่ในช่วงกลางของการอัปเกรดเป็นระบบดั้งเดิม สิ่งนี้ไม่ได้หมายถึงการปรับโครงสร้างใหม่หรือการล้างข้อมูลโค้ดโดยทั่วไปหมายถึงการเปลี่ยนแปลงที่สำคัญในการออกแบบอาจใช้เฟรมเวิร์กใหม่หรือแม้แต่แพลตฟอร์มใหม่
มีสาเหตุหลายประการที่ระบบหรือรหัสอาจเป็นมรดก:
ขาดการบำรุงรักษาปกติหรือเน่าซอฟแวร์ เห็นได้ชัดว่าหากแอปพลิเคชั่นไม่ได้รับการดูแลอย่างสม่ำเสมอมันจะไม่ทันกับการเปลี่ยนแปลงครั้งใหญ่ในโลกซอฟต์แวร์ นี่อาจเป็นเพราะการละเลยง่าย ๆ หรืออาจเป็นทางเลือกโดยพิจารณาจากลำดับความสำคัญของธุรกิจหรือข้อ จำกัด ด้านงบประมาณ
ขาดการทดสอบ คำตอบอื่นอ้างอิงการอ้างสิทธิ์ซึ่งเกินความจริงของผู้เขียนที่เป็นที่นิยมของรหัสใด ๆ ที่ไม่ครอบคลุมโดยการทดสอบเป็นรหัสดั้งเดิม นี่ไม่ใช่คำจำกัดความที่ถูกต้อง แต่เป็นสาเหตุที่เป็นไปได้ หากไม่มีการทดสอบที่ดี (โดยอัตโนมัติหรือด้วยตนเอง) นักพัฒนาจะขี้อายและกลัวที่จะทำการเปลี่ยนแปลงครั้งใหญ่เพราะพวกเขากังวลเกี่ยวกับการทำลายบางสิ่งจึงนำ "เน่าซอฟต์แวร์" ด้านบน
Rev-locking เป็นปัจจัยที่มักถูกมองข้ามซึ่งเป็นสิ่งที่ร้ายกาจอย่างยิ่งในโครงการที่ใช้ไลบรารีหรือกรอบงานโอเพนซอร์ซขนาดใหญ่ บ่อยครั้งที่จะมีการปรับแต่งหลัก ๆ ที่ทำกับเฟรมเวิร์ก / ไลบรารีทำให้การอัพเกรดยากหรือมีราคาแพง ดังนั้นระบบจึงกลายเป็นระบบเดิมเนื่องจากทำงานบนแพลตฟอร์มที่เก่ากว่า (และอาจไม่รองรับอีกต่อไป)
ซอร์สโค้ดไม่สามารถใช้งานได้อีกต่อไปซึ่งหมายความว่าระบบสามารถเพิ่มได้เพียงอย่างเดียวไม่เคยเปลี่ยน เนื่องจากระบบเหล่านี้จะต้องมีการเขียนใหม่เพื่อที่จะอัปเกรด - ซึ่งต่างจากการปรับปรุงเพิ่มเติม / ซ้ำ ๆ กันหลาย บริษัท จะไม่รบกวน
สิ่งใดที่ทำให้ช้าหรือหยุดการอัปเดตรหัสฐานอาจทำให้ฐานรหัสนั้นกลายเป็นมรดก
ตอนนี้คำถามแยกต่างหากที่ไม่ได้ระบุ แต่เป็นนัยคืออะไรรหัสผิดปกติคืออะไร มันมักจะใช้เป็นคำที่ดูถูกดังนั้นคำถาม:
เราควรหลีกเลี่ยงการติดฉลากที่ไม่มีเหตุผลรับรองของรหัสการทำงานที่สมบูรณ์แบบนี้หรือไม่?
และคำตอบคือไม่เราไม่ควร; การติดฉลากนั้นได้รับการรับประกันและคำศัพท์นั้นแสดงถึงรหัสการทำงานอย่างชัดเจน จุดไม่ได้ว่ามันเป็นฟังก์ชั่น แต่วิธีการที่จะได้ทำงาน
ในบางกรณีไม่มีอะไรผิดปกติกับรหัสดั้งเดิม มันไม่ได้เป็นคำที่ไม่ดี รหัส / ระบบดั้งเดิมไม่ใช่ Evil พวกเขาได้รวบรวมฝุ่นบางครั้งเล็กน้อยบางครั้งมาก
ระบบจะล้าสมัยเมื่อระบบไม่สามารถตอบสนองความต้องการของลูกค้าได้อีกต่อไป ที่ฉลากเป็นสิ่งหนึ่งที่เราจะต้องระวัง มิฉะนั้นเป็นเพียงสมการต้นทุน / ผลประโยชน์ หากค่าใช้จ่ายในการอัพเกรดจะต่ำกว่าต้นทุนผลประโยชน์ของมัน (รวมถึงค่าบำรุงรักษาในอนาคตที่ต่ำกว่า) จากนั้นอัพเกรดมิฉะนั้นปล่อยให้มันอยู่คนเดียว ไม่จำเป็นต้องคายคำว่า "ดั้งเดิม" ในแบบเดียวกับที่คุณสงวนไว้สำหรับ "การตรวจสอบภาษี" มันเป็นสถานการณ์ที่สมบูรณ์แบบที่จะอยู่ใน