7 kỹ thuật lập trình với AI âm thầm biến bạn thành cao thủ
Điều gì tạo nên sự khác biệt giữa những người “vibe code” cho vui và những người xây sản phẩm ở đẳng cấp cao? Không phải prompt tốt hơn. Mà là hệ thống. Đây là framework chính xác tôi dùng để giữ cho các dự án AI luôn sẵn sàng cho môi trường production.

Thực hành cốt lõi: Chỉ dẫn bằng văn bản
Các mục dưới đây là những thực hành cụ thể, có chủ đích. Mỗi cái đều xuất phát từ thứ tôi cố tình đưa vào quy trình làm việc.
Cách tôi khiến chúng trở thành thói quen là thêm chúng vào các file “ini” của AI — các file CLAUDE.MD và AGENTS.MD. Tôi cũng thêm các file khác dùng để tài liệu hóa chính dự án. Tôi sẽ giải thích sâu hơn trong bài.
Từ tháng 9, tôi bắt đầu dùng các công cụ vibe coding có agent như Codex và Claude Code.
Kể từ đó, tôi đã xây dựng và phát hành bốn sản phẩm lớn, tạo một ứng dụng iPhone hoạt động để quản lý filament cho máy in 3D, và sắp hoàn thành bản beta cho một ứng dụng quản lý mẫu may. Hai ứng dụng sau đang được xây đồng thời cho iPhone, iPad, Apple Watch và Mac.
Với tư cách là một lập trình viên solo, AI agent là một hệ số nhân sức mạnh gần như choáng ngợp.
Đây vẫn là vibe coding. Nhưng là vibe coding có kỷ luật kỹ thuật và một framework nền tảng hướng tới độ bền và chất lượng sản phẩm.
1. Hiển thị tuần tự thay vì tốc độ song song
Các hãng AI đang quảng bá khả năng chạy nhiều agent song song. Nhưng việc quản lý nhiều agent cùng lúc rất khó, đặc biệt khi bạn không nhìn thấy chúng đang làm gì.
Tệ hơn, cách này gây crash và treo, khiến dự án rơi vào trạng thái lơ lửng.
Quy tắc của tôi:
Không dùng agent nền. Không chia thành nhiều agent. Xử lý từng file một theo thứ tự. Cập nhật tiến trình liên tục.
Tôi chọn chậm nhưng nhìn thấy được thay vì nhanh nhưng mù mờ. Dễ đoán và có thể phục hồi quan trọng hơn tốc độ.
Nguyên tắc: khả năng quản lý phải đứng trước tốc độ.
2. Theo dõi migration như một artifact hạng nhất
Các ứng dụng của tôi chạy trên bốn nền tảng. Khi thay đổi ở một nền tảng, tôi không muốn mất dấu những thay đổi cần áp dụng cho các nền tảng khác.
Vì vậy tôi tạo log migration có cấu trúc.
Quy tắc:
Mỗi thay đổi phải được ghi vào file migration, gồm ngày, file, nền tảng áp dụng, nội dung thay đổi và ghi chú thích nghi theo nền tảng.
Nguyên tắc:
Mỗi thay đổi tạo ra một “khoản nợ kỹ thuật” cho mọi nền tảng chưa cập nhật.
3. Bộ nhớ lâu dài với tổ chức theo ngữ nghĩa
Session AI mặc định là stateless, nhưng tôi muốn giữ trạng thái.
Tôi tạo MEMORY.md — một knowledge base được tổ chức theo chủ đề, không theo thời gian.
Nó chứa API, thuật toán, layout, các bài học mất nhiều thời gian mới rút ra.
Nguyên tắc: đừng phát minh lại bánh xe.
4. Log prompt như một audit trail
Mỗi prompt tôi đưa cho AI đều được ghi lại theo thời gian.
Lợi ích:
Có thể tái dựng chuyện gì đã xảy ra khi có lỗi
Theo dõi sự tiến hóa của một feature
Tiếp tục chính xác từ điểm đã dừng
Nguyên tắc:
Nếu không replay được cuộc hội thoại, bạn không debug được sự cộng tác.
5. Hồ sơ người dùng như một ràng buộc thiết kế
Hai ứng dụng của tôi có user hoàn toàn khác nhau.
Vì AI giúp cả thiết kế lẫn code, tôi đưa profile người dùng vào hệ thống:
Tuổi
Mức độ rành công nghệ
Tâm lý sưu tầm
Hành vi sử dụng
Khi AI đề xuất thiết kế, nó phải nhớ nó đang thiết kế cho ai.
Nguyên tắc:
Nói cho AI biết người dùng là ai để nó biết phải xây cái gì.
6. Design system được mã hóa trong prompt dự án
Tôi nhúng toàn bộ design system vào file prompt chính:
Font size cụ thể
Màu RGB
Pattern component
Style button
Kích thước icon
Kết quả: mọi view mới tự động nhất quán.
Nguyên tắc:
Tính nhất quán không được phụ thuộc vào trí nhớ của AI.
7. Những bài học đắt giá được mã hóa thành luật
Mỗi bug fix trở thành một rule vĩnh viễn.
Ví dụ:
Không stack quá 4
trên macOS.sheet() Không gọi
trongNSOpenPanel.runModal() của sheetonAppear Không dùng màu chữ mờ trên watchOS
Nguyên tắc:
Mỗi sai lầm của AI chỉ được phép xảy ra một lần.
Bonus: Code review bằng AI
Thỉnh thoảng tôi mở một session mới và yêu cầu AI phân tích toàn bộ project trước khi đọc instruction.
Đó là “fresh eyes”.
AI thường phát hiện những chi tiết nhỏ cần sửa.
Mạnh mẽ. Dễ làm. Hiệu quả cực lớn.
Phương pháp này vượt xa vibe coding kiểu “nói gì AI làm nấy”. Nó giống một hệ thống cộng tác được thiết kế như quản lý kỹ thuật phần mềm truyền thống.
Bạn đang làm việc với AI theo kiểu có cấu trúc hay vẫn hoàn toàn vibe coding?
Bạn chạy nhiều agent song song hay chọn workflow chậm nhưng nhìn thấy được?
Bạn có tạo memory, migration log, audit trail cho prompt không?
Bạn có dạy AI biết người dùng của sản phẩm là ai không?
Đó chính là thứ tách người dùng bình thường khỏi những người xây dựng ở đẳng cấp cao.