Những lỗi thường gặp khi sử dụng Vibe Coding

Vibe Coding đang trở thành một phương pháp lập trình được nhiều người quan tâm nhờ khả năng sử dụng trí tuệ nhân tạo (AI) để tạo mã nguồn từ những yêu cầu được diễn đạt bằng ngôn ngữ tự nhiên. Thay vì phải tự viết từng dòng code, người dùng có thể mô tả chức năng mong muốn, để AI tạo chương trình và tiếp tục yêu cầu chỉnh sửa cho đến khi đạt kết quả phù hợp.

Tuy nhiên, việc tạo ra một ứng dụng bằng AI nhanh chóng không đồng nghĩa với việc ứng dụng đó đã hoạt động chính xác, an toàn hoặc sẵn sàng đưa vào sử dụng thực tế. Nếu thiếu kiến thức nền tảng và quy trình kiểm tra, người dùng rất dễ gặp phải những lỗi như AI hiểu sai yêu cầu, code chạy không ổn định, chức năng hoạt động thiếu nhất quán, lỗ hổng bảo mật hoặc dự án ngày càng khó sửa đổi.

Điểm đáng chú ý là nhiều lỗi trong Vibe Coding không xuất hiện ngay từ đầu. Một đoạn code có thể chạy tốt trong lần thử nghiệm đầu tiên nhưng lại phát sinh vấn đề khi bổ sung dữ liệu, thay đổi giao diện hoặc kết nối với một dịch vụ bên ngoài. Vì vậy, hiểu rõ các rủi ro phổ biến sẽ giúp người dùng khai thác AI hiệu quả hơn và hạn chế việc phải sửa đi sửa lại cùng một vấn đề.

Những lỗi thường gặp khi sử dụng Vibe Coding
Những lỗi thường gặp khi sử dụng Vibe Coding

Vibe Coding là gì và tại sao dễ phát sinh lỗi?

Vibe Coding là cách phát triển phần mềm trong đó người dùng chủ yếu mô tả ý tưởng, chức năng và hành vi mong muốn, sau đó sử dụng AI để tạo hoặc chỉnh sửa mã nguồn. Người dùng có thể tập trung vào mục tiêu của sản phẩm thay vì trực tiếp triển khai mọi chi tiết kỹ thuật.

Phương pháp này phù hợp với việc tạo nguyên mẫu, xây dựng website đơn giản, phát triển công cụ nội bộ hoặc thử nghiệm ý tưởng sản phẩm. Tuy nhiên, mức độ hiệu quả phụ thuộc đáng kể vào chất lượng yêu cầu đầu vào, khả năng đánh giá kết quả và cách quản lý mã nguồn trong suốt quá trình phát triển.

Vibe Coding dễ phát sinh lỗi vì AI không tự động hiểu đầy đủ mọi quy tắc nghiệp vụ, giới hạn kỹ thuật và điều kiện sử dụng thực tế. Khi thiếu thông tin, AI có thể tự suy đoán cách triển khai. Phần code được tạo ra có thể hợp lý về mặt cú pháp nhưng không đúng với mục tiêu thực sự của người dùng.

Bên cạnh đó, khi liên tục yêu cầu AI sửa lỗi hoặc bổ sung tính năng, các thay đổi mới có thể ảnh hưởng đến những phần đã hoạt động trước đó. Nếu không có kiểm thử, quản lý phiên bản và kiểm soát kiến trúc, dự án rất dễ trở thành tập hợp những đoạn code được thêm vào để xử lý từng vấn đề riêng lẻ.

Những lỗi thường gặp khi sử dụng Vibe Coding

1. Mô tả yêu cầu quá chung chung khiến AI hiểu sai

Đây là một trong những nguyên nhân phổ biến nhất khiến sản phẩm tạo bằng Vibe Coding không đáp ứng đúng mong đợi. Khi người dùng chỉ đưa ra yêu cầu ngắn như tạo website bán hàng, làm trang quản lý khách hàng hoặc xây dựng ứng dụng đặt lịch, AI phải tự suy đoán nhiều chi tiết chưa được xác định.

Chẳng hạn, yêu cầu tạo website bán hàng chưa cho biết người dùng cần thanh toán trực tuyến hay chỉ đặt hàng qua biểu mẫu, có cần quản lý tồn kho hay không, khách hàng có được theo dõi đơn hàng không và người quản trị cần những quyền hạn nào. AI có thể tạo ra giao diện trông hoàn chỉnh nhưng thiếu những nghiệp vụ quan trọng.

Vấn đề không nằm hoàn toàn ở khả năng của AI mà còn ở việc yêu cầu đầu vào chưa đủ rõ ràng. Một sản phẩm phần mềm cần đáp ứng các hành vi cụ thể, trong khi mô tả quá rộng thường chỉ giúp AI tạo ra một phiên bản minh họa dựa trên những giả định của nó.

Cách khắc phục: Trước khi yêu cầu AI viết code, hãy xác định mục tiêu, đối tượng sử dụng, chức năng chính, dữ liệu đầu vào, kết quả đầu ra và các trường hợp ngoại lệ. Nếu dự án có nhiều tính năng, nên chia thành từng phần nhỏ để AI triển khai lần lượt.

Ví dụ, thay vì yêu cầu tạo chức năng đăng nhập, bạn có thể mô tả rõ hơn như sau:

Hãy xây dựng chức năng đăng nhập cho ứng dụng quản lý công việc.

Yêu cầu:
- Người dùng đăng nhập bằng email và mật khẩu.
- Kiểm tra dữ liệu trước khi gửi yêu cầu.
- Hiển thị thông báo rõ ràng nếu thông tin không hợp lệ.
- Không lưu mật khẩu dưới dạng văn bản thuần.
- Chỉ cho phép truy cập trang quản lý sau khi xác thực thành công.
- Xử lý trường hợp máy chủ không phản hồi.
- Viết kiểm thử cho các trường hợp đăng nhập thành công và thất bại.

Trước khi viết code, hãy nêu các thành phần cần xây dựng
và những giả định kỹ thuật cần xác nhận.

Cách mô tả này giúp AI có cơ sở triển khai rõ ràng hơn, đồng thời giúp người dùng xác định được những gì cần kiểm tra sau khi hoàn thành.

2. Tin tưởng hoàn toàn vào code do AI tạo ra

