Khi AI viết mã… Ai chịu trách nhiệm?
Tin tức chung·Dev.to·1 lượt xem

Khi AI viết mã… Ai chịu trách nhiệm?

When AI Writes the Code… Who Takes Responsibility?

Một đêm muộn ở Kolkata, một nhà phát triển ngồi nhìn chằm chằm vào màn hình phát sáng. Nhà phát triển đó là tôi. Hai năm trong hành trình làm nhà phát triển Angular, tôi đã học được điều gì đó thú vị về phần mềm...

Một đêm muộn ở Kolkata, một nhà phát triển ngồi nhìn chằm chằm vào màn hình phát sáng.

Nhà phát triển đó chính là tôi.

Trong hai năm trong hành trình làm nhà phát triển Angular, tôi đã học được điều gì đó thú vị về phát triển phần mềm:

Những lỗi khó nhất không phải là những lỗi phát ra âm thanh lớn.

Họ là những người lặng lẽ giả vờ rằng mọi thứ đều ổn.

Và gần đây, với các công cụ AI ở khắp mọi nơi, tôi bắt đầu nhận thấy một hiện tượng kỳ lạ trong sự phát triển hiện đại — ảo tưởng về tốc độ.

Để tôi kể cho bạn một câu chuyện.

Chương 1: Chiếc nút thần kỳ

Tôi hiện đang làm việc trên Hệ thống quản lý tài sản (PMS) Nền tảng SaaS.

Nếu bạn đã từng làm việc trên các sản phẩm SaaS, bạn sẽ biết một điều:

Tính toàn vẹn của dữ liệu là điều thiêng liêng.

Nếu một lỗi nhỏ xuất hiện trong dự án cá nhân thì thật khó chịu.

Nếu một lỗi nhỏ xuất hiện trong hệ thống SaaS quản lý tài sản, người thuê, tiền thuê và dữ liệu tài chính…

…nó có thể trở thành một sai lầm rất đắt giá.

Gần đây chúng tôi đang giải quyết một vấn đề phổ biến về SaaS:

Bản địa hóa.

Nền tảng của chúng tôi cần hỗ trợ nhiều ngôn ngữ để người quản lý bất động sản và người thuê có thể sử dụng thoải mái.

Có vẻ như đây là công việc hoàn hảo dành cho AI.

Vì vậy, vào một buổi tối, tôi mở cuộc trò chuyện AI của mình trong VS Code và gõ một lệnh rất tự tin:

“Tìm tất cả SweetAlerts trong dự án, trích xuất tất cả các chuỗi mà người dùng nhìn thấy vào một tệp JSON dịch và liên kết lại các khóa để bản địa hóa.”

Tôi nhấn enter.

Năm giây sau.

AI đã cung cấp giải pháp toàn diện.

Các tệp đã được tạo.
Có cấu trúc JSON.
Ràng buộc được viết.

Nó trông… hoàn hảo.

Giống như một nhà ảo thuật vừa lôi một con thỏ ra khỏi tệp TypeScript.

Nhưng rồi một ý nghĩ ập đến với tôi:

Nếu tôi không viết mã này… liệu tôi có thực sự hiểu nó không?

Vậy là tôi đã làm một việc nhàm chán.

Tôi đã xem lại nó.

Từng dòng một.

Đó là lúc các vết nứt xuất hiện.

Chương 2: Bài toán “gần đúng”

AI cực kỳ giỏi trong việc viết mã trông chính xác.

Nhưng hệ thống SaaS không chạy trên có vẻ đúng.

Chúng chạy chính xác.

Khi xem xét công việc của AI, tôi phát hiện ra ba vấn đề nhỏ nhưng nguy hiểm.

1️⃣ Vấn đề bối cảnh

Một cảnh báo ban đầu có nghĩa là:

“Lưu hợp đồng thuê.”

AI đã dịch nó thành một từ có nghĩa về mặt kỹ thuật là “Lưu”.

Nhưng trong bối cảnh quản lý tài sản…

…nghe có vẻ gần giống “Giải cứu hợp đồng thuê.”

Có một chút kịch tính.

Hãy tưởng tượng việc nhấp vào nút và nhìn thấy:

“Hợp đồng thuê đã được giải cứu thành công.”

Ai đã bắt cóc hợp đồng thuê nhà?

2️⃣ Mẫu thảm họa theo nghĩa đen

Đâu đó bên trong tin nhắn SweetAlert là thế này:

`Đã nhận thành công khoản thanh toán tiền thuê ${số tiền`

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

AI đã vô tình sửa đổi liên kết và nó trở thành một thứ như:

"rent_received_message "

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Nhưng nó đã mất nội suy biến trong quá trình tái cấu trúc.

Kết quả?

Cảnh báo sẽ hiển thị:

Đã nhận thành công khoản thanh toán tiền thuê không xác định.

Xin chúc mừng.

Người thuê đã trả tiền đồng rupee không xác định.

3️⃣ Cảnh báo vô hình

Đã có cảnh báo từng trường hợp cụ thể về Tiền thuê quá hạn.

AI chưa bao giờ chạm vào nó.

Tại sao?

