01/10/2026 · VietTechies · Biên tập

Khi các trợ lý lập trình AI tạo ra hàng trăm dòng mã trên nhiều tệp tin, việc kiểm thử và đánh giá mã nguồn theo cách truyền thống ngày càng trở nên khó khăn. Việc viết mã dựa trên các mô hình ngôn ngữ lớn thường vượt quá khả năng duy trì ngữ cảnh kiến trúc của các nhà phát triển. Để giải quyết thách thức này, mã nguồn cần được nhìn nhận không chỉ là các tệp riêng lẻ mà là một đồ thị gọi hàm liên kết, nơi các hàm đóng vai trò là các đỉnh và những lượt gọi là các cạnh. Bài viết từ freeCodeCamp giải thích cách các nhà phát triển có thể tận dụng TypeScript và API ngôn ngữ nội bộ của VS Code để tự động tạo ra các đồ thị gọi hàm đa bước.
Tận Dụng Trí Thông Minh Của Language Server
Thay vì viết bộ phân tích cú pháp riêng cho từng ngôn ngữ lập trình, các nhà phát triển có thể trích xuất thông tin ngữ nghĩa phong phú trực tiếp từ hạ tầng mở rộng của VS Code. Thông qua việc sử dụng các bộ cung cấp lệnh như executeDocumentSymbolProvider và prepareCallHierarchy, các tiện ích mở rộng tùy chỉnh có thể truy vấn những language server như dịch vụ bản địa của TypeScript, gopls cho Go hoặc Pyright cho Python. Phương pháp này giúp chuyển giao việc phân giải biểu tượng qua lại giữa các tệp và theo dõi import cho lớp thông minh hiện có của trình biên tập.
Định Danh Ổn Định Và Khử Trùng Lặp
Để xây dựng một đồ thị gọi hàm chính xác trên các dự án phức tạp, việc chỉ sử dụng tên hàm là không đủ do nguy cơ trùng lặp tên giữa các tệp khác nhau. Kiến trúc được công bố kết hợp URI của tệp và vị trí bắt đầu—cụ thể là thuộc tính selectionRange—để tạo ra định danh biểu tượng duy nhất. Một trình đăng ký biểu tượng tập trung sẽ theo dõi các lượt gọi đến và đi nhằm khử trùng lặp các tham chiếu, đảm bảo rằng những hàm được nhập vào ở nhiều tệp sẽ gộp lại thành các đỉnh logic duy nhất trong giao diện đồ thị.
Duyệt Đồ Thị BFS Và Kiểm Soát Đồng Thời
Định tuyến các mối quan hệ gọi hàm đa bước đòi hỏi phải duyệt qua các lượt gọi đến và đi một cách hệ thống từ tệp hoặc biểu tượng đang hoạt động. Việc áp dụng thuật toán tìm kiếm theo chiều rộng (BFS) cho phép công cụ đồ thị khám phá các phụ thuộc theo từng cấp độ cho đến giới hạn độ sâu được thiết lập. Vì các truy vấn tới language server bao gồm những lời gọi tiện ích mở rộng bất đồng bộ, việc kiểm soát giới hạn thực thi thông qua các hàng đợi hoạt động đồng thời sẽ ngăn ngừa tình trạng nghẽn hiệu năng trong quá trình khám phá đồ thị sâu.
Ảnh minh họa do AI tạo, không phải ảnh tư liệu.
Nguồn:
How to Build a Code Graph in TypeScript Using VS Code's Language APIs