Một sai lầm thường gặp là cho rằng code do AI tạo ra luôn đúng vì chương trình đã chạy hoặc giao diện hiển thị như mong muốn. Trên thực tế, AI có thể tạo mã nguồn có lỗi logic, sử dụng API không phù hợp, xử lý dữ liệu thiếu an toàn hoặc dựa vào những giả định không chính xác về môi trường triển khai.

Đặc biệt, lỗi trong Vibe Coding không phải lúc nào cũng khiến chương trình dừng hoạt động. Một hàm tính toán có thể trả về kết quả sai trong một số trường hợp hiếm gặp. Một biểu mẫu có thể hiển thị thông báo thành công dù dữ liệu chưa được lưu vào cơ sở dữ liệu. Một trang quản trị có thể xuất hiện bình thường nhưng chưa thực sự ngăn người dùng không có quyền truy cập.

Những vấn đề này khó phát hiện nếu chỉ kiểm tra giao diện hoặc thử nghiệm với một vài dữ liệu đơn giản.

Cách khắc phục: Xem code do AI tạo ra là bản triển khai cần được xác minh, không phải kết quả mặc nhiên chính xác. Sau mỗi tính năng, hãy kiểm tra logic, thử các trường hợp đầu vào khác nhau và yêu cầu AI giải thích cách hoạt động của những phần quan trọng.

Nếu không hiểu một đoạn code, bạn nên yêu cầu AI giải thích nhiệm vụ của từng hàm, dữ liệu được xử lý như thế nào và những rủi ro có thể phát sinh. Với các thành phần quan trọng như xác thực, phân quyền, thanh toán hoặc xử lý dữ liệu cá nhân, cần có bước đánh giá kỹ thuật nghiêm túc trước khi đưa vào sử dụng.

3. Sửa lỗi liên tục nhưng không xác định nguyên nhân gốc

Khi chương trình xuất hiện lỗi, nhiều người có xu hướng sao chép thông báo lỗi vào AI rồi yêu cầu sửa ngay. AI có thể đề xuất một thay đổi giúp chương trình chạy trở lại, nhưng cách sửa đó chưa chắc giải quyết được nguyên nhân ban đầu.

Ví dụ, một trang web không hiển thị dữ liệu có thể xuất phát từ nhiều nguyên nhân: API trả về sai định dạng, truy vấn cơ sở dữ liệu không đúng, trạng thái giao diện chưa được cập nhật, yêu cầu bị từ chối hoặc dữ liệu đầu vào không đáp ứng điều kiện xử lý. Nếu chỉ yêu cầu AI sửa phần giao diện, lỗi thực sự có thể vẫn tồn tại.

Nghiêm trọng hơn, một thay đổi mang tính đối phó có thể tạo ra lỗi mới. Khi người dùng tiếp tục yêu cầu sửa các lỗi phát sinh mà không kiểm tra nguyên nhân, mã nguồn dần trở nên phức tạp và khó kiểm soát.

Cách khắc phục: Trước khi sửa code, hãy xác định hiện tượng, điều kiện tái hiện và nguyên nhân có khả năng gây ra lỗi. Cung cấp cho AI thông báo lỗi đầy đủ, đoạn code liên quan, kết quả thực tế và kết quả mong muốn.

Bạn có thể sử dụng yêu cầu sau:

Hãy phân tích lỗi trước khi thay đổi mã nguồn.

Thông tin:
- Hiện tượng: Dữ liệu không hiển thị sau khi gửi biểu mẫu.
- Kết quả mong muốn: Dữ liệu được lưu và xuất hiện trong danh sách.
- Kết quả thực tế: Giao diện không cập nhật.
- Hãy kiểm tra luồng xử lý từ giao diện, API đến cơ sở dữ liệu.
- Liệt kê các nguyên nhân có khả năng xảy ra.
- Đề xuất cách xác minh từng nguyên nhân.
- Chỉ sửa code sau khi xác định được nguyên nhân phù hợp.
- Không thay đổi những phần không liên quan.

Cách làm này giúp chuyển quá trình sửa lỗi từ việc thử nghiệm ngẫu nhiên sang phân tích có căn cứ. Nếu có thể, hãy tái hiện lỗi trước khi sửa và chạy lại đúng trường hợp đó sau khi hoàn thành.

4. Yêu cầu AI thay đổi quá nhiều chức năng trong một lần

Việc yêu cầu AI xây dựng hoặc chỉnh sửa nhiều chức năng cùng lúc có thể tiết kiệm thời gian ban đầu, nhưng cũng làm tăng nguy cơ sai sót. Khi phạm vi thay đổi quá lớn, người dùng khó xác định phần nào gây ra lỗi nếu kết quả không hoạt động như mong đợi.

Chẳng hạn, trong cùng một yêu cầu, bạn đề nghị AI thay đổi cấu trúc cơ sở dữ liệu, thiết kế lại giao diện, bổ sung đăng nhập, kết nối API và tạo trang quản trị. Các thành phần này có mối quan hệ phụ thuộc với nhau. Nếu một thay đổi không tương thích với những phần còn lại, lỗi có thể xuất hiện ở nhiều vị trí khác nhau.

Vấn đề còn nghiêm trọng hơn khi AI sửa trực tiếp nhiều tệp mà không cung cấp bản tóm tắt các thay đổi. Người dùng có thể không nhận ra rằng một hàm đang được sử dụng ở nơi khác đã bị sửa hoặc xóa.

Cách khắc phục: Chia công việc thành những nhiệm vụ nhỏ, có đầu ra và tiêu chí hoàn thành rõ ràng. Với một website, có thể triển khai theo thứ tự: dựng cấu trúc giao diện, xây dựng chức năng chính, kết nối dữ liệu, bổ sung xác thực, sau đó hoàn thiện các tình huống lỗi và kiểm thử.

Sau mỗi giai đoạn, hãy xác nhận chức năng hoạt động đúng trước khi tiếp tục. Khi yêu cầu sửa đổi, cần giới hạn phạm vi thay đổi và đề nghị AI liệt kê các tệp bị tác động, lý do chỉnh sửa cùng những chức năng cần kiểm tra lại.

5. Không cung cấp đủ ngữ cảnh cho AI khi làm việc với dự án

AI có thể đưa ra giải pháp hợp lý nhưng không phù hợp với dự án hiện tại nếu không biết cấu trúc thư mục, ngôn ngữ lập trình, framework, phiên bản thư viện hoặc quy ước mà dự án đang sử dụng.

