Nhật Ký 30 Ngày Vibe Coding — Từ Skeptic Đến Không Thể Quay Lại
Lời Mở — Tại Sao Tôi Viết Nhật Ký Này
Tôi là một developer với hơn 5 năm kinh nghiệm. Khi nghe về “vibe coding” lần đầu, phản ứng của tôi là hoài nghi. Để AI viết code thay mình? Nghe như một cách nhanh nhất để tạo ra technical debt. Nhưng khi thấy ngày càng nhiều developer giỏi chuyển sang workflow này, tôi quyết định thử nghiệm nghiêm túc trong 30 ngày và ghi chép lại mọi thứ.
Đây không phải bài PR cho công cụ nào. Đây là nhật ký thật — có ngày vui, ngày bực, ngày muốn bỏ cuộc, và ngày không tin nổi vào mắt mình.
Tuần 1 — Bỡ Ngỡ Và Hoài Nghi
Ngày 1: Cài đặt và làm quen
Tôi chọn Claude Code làm AI agent chính vì nó chạy ngay trong terminal — quen thuộc với workflow hiện tại. Cài đặt mất khoảng 10 phút. Task đầu tiên tôi giao: tạo một REST API endpoint đơn giản với Express.js và MongoDB.
Kết quả: code chạy được ngay lần đầu. Nhưng tôi không ấn tượng lắm — task này quá đơn giản, developer junior cũng làm được trong 15 phút. Điểm khác biệt duy nhất là tôi mất 2 phút thay vì 15 phút. Tiết kiệm thời gian, nhưng chưa thuyết phục.
Ngày 3: Thất vọng đầu tiên
Tôi thử task phức tạp hơn: implement WebSocket real-time chat với room management, typing indicators, và message history. Claude Code tạo ra code khá tốt ở lần đầu, nhưng khi tôi chạy test thì phát hiện race condition trong room join/leave logic.
Tôi mô tả bug bằng lời và nhờ Claude fix. Nó fix được bug đó nhưng tạo ra bug khác. Mất 30 phút đi qua lại mới ổn. Cảm giác lúc đó: “Nếu tôi tự viết từ đầu, chắc cũng mất 30 phút mà code sạch hơn.”
Bài học ngày 3: Vibe coding không phải “nói một câu, nhận code hoàn hảo.” Nó đòi hỏi kỹ năng mô tả vấn đề cực kỳ rõ ràng.
Ngày 5: Khoảnh khắc “Aha” đầu tiên
Tôi cần migrate database schema — thêm 3 fields mới vào User model, update tất cả queries liên quan, viết migration script, và update API documentation. Bình thường task này mất nửa ngày vì phải rà soát nhiều file.
Tôi mô tả yêu cầu chi tiết cho Claude Code, bao gồm cả edge cases cần handle. Trong 8 phút, nó scan toàn bộ codebase, tìm mọi file cần sửa, tạo migration script, update queries, và thậm chí update test cases. Tôi chỉ cần review và approve.
Đây là lúc tôi bắt đầu hiểu: vibe coding không thay thế kỹ năng lập trình — nó amplify kỹ năng đó. Người hiểu rõ codebase sẽ mô tả task tốt hơn, review kỹ hơn, và nhận được kết quả tốt hơn.
Ngày 7: Kết thúc tuần 1
Tổng kết tuần đầu: 12 task hoàn thành. 8 task chất lượng tốt ngay lần đầu. 3 task cần 1-2 vòng fix. 1 task tôi phải viết lại tay hoàn toàn. Thời gian tiết kiệm ước tính: khoảng 40% so với code tay.
Cảm nhận: Vẫn hoài nghi, nhưng bắt đầu thấy tiềm năng.
Tuần 2 — Học Cách “Nói Chuyện” Với AI
Ngày 8: Phát hiện quan trọng — Prompt là mọi thứ
Tôi nhận ra rằng chất lượng output phụ thuộc gần như hoàn toàn vào cách tôi mô tả task. Hai cách mô tả cùng một task cho kết quả rất khác nhau.
Cách mô tả kém: “Tạo form đăng ký user.” — Claude tạo ra form cơ bản, thiếu validation, thiếu error handling, thiếu accessibility.
Cách mô tả tốt: “Tạo React registration form với email validation (RFC 5322), password strength meter (min 8 chars, uppercase, lowercase, number, special char), confirm password match, phone number format VN (+84), loading state khi submit, error messages hiển thị inline dưới mỗi field, accessible với screen readers (aria labels, role attributes). Dùng React Hook Form + Zod schema validation.” — Claude tạo ra form production-ready.
Bài học: Vibe coding thực chất là nghệ thuật đặc tả yêu cầu (specification). Developer giỏi viết spec giỏi sẽ vibe code hiệu quả hơn rất nhiều.
Ngày 10: Thiết lập “rules” cá nhân
Tôi bắt đầu tạo file CLAUDE.md trong mỗi project, chứa coding conventions, tech stack preferences, và common patterns. Đây giống như “briefing document” cho AI agent. Kết quả cải thiện đáng kể — Claude Code bắt đầu generate code đúng style của tôi ngay từ lần đầu.
Ngày 14: Kết thúc tuần 2
Tổng kết: 18 task hoàn thành. 14 task tốt ngay lần đầu (tỷ lệ tăng từ 67% lên 78%). Thời gian tiết kiệm: khoảng 55%. Lần đầu tiên tôi hoàn thành feature trong 1 ngày mà bình thường mất 2.5 ngày.
Tuần 3 — Tăng Tốc Và Khám Phá Giới Hạn
Ngày 15: Multi-file refactoring — Điểm mạnh tuyệt đối
Tôi cần refactor authentication system từ JWT stored trong localStorage sang httpOnly cookies với refresh token rotation. Task này liên quan đến 15+ files: middleware, controllers, frontend API client, auth context, protected routes…
Mô tả chi tiết cho Claude Code, bao gồm security requirements và backward compatibility. Trong 12 phút, nó refactor toàn bộ. Tôi mất thêm 20 phút review kỹ lưỡng. Tổng cộng 32 phút cho task mà bình thường mất 1.5 ngày.
Đây là lúc tôi thực sự bị thuyết phục. Multi-file refactoring — task mà developer thường sợ nhất vì dễ break things — trở thành task nhanh nhất khi vibe coding.
Ngày 18: Gặp giới hạn — Complex business logic
Tôi thử để Claude Code implement pricing engine với nhiều tiers, discounts, coupons, tax rules theo từng quốc gia. Kết quả: code structure tốt nhưng business logic có lỗi ở edge cases (ví dụ: khi customer vừa có coupon vừa thuộc enterprise tier). Phải debug và fix tay khá nhiều.
Nhận ra: Vibe coding giỏi ở structural tasks (CRUD, refactoring, boilerplate) nhưng cần human oversight chặt chẽ với complex business logic. AI không hiểu business context sâu như developer đã làm việc với domain đó nhiều năm.
Ngày 21: Kết thúc tuần 3
Tổng kết: 22 task hoàn thành — năng suất tăng rõ rệt. Tỷ lệ task tốt ngay lần đầu: 82%. Thời gian tiết kiệm: khoảng 60%. Đã bắt đầu nhận thêm freelance project vì có bandwidth.
Tuần 4 — Hình Thành Workflow Và Triết Lý Mới
Ngày 22: Workflow đã ổn định
Sau 3 tuần thử nghiệm, workflow vibe coding của tôi đã hình thành rõ ràng. Bước đầu tiên là Think — suy nghĩ kỹ về architecture và approach trước khi viết bất kỳ prompt nào. Bước hai là Specify — viết mô tả chi tiết, bao gồm edge cases, error handling, và coding conventions. Bước ba là Generate — để AI agent tạo code. Bước bốn là Review — đọc kỹ từng dòng code, không blind trust. Bước cuối là Iterate — nếu cần sửa, mô tả cụ thể vấn đề và yêu cầu fix.
Tôi gọi đây là TSGRI workflow — và nó hoạt động cực kỳ hiệu quả.
Ngày 25: Viết test bằng vibe coding — Game changer
Phát hiện bất ngờ: vibe coding cực kỳ hiệu quả cho việc viết test. Trước đây tôi thường skip unit tests vì “không có thời gian.” Giờ tôi chỉ cần mô tả: “Viết unit tests cho UserService, cover các cases: create user thành công, email duplicate, password quá yếu, invalid phone format. Dùng Jest + mocking cho database.” — và nhận được test suite hoàn chỉnh trong 3 phút.
Test coverage của tôi tăng từ 30% lên 85% mà không tốn thêm nhiều thời gian. Đây có lẽ là benefit lớn nhất mà tôi không ngờ tới.
Ngày 28: Reflection — Cái gì thay đổi?
Nhìn lại 28 ngày, thứ thay đổi lớn nhất không phải tốc độ code — mà là cách tôi nghĩ về lập trình. Trước đây tôi dành 70% thời gian viết code, 20% nghĩ, 10% review. Giờ tôi dành 40% nghĩ và specify, 10% generate, 50% review và iterate.
Tôi trở thành architect nhiều hơn typist. Và thành thật mà nói, tôi thích vai trò mới này hơn.
Ngày 30: Kết thúc thử nghiệm
Tổng kết 30 ngày: 73 task hoàn thành (trung bình 2.4 task/ngày, so với baseline 1.2 task/ngày trước vibe coding). Thời gian tiết kiệm trung bình 58%. Test coverage tăng từ 30% lên 85%. Nhận thêm 2 freelance projects. Không có production bug nào từ AI-generated code (nhờ review kỹ).
Kết Luận — Có Nên Thử Vibe Coding?
Sau 30 ngày, câu trả lời của tôi: có, chắc chắn có — nhưng với mindset đúng.
Vibe coding không phải phép thuật biến bạn thành 10x developer qua đêm. Nó là công cụ amplifier — nếu bạn đã giỏi, nó giúp bạn giỏi hơn nhanh hơn. Nếu bạn chưa có nền tảng vững, nó có thể giúp bạn tạo ra code chạy được nhưng bạn sẽ không hiểu tại sao nó chạy — và đó là recipe cho disaster.
Lời khuyên cho người muốn bắt đầu: Hãy dành tuần đầu tiên chỉ để làm quen, đừng kỳ vọng năng suất tăng ngay. Đầu tư thời gian vào việc viết prompt/spec tốt — đây là kỹ năng quan trọng nhất. Luôn review code kỹ lưỡng, đừng bao giờ blind trust AI. Tạo coding conventions file (CLAUDE.md hoặc tương đương) cho mỗi project. Và cuối cùng — vibe coding giỏi nhất ở refactoring, boilerplate, tests; hãy tận dụng điểm mạnh này.
30 ngày trước, tôi là một skeptic. Hôm nay, tôi không thể tưởng tượng quay lại workflow cũ. Không phải vì tôi lười gõ code — mà vì tôi đã tìm được cách tốt hơn để dành năng lượng trí tuệ vào những thứ thực sự quan trọng: thiết kế, kiến trúc, và giải quyết vấn đề.
Leave a Reply
You must be logged in to post a comment.