พื้นหลัง
ฉันกำลังทำงานในทีมที่ต้องการปรับใช้การปรับใช้แบบไม่ต้องหยุดทำงาน เราวางแผนที่จะใช้กลยุทธ์การปรับใช้สีน้ำเงิน / เขียวเพื่อให้บรรลุเป้าหมายนี้ สิ่งหนึ่งที่ฉันตระหนักในการทำวิจัยคือความซับซ้อนของการเปลี่ยนแปลงฐานข้อมูล การดำเนินการอย่างง่ายเช่นการเปลี่ยนชื่อคอลัมน์อาจใช้เวลา3 รอบเต็มจนกว่าจะเสร็จสมบูรณ์!
สำหรับฉันดูเหมือนว่าการมีการเปลี่ยนแปลงอย่างเต็มรูปแบบนั้นต้องใช้เวลาหลายรอบการเปิดตัวทำให้เกิดข้อผิดพลาดของมนุษย์ได้มาก ในบทความที่เชื่อมโยงมันแสดงให้เห็นว่าการเปลี่ยนแปลงรหัสมีความจำเป็นสำหรับ 2 รุ่นและการโยกย้ายฐานข้อมูลเป็นสิ่งจำเป็นสำหรับ 3 รุ่น
สิ่งที่ฉันกำลังมองหา
ในปัจจุบันหากเราต้องการจำบางสิ่งเราสามารถสร้างตั๋วในระบบการจัดการปัญหาของเราซึ่งสร้างความยุ่งเหยิงและอาจถูกย้ายไปที่การวิ่งในภายหลังหรือการค้างโดยผู้บริหาร หรือเราสามารถสร้างความคิดเห็นสิ่งที่ต้องทำซึ่งอาจจะถูกลืมไปโดยสิ้นเชิง
สิ่งที่ฉันกำลังมองหาคือวิธีที่ความคิดเห็นของ TODO สามารถกำหนดเส้นตายได้และระบบการรวมอย่างต่อเนื่องของเรา (ไม่แน่ใจว่าเราจะใช้ในปัจจุบัน) จะปฏิเสธการสร้างหากกำหนดเวลานี้หมดอายุ
ตัวอย่างเช่นถ้าเราเปลี่ยนชื่อคอลัมน์เราสามารถสร้างการโยกย้ายครั้งแรกสำหรับมันและจากนั้นสองความคิดเห็นสิ่งที่ต้องทำเพื่อให้แน่ใจว่าการย้ายสองที่เหลือจะถูกสร้างขึ้น:
// TODO by v55: Create migration to move constraints to new column, remove references to old column in app
// TODO by v56: Create migration to drop old column
นี่ดูเหมือนจะค่อนข้างง่ายที่จะนำไปใช้ แต่ฉันสงสัยว่ามีบางอย่างเช่นนี้อยู่แล้วเพราะฉันไม่ต้องการคิดค้นล้อใหม่อีกครั้ง
ความคิดเพิ่มเติม
ฉันรู้สึกว่าฉันอาจทุกข์ทรมานจากปัญหา XY ที่นี่เนื่องจากการใช้งานแบบกลิ้งและการปรับใช้สีน้ำเงิน / สีเขียวถือเป็นแนวปฏิบัติที่ดีที่สุดดูเหมือนว่าแปลกที่ฉันไม่สามารถหาวิธีแก้ปัญหาสำหรับการอัพเดทฐานข้อมูลได้น้อยลง หากคุณคิดว่าฉันกำลังมองสิ่งที่ผิดทั้งหมดโปรดแจ้งให้เราทราบในความคิดเห็น! ที่กล่าวว่าตัวอย่างฐานข้อมูลที่ฉันให้เป็นเพียงตัวอย่างเดียวและฉันคิดว่าความคิดเห็นของ TODO ที่มีวันครบกำหนดจะมีประโยชน์ในสถานการณ์อื่นด้วยเช่นกันดังนั้นแม้ว่าฉันจะเข้าใกล้สถานการณ์ที่เฉพาะเจาะจงทั้งหมดนี้ผิดฉันก็อยากจะตอบ คำถามจริงด้วย ขอบคุณ!
แก้ไข: ฉันแค่คิดถึงสถานการณ์อื่นที่อาจเป็นประโยชน์ หากคุณใช้คุณลักษณะสลับที่จะเปิดในส่วนของ app ของคุณเมื่อพวกเขาพร้อมที่คุณจะต้องระมัดระวังในการทำความสะอาดพวกเขาขึ้นมิฉะนั้นคุณอาจจบลงด้วยการสลับหนี้ ความคิดเห็นที่มีกำหนดเวลาอาจเป็นวิธีที่ดีในการจดจำสิ่งนี้
TODO <Bug#>:
ในการติดตามการแก้ไขปัญหาสำหรับส่วนประกอบอื่น ๆ เมื่อมีการลบข้อบกพร่องในหนึ่งในองค์ประกอบเหล่านั้นคุณสามารถค้นหาและแก้ไขปัญหาที่เกี่ยวข้องได้อย่างง่ายดาย มันไม่ได้แทนที่ตัวติดตามปัญหามันทำให้การดูแลรักษาง่ายขึ้น