Ví dụ, một dự án sử dụng phiên bản thư viện cũ có thể không tương thích với cú pháp mà AI đề xuất. Tương tự, nếu ứng dụng đã có hệ thống xác thực riêng, AI có thể tạo thêm một cơ chế khác dẫn đến xung đột hoặc làm quy trình đăng nhập trở nên thiếu nhất quán.

Ngữ cảnh không đầy đủ còn khiến AI dễ đề xuất những giải pháp trùng lặp, tạo thêm tệp không cần thiết hoặc bỏ qua các hàm đã có thể tái sử dụng.

Cách khắc phục: Khi bắt đầu một nhiệm vụ, hãy cung cấp thông tin cơ bản về dự án như công nghệ đang dùng, cấu trúc thư mục liên quan, chức năng hiện có, quy tắc xử lý dữ liệu và giới hạn của yêu cầu. Nếu công cụ Vibe Coding có khả năng đọc toàn bộ dự án, hãy kiểm tra xem nó đã thực sự nhận diện đúng các tệp liên quan hay chưa.

Đối với dự án dài hạn, nên duy trì một tài liệu mô tả kiến trúc, quy ước lập trình, các quyết định kỹ thuật và những vấn đề còn tồn tại. Tài liệu này giúp AI và người phát triển có cơ sở thống nhất khi tiếp tục công việc sau nhiều phiên trao đổi.

6. Để mã nguồn trở nên rối rắm sau nhiều lần chỉnh sửa

Ở giai đoạn đầu, Vibe Coding có thể tạo ra sản phẩm rất nhanh. Tuy nhiên, khi liên tục thêm tính năng theo từng yêu cầu riêng lẻ, dự án có nguy cơ xuất hiện những hàm trùng lặp, điều kiện xử lý chồng chéo, biến đặt tên thiếu nhất quán và nhiều đoạn code thực hiện cùng một nhiệm vụ.

Một biểu hiện phổ biến là người dùng yêu cầu AI thêm một chức năng nhỏ nhưng AI lại tạo thêm tệp mới, sao chép logic từ tệp cũ hoặc viết một cách xử lý khác với quy ước hiện có. Mỗi thay đổi riêng lẻ có thể vẫn hoạt động, nhưng toàn bộ hệ thống ngày càng khó hiểu.

Đây là vấn đề về chất lượng kiến trúc và khả năng bảo trì. Khi cấu trúc code thiếu nhất quán, những lần sửa tiếp theo thường tốn nhiều thời gian hơn và có nguy cơ làm hỏng chức năng đã hoàn thiện.

Cách khắc phục: Không chỉ yêu cầu AI bổ sung tính năng mà còn cần duy trì tiêu chuẩn chất lượng mã nguồn. Hãy đề nghị AI tái sử dụng những thành phần hiện có, tránh sao chép logic không cần thiết và giải thích rõ nếu phải thay đổi kiến trúc.

Nên dành thời gian định kỳ để rà soát những phần code đã phát triển, loại bỏ thành phần không còn sử dụng và chuẩn hóa các hàm có nhiệm vụ tương tự. Tuy nhiên, không nên yêu cầu AI viết lại toàn bộ dự án chỉ để làm code trông gọn hơn khi chưa có lý do rõ ràng, vì việc tái cấu trúc trên diện rộng cũng có thể gây ra lỗi mới.

7. Không kiểm tra tính tương thích giữa các thành phần

Một ứng dụng thường bao gồm nhiều thành phần như giao diện, máy chủ, cơ sở dữ liệu, API và thư viện bên ngoài. Mỗi thành phần có thể hoạt động riêng lẻ nhưng vẫn phát sinh lỗi khi kết nối với nhau.

Chẳng hạn, giao diện gửi trường dữ liệu có tên userId, trong khi API lại chờ trường user_id. Hoặc máy chủ trả về một danh sách đối tượng nhưng giao diện lại xử lý kết quả như một đối tượng đơn. Những khác biệt nhỏ như vậy có thể khiến dữ liệu không hiển thị hoặc chức năng không hoạt động.

Tương tự, AI có thể tạo code sử dụng một phương thức không tồn tại trong phiên bản thư viện mà dự án đang cài đặt. Nếu chỉ xem xét từng tệp riêng lẻ, bạn có thể bỏ qua các vấn đề tương thích này.

Cách khắc phục: Xác định rõ hợp đồng dữ liệu giữa các thành phần, bao gồm tên trường, kiểu dữ liệu, định dạng phản hồi và cách xử lý lỗi. Khi kết nối một thành phần mới, hãy kiểm tra cả hai phía thay vì chỉ xác nhận rằng code đã được tạo thành công.

Ngoài ra, cần kiểm tra phiên bản thư viện, cấu hình môi trường và hướng dẫn chính thức của những công nghệ đang sử dụng. Với các chức năng quan trọng, nên viết kiểm thử tích hợp để xác nhận dữ liệu được truyền và xử lý chính xác xuyên suốt hệ thống.

Những dấu hiệu cho thấy dự án Vibe Coding đang gặp vấn đề

Không phải lỗi nào cũng xuất hiện dưới dạng thông báo màu đỏ hoặc khiến ứng dụng ngừng hoạt động. Trong nhiều trường hợp, những dấu hiệu nhỏ về hiệu suất, tính nhất quán và khả năng sửa đổi cho thấy dự án đang phát triển theo hướng thiếu kiểm soát.

  • Lỗi cũ liên tục quay lại: Một chức năng vừa được sửa xong lại hỏng sau khi thêm tính năng khác.
  • Code ngày càng khó giải thích: Người dùng không biết một hàm có nhiệm vụ gì hoặc tại sao phải giữ nhiều đoạn code tương tự nhau.
  • AI thường xuyên sửa lan sang phần khác: Những thay đổi nhỏ cũng tác động đến nhiều tệp hoặc chức năng không liên quan.
  • Chỉ hoạt động trong trường hợp đơn giản: Ứng dụng chạy tốt với dữ liệu mẫu nhưng thất bại khi gặp dữ liệu trống, dữ liệu lớn hoặc đầu vào không hợp lệ.
  • Không thể tái hiện lỗi ổn định: Cùng một thao tác nhưng đôi khi thành công, đôi khi thất bại mà chưa xác định được nguyên nhân.
  • Không biết phiên bản nào đang hoạt động tốt: Sau nhiều lần chỉnh sửa, người dùng không thể khôi phục trạng thái ổn định trước đó.

