Sau Hơn 100 Prompt Với Claude, Đây Là Workflow Giúp Mình Code Nhanh Hơn Rõ Rệt
Hơn 1 tháng nay mình dùng Claude khá nặng cho công việc. Chủ yếu là viết Compose, refactor màn hình cũ, debug với mấy cái bug lạ, với review code trước khi push.
Ban đầu mình cũng nghĩ sẽ có “prompt thần thánh” nào đó, nhưng càng dùng càng thấy không phải. Thứ quyết định nhiều nhất là context mình đưa cho nó và cách mình iterate sau khi nhận output.
Prompt “ngon” của mình trông như thế nào
Không phải kiểu:
“Bạn là Senior 10 năm kinh nghiệm bla bla…”
Mình thường viết kiểu này:
Context dự án hiện tại:
- Kotlin
- Compose 1.7
- Hilt
- Room
- Single Activity + Navigation
- MVI
Coding style thì giống cái màn hình ProfileFragment đang có
(mình paste luôn 1 file mẫu).
Task:
Làm màn hình Edit Task với offline support.
Nhớ chú ý recomposition với list item,
và đừng có xài mutableStateOf lung tung.
Kết quả thường ổn hơn hẳn so với prompt chung chung.
Những pattern mình hay dùng
- Refactor XML cũ sang Compose
- Đề xuất cách debug (liệt kê hypothesis)
- Sinh test case (đặc biệt edge case)
- Review code trước khi tạo PR
- Brainstorm cách implement feature mới
Nhưng không phải lúc nào cũng suôn sẻ.
Cái fail nhớ mãi
Có lần mình bảo Claude refactor một màn hình Notification.
Code nó ra nhìn sạch đẹp, theo MVI chuẩn, state rõ ràng. Mình thấy thích quá nên merge luôn.
Đến lúc test thật mới phát hiện nó làm mất logic:
“Chỉ hiển thị thông báo unread nếu user online”
Logic này nằm ở một chỗ khá sâu, mình không mention trong prompt.
Kết quả là user bị miss thông báo quan trọng. May mà phát hiện sớm, chứ production thì chết.
Từ đó mình học được:
Claude giỏi viết code đẹp, nhưng nó không biết domain/business logic trừ khi mình nói rõ.
Mà nhiều khi mình cũng không nhớ hết, nên phải review như review code của một dev junior khá giỏi nhưng hơi “tự tin quá mức”.
Điều quan trọng nhất mình rút ra
Prompt wording thực ra chỉ là một phần nhỏ.
Phần ảnh hưởng lớn hơn nhiều là:
- Context dự án (convention, style code, constraint thực tế)
- Việc paste code mẫu đang có trong project
- Dùng chung 1 thread chat dài để nó nhớ context
- Iterate nhiều lần (bảo nó tự review code nó vừa viết)
Mình hay làm thế này:
Sau khi nhận code lần 1, mình hỏi tiếp:
Review lại xem có gì vi phạm convention
hoặc dễ gây bug không,
rồi đưa bản cải tiến.
Output thường tốt hơn khá nhiều.
Kết
Dùng Claude một thời gian mình thấy nó giống như có thêm một thằng dev ngồi cạnh:
- code rất nhanh
- chịu khó
- không ngại boilerplate
Nhưng đôi khi hơi ngây thơ với business logic và edge case thật của dự án.
Nó giúp giảm đáng kể thời gian làm mấy việc máy móc như:
- boilerplate
- refactor cơ bản
- viết test khung
- brainstorm hướng implement
Còn phần quan trọng nhất — tư duy hệ thống, trade-off, và hiểu domain — vẫn phải là mình chịu trách nhiệm.
Bạn đang dùng Claude (hay Cursor, Gemini…) như thế nào trong công việc?
Có bug hoặc case nào làm bạn “đau đầu” khi dùng AI không?
Mình đang note lại khá nhiều case thực tế kiểu này, càng dùng càng thấy nhiều pattern thú vị.
All rights reserved