Quay lại danh sách case study
Tái cấu trúc ứng dụng Legacy monolithic nặng nề
Từng bước chuyển đổi ứng dụng React cũ kỹ không có test sang kiến trúc hiện đại.
Bối cảnh
Ứng dụng cốt lõi của công ty phát triển từ 5 năm trước, code trùng lặp nhiều, không có unit test và thời gian build mất hơn 15 phút.
Vấn đề cần xử lý
Mỗi lần release tính năng mới đều phát sinh lỗi ngầm ở các module cũ, khiến kinh doanh mất niềm tin vào đội ngũ kỹ thuật.
Hướng xử lý đề xuất
Áp dụng mô hình Strangler Fig Pattern: viết wrapper bọc lấy hệ thống cũ, xây dựng các tính năng mới bằng kiến trúc sạch, và từng bước viết test bao phủ cho các luồng quan trọng trước khi refactor.
Câu trả lời mẫu khi phỏng vấn
Tôi chọn cách tiếp cận an toàn là Strangler Fig Pattern thay vì viết lại từ đầu vốn rất rủi ro. Chúng tôi cô lập phần code cũ, chuẩn hóa lại tầng gọi API, và viết test tự động cho các luồng nghiệp vụ chính trước. Sau đó, chúng tôi tiến hành tách dần các module cũ sang kiến trúc mới mà không làm gián đoạn kinh doanh.
Trade-off
Quá trình tái cấu trúc diễn ra song song với việc phát triển tính năng mới nên áp lực thời gian lớn và tốc độ ra mắt tính năng tạm thời chậm lại trong vài sprint đầu.
Kết quả kỳ vọng
Thời gian build giảm từ 15 phút xuống còn 2 phút, tỷ lệ lỗi trên production giảm 80% và developer satisfaction tăng cao.
Bài học khi trả lời phỏng vấn
Refactor mã nguồn legacy cần có chiến lược kiên trì, đi kèm kiểm thử đầy đủ thay vì đập đi xây lại theo cảm tính.