~/VibeHandbook
PDF miễn phí

Chương 15 · 03

Kiểm tra kiểu dữ liệu và linting: những lỗi được bắt miễn phí

Hai công cụ bắt được toàn bộ các loại lỗi mà hầu như không tốn công sức nào từ phía bạn:

  • Kiểm tra kiểu dữ liệu (Type checking) (TypeScript, mypy, v.v.) bắt được lỗi "bạn truyền vào một chuỗi (string) trong khi cần một số (number)" và "giá trị này có thể là undefined." AI rất hay quên các trường hợp biên mà kiểu dữ liệu (type) làm cho không thể xảy ra.
  • Linting (ESLint, Ruff, v.v.) bắt được các biến không dùng đến, đoạn mã không thể chạy tới, và sự lệch chuẩn về phong cách (style drift). Nó giữ cho một codebase được AI chạm vào không bị dần biến thành một mớ hỗn độn.

Thiết lập những công cụ này sớm và bảo AI tuân theo chúng: "Chạy trình kiểm tra kiểu dữ liệu và linter, rồi sửa mọi thứ chúng báo cáo trước khi gọi đây là xong." Hãy coi việc kiểm tra kiểu dữ liệu sạch là một phần của định nghĩa "đã hoàn thành."

Tuy nhiên, hãy cảnh giác với những lối thoát lười biếng. Khi trình kiểm tra kiểu dữ liệu phàn nàn, cách sửa thực sự đúng đắn là xử lý trường hợp mà nó phát hiện ra — giá trị undefined, kiểu dữ liệu sai. Cách sửa nhanh là làm im lặng lời phàn nàn bằng // @ts-ignore, any, hoặc một chú thích # type: ignore, và AI liên tục dùng đến những thứ này vì chúng khiến chữ đỏ biến mất. Chúng cũng khiến việc kiểm tra trở nên vô giá trị đúng ngay tại chỗ nó đang cố giúp bạn. Nếu bạn thấy một chú thích ẩn đi (suppression comment) xuất hiện trong một diff, hãy coi đó là một câu hỏi, không phải một giải pháp: "Vì sao cái này cần thiết? Hãy sửa kiểu dữ liệu gốc thay vì bỏ qua nó."

Muốn bản ngoại tuyến?

Tải trọn cuốn sách dưới dạng PDF hoặc EPUB — miễn phí.