Chuyển đến nội dung
tinAI
Quay lại

Refactoring giúp agent code đỡ tốn token hơn

martinfowler.com · Loại nguồn: web 2026-07-30T20:09:26.182Z
Bản dịch tiếng Việt của tinAI · Từ The Economic Benefit of Refactoring (martinfowler.com) · Ngày gốc: · Dịch ngày:

và giữ bối cảnh từ bản tin tinAI đã giới thiệu bài này .

Bài gốc: The Economic Benefit of Refactoring (martinfowler.com)

Tác giả: Martin Fowler

Ngày đăng: Dịch ngày:

TL;DR

Bài viết đo tác động kinh tế của refactoring trong một codebase do agent viết: file data-access Rust phình tới 17.155 dòng khiến mỗi change tốn rất nhiều context. Khi tách nhỏ cấu trúc, input token và thời gian cho cùng một change giảm mạnh ở các bước tốt nhất.

Ước tính đọc: 3 phút

Tóm tắt

Tác giả xây một ứng dụng khoảng 150.000 dòng code, chủ yếu Rust, bằng agent như Claude Code và Cursor. Ứng dụng có UI, background jobs, tích hợp hệ thống ngoài, ML/text analysis và deployment tự động. Tác giả gần như không review code trong lúc agent tạo ra nó.

Kết quả quen thuộc với nhiều team dùng AI coding: một file data-access Rust phình lên 17.155 dòng. Nó lặp lại setup HTTP request, JSON encoding/decoding và nhiều pattern khác trong cùng một module khổng lồ. File vẫn có boundary rõ, nên trở thành mục tiêu tốt để refactor mà không đổi interface.

Thí nghiệm

Mục tiêu của refactoring ở đây không chỉ là code đẹp hơn. Mục tiêu là tiêu token hôm nay để giảm token cho các change sau. Tác giả tạo một prompt đại diện cho một feature change, chạy fresh sub-agent ở từng giai đoạn refactor, rồi đo token, thời gian và số dòng code.

Quy trình gồm: lập plan refactor theo kỷ luật refactoring, đo baseline cho cùng một change, bỏ change đó đi, áp dụng từng bước refactor, chạy lại đúng prompt feature change bằng sub-agent mới, rồi lại bỏ change. Vì mỗi sub-agent mới không học từ lần trước, kết quả ít bị nhiễu bởi memory của agent hơn so với thử trên người.

Kết quả chính

Baseline của change đại diện dùng khoảng 159.564 input token và mất 342 giây. Sau nhiều bước tách module, ở điểm tốt nhất input token giảm xuống khoảng 98.672 và thời gian còn 253 giây. Largest file cũng giảm từ 17.155 dòng xuống khoảng 6.435 dòng ở cuối chuỗi refactor.

Output token không giảm rõ như input token. Điều này hợp lý: change cần sinh ra bao nhiêu code thì vẫn cần sinh từng đó code. Nhưng input token mới là phần context phình to vì file khổng lồ, dependency rối và thiếu cấu trúc. Khi code có boundary tốt hơn, agent đọc ít thứ hơn để làm cùng một việc.

Ý nghĩa với Dev

Với codebase dùng agent hằng ngày, refactoring giờ có thêm một business case mới: giảm context load. File lớn không chỉ làm người khó đọc; nó còn làm model tốn tiền hơn, chạy lâu hơn và dễ kéo nhầm context hơn.

Điểm quan trọng là agent không tự nhiên giỏi refactor. Tác giả ghi nhận Claude tạo file lớn rất dễ, nhưng để chia nhỏ đúng cách vẫn cần người hướng dẫn. Một số bước cơ học được làm bằng script cũng lỗi vì grep/sed lẫn indentation. Kết luận thực dụng: dùng agent để thực hiện nhiều edit nhỏ có test, nhưng con người vẫn phải giữ hướng kiến trúc và chọn đường refactor có nghĩa.

Cách áp dụng

Nếu không đo, refactoring rất dễ trở thành tranh luận thẩm mỹ. Khi đo bằng token và thời gian, nó trở thành một dòng chi phí vận hành của AI coding.


Đường dẫn nguồn

tinAI dịch bài này sang tiếng Việt từ The Economic Benefit of Refactoring (martinfowler.com) · Loại nguồn: web và giữ bối cảnh từ bản tin tinAI đã giới thiệu bài này .

Bản tin này có 3 bài dịch liên quan từ cùng bản tin.

Đọc tiếp từ đây

Bạn có thể quay lại bản tin nguồn hoặc mở kho bài dịch để đọc tiếp.

Các bài bên dưới cùng xuất hiện trong bản tin nguồn, nên giữ chung bối cảnh đọc với bài này.

Các bài liên quan trong cùng bản tin trải trên 1 loại nguồn (2 bài). Loại nguồn: công ty/blog 2