11 điểm bởi xguru 2025-03-17 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • NYT đã nâng cấp từ React 16 lên React 18 và chuyển tiện ích kiểm thử từ Enzyme sang React Testing Library mà họ đã dùng trước đó
    • Họ đã sử dụng Enzyme từ năm 2016, nhưng khi nền tảng React khuyến nghị React Testing Library, việc chuyển đổi trở nên cần thiết
  • Enzyme tạo ra biểu diễn chuỗi của cây DOM, trong khi React Testing Library tạo cây DOM thực và render nó như một phần của toàn bộ DOM
  • Vì phải chuyển đổi hàng trăm tệp, việc duy trì lưu lượng truy cập của trangngăn gián đoạn dịch vụ là rất quan trọng

Ba chiến lược migration

  • Cách tiếp cận Bulldozer
    • Chỉnh sửa quy mô lớn toàn bộ tệp cùng một lúc
    • Rủi ro xung đột mã cao và khó cộng tác
  • Cách tiếp cận Consensus
    • Cách làm cộng tác trong đó các kỹ sư chịu trách nhiệm sở hữu từng tệp
    • Phù hợp với dự án mới hoặc dự án quan trọng
  • Cách tiếp cận Piecemeal
    • Chỉnh sửa dần dần một cách chiến lược trên từng tệp riêng lẻ
    • Cập nhật đều đặn mỗi ngày để tạo động lực tăng dần

Lựa chọn của The New York Times: cách tiếp cận Piecemeal

  • Bắt đầu sửa từ những tệp đơn giản nhất → ưu tiên các tệp chỉ cần chỉnh một hoặc hai dòng
  • Tập trung vào cách tìm phần tử DOM và kiểm thử chúng trong React Testing Library
  • Sau khi hoàn thành các chỉnh sửa ban đầu, có thể dần mở rộng sang các bài kiểm thử phức tạp hơn
  • Khi công việc tiến triển, các mẫu nhất quán dần hình thành, giúp việc sửa đổi trở nên dễ hơn
  • Các kỹ sư có thể dễ dàng tham gia hơn, từ đó tăng cường cộng tác

Kết quả và thành quả của quá trình migration

  • Cách tiếp cận Piecemeal mất nhiều thời gian hơn nhưng cho phép tính ổn địnhtiến độ liên tục
  • Các mẫu nhất quán được hình thành trong codebase, giúp xử lý cả những bài kiểm thử phức tạp một cách dễ dàng hơn
  • Tạo ra môi trường để các kỹ sư khác dễ dàng tham gia và đóng góp
  • Trong quá trình migration, giảm thiểu bugngăn chặn gián đoạn tính năng
  • Việc migration thành công giúp cân bằng giữa xử lý technical debt và duy trì phát triển liên tục

Kết luận

  • Thông qua cách tiếp cận Piecemeal, codebase đã được chuyển thành công sang React Testing Library
  • Các chỉnh sửa dần dần giúp tăng cường cộng tác và duy trì chất lượng mã
  • Ngay cả những bài kiểm thử phức tạp cũng có thể được xử lý dễ dàng theo các mẫu nhất quán
  • Hoàn tất migration ổn định nhờ cân bằng giữa lập kế hoạch chiến lược và giải quyết technical debt

Chưa có bình luận nào.

Chưa có bình luận nào.