arrow_backQuay lại ghi chép lĩnh vực
AI Đã đăng 30 Jul 2026

Những Lỗi Nào Mà Devs Mắc Phải Khi Coding Với AI Assistants?

Một cái nhìn thực tế về những cách phổ biến nhất mà developers lạm dụng AI coding assistants, và cách để tránh ship bugs và vulnerabilities.

AI assistants như Copilot, Claude, và built-in models của Cursor đã thay đổi tốc độ viết code. Chúng không thay đổi mức độ kỹ lưỡng cần thiết để review. Hầu hết thiệt hại tôi đã thấy từ AI-assisted coding đến từ một số thói quen lặp lại, không phải từ các models.

Accepting suggestions without reading them

Cái lớn nhất là tab-accepting a completion vì nó trông có vẻ hợp lý và compile được. Có vẻ hợp lý không phải là đúng. Tôi đã chứng kiến một SQL query được đề xuất âm thầm loại bỏ WHERE clause trong một refactor, và người đó accepted nó vì tên biến match. Nếu bạn không đọc từng dòng mà assistant gửi cho bạn với cùng tốc độ bạn đọc pull request của đồng nghiệp, bạn sẽ ship cái gì đó mà bạn không hiểu. Hãy coi mỗi suggestion như bản nháp đầu tiên từ một junior dev nhanh nhưng không nhớ quy ước của codebase của bạn.

Trusting it with security-sensitive code

AI assistants được train trên những đống code công khai khổng lồ, và rất nhiều code đó có security problems baked in. Yêu cầu một file upload handler nhanh chóng và bạn thường sẽ nhận được cái gì đó không có extension check, không có size limit, và một path được xây dựng bằng string concatenation thay vì os.path.join hay một safe library call. Câu chuyện tương tự với auth: assistants yêu thích suggest storing JWTs in localStorage, hoặc comparing secrets với == thay vì constant-time comparison. Không có cái nào là malicious, đó chỉ là statistically common trong training data. Với bất kỳ thứ gì liên quan đến authentication, file I/O, deserialization, hay SQL, hãy viết logic yourself hoặc run output của AI qua những câu hỏi threat-modeling tương tự mà bạn sẽ hỏi với bất kỳ code mới nào: điều gì xảy ra với hostile input, điều gì xảy ra nếu call này thất bại, ai khác có thể reach endpoint này.

Letting it invent dependencies and APIs

Models hallucinate package names và function signatures với total confidence. Đây là "slopsquatting" problem — attackers register những fake package names mà models thường suggest, nên một unverified pip install hay npm install có thể pull down cái gì đó mà không phải là logging library của bạn lúc nào. Trước khi add bất kỳ dependency nào mà assistant recommend, check xem nó có thật sự tồn tại trên PyPI hay npm, check download count và last publish date của nó, và skim source nếu nó đủ nhỏ. Cùng caution áp dụng với API calls: nếu assistant references một method mà bạn không nhận ra, check actual docs trước khi assume nó tồn tại.

Losing the mental model of your own code

Khi bạn viết code yourself, bạn xây dựng một mental map của lý do tại sao mỗi piece tồn tại. Khi bạn accept những block lớn của AI-generated code qua một session, map đó trở nên mỏng nhanh chóng. Sau đó một bug hiện lên ba tuần sau và bạn đang debug code mà bạn không bao giờ thực sự viết và không hoàn toàn nhớ. Fix không phải để tránh AI-generated code, đó là để slow down đủ để explain mỗi chunk lại với chính bạn, hoặc với một teammate, trước khi merge. Nếu bạn không thể explain cái gì một function làm và tại sao nó làm theo cách đó, đừng merge nó yet.

Skipping tests because the code

Viết với hỗ trợ của AI, được xem xét và đăng bởi Michal Pilch (CISSP), Korra Studio.

Sẵn sàng đi xa hơn?

Đây là một ghi chép từ cơ sở kiến thức Korra Studio — nền tảng kết hợp mỗi chủ đề với phiên hỗ trợ 1-kèm-1.

Bắt đầu miễn phíarrow_forward