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ảngtbl_sub_v3→ đề xuất renameSubscription. - 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 gì, 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
- Brownfield với SDD - bước 1 & 2 của chiến lược 5 bước
- Characterization Test - bước tiếp theo: bọc test quanh hành vi hiện tại
- Entity Model · Use Case (UC) - đầu ra của quá trình