Khi nhận thấy những dấu hiệu này, không nên tiếp tục bổ sung tính năng một cách vội vàng. Hãy tạm dừng, xác định trạng thái hiện tại của dự án, kiểm tra các thay đổi gần nhất và khôi phục khả năng kiểm thử trước khi phát triển tiếp.

Mục tiêu không phải là loại bỏ hoàn toàn mọi lỗi trong quá trình lập trình, mà là phát hiện chúng sớm, xác định được nguyên nhân và tránh để một lỗi nhỏ kéo theo hàng loạt vấn đề mới.

Những lỗi nghiêm trọng cần tránh khi phát triển ứng dụng bằng Vibe Coding

8. Bỏ qua bảo mật khi tạo ứng dụng bằng AI

Bảo mật là một trong những vấn đề đáng lo ngại nhất khi sử dụng Vibe Coding, đặc biệt với các ứng dụng có đăng nhập, quản lý tài khoản, xử lý thông tin khách hàng hoặc kết nối cơ sở dữ liệu. AI có thể tạo ra một chức năng hoạt động bình thường nhưng chưa đáp ứng đầy đủ các yêu cầu bảo vệ dữ liệu.

Một số sai sót thường gặp gồm lưu mật khẩu dưới dạng văn bản thuần, kiểm tra quyền truy cập chỉ ở giao diện, xây dựng truy vấn cơ sở dữ liệu không an toàn, để lộ thông tin nhạy cảm trong thông báo lỗi hoặc sử dụng khóa API trực tiếp trong mã nguồn phía trình duyệt.

Ví dụ, việc ẩn nút quản trị khỏi người dùng thông thường không có nghĩa là chức năng quản trị đã được bảo vệ. Nếu máy chủ không kiểm tra quyền của người gửi yêu cầu, người khác vẫn có thể tìm cách gọi trực tiếp API để truy cập dữ liệu hoặc thực hiện thao tác trái phép.

Một rủi ro khác là đưa mã nguồn chứa thông tin bí mật vào công cụ AI mà không xem xét chính sách xử lý dữ liệu của dịch vụ. Khóa truy cập, mật khẩu cơ sở dữ liệu, mã thông báo xác thực và dữ liệu khách hàng cần được bảo vệ ngay từ quá trình phát triển.

Cách khắc phục:

  • Không lưu mật khẩu dưới dạng văn bản thuần; sử dụng cơ chế băm mật khẩu phù hợp do thư viện hoặc nền tảng đáng tin cậy cung cấp.
  • Thực hiện xác thực và phân quyền ở phía máy chủ đối với những thao tác cần bảo vệ.
  • Lưu khóa API và thông tin kết nối nhạy cảm trong biến môi trường hoặc hệ thống quản lý bí mật phù hợp.
  • Kiểm tra và xác thực dữ liệu đầu vào ở phía máy chủ, không chỉ dựa vào kiểm tra của giao diện.
  • Hạn chế quyền truy cập cơ sở dữ liệu theo đúng nhu cầu của từng thành phần.
  • Kiểm tra các thư viện phụ thuộc, cấu hình triển khai và nhật ký lỗi để phát hiện thông tin nhạy cảm bị lộ.
  • Đánh giá chính sách quyền riêng tư và cách xử lý dữ liệu của công cụ AI trước khi cung cấp mã nguồn hoặc thông tin nội bộ.

Đối với ứng dụng xử lý thanh toán, hồ sơ khách hàng hoặc dữ liệu quan trọng, không nên đưa sản phẩm vào vận hành chỉ dựa trên kết quả AI tự đánh giá. Cần kiểm thử bảo mật độc lập và nhờ người có chuyên môn rà soát những thành phần có rủi ro cao.

9. Để lộ khóa API và thông tin cấu hình bí mật

Khi kết nối ứng dụng với dịch vụ AI, email, thanh toán hoặc cơ sở dữ liệu, người dùng thường cần cung cấp khóa API và các thông tin xác thực. Nếu yêu cầu AI viết code theo cách thiếu an toàn, những dữ liệu này có thể bị đưa trực tiếp vào mã nguồn, tệp cấu hình công khai hoặc mã JavaScript được gửi xuống trình duyệt.

Vấn đề trở nên nghiêm trọng khi dự án được đưa lên kho mã nguồn công khai. Một khóa API bị lộ có thể bị người khác sử dụng trái phép, gây phát sinh chi phí, vượt hạn mức hoặc dẫn đến truy cập dữ liệu không được phép.

Việc xóa khóa khỏi đoạn code sau khi phát hiện sự cố cũng chưa chắc đã đủ. Nếu khóa từng được đưa lên kho mã nguồn, nó có thể vẫn tồn tại trong lịch sử phiên bản hoặc các bản sao đã được tạo.

Cách khắc phục: Không đặt khóa bí mật trong mã nguồn phía trình duyệt, nội dung HTML công khai hoặc tệp được đưa lên kho mã nguồn. Với các khóa cần được giữ kín, hãy thực hiện yêu cầu từ máy chủ và lấy thông tin xác thực từ biến môi trường hoặc hệ thống quản lý bí mật.

Hãy bổ sung tệp cấu hình mẫu chỉ chứa tên các biến cần thiết, không chứa giá trị bí mật thực tế. Đồng thời, thiết lập giới hạn quyền sử dụng, hạn mức chi phí và cơ chế giám sát nếu dịch vụ hỗ trợ.

Nếu nghi ngờ khóa đã bị lộ, cần thu hồi hoặc thay thế khóa ngay, kiểm tra nhật ký sử dụng và đánh giá những dữ liệu có thể đã bị truy cập. Không nên tiếp tục sử dụng một khóa đã bị công khai chỉ vì ứng dụng hiện tại vẫn hoạt động bình thường.

10. Không kiểm thử đầy đủ trước khi đưa ứng dụng vào sử dụng

Một ứng dụng được tạo bằng Vibe Coding có thể hoạt động tốt trong một vài tình huống thử nghiệm nhưng vẫn chứa nhiều lỗi chưa được phát hiện. Nguyên nhân thường là người dùng chỉ kiểm tra chức năng chính mà bỏ qua các trường hợp ngoại lệ, dữ liệu bất thường và sự tương tác giữa nhiều chức năng.

