
Code tốt vẫn sẽ thắng
Good code will still win
Code do AI tạo ra ngày càng phổ biến, nhưng điều này cũng dẫn đến tình trạng "slop" – tức là code kém chất lượng, khó bảo trì. Hiện tại, nhiều người tập trung vào số lượng code, nhưng bài viết cho rằng trong tương lai, các yếu tố kinh tế sẽ thúc đẩy việc ưu tiên "good code". Code tốt sẽ rẻ hơn để tạo ra, bảo trì và dễ hiểu hơn, tốn ít token và ít tài nguyên tính toán hơn theo thời gian. Các developer nên tập trung viết code sạch sẽ, đơn giản và có kiến trúc rõ ràng. Lối viết code này sẽ hiệu quả về chi phí và cuối cùng sẽ thắng thế trong dài hạn, ngay cả khi có sự hỗ trợ của AI.
Một vài năm trước, "slop" đã trở thành cách viết tắt phổ biến cho nội dung AI không mong muốn, được tạo ra một cách thiếu suy nghĩ tràn ngập internet bao gồm hình ảnh, văn bản và thư rác. Simon Willison đã giúp phổ biến thuật ngữ này,...
Một vài năm trước, "slop" đã trở thành cách viết tắt phổ biến cho nội dung AI được tạo ra một cách thiếu suy nghĩ và không mong muốn tràn ngập Internet, bao gồm hình ảnh, văn bản và thư rác. Simon Willison đã giúp phổ biến thuật ngữ này, mặc dù nó đã được lưu hành trong cộng đồng kỹ thuật nhiều năm trước đó.
Tại Greptile, chúng tôi dành nhiều thời gian suy nghĩ về những câu hỏi như: Độ dốc có phải là tương lai không? Có phải các phương pháp lập trình tốt nhất hiện nay đã là quá khứ? Liệu có lý do nào để các công cụ mã hóa AI viết ra thứ mà chúng ta gọi là mã tốt trong tương lai không?
Tôi muốn lập luận rằng các mô hình AI sẽ viết mã tốt vì có các động lực kinh tế. Mã tốt sẽ rẻ hơn để tạo và duy trì. Hiện tại, sự cạnh tranh giữa các mô hình AI đang rất cao và những mô hình giành chiến thắng sẽ giúp các nhà phát triển cung cấp các tính năng đáng tin cậy nhanh nhất, đòi hỏi mã đơn giản, có thể bảo trì. Quy tắc tốt sẽ chiếm ưu thế, không chỉ bởi vì chúng ta muốn nó (mặc dù chúng ta làm vậy!), mà còn bởi vì các lực lượng kinh tế yêu cầu nó. Về lâu dài, thị trường sẽ không khen thưởng sự cẩu thả trong mã hóa.
Việc phát triển phần mềm đang thay đổi nhanh chóng. Một ví dụ nổi bật gần đây đến từ Ryan Dahl, người tạo ra Node.js, người đã viết: "Thời đại con người viết mã đã kết thúc. Điều đáng lo ngại đối với những người trong chúng ta, những người xác định là SWE, nhưng không kém phần đúng."
Trong khi đó, độ phức tạp của phần mềm thông thường đang tăng lên đáng kể. Theo [1] đã chỉ ra xu hướng này. Ông lưu ý rằng sự phức tạp ngày càng tăng này được thúc đẩy một phần bởi AI giúp việc gửi nhiều mã nhanh hơn dễ dàng hơn và một phần là do áp lực kinh tế buộc các công ty phải theo kịp các đối thủ cạnh tranh. Theo chỉ ra rằng số lượng PR đang tăng lên, đó là điều chúng tôi nhận thấy ở Greptile. Như chúng tôi đã trình bày trong báo cáo Trạng thái mã hóa AI [2], được xuất bản vài tháng trước, số dòng mã cho mỗi nhà phát triển đã tăng từ 4.450 lên 7.839 khi các công cụ mã hóa AI trở thành thông lệ tiêu chuẩn. Quy mô PR trung bình đã tăng 33% từ tháng 3 đến tháng 11 năm 2025, tăng từ 57 lên 76 dòng thay đổi. Các thay đổi của từng tệp trở nên lớn hơn 20% và "dày đặc hơn".
Số liệu thống kê cho thấy các nhà phát triển đang vận chuyển nhiều mã hơn thông qua các tác nhân mã hóa. Hậu quả có thể đã thấy rõ: phân tích các trang trạng thái của nhà cung cấp [3] cho thấy tình trạng ngừng hoạt động đã tăng đều đặn kể từ năm 2022, cho thấy phần mềm đang trở nên dễ hỏng hơn. Andrej Karpathy [4] mô tả: "các tác nhân có tính trừu tượng quá mức, tính thẩm mỹ của mã kém, rất có xu hướng sao chép các khối mã dán và điều đó thật lộn xộn, nhưng tại thời điểm này, tôi đã ngừng đấu tranh quá mức và chỉ tiếp tục."
Nói chung, các kỹ sư phần mềm đang tạo ra mã với số lượng lớn. Cách tiếp cận thúc đẩy phần lớn điều này là mạnh mẽ: tạo mã nhanh, lặp lại cho đến khi mã hoạt động, lo lắng về sự đơn giản và chất lượng sau này (nếu có).
Trong Triết lý về thiết kế phần mềm [5], John Ousterhout lập luận rằng sự phức tạp là kẻ thù số 1 của phần mềm được thiết kế tốt. Mã xấu cần nhiều ngữ cảnh để hiểu. Mã tốt là dễ hiểu, dễ sửa đổi và mở rộng; nó cũng ẩn các chi tiết triển khai và tạo các mô-đun sâu với giao diện nông. Sự đơn giản này cũng có ý nghĩa thực tế.

