# เปลี่ยนระบบเดิมอย่างปลอดภัย

Taiga Learning · ใบงาน
https://taiga.training/th/lessons/existing-systems/

ใช้ข้อมูลสมมติหรือข้อมูลที่อนุมัติแล้ว อย่าใส่ secret ในใบงานนี้

## วัตถุประสงค์การเรียนรู้
- ระบุข้อตกลงการทำงานที่การเปลี่ยนโค้ดเฉพาะจุดอาจกระทบ
- อธิบายการเปลี่ยนแบบ expand-and-contract เป็นขั้น
- แยกการ rollback โค้ดออกจากการกู้คืนข้อมูล

## แบบฝึกหัด
เลือกการเปลี่ยน field หรือ API เล็ก ๆ ระบุทุกส่วนที่อ่านและเขียนข้อมูล รวมถึงงานเบื้องหลัง อธิบายขั้นแรกที่เพิ่มของใหม่โดยยังไม่ลบของเดิม การตรวจสอบช่วงเปลี่ยนผ่าน และเงื่อนไขการลบ ระบุว่าขั้นใดอาจทำให้ rollback ไม่ได้

## คำตอบของคุณ
- สถานการณ์และขอบเขต:
- สมมติฐานและคำถามที่ยังไม่ได้ข้อยุติ:
- คำตอบหรือการตัดสินใจที่เสนอ พร้อมเหตุผล:

## ตรวจสอบคำตอบของคุณ
| ข้ออ้างหรือเกณฑ์ | หลักฐานหรือ test | ผลหรือสิ่งที่ยังขาด | ผู้รับผิดชอบ |
| --- | --- | --- | --- |
| | | | |
| | | | |
| | | | |

## งานถัดไป
- งาน ผู้รับผิดชอบ และวันที่:
- คุณจะตรวจทานคำตอบนี้เมื่อใด

## หลักการที่ควรจำ
ตรวจทานช่วงเปลี่ยนระหว่างเวอร์ชัน ไม่ใช่เพียงแบบสุดท้าย คอมโพเนนต์เก่าและใหม่อาจทำงานพร้อมกัน

## แหล่งข้อมูล
- [Martin Fowler: Parallel Change](https://martinfowler.com/bliki/ParallelChange.html)

ใบงานนี้ช่วยในการเรียนรู้ การทำเสร็จไม่ได้อนุญาตให้เปลี่ยน production โดยตัวมันเอง
