Tôi đã dùng Fable 5 để xây một ứng dụng full-stack mà không cần viết code. Sau đó tôi phát hiện ra điều gì đó khiến mình sợ.


Tôi đã là kỹ sư phần mềm trong nhiều năm. Gần đây, ai cũng nói về việc Fable 5 mạnh cỡ nào, nên tôi muốn tự mình tìm hiểu.
Tôi đã thử một thí nghiệm.
Tôi xây một ứng dụng web full-stack bằng Fable 5. Không có kiểu code truyền thống. Tôi mô tả các tính năng mình muốn, xem lại mã code được tạo ra và để AI lo phần triển khai.
Và nói thật, ấn tượng đầu tiên thật sự rất ấn tượng.
Chỉ trong thời gian ngắn, tôi đã có thứ trông như một sản phẩm thật. Giao diện được hoàn thiện. Xác thực hoạt động. Cơ sở dữ liệu đã được kết nối. Các tính năng chính đều có mặt. Nếu tôi đem nó cho ai đó xem mà không giải thích cách nó được làm, họ có lẽ sẽ không đoán được phần lớn là do AI tạo ra.
Tôi nhớ mình đã nghĩ: “Điều này điên thật. Có lẽ chúng ta đang đến gần hơn mình tưởng.”
Rồi tôi xem mã như cách tôi xem bất kỳ hệ thống sản xuất nào ngoài đời thực.
Đó là lúc sự hào hứng bắt đầu tan biến.
Ứng dụng trông như đã xong, nhưng càng đi sâu thì tôi càng tìm thấy nhiều vấn đề.
Có cái nhỏ. Có cái là những thứ có thể trở thành vấn đề nghiêm trọng về sau.
Có những lo ngại về bảo mật. Một số API tin quá nhiều vào dữ liệu người dùng. Không có cơ chế giới hạn tốc độ phù hợp. Không có biện pháp chống tài khoản giả và spam. Một vài truy vấn cơ sở dữ liệu trông hoàn toàn ổn khi chỉ có vài người dùng nhưng sẽ thành cơn ác mộng khi dữ liệu tăng lên.
Tôi gặp các vấn đề N+1 query, thiếu index, nút thắt hiệu năng, các thao tác chạy chậm diễn ra trong lúc xử lý yêu cầu của người dùng thay vì trong nền, và việc thay đổi cơ sở dữ liệu được thực hiện mà không có migrations đúng cách.
Phần kỳ lạ nhất là không có gì trông bị hỏng. Ứng dụng vẫn chạy.
Bạn có thể tạo tài khoản. Bạn có thể đăng nhập. Bạn có thể bấm qua các tính năng. Bạn thậm chí có thể hoàn tất một luồng thanh toán.
Điều đó mới khiến câu chuyện này thú vị.
Rất nhiều người xây bằng AI không tung ra những ứng dụng rõ ràng là bị lỗi. Họ tung ra những ứng dụng trông như đã hoàn thiện nhưng ẩn bên dưới là các vấn đề đang chờ phát lộ.
Một giao diện đẹp không cứu được một backend hỏng.
Trước khi ra mắt, tôi sẽ đảm bảo bạn đã thực sự kiểm thử:
• Đăng nhập và đặt lại mật khẩu
• Thanh toán thẻ tín dụng thật (không chỉ chế độ test)
• SSL trên một tên miền thật
• Tách môi trường phát triển và môi trường sản xuất
• Không để lộ API keys ở bất kỳ đâu
• Backup cơ sở dữ liệu production thực sự hoạt động
Các vấn đề bảo mật là một chuyện khác thường chỉ xuất hiện khi đã quá muộn. Nhiều ứng dụng chưa bị lạm dụng khi còn nhỏ. Chúng bị lạm dụng sau khi bắt đầu được chú ý.
Những thứ như:
• Xác minh email
• Giới hạn tốc độ
• Kiểm tra dữ liệu đầu vào
• Chống bot cơ bản
có thể tạo ra khác biệt giữa một lần ra mắt suôn sẻ và việc thức dậy với hàng nghìn tài khoản giả.
Hiệu năng cũng là một cái bẫy khác. Mọi thứ thấy nhanh khi bạn chỉ có một người dùng. Vấn đề lộ ra khi người dùng thật bắt đầu đến. Bỗng nhiên bạn có truy vấn cơ sở dữ liệu chậm, trang tải hàng nghìn bản ghi, các tác vụ nặng chặn yêu cầu, và không biết thứ gì đang thất bại vì không có gì được giám sát.
Phân trang, index cơ sở dữ liệu, tác vụ nền và giám sát lỗi không phải là những thứ bạn thêm sau khi đã thành công. Chúng là thứ giúp bạn sống sót khi bạn bắt đầu tăng trưởng.
Một trong những bài học lớn nhất mà tôi rút ra được là: đừng để AI tự động chỉnh sửa trực tiếp schema cơ sở dữ liệu production của bạn.
Hãy dùng migrations.
Migration chỉ là một file nhỏ mô tả một thay đổi cơ sở dữ liệu, như thêm một cột hoặc tạo một bảng. Nó chạy theo thứ tự, có thể theo dõi, và giúp giữ nhất quán giữa môi trường phát triển và môi trường production. Nó có vẻ như là công việc thêm ở giai đoạn đầu, nhưng nó ngăn được rất nhiều vấn đề đau đớn về sau.
Điều buồn cười là thí nghiệm này lại khiến tôi lạc quan hơn về việc code với AI.
Fable 5 rất mạnh. Nó giúp tôi tiết kiệm được một lượng thời gian khổng lồ.
Nhưng có sự khác biệt giữa việc tạo ra một ứng dụng và xây dựng một hệ thống production.
AI có thể viết code cực nhanh.
Nhưng nó không tự động hiểu các quyết định đến từ việc nhiều năm đối mặt với người dùng thật, các vấn đề bảo mật, bài toán mở rộng quy mô và các sự cố trong production.
Tôi đã ghi lại tất cả những gì mình tìm thấy vì tôi nghĩ rất nhiều người hiện đang xây và ra mắt các ứng dụng do AI tạo ra mà không nhận ra rằng những vấn đề này tồn tại.
Cuối tuần này, tôi sẽ tổ chức một buổi Zoom trực tiếp miễn phí cùng với người bạn làm ở Google, nơi chúng tôi sẽ đi qua chính ứng dụng đó, chỉ ra các vấn đề mình tìm được, giải thích vì sao chúng quan trọng, và xem chúng tôi sẽ sửa gì trước khi đưa nó tới người dùng thật. Nếu bạn quan tâm, hãy nhắn DM cho tôi, tôi sẽ gửi chi tiết buổi Zoom.
Tổng thể, điều khiến tôi bất ngờ nhất không phải là việc AI mắc lỗi. Mà là mức độ thuyết phục của việc ứng dụng trông “ổn” trước khi tôi bắt đầu nhìn sâu hơn.
Mình tò mò: nếu bạn đã xây một ứng dụng theo kiểu “vibe-coded”, thì vấn đề bất ngờ đầu tiên bạn phát hiện sau khi ra mắt là gì?
Xem bản gốc
post-image
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Đăng lại
  • Retweed
Bình luận
Thêm một bình luận
Thêm một bình luận
Không có bình luận
  • Đã ghim