Đi tới nội dung

Hệ thống & kiến trúc

Kiến trúc frontend bền vững

Nhìn ứng dụng như một hệ thống: state machine, chiến lược xử lý lỗi, đồng bộ offline-first và feature flag — những quyết định giữ codebase khoẻ khi nó lớn dần.

5 phần35 phút đọcCập nhật 17 thg 1, 2026

Các phần

  1. Phần 1

    Tư duy hệ thống, đừng chỉ nghĩ theo màn hình

    Ứng dụng frontend dễ vỡ khi ta thiết kế từng trang một. Một cẩm nang ngắn để vẽ state, luồng dữ liệu và quyền sở hữu trước khi vẽ UI.

    2 phút

  2. Phần 2

    State machine cho UI: loại bỏ những trạng thái không thể xảy ra

    Vì sao isLoading, isError và data cùng tồn tại là mầm mống của bug, cách mô hình hoá UI bằng trạng thái và sự kiện, một state machine có type bằng useReducer cho luồng submit form, và khi nào nên dùng thư viện statechart.

    7 phút

  3. Phần 3

    Chiến lược xử lý lỗi ở frontend: từ error boundary đến retry và báo cáo lỗi

    Phân loại lỗi trước khi xử lý, hiểu error boundary bắt được gì và không bắt được gì, retry đúng cách với backoff và jitter, tách thông báo cho người dùng khỏi log cho developer, và báo cáo lỗi mà không làm lộ dữ liệu cá nhân.

    7 phút

  4. Phần 4

    Offline-first và optimistic UI: thiết kế đồng bộ không làm mất dữ liệu

    Cập nhật lạc quan kèm rollback, outbox lưu trong IndexedDB, idempotency key, retry khi có mạng lại, các chiến lược giải quyết xung đột, hiển thị trạng thái đồng bộ và cách test kịch bản offline.

    11 phút

  5. Phần 5

    Feature flag ở frontend: phân loại, đánh giá, rollout và dọn dẹp

    Feature flag giúp tách deploy khỏi release, nhưng dùng sai thì thành nợ kỹ thuật và giao diện nhấp nháy. Bài này đi qua bốn loại flag, đánh giá flag ở server hay client, định nghĩa flag có kiểu bằng TypeScript, rollout dần, A/B test và quy trình dọn flag.

    8 phút

Chuỗi khác

Chuỗi bài