• NYT เปลี่ยนยูทิลิตีสำหรับการทดสอบจาก Enzyme ที่ใช้อยู่เดิมไปเป็น React Testing Library ระหว่างการ อัปเกรดจาก React 16 เป็น React 18
    • ใช้ Enzyme มาตั้งแต่ปี 2016 แต่เมื่อแพลตฟอร์ม React แนะนำ React Testing Library จึงจำเป็นต้องย้าย
  • Enzyme สร้างตัวแทนแบบสตริงของ DOM tree ขณะที่ React Testing Library สร้าง DOM tree จริงและเรนเดอร์เป็นส่วนหนึ่งของ DOM ทั้งหมด
  • เนื่องจากต้องย้ายไฟล์หลายร้อยไฟล์ สิ่งสำคัญคือการ รักษาทราฟฟิกของไซต์ และ ป้องกันการหยุดชะงักของบริการ

กลยุทธ์การย้ายระบบ 3 แบบ

  • แนวทาง Bulldozer
    • วิธีแก้ไขไฟล์ทั้งหมดครั้งใหญ่ในคราวเดียว
    • มีความเสี่ยงเรื่องโค้ดชนกันสูง และทำงานร่วมกันได้ยาก
  • แนวทาง Consensus
    • วิธีทำงานร่วมกันที่วิศวกรแต่ละคนมี ownership ของแต่ละไฟล์และดำเนินการเอง
    • เหมาะกับโปรเจกต์ใหม่หรือโปรเจกต์ที่มีความสำคัญสูง
  • แนวทาง Piecemeal
    • ค่อย ๆ ปรับแก้เป็นรายไฟล์อย่างมีกลยุทธ์
    • อัปเดตอย่างสม่ำเสมอทุกวันเพื่อสร้าง momentum แบบค่อยเป็นค่อยไป

สิ่งที่ The New York Times เลือก: แนวทาง Piecemeal

  • เริ่มแก้จากไฟล์ที่ง่ายที่สุดก่อน → ไฟล์ที่ต้องแก้เพียงหนึ่งหรือสองบรรทัด
  • โฟกัสที่วิธีค้นหา DOM element ใน React Testing Library และวิธีทดสอบสิ่งเหล่านั้น
  • เมื่อแก้ส่วนเริ่มต้นเสร็จแล้ว ก็สามารถค่อย ๆ ขยายไปยังเทสต์ที่ซับซ้อนขึ้นได้
  • ยิ่งทำไป รูปแบบที่สม่ำเสมอก็ยิ่งชัดเจนขึ้น ทำให้งานแก้ไขง่ายขึ้น
  • วิศวกรเข้ามามีส่วนร่วมได้ง่าย จึงช่วยเสริมการทำงานร่วมกัน

ผลลัพธ์และความสำเร็จของการย้ายระบบ

  • แนวทาง Piecemeal แม้ใช้เวลานาน แต่ทำให้เกิด ความเสถียร และ ความคืบหน้าอย่างต่อเนื่อง
  • เกิดรูปแบบที่สม่ำเสมอใน codebase ทำให้จัดการเทสต์ที่ซับซ้อนได้ง่ายขึ้น
  • สร้างสภาพแวดล้อมที่เอื้อให้วิศวกรคนอื่นเข้ามามีส่วนร่วมและช่วยกันพัฒนาได้ง่าย
  • ระหว่างการย้ายระบบสามารถ ลดบั๊กให้น้อยที่สุด และ ป้องกันไม่ให้ฟังก์ชันการทำงานหยุดชะงัก
  • ความสำเร็จของการย้ายช่วยให้จัดการ technical debt และรักษาสมดุลกับการพัฒนาอย่างต่อเนื่องได้

บทสรุป

  • ใช้แนวทาง Piecemeal เพื่อเปลี่ยน codebase ไปสู่ React Testing Library ได้สำเร็จ
  • การค่อย ๆ ปรับแก้ช่วยเสริมการทำงานร่วมกันและรักษาคุณภาพโค้ด
  • แม้เป็นเทสต์ที่ซับซ้อนก็จัดการได้ง่ายขึ้นด้วยรูปแบบที่สม่ำเสมอ
  • การวางแผนอย่างมีกลยุทธ์และการรักษาสมดุลกับการแก้ technical debt ทำให้การย้ายระบบเสร็จสิ้นอย่างมั่นคง

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น