ข้ามไปที่เนื้อหา
Clinford Jordano Valencia
โปรเจกต์ทั้งหมด
แพลตฟอร์มเว็บ

ย้ายหน้าเก่ากว่า 100 หน้าไปยัง React และ Next.js

การย้ายระบบโมโนลิธที่ใช้ Velocity ไปยังรีโพสิทอรีฟรอนต์เอนด์สมัยใหม่ทีละขั้น โดยไม่ต้องเขียนใหม่ทั้งหมดซึ่งรบกวนการทำงาน

บทบาท
Software Engineer (Web)
ช่วงเวลา
2018–2025
เทคโนโลยี
React · Next.js · TypeScript · Migration strategy

ปัญหา

ผลิตภัณฑ์สำหรับพาร์ตเนอร์ที่พักของ Traveloka (TERA) บางส่วนทำงานบนโมโนลิธเก่าที่สร้างด้วย Apache Velocity เป้าหมายคือย้ายไปยังสแตกฟรอนต์เอนด์สมัยใหม่อย่าง React และ Next.js โดยไม่ต้องหยุดงานพัฒนาผลิตภัณฑ์

แนวทาง

  • ย้ายทีละขั้น ไม่ใช่ครั้งเดียว รับผิดชอบกลยุทธ์การย้าย หน้าเว็บถูกย้ายไปยังรีโพสิทอรี React และ Next.js ทีละหน้า ขณะที่ผลิตภัณฑ์ยังออกเวอร์ชันใหม่ต่อเนื่อง
  • กำหนดแพตเทิร์นก่อน สถาปัตยกรรมการย้าย แพตเทิร์นที่นำกลับมาใช้ได้ และมาตรฐานทางเทคนิค ถูกตกลงก่อนงานส่วนใหญ่ แต่ละหน้าจึงไม่ต้องคิดใหม่เอง
  • ประสานงานข้ามทีม การพัฒนาและการปล่อยใช้งานแบ่งกันหลายทีม มีเจ้าของชัดเจนในแต่ละหน้า และมีวิธีตรวจสอบที่สม่ำเสมอว่าหน้าใหม่ทำงานเหมือนหน้าเดิม

ช่วงแรกที่ Traveloka ได้ย้ายไปแล้ว 11 หน้า (ประมาณ 35 man-week) จากโมโนลิธไปยังรีโพสิทอรี Front-End Web ซึ่งเป็นก้าวแรกของงานที่ใหญ่กว่านี้

ผลลัพธ์

หน้าเก่ากว่า 100 หน้าถูกปรับเป็น React และ Next.js โดยไม่ต้องเขียนแพลตฟอร์มใหม่ทั้งหมดและไม่ต้องรับความเสี่ยงที่ตามมา