Ví dụ, biểu mẫu đăng ký có thể hoạt động khi người dùng nhập đầy đủ thông tin nhưng gặp lỗi khi email đã tồn tại, mật khẩu không đáp ứng yêu cầu hoặc kết nối mạng bị gián đoạn. Một chức năng tải tệp có thể chạy với tệp nhỏ nhưng thất bại khi tệp vượt giới hạn dung lượng.

Không kiểm thử còn khiến những lỗi phát sinh sau mỗi lần chỉnh sửa khó được phát hiện. Khi AI thay đổi một hàm dùng chung, nhiều chức năng khác có thể bị ảnh hưởng dù người dùng chỉ yêu cầu sửa một màn hình.

Cách khắc phục: Xây dựng kế hoạch kiểm thử ngay từ khi bắt đầu dự án. Tùy theo mức độ phức tạp, bạn có thể kết hợp các hình thức sau:

  • Kiểm thử đơn vị: Kiểm tra từng hàm hoặc thành phần riêng lẻ để xác nhận kết quả xử lý chính xác.
  • Kiểm thử tích hợp: Kiểm tra khả năng phối hợp giữa giao diện, API, cơ sở dữ liệu và các dịch vụ bên ngoài.
  • Kiểm thử đầu cuối: Mô phỏng quy trình thực tế của người dùng, từ lúc bắt đầu thao tác đến khi hoàn thành công việc.
  • Kiểm thử trường hợp ngoại lệ: Thử dữ liệu trống, dữ liệu sai định dạng, yêu cầu trùng lặp, lỗi mạng và những điều kiện bất thường khác.
  • Kiểm thử hồi quy: Chạy lại những bài kiểm thử cũ sau khi chỉnh sửa để phát hiện chức năng đã hoạt động trước đó bị ảnh hưởng.

Bạn có thể yêu cầu AI viết bài kiểm thử cho từng tính năng, nhưng cần xem xét liệu các bài kiểm thử đó có thực sự bao phủ những rủi ro quan trọng hay không. Việc kiểm thử có giá trị nhất khi các trường hợp được xác định độc lập với cách triển khai, thay vì chỉ xác nhận rằng code đang hoạt động đúng theo giả định ban đầu của AI.

11. Không quản lý phiên bản và không tạo điểm khôi phục

Trong quá trình Vibe Coding, người dùng thường yêu cầu AI chỉnh sửa code nhiều lần liên tiếp. Nếu không quản lý phiên bản, một thay đổi sai có thể khiến ứng dụng hỏng trong khi không còn cách đơn giản để quay lại trạng thái ổn định.

Tình huống này thường xảy ra khi AI viết lại một tệp lớn, xóa nhầm thành phần đang được sử dụng hoặc thay đổi cấu trúc dữ liệu mà không cập nhật các chức năng liên quan. Nếu không có bản lưu trước đó, người dùng phải tự tìm cách khôi phục hoặc yêu cầu AI tái tạo lại phần code đã mất.

Việc yêu cầu AI ghi nhớ phiên bản trước cũng không thể thay thế một hệ thống quản lý phiên bản đáng tin cậy. AI có thể không còn đầy đủ ngữ cảnh về những thay đổi đã thực hiện, đặc biệt khi dự án trải qua nhiều phiên làm việc.

Cách khắc phục: Sử dụng Git hoặc công cụ quản lý phiên bản tương đương để theo dõi các thay đổi trong mã nguồn. Nên tạo một mốc phiên bản khi chức năng quan trọng đã hoạt động và được kiểm thử.

Với mỗi nhiệm vụ, hãy giới hạn phạm vi chỉnh sửa, xem lại những dòng code đã thay đổi và chạy kiểm thử trước khi ghi nhận phiên bản mới. Nếu sử dụng công cụ AI có khả năng tự chỉnh sửa tệp, cần xem lại bản thay đổi trước khi chấp nhận, đặc biệt khi có thao tác xóa hoặc tái cấu trúc nhiều thành phần.

Ngoài mã nguồn, dữ liệu quan trọng cũng cần được sao lưu theo quy trình riêng. Kho mã nguồn không mặc nhiên chứa đầy đủ dữ liệu vận hành, tệp tải lên, thông tin cấu hình và mọi thành phần cần thiết để khôi phục ứng dụng.

12. Thay đổi cơ sở dữ liệu mà không kiểm tra ảnh hưởng

Cơ sở dữ liệu thường chứa những thông tin quan trọng như tài khoản, đơn hàng, lịch sử giao dịch và dữ liệu nghiệp vụ. Khi yêu cầu AI thay đổi cấu trúc bảng hoặc cách lưu trữ dữ liệu, một sai sót nhỏ có thể khiến ứng dụng không còn đọc được dữ liệu cũ hoặc làm mất thông tin.

Chẳng hạn, AI có thể đổi tên một trường dữ liệu nhưng không cập nhật toàn bộ truy vấn liên quan. Một chức năng mới có thể yêu cầu trường bổ sung nhưng không xử lý các bản ghi hiện có. Trong trường hợp nghiêm trọng hơn, một câu lệnh xóa hoặc cập nhật thiếu điều kiện có thể tác động đến nhiều bản ghi ngoài dự kiến.

Cách khắc phục: Với mỗi thay đổi về cấu trúc dữ liệu, hãy xác định những bảng, trường, truy vấn và chức năng có liên quan. Sử dụng các bản di trú cơ sở dữ liệu có thể theo dõi thay vì chỉnh sửa tùy tiện trên môi trường đang vận hành.

Trước khi thực hiện thay đổi có nguy cơ ảnh hưởng đến dữ liệu, cần sao lưu và xác định phương án khôi phục. Thử nghiệm trên môi trường phát triển hoặc dữ liệu mẫu trước khi áp dụng vào hệ thống thật.

Đặc biệt, không nên yêu cầu AI thực hiện thao tác xóa dữ liệu diện rộng khi chưa xác nhận rõ điều kiện, phạm vi và hậu quả. Những thao tác có tính phá hủy cần được kiểm tra kỹ, giới hạn quyền thực thi và yêu cầu xác nhận phù hợp.

13. Chọn công nghệ hoặc thư viện không phù hợp với dự án

AI có thể đề xuất một framework, thư viện hoặc dịch vụ mới vì cho rằng đó là giải pháp thuận tiện. Tuy nhiên, công nghệ phù hợp với một dự án chưa chắc phù hợp với dự án khác.