Mã tốt đòi hỏi phải có tư duy rõ ràng về kiến trúc, thiết kế, các trường hợp phức tạp và các khái niệm trừu tượng rõ ràng. Theo định nghĩa của Ousterhout, mã tốt cũng sẽ dễ hiểu và dễ sửa đổi hơn vì nó đòi hỏi ít ngữ cảnh hơn, khiến cho nó nhìn chung rẻ hơn đáng kể. Chúng tôi thực sự chưa biết sự cân bằng chính xác, nhưng đối với bất kỳ phần mềm nào tồn tại lâu hơn một ngày cuối tuần, nhìn chung việc tạo ra mã tốt sẽ rẻ hơn.
Ngược lại, mã phức tạp không có khả năng mở rộng quy mô. Nó đòi hỏi rất nhiều token và điện toán, và khi cơ sở mã phát triển, nó sẽ đắt hơn theo cấp số nhân.
Áp lực kinh tế sẽ thúc đẩy các mô hình AI tạo ra mã tốt vì việc có được kiến trúc phù hợp ngay từ đầu sẽ rẻ hơn so với việc sửa nó sau này. Áp lực đó đã thay đổi hình thức phát triển dựa trên AI. Mã tốt cần ít ngữ cảnh hơn để hiểu, ít thay đổi hơn để bảo trì và do đó có ít mã thông báo đầu vào và đầu ra hơn trong suốt thời gian tồn tại của cơ sở mã.
Chúng ta vẫn đang ở giai đoạn đầu trong quá trình áp dụng mã hóa AI. Khi công nghệ phát triển, các động lực kinh tế sẽ thúc đẩy các mô hình AI hướng tới việc tạo ra mã tốt, đơn giản hơn vì nhìn chung chi phí sẽ rẻ hơn.
Thế giới hiện nay đang tập trung vào việc đưa AI vào hoạt động chứ không phải tối ưu hóa khả năng của nó. Chúng ta đang trải qua một giai đoạn đổi mới đặc biệt lộn xộn. Một khi việc tạo mã AI trở nên phổ biến, tôi tin rằng các động lực kinh tế sẽ bắt đầu có hiệu lực và các mô hình AI sẽ buộc phải tạo ra mã tốt để duy trì tính cạnh tranh giữa các nhà phát triển phần mềm và các công ty.
Tham khảo
[1] Theo [2] Báo cáo trạng thái mã hóa AI [3] phân tích các trang trạng thái nhà cung cấp [4] Andrej Karpathy [5] Triết lý về thiết kế phần mềm
Tác giả: dakshgupta