GitHub Copilot Đang Phá Hủy Thiết Kế Cơ Sở Dữ Liệu Của Bạn
Bạn nhìn chằm chằm vào một schema Rails với 47 bảng. Các mối quan hệ trông rối rắm như một đống mì spaghetti. Bạn cần một tính năng mới trước thứ Sáu. Bạn dán schema vào Copilot và yêu cầu một bản migration.
AI đưa cho bạn đoạn mã trông có vẻ đúng. Bạn triển khai nó. Ba tuần sau, một lỗi phụ thuộc vòng (circular dependency) làm sập luồng thanh toán của bạn.
Đây không phải là lỗi của Copilot. Đây là sự phân hủy ngữ cảnh (Context Composting).
Bạn đang thiết kế cơ sở dữ liệu dựa trên những gì AI có thể hiểu được trong một câu lệnh (prompt) duy nhất. Bạn không thiết kế nó cho các yêu cầu ứng dụng của mình.
Một nhà phát triển Nhật Bản trên Qiita đã lưu ý về sự khác biệt trong cách các nhóm sử dụng AI. Nhiều nhà phát triển phương Tây cố gắng tiết kiệm token bằng cách cung cấp cho AI ít ngữ cảnh hơn. Họ sử dụng các prompt ngắn hơn và các phần nhỏ lẻ.
Một số nhóm Nhật Bản coi ngữ cảnh là một tài sản kiến trúc. Họ sử dụng tài liệu schema làm giàn giáo (scaffolding) cho AI. Họ viết các chú thích (comments) cụ thể để mô hình hiểu được các quy tắc nghiệp vụ và sự chuyển đổi trạng thái.
Điều này tạo ra một cái bẫy.
Tôi đã thấy một startup áp dụng triết lý thiết kế "ưu tiên Copilot" (Copilot-first). Họ đơn giản hóa các mối quan hệ và thêm các index chỉ để AI có thể quét chúng một cách dễ dàng.
Kết quả thật tệ:
- Họ có nhiều hơn 30% số lượng bảng vì AI không thể xử lý các liên kết (associations) phức tạp.
- Hiệu suất truy vấn giảm xuống.
- Các truy vấn phân tích trở nên chậm hơn 40%.
Họ tối ưu hóa cho khả năng đọc của AI và hy sinh hiệu suất của con người.
Đừng để AI quyết định kiến trúc của bạn. Hãy làm theo các bước sau để duy trì sự cân bằng:
- Tài liệu hóa các quyết định hai lần. Viết một phiên bản cho AI và một phiên bản giải thích lý do "tại sao" cho con người.
- Kiểm tra thủ công một bản migration của AI mỗi tuần. Truy vết mọi khóa ngoại (foreign key) và index.
- Theo dõi ngưỡng giới hạn AI (AI ceiling) của bạn. Ghi lại xem bạn có thể suy luận về bao nhiêu bảng trong một phiên làm việc trước khi AI thất bại.
- Thực hiện kiểm tra (audit) schema hàng quý. Hãy tự hỏi liệu một kiến trúc sư con người có thiết kế theo cách này nếu không có AI hay không.
Áp lực phải thiết kế cho AI sẽ ngày càng tăng. Các framework sẽ tung ra các pattern "tối ưu hóa cho AI".
Những nhà phát triển giỏi nhất sẽ không phải là những người chống lại AI. Họ sẽ là những người giữ cho tư duy kiến trúc của mình đủ sắc bén để nhận ra khi nào AI đang dẫn dắt họ đi sai hướng.
Nhóm của bạn đã bắt đầu thiết kế kiến trúc xoay quanh ngữ cảnh AI chưa? Cái giá phải trả là gì khi nó được đưa lên môi trường production?
Optional learning community: https://t.me/GyaanSetuAi
