Đoạn code mà AI sẽ không viết

Tôi thường dùng bài toán kiểm tra tính hợp lệ của biểu mẫu (form validation) làm câu hỏi phỏng vấn kỹ thuật. Nó trông có vẻ đơn giản. Nhưng cách mọi người giải quyết nó sẽ cho thấy cách họ tư duy.

Tôi đã thử nghiệm bài toán này trên Claude, ChatGPT và Gemini. Tất cả chúng đều đưa ra cùng một giải pháp.

Hầu hết mọi người sử dụng một trong ba cách để giải quyết nó:

Các mô hình AI đều chọn cách tiếp cận bằng schema. Về mặt kỹ thuật, nó rất chặt chẽ. Nó xử lý được các khóa (keys) bị thiếu. Nó có khả năng mở rộng tốt. Nếu dữ liệu của bạn thay đổi trong lúc chương trình đang chạy (runtime), schema là lựa chọn đúng đắn.

Nhưng có một cách tốt hơn cho hầu hết các phần mềm.

Thay vì cố gắng tìm kiếm một khuôn mẫu duy nhất cho mọi thứ, hãy sử dụng tính kết hợp (composition). Hãy dành cho mỗi khái niệm nghiệp vụ (business concept) một hàm riêng biệt.

Cách tiếp cận này không sử dụng đệ quy. Nó không sử dụng schema. Nó sử dụng các hàm riêng biệt và rõ ràng.

Lợi ích của nó rất đơn giản. Mã nguồn phản ánh đúng nghiệp vụ. Địa chỉ thanh toán là một khái niệm riêng biệt. Nó xứng đáng có logic riêng. Khi bạn thêm một loại mới, bạn không cần thay đổi hàm hiện có. Bạn chỉ cần thêm một hàm mới. Điều này giúp các thay đổi của bạn mang tính cục bộ (local).

AI hiếm khi chọn con đường này. Nó chọn khuôn mẫu giúp tập trung hóa logic. Giáo dục dạy chúng ta cách loại bỏ sự trùng lặp và tổng quát hóa. AI học hỏi từ chính nền văn hóa đó.

AI không hề thất bại. Nó chỉ đơn giản là đang tuân theo chính những bản năng kỹ thuật mà chúng ta đã dạy nó.

Giải pháp tốt nhất không phải là giải pháp có ít dòng code nhất. Đó là giải pháp phản ánh lĩnh vực nghiệp vụ (business domain) của bạn một cách trung thực nhất.

Lần tới khi bạn xây dựng một giải pháp, hãy tự hỏi mình một câu:

Sự biến đổi này nằm ở mã nguồn của tôi, hay nằm ở dữ liệu của tôi?

Câu trả lời sẽ thay đổi toàn bộ thiết kế của bạn.

Nguồn: https://dev.to/iceonfire/the-code-ai-wont-write-1ieb