นี่คือสถานการณ์ของฉัน หนึ่งในหลาย ๆ โปรแกรมที่ฉันเพิ่งได้รับมรดกสร้างขึ้นด้วยฐานข้อมูลที่น่ากลัวในแบ็กเอนด์ เห็นได้ชัดว่าผู้สร้างที่เคารพนับถือของมันไม่เห็นคุณค่าของแนวคิดเชิงสัมพันธ์ ตารางสำหรับลูกค้าแต่ละคนและทุกคนตั้งชื่อเป็นรหัสลูกค้าที่ไม่ซ้ำกัน เขตข้อมูลที่มีการเข้ารหัสแปดสิบสาม รหัสนี้เป็นโพรซีเดอร์ทั้งหมดที่มีคำสั่ง inline SQL เรียงต่อกันหลายสิบคำ
เนื่องจากเราไม่ได้ให้แอปพลิเคชันเสริมที่สำคัญซึ่งทำงานนอกฐานข้อมูลเดียวกันฉันจึงได้รับมอบหมายให้สร้างใหม่ตั้งแต่เริ่มต้น ฉันเป็นผู้พัฒนา แต่เพียงผู้เดียวซึ่งไม่ได้เป็นความรับผิดชอบหลักของฉันเพราะอย่างน้อยครึ่งหนึ่งของเวลาของฉันก็ขึ้นอยู่กับการดำเนินการต่างๆ มีกำหนดเวลาที่หลีกเลี่ยงไม่ได้ที่กำหนดไว้เป็นเวลา 30 วันนับจากนี้
แม้ฉันจะไม่มีประสบการณ์ฉันแน่ใจว่าฉันสามารถออกแบบฐานข้อมูลนี้และแอปพลิเคชั่นที่มีอยู่ได้ดีกว่าพวกเขา แต่ฉันไม่คิดว่ามันเป็นเรื่องจริงสำหรับฉันที่จะแก้ไขฐานข้อมูลปรับแอปพลิเคชันที่มีอยู่เดิม ไม่ต้องเสียอะไรเลยในขณะที่ต้องการสร้างแอปพลิเคชันเพิ่มเติมได้อย่างรวดเร็ว
ดังนั้นสมมติว่าฉันติดอยู่กับฐานข้อมูลที่น่ากลัว จำเป็นต้องทำงานกับโครงสร้างที่ไม่ดีอะไรที่ฉันเขียนที่สอดคล้องกับมันจะเพิ่มกองหนี้ด้านเทคนิคที่ซ้อนกันเพื่อที่จะถูกเก็บออกไปจนกว่าจะมีบางสิ่งบางอย่างสมบูรณ์หรือฟังก์ชั่นใหม่จำเป็น? ฉันจะเข้าใกล้สถานการณ์นี้อย่างไรและนำสิ่งที่ดีออกมานอกเหนือจากแอปพลิเคชันที่ใช้งานได้อย่างหวัง?
แก้ไข: ในกรณีที่มีใครสนใจเราได้ทำการทำลายฐานข้อมูลที่น่ากลัวนี้และแอปพลิเคชันที่รันอยู่ เราเอาต์ซอร์ซการสร้างแอปพลิเคชันเสริม (ฉันไม่ได้เกี่ยวข้องกับการตั้งค่านี้) ในที่สุดสองผู้รับเหมาที่แตกต่างกันซึ่งทั้งคู่ล้มลงกับเราโดยไม่ทำอะไรเลย ในที่สุดฉันก็ต้องรีบตัดแฮ็กที่น่ากลัวและใช้งานได้บางส่วนของการแก้ไขในสามวันที่ยังใช้อยู่ในปัจจุบัน