Reverse Engineering từ code (Đào spec ngược)

Dùng AI đọc code, DB và log của hệ thống cũ để sinh ra spec stub và entity model - bước khởi đầu của Brownfield với SDD. Kết quả KHÔNG được tin ngay, mà là điểm bắt đầu cho cuộc thảo luận với nghiệp vụ.

Hai mục tiêu chính

  • Entity Model từ DB: reverse-engineer --target=entity-model --source=postgres. DB schema cho danh từ, quan hệ, một phần lịch sử. Bảng tbl_sub_v3 → đề xuất rename Subscription.
  • Use Case từ code/log/UI: reverse-engineer --target=use-cases --source=src/controllers/. Ba nguồn: controller (cửa vào), production log (hành động thật sự dùng), UI flow (người vận hành bấm gì).

Phân loại use case đào ra

Ở billing-engine, sau 2 tuần có 42 use case:

  • 18 rõ: có endpoint + log + người vận hành xác nhận.
  • 16 đoán được: có code, ý định nghiệp vụ chưa chắc.
  • 8 bí ẩn: có code, không ai biết còn ai dùng → đánh dấu legacy-unverified, thêm analytics, không đụng 4 tuần.

Giới hạn quan trọng

AI cho biết code đang làm , không cho biết code làm đúng hay không. Vì vậy reverse-engineering luôn phải nối tiếp bằng bước kiểm chứng nghiệp vụ (workshop), nếu không bạn sẽ biến bug thành feature.

Có thể hỏi AI: “Theo bạn các class này thuộc bounded context nào?” - hữu ích để mở đầu thảo luận, nhưng đừng tin ngay.

Liên quan