Việc sử dụng quá nhiều thư viện cho những nhiệm vụ đơn giản có thể khiến dự án nặng hơn, tăng thời gian cài đặt và mở rộng bề mặt rủi ro bảo mật. Ngược lại, lựa chọn công nghệ không phù hợp với quy mô ứng dụng có thể gây khó khăn khi xử lý dữ liệu lớn hoặc bổ sung chức năng về sau.

Một vấn đề khác là AI đôi khi đề xuất API đã thay đổi, phương thức không còn được hỗ trợ hoặc cú pháp không tương thích với phiên bản thư viện đang cài đặt. Nếu không kiểm tra tài liệu chính thức, người dùng có thể mất nhiều thời gian sửa các lỗi do lựa chọn kỹ thuật ban đầu.

Cách khắc phục: Trước khi bổ sung công nghệ mới, hãy xác định nhu cầu thực tế, mức độ phức tạp, khả năng bảo trì và yêu cầu triển khai. Ưu tiên những công nghệ đã được dự án sử dụng nếu chúng đáp ứng tốt yêu cầu.

Đối với thư viện mới, cần kiểm tra tài liệu chính thức, phiên bản hiện hành, khả năng tương thích và tình trạng bảo trì. Không nên cài đặt một gói chỉ vì AI đề xuất mà chưa hiểu vai trò của nó trong hệ thống.

Những lỗi thường gặp khi triển khai ứng dụng Vibe Coding

14. Chỉ chạy tốt trên máy phát triển nhưng lỗi khi đưa lên môi trường thật

Một ứng dụng có thể hoạt động bình thường trên máy tính cá nhân nhưng thất bại khi triển khai lên máy chủ hoặc nền tảng lưu trữ. Nguyên nhân thường nằm ở sự khác biệt giữa các môi trường, chẳng hạn phiên bản runtime, biến môi trường, đường dẫn tệp, quyền truy cập hoặc cấu hình mạng.

Ví dụ, ứng dụng chạy được trên máy cá nhân vì đã có sẵn một biến môi trường chứa khóa API, nhưng khi triển khai lên máy chủ, biến này chưa được thiết lập. Tương tự, một đường dẫn tệp có thể hợp lệ trên Windows nhưng không hoạt động trên môi trường Linux do khác biệt về hệ điều hành hoặc cách xử lý đường dẫn.

Đôi khi, lỗi chỉ xuất hiện khi có nhiều người sử dụng cùng lúc hoặc khi ứng dụng xử lý lượng dữ liệu lớn hơn dữ liệu thử nghiệm.

Cách khắc phục: Thiết lập môi trường thử nghiệm gần với môi trường triển khai thực tế nhất có thể. Kiểm tra đầy đủ các biến môi trường, phiên bản công nghệ, quyền truy cập, cấu hình mạng và các bước xây dựng ứng dụng.

Trước khi phát hành, hãy kiểm tra nhật ký máy chủ, thử những quy trình quan trọng và xác nhận rằng ứng dụng có thể xử lý lỗi khi dịch vụ bên ngoài không phản hồi. Với hệ thống đang hoạt động, nên triển khai theo từng bước và chuẩn bị phương án quay lại phiên bản ổn định nếu phát sinh sự cố.

15. Không quan tâm đến hiệu suất khi AI tạo code

Code do AI tạo ra có thể đáp ứng yêu cầu chức năng nhưng chưa tối ưu về hiệu suất. Trong một ứng dụng nhỏ, vấn đề này có thể chưa rõ ràng. Tuy nhiên, khi số lượng người dùng, dữ liệu hoặc yêu cầu xử lý tăng lên, những đoạn code thiếu hiệu quả có thể khiến hệ thống phản hồi chậm và tiêu tốn tài nguyên.

Một số ví dụ gồm truy vấn cơ sở dữ liệu lặp lại quá nhiều lần, tải toàn bộ dữ liệu về trình duyệt thay vì phân trang, gọi API liên tục khi người dùng nhập liệu hoặc thực hiện phép tính nặng ngay trong luồng xử lý giao diện.

Tuy vậy, không phải đoạn code dài hay nhiều dòng lệnh đều đồng nghĩa với hiệu suất kém. Việc tối ưu cần dựa trên cách ứng dụng hoạt động và số liệu đo đạc thực tế.

Cách khắc phục: Kiểm tra hiệu suất tại những điểm quan trọng như thời gian tải trang, số lượng truy vấn, kích thước dữ liệu truyền tải và thời gian phản hồi API. Chỉ yêu cầu AI tối ưu sau khi đã xác định được thành phần gây chậm.

Với ứng dụng có dữ liệu lớn, hãy cân nhắc phân trang, giới hạn số bản ghi trả về, sử dụng chỉ mục cơ sở dữ liệu phù hợp và tránh gọi dịch vụ bên ngoài không cần thiết. Sau mỗi lần tối ưu, cần kiểm thử lại chức năng để bảo đảm kết quả xử lý vẫn chính xác.

16. Không xử lý đầy đủ trạng thái lỗi và phản hồi của người dùng

Một ứng dụng không chỉ cần hoạt động trong điều kiện lý tưởng mà còn phải phản hồi hợp lý khi xảy ra sự cố. Nếu AI chỉ tập trung xây dựng luồng thành công, giao diện có thể bị treo, biểu mẫu không phản hồi hoặc người dùng không biết thao tác của mình đã hoàn thành hay chưa.

Ví dụ, khi gửi biểu mẫu, người dùng nhấn nút nhiều lần vì không thấy thông báo. Điều này có thể dẫn đến yêu cầu trùng lặp, tạo nhiều đơn hàng hoặc thực hiện một thao tác nhiều lần.

Tương tự, nếu API trả về lỗi nhưng giao diện vẫn hiển thị thông báo thành công, người dùng có thể tin rằng dữ liệu đã được lưu dù thực tế chưa có thay đổi nào trong hệ thống.

Cách khắc phục: Yêu cầu AI thiết kế đầy đủ các trạng thái giao diện, bao gồm đang tải, thành công, thất bại, không có dữ liệu và cần xác nhận. Với thao tác có thể tạo ra dữ liệu trùng lặp hoặc gây hậu quả đáng kể, cần cân nhắc cơ chế chống gửi lặp và xác nhận trạng thái từ máy chủ.