Bởi vì AI chỉ có khả năng hiển thị các tệp có trong ngữ cảnh lời nhắc hoặc trình soạn thảo.

Điều đó có nghĩa là hệ thống sẽ được bản địa hóa…

ngoại trừ một cảnh báo tài chính quan trọng.

Loại lỗi tồi tệ nhất.

Một sự im lặng.

Chương 3: Sự nhận ra đáng ngạc nhiên

Sau khi sửa chữa xong mọi thứ, tôi ngả người ra sau và nhận ra một điều hơi mỉa mai.

Việc xem xét công việc của AI mất thời gian gần bằng thời gian tôi viết mã.

Nhập đã lưu bởi AI.

Nhưng nó không cứu được suy nghĩ.

Và trong các hệ thống SaaS chuyên nghiệp, suy nghĩ là phần tốn kém.

Chương 4: Cam kết ma quái

Nhưng bài học lớn hơn lại đến từ kinh nghiệm của một đồng nghiệp.

Anh ấy đang gỡ lỗi một vấn đề nhỏ.

Một cách đơn giản.

Lỗi giao diện người dùng.

Anh ấy đã sử dụng tác nhân mã hóa AI để sửa nó.

AI đã làm đúng những gì nó hứa.

Lỗi đã biến mất.

Nhiệm vụ đã hoàn thành.

Hoặc có vẻ như vậy.

Điều mà người đại diện không đề cập là:

  • Mã đã sửa đổi trong ba tệp khác
  • Đã tái cấu trúc một chức năng tiện ích
  • “Đã dọn dẹp” kiểm tra quyền

Không có điều nào trong số đó là một phần của nhiệm vụ ban đầu.

Nhưng AI đã báo cáo:

✅ Đã khắc phục sự cố thành công

Đồng nghiệp của tôi đã tin tưởng nó.

Anh ấy đã nhấn mã.

Bây giờ hãy tưởng tượng điều này xảy ra trong trang tổng quan SaaS.

Bạn có thể bất ngờ nhận được:

Tham nhũng dữ liệu

Việc tính thuế tài sản trở nên sai lầm.

Lỗ hổng bảo mật

Việc kiểm tra quyền sẽ biến mất.

Hiệu ứng cánh bướm

Biểu đồ phân tích chia thành ba trang.

Tất cả chỉ vì một tác nhân AI đã cố gắng hữu ích.

Chương 5: Sự thật về AI trong quá trình phát triển

Các công cụ AI thật đáng kinh ngạc.

Họ có thể:

  • viết bản soạn sẵn
  • tạo cấu trúc
  • tăng tốc các tác vụ lặp đi lặp lại
  • giải thích mã phức tạp

Nhưng chúng có một hạn chế lớn.

Họ thiếu sự hiểu biết theo ngữ cảnh và quyền sở hữu các kết quả của hệ thống.

Khi ngừng sản xuất:

AI không được phân trang.

AI không bị đổ lỗi.

AI không tham gia cuộc họp khẩn cấp.

Đúng vậy.

Chương 6: Quy tắc phi công phụ

Vì vậy, đây là quy tắc mà tôi tuân theo.

AI không phải là đội trưởng.

AI là người lái phụ.

Phi công phụ có thể:

  • Đề xuất
  • Hỗ trợ
  • Điều hướng

Nhưng cơ trưởng vẫn lái máy bay.

Bởi vì khi sóng gió ập đến…

cần có ai đó hiểu toàn bộ hệ thống.

Gợn sóng vô hình

Mỗi dòng mã trong sản phẩm SaaS đều tạo ra những gợn sóng.

Một thay đổi nhỏ trong chuỗi bản địa hóa có thể ảnh hưởng đến logic giao diện người dùng.

Một bộ tái cấu trúc nhỏ có thể làm hỏng mô-đun báo cáo.

Một biến bị thiếu nhỏ có thể khiến hàng nghìn người dùng bối rối.

Đó là dòng sóng vô hình của quá trình phát triển phần mềm.

AI có thể tạo ra sự thay đổi.

Nhưng các nhà phát triển phải hiểu những gợn sóng đó lan đi bao xa.

Suy nghĩ cuối cùng

Chúng ta không nên sợ AI.

Nhưng chúng ta nên tôn trọng sự phức tạp của hệ thống mà chúng ta xây dựng.

Bởi vì trong sự phát triển của thế giới thực:

Một cú đẩy “nhanh” phá vỡ bảng điều khiển
cách chậm nhất để xây dựng sản phẩm.

Nếu bạn đã làm được đến đây, cảm ơn vì đã đọc.

Và nếu bạn đang sử dụng AI để viết mã (giống như hầu hết chúng ta hiện nay)…

Chỉ cần nhớ:

Hãy tin tưởng vào sự trợ giúp của AI.
Nhưng hãy xem lại mã như thể việc sản xuất của bạn phụ thuộc vào nó.
😄

Bạn đã bao giờ gặp lỗi do mã do AI tạo ra chưa?

Tôi muốn nghe trải nghiệm của bạn.

Tác giả: Subhrangsu Bera

#ai#programming#agents#webdev