ฉันกำลังเขียน API ส่วนที่เหลือและสงสัยว่าจะจัดการกับเวอร์ชันต่าง ๆ ได้ดีที่สุดอย่างไร จากนี้ฉันไม่ได้หมายถึงวิธีการกำหนด URI เป็น V2 หรือ V3 แต่วิธีการจัดโครงสร้างรหัสที่กำหนดว่าจะต้อง:
- รองรับหลายรุ่นในเวลาเดียวกันเช่น URIs V1 & V2 และ V3 ต้องใช้งานพร้อมกัน ฉันจะออก V1 เมื่อพูดว่า V4 เข้ามาเพื่อ จำกัด จำนวนเงินที่สนับสนุนในแต่ละครั้ง
- หลีกเลี่ยงการทำซ้ำรหัสมากที่สุด
- ทำให้ง่ายต่อการเพิ่มการเปลี่ยนแปลงที่ไม่ทำลายกับเวอร์ชันโดยไม่ส่งผลกระทบกับเวอร์ชันอื่น
ดูเหมือนว่ามีวิธีการบางอย่างที่สามารถทำได้:
ใช้ Git เพื่อควบคุมเวอร์ชันโดยมีสาขาสำหรับเวอร์ชันต่าง ๆ (และเวอร์ชันเก่าเป็นหลักโดยที่ไม่มีงานพัฒนาใหม่เกิดขึ้น) นี่หมายความว่าจะไม่มีการทำสำเนารหัสเนื่องจากมีเพียงเวอร์ชันล่าสุดเท่านั้นที่อยู่ในรหัส แต่รุ่นก่อนหน้านี้จะต้องทำงานกับ DB เวอร์ชันใหม่จนกว่าจะถูกยกเลิก
ทำซ้ำรหัสเพื่อให้แต่ละรุ่นได้รับการจัดการในแอปพลิเคชันเดียวกันและมีเส้นทางรหัสแยกกันโดยสิ้นเชิง แต่สิ่งนี้จะหมายถึงการทำซ้ำจำนวนมาก
ใช้รหัสจำนวนมากซ้ำในเวอร์ชันต่าง ๆ แต่สิ่งนี้จะทำให้ยากต่อการบำรุงรักษาเนื่องจากการเปลี่ยนหนึ่งเวอร์ชันมีแนวโน้มที่จะกระทบกับเวอร์ชันก่อนหน้ามากกว่า
มีวิธีปฏิบัติที่ดีที่สุดในการจัดการกับปัญหานี้เนื่องจากตัวเลือกทั้งหมดดูเหมือนจะมีปัญหาของตัวเองหรือไม่?