Quy luật 80/20 của Code AI
AI đã viết 80% tính năng của tôi chỉ trong 10 phút. Code trông rất sạch sẽ. Logic hợp lý. Nó hoạt động ngay từ lần thử đầu tiên. Tôi cảm thấy rất tuyệt.
Nhưng AI hữu ích cho 80% đầu tiên và vô dụng cho 20% cuối cùng.
AI tối ưu hóa cho "happy path" (luồng xử lý lý tưởng). Nó xây dựng cho một thế giới nơi mọi thứ đều diễn ra suôn sẻ. Phần mềm thực tế tồn tại trong một thế giới nơi mọi thứ có thể đi chệch hướng.
Gần đây tôi có xây dựng một Sol Email Worker. AI đã tạo ra logic cốt lõi, threading và routing chỉ trong 20 phút. Đó là phần dễ dàng.
20% cuối cùng đòi hỏi chuyên môn thực sự của tôi:
• Deduplication (Khử trùng lặp): Xử lý các tin nhắn trùng lặp. • Sender-skip logic (Logic bỏ qua người gửi): Tránh xử lý các tin nhắn của chính mình. • Error recovery (Khôi phục lỗi): Quản lý các phản hồi API không mong muốn. • Log output (Xuất log): Giúp việc debugging khả thi vào lúc 2 giờ sáng.
AI đã làm đúng những gì tôi yêu cầu. Tôi đã thất bại trong việc yêu cầu các trường hợp biên (edge cases) vì tôi chưa suy nghĩ thấu đáo về chúng.
Chúng ta đang gặp vấn đề về cách đo lường. Chúng ta theo dõi số dòng code và các ticket đã đóng. Những chỉ số này đang khuyến khích 80% nhanh chóng đó. Không ai theo dõi thời gian dành cho việc xử lý lỗi hay kiểm tra null (null checks).
20% đó không hiển thị trên dashboard, nhưng đó mới là nơi công việc thực sự diễn ra. Hiện tại tôi theo dõi thời gian từ prompt đến khi triển khai (prompt-to-ship time). Đây là khoảng thời gian từ câu lệnh đầu tiên cho đến khi có một tính năng ổn định trên môi trường production. Con số này luôn lớn hơn ít nhất 4 lần thời gian AI tạo code.
Đây là cách tôi làm việc hiện tại:
- Tôi dự trù thời gian gấp 4 lần thời gian AI cho mỗi tác vụ.
- Tôi viết prompt cho "unhappy path". Tôi bảo AI giả định rằng mạng bị lỗi hoặc API trả về null.
- Tôi coi bản thảo đầu tiên là điểm bắt đầu, chứ không phải vạch đích.
3 giờ tôi dành cho việc xử lý lỗi sau 30 giây tạo code không hề lãng phí. Đó mới chính là công việc thực sự. AI đã chuyển dịch công việc từ việc viết cấu trúc sang việc làm cho code trở nên thực tế.
Làm cho code trở nên thực tế là một quá trình chậm chạp. Nó đòi hỏi ngữ cảnh cụ thể, người dùng và lịch sử codebase của bạn. Đó chính là ý nghĩa của chuyên môn.
AI hoạt động trong những vùng lãnh thổ quen thuộc. Các trường hợp biên (edge cases) luôn là những vùng lãnh thổ xa lạ.
Lần tới khi một bản demo AI làm bạn ấn tượng, hãy tự hỏi điều gì đã xảy ra sau khi bản demo kết thúc.
Source: https://dev.to/amrree/the-8020-rule-of-ai-code-id
Optional learning community: https://t.me/GyaanSetuAi