Thông báo lỗi nên dễ hiểu và hướng dẫn người dùng cách xử lý tiếp theo. Đồng thời, thông tin kỹ thuật chi tiết phục vụ việc gỡ lỗi cần được ghi nhận ở phía máy chủ một cách an toàn, tránh hiển thị thông tin nhạy cảm cho người dùng cuối.

Cách hạn chế lỗi khi sử dụng Vibe Coding hiệu quả

Để giảm những vấn đề trên, người dùng không nhất thiết phải tự viết toàn bộ mã nguồn. Điều quan trọng là xây dựng quy trình làm việc giúp AI hiểu đúng yêu cầu, tạo ra những thay đổi có thể kiểm soát và kiểm tra kết quả trước khi tiếp tục.

1. Xác định yêu cầu và tiêu chí hoàn thành trước khi viết code

Hãy mô tả rõ chức năng cần xây dựng, đối tượng sử dụng, dữ liệu đầu vào, kết quả mong muốn và các trường hợp cần xử lý. Với những yêu cầu chưa rõ, hãy yêu cầu AI đặt câu hỏi hoặc liệt kê các giả định cần xác nhận trước khi triển khai.

Tiêu chí hoàn thành nên có thể kiểm tra được. Thay vì chỉ yêu cầu giao diện đẹp và dễ dùng, hãy xác định các hành động mà người dùng phải thực hiện được, kết quả cần nhận và những điều kiện mà chức năng phải đáp ứng.

2. Phát triển theo từng giai đoạn nhỏ

Không nên yêu cầu AI xây dựng toàn bộ một hệ thống lớn trong một lần nếu bạn chưa có quy trình kiểm soát phù hợp. Hãy chia dự án thành những phần có phạm vi rõ ràng, triển khai lần lượt và xác nhận kết quả sau mỗi giai đoạn.

Với một ứng dụng quản lý công việc, trình tự hợp lý có thể là xây dựng giao diện, xử lý dữ liệu, hoàn thiện chức năng tạo và cập nhật công việc, bổ sung đăng nhập, sau đó triển khai phân quyền và kiểm thử toàn hệ thống.

Cách tiếp cận này giúp giới hạn phạm vi lỗi, giảm sự phụ thuộc giữa các thay đổi và giúp người dùng hiểu rõ hơn cách ứng dụng được xây dựng.

3. Yêu cầu AI giải thích và kiểm tra lại những phần quan trọng

Không nên chỉ quan tâm đến việc AI đã tạo ra code hay chưa. Hãy yêu cầu giải thích những quyết định kỹ thuật quan trọng, các giả định đang sử dụng và những trường hợp có thể khiến chức năng hoạt động sai.

Đặc biệt, với các thành phần liên quan đến xác thực, phân quyền, cơ sở dữ liệu và xử lý thông tin nhạy cảm, cần kiểm tra độc lập thay vì dựa hoàn toàn vào lời giải thích của AI.

Việc hiểu được luồng xử lý chính cũng giúp bạn cung cấp yêu cầu sửa lỗi chính xác hơn, tránh phải phụ thuộc vào việc yêu cầu AI thử nhiều cách khác nhau.

4. Kiểm thử sau mỗi thay đổi và quản lý phiên bản thường xuyên

Sau khi hoàn thành một chức năng, hãy kiểm tra cả trường hợp hoạt động bình thường lẫn các tình huống ngoại lệ. Khi chỉnh sửa code, cần chạy lại những bài kiểm thử liên quan để phát hiện lỗi hồi quy.

Song song với đó, hãy sử dụng hệ thống quản lý phiên bản để theo dõi thay đổi và lưu lại những trạng thái đã được xác nhận hoạt động tốt. Nếu một lần chỉnh sửa khiến ứng dụng gặp sự cố, bạn sẽ có cơ sở để xác định thay đổi gây lỗi và khôi phục khi cần thiết.

5. Đánh giá chất lượng trước khi đưa ứng dụng vào vận hành

Trước khi triển khai, hãy kiểm tra các yêu cầu chức năng, bảo mật, hiệu suất, khả năng phục hồi và quy trình sao lưu dữ liệu. Không nên xem việc ứng dụng chạy thành công trên máy phát triển là bằng chứng cho thấy hệ thống đã sẵn sàng phục vụ người dùng thật.

Với ứng dụng đơn giản, bạn có thể bắt đầu bằng một danh sách kiểm tra ngắn. Với sản phẩm phục vụ khách hàng hoặc xử lý dữ liệu quan trọng, cần có quy trình kiểm thử và đánh giá rủi ro tương xứng với mức độ ảnh hưởng nếu xảy ra sự cố.

Quy trình kiểm tra code do AI tạo ra trước khi sử dụng

Một quy trình đơn giản nhưng nhất quán sẽ giúp hạn chế nhiều lỗi thường gặp khi sử dụng Vibe Coding. Bạn có thể áp dụng các bước sau cho từng tính năng hoặc mỗi lần AI thay đổi những phần quan trọng của dự án.

  1. Kiểm tra yêu cầu: Xác nhận code đáp ứng đúng mục tiêu, phạm vi và tiêu chí hoàn thành đã thống nhất.
  2. Rà soát thay đổi: Xem những tệp đã được tạo, sửa hoặc xóa; kiểm tra các thành phần liên quan có bị ảnh hưởng hay không.
  3. Kiểm tra tính đúng đắn: Xác minh logic xử lý, kiểu dữ liệu, điều kiện đầu vào và cách xử lý các trường hợp ngoại lệ.
  4. Chạy kiểm thử: Thực hiện các bài kiểm thử đơn vị, tích hợp hoặc đầu cuối phù hợp với chức năng.
  5. Kiểm tra bảo mật: Xem xét quyền truy cập, dữ liệu nhạy cảm, thông tin xác thực và các điểm có thể bị khai thác.
  6. Đánh giá khả năng tương thích: Xác nhận code hoạt động với phiên bản thư viện, môi trường và các thành phần hiện có.
  7. Lưu phiên bản ổn định: Ghi nhận những thay đổi đã được kiểm tra và bảo đảm có phương án khôi phục nếu cần.

Với dự án nhỏ, các bước này có thể được thực hiện nhanh chóng. Với hệ thống phức tạp, chúng nên được tự động hóa ở mức phù hợp bằng công cụ kiểm thử, kiểm tra chất lượng code và quy trình tích hợp liên tục.

Có nên tiếp tục sử dụng Vibe Coding khi thường xuyên gặp lỗi?

Việc gặp lỗi không có nghĩa Vibe Coding là phương pháp không hiệu quả. Lỗi là một phần bình thường của quá trình phát triển phần mềm, kể cả khi được thực hiện bởi lập trình viên giàu kinh nghiệm. Điểm khác biệt nằm ở khả năng kiểm soát chất lượng, xác định nguyên nhân và ngăn lỗi lặp lại.

Vibe Coding đặc biệt hữu ích khi xây dựng nguyên mẫu, thử nghiệm ý tưởng, tự động hóa công việc đơn giản hoặc phát triển những tính năng có phạm vi rõ ràng. Trong các trường hợp này, AI có thể giúp rút ngắn thời gian triển khai và giảm khối lượng công việc lặp lại.

Tuy nhiên, với hệ thống có yêu cầu bảo mật cao, xử lý giao dịch quan trọng hoặc ảnh hưởng trực tiếp đến dữ liệu người dùng, bạn cần chú trọng hơn đến việc kiểm tra kỹ thuật và đánh giá rủi ro. AI có thể hỗ trợ tạo code, phân tích lỗi và viết kiểm thử nhưng không nên được xem là sự thay thế hoàn toàn cho quy trình đảm bảo chất lượng.

Nếu dự án liên tục phát sinh lỗi cũ, khó sửa đổi hoặc không thể xác định trạng thái hoạt động ổn định, hãy tạm dừng việc bổ sung tính năng để rà soát lại kiến trúc, kiểm thử và quản lý phiên bản. Đôi khi, việc sửa một nền tảng thiếu nhất quán ngay từ đầu sẽ hiệu quả hơn tiếp tục thêm những đoạn code nhằm xử lý từng triệu chứng riêng lẻ.

Câu hỏi thường gặp về lỗi khi sử dụng Vibe Coding

Vì sao Vibe Coding thường tạo ra code bị lỗi?

AI tạo code dựa trên yêu cầu, ngữ cảnh và những mẫu mà nó học được. Nếu yêu cầu thiếu chi tiết, ngữ cảnh không đầy đủ hoặc các ràng buộc kỹ thuật chưa rõ ràng, kết quả có thể sai logic, không tương thích với dự án hoặc thiếu khả năng xử lý những tình huống ngoại lệ.

Để hạn chế vấn đề này, hãy mô tả yêu cầu cụ thể, chia nhiệm vụ thành những phần nhỏ và kiểm thử từng thay đổi trước khi tiếp tục.

Người không biết lập trình có thể sửa lỗi Vibe Coding không?

Người không có nền tảng lập trình vẫn có thể xử lý một số lỗi đơn giản bằng cách cung cấp thông báo lỗi, mô tả hành vi thực tế và yêu cầu AI phân tích nguyên nhân. Tuy nhiên, họ cần kiểm tra lại kết quả thay vì chấp nhận mọi thay đổi được đề xuất.

Đối với lỗi liên quan đến bảo mật, cơ sở dữ liệu, kiến trúc hệ thống hoặc dữ liệu quan trọng, nên nhờ người có chuyên môn đánh giá trước khi triển khai.

Làm thế nào để tránh lỗi cũ xuất hiện trở lại sau khi sửa code?

Hãy viết kiểm thử cho những lỗi đã được phát hiện, lưu lại phiên bản ổn định và chạy lại các bài kiểm thử liên quan sau mỗi lần chỉnh sửa. Nếu lỗi cũ xuất hiện trở lại, cần xác định thay đổi nào đã làm sai lệch hành vi trước đó thay vì tiếp tục sửa theo cách đối phó.

Có nên để AI tự sửa toàn bộ dự án khi phát sinh nhiều lỗi không?

Không nên yêu cầu AI viết lại toàn bộ dự án ngay khi gặp nhiều lỗi nếu chưa xác định rõ nguyên nhân. Việc thay đổi diện rộng có thể làm mất những chức năng đang hoạt động, tạo thêm lỗi mới và khiến quá trình khôi phục trở nên khó khăn.

Trước tiên, hãy sao lưu hoặc lưu phiên bản hiện tại, phân loại lỗi, xác định những thành phần liên quan và ưu tiên sửa từng nhóm vấn đề. Chỉ nên tái cấu trúc hoặc xây dựng lại những phần lớn khi có căn cứ rõ ràng và đã chuẩn bị phương án kiểm thử phù hợp.

Kết luận

Những lỗi thường gặp khi sử dụng Vibe Coding chủ yếu xuất phát từ yêu cầu chưa rõ ràng, thiếu ngữ cảnh, tin tưởng quá mức vào code do AI tạo ra và không kiểm soát đầy đủ quá trình phát triển. Ngoài ra, các vấn đề về bảo mật, kiểm thử, quản lý phiên bản, cơ sở dữ liệu và triển khai cũng có thể khiến một ứng dụng tưởng như hoàn chỉnh trở nên thiếu ổn định khi sử dụng thực tế.

Để sử dụng Vibe Coding hiệu quả, bạn nên xem AI là công cụ hỗ trợ phát triển phần mềm, đồng thời duy trì quy trình làm việc có kiểm soát: xác định yêu cầu rõ ràng, triển khai từng phần, phân tích nguyên nhân khi có lỗi, kiểm thử sau mỗi thay đổi và lưu lại những phiên bản ổn định.

Quan trọng nhất, đừng chỉ đánh giá thành công bằng việc AI tạo được bao nhiêu dòng code hoặc ứng dụng có chạy trong lần thử đầu tiên hay không. Một sản phẩm tốt cần đáp ứng đúng yêu cầu, xử lý dữ liệu chính xác, bảo vệ người dùng và có thể tiếp tục phát triển mà không khiến mỗi lần chỉnh sửa trở thành một nguồn rủi ro mới.

  • ★★★★★ ★★★★★
  • 0 Bình luận
CEO Bùi Tấn Lực | Founder Web Mới
Bùi Tấn Lực
Tìm hiểu về CEO Bùi Tấn Lực, Founder Web Mới với nhiều năm kinh nghiệm trong lĩnh vực phát triển website, SEO và chia sẻ kiến thức công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Những lỗi thường gặp khi sử dụng Vibe Coding
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !