{"product_id":"một-thang-vibe-coding-với-claude-code-vai-tro-mới-triết-ly-mới","title":"Một Tháng Vibe Coding Với Claude Code: Vai Trò Mới, Triết Lý Mới","description":"\u003ch2\u003eTừ Programmer Sang Code Reviewer — Một Tháng Thay Đổi\u003c\/h2\u003e\n\n\u003cp\u003eMorten Vistisen là senior software engineer. Anh không phải người dễ bị impressed bởi hype. Sau 1 tháng commit toàn bộ vào \"vibe coding\" với Claude Code, anh ghi lại những gì thực sự thay đổi và những gì không.\u003c\/p\u003e\n\n\u003cp\u003ePhát hiện lớn nhất: vai trò của anh đã thay đổi fundamentally.\u003c\/p\u003e\n\n\u003cblockquote\u003e\n\u003cp\u003e\"The code is no longer yours, BUT it's still your responsibility to ensure that whatever goes into master is of high enough quality.\"\u003c\/p\u003e\n\u003c\/blockquote\u003e\n\n\u003cp\u003eĐây không phải là bad news — nhưng là sự thay đổi cần được thừa nhận và chuẩn bị.\u003c\/p\u003e\n\n\u003ch2\u003eVai Trò Mới: Part Code Reviewer, Part Product Manager\u003c\/h2\u003e\n\n\u003cp\u003eTrước Claude Code, Morten code. Bây giờ anh \u003cem\u003edescribe, approve, và review\u003c\/em\u003e. Công việc mỗi ngày:\u003c\/p\u003e\n\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eDescribe:\u003c\/strong\u003e Giải thích rõ ràng what\/where\/how — yêu cầu gì, ở file nào, theo pattern nào\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eLet Claude implement:\u003c\/strong\u003e Không micromanage từng dòng code\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReview:\u003c\/strong\u003e Đọc kỹ mọi thay đổi trước khi merge\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eApprove hoặc redirect:\u003c\/strong\u003e Nếu không đúng hướng, clarify và re-run\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eTrade-off mà Morten thẳng thắn thừa nhận: \u003cem\u003enhiều code reviews hơn\u003c\/em\u003e (và anh không thích code review). Nhưng đổi lại: products ship nhanh hơn đáng kể.\u003c\/p\u003e\n\n\u003cp\u003ePM angle xuất hiện vì Morten không chỉ review code — anh cần suy nghĩ về \u003cem\u003eproduct\u003c\/em\u003e: sequence of features đúng không? Architecture có hold up không khi scale? User experience có coherent không?\u003c\/p\u003e\n\n\u003ch2\u003eFramework 2 Phase: Plan Trước, Code Sau\u003c\/h2\u003e\n\n\u003cp\u003eSau 1 tháng iterate, Morten thống nhất với workflow 2 phase:\u003c\/p\u003e\n\n\u003ch3\u003ePhase 1: Planning\u003c\/h3\u003e\n\n\u003cpre\u003e\u003ccode\u003ePrompt: \"Trước khi implement, hãy tạo detailed plan cho feature này:\n1. List tất cả files cần modify\n2. Describe approach cho mỗi thay đổi\n3. Identify dependencies và potential conflicts\n4. Flag bất kỳ assumption nào bạn đang make\n5. Highlight risks\n\nSave plan vào TASK.md và đợi approval.\"\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eMorten review TASK.md. Nếu plan tốt, approve. Nếu có vấn đề, clarify ngay — trước khi mất thời gian implement wrong thing.\u003c\/p\u003e\n\n\u003ch3\u003ePhase 2: Implementation\u003c\/h3\u003e\n\n\u003cp\u003eSau approval, Claude implement với fresh context (đọc TASK.md để hiểu scope). Tại sao fresh context? Tránh \"drift\" từ planning conversation. Implementation agent nên focused vào execution, không bị distracted bởi exploration history.\u003c\/p\u003e\n\n\u003cp\u003eKết quả: cleaner implementation, ít \"we discussed this earlier\" confusion, và dễ reset nếu implementation đi sai hướng.\u003c\/p\u003e\n\n\u003ch2\u003eSub-Task Decomposition: 500 Lines Rule\u003c\/h2\u003e\n\n\u003cp\u003eInsight quan trọng từ 1 tháng kinh nghiệm: \u003cstrong\u003ebreak features thành sub-tasks nhỏ hơn 500 lines\u003c\/strong\u003e.\u003c\/p\u003e\n\n\u003cp\u003eTại sao 500 lines? Đủ để có meaningful progress, nhỏ đủ để review kỹ. Khi sub-task lớn hơn, review quality giảm — bạn bắt đầu skim thay vì đọc.\u003c\/p\u003e\n\n\u003cp\u003ePattern thực tế:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003eLarge feature: \"Add OAuth authentication\"\n\nSub-tasks:\n1. Database schema changes (migrations) — ~50 lines\n2. OAuth provider configuration — ~100 lines\n3. Token validation middleware — ~150 lines\n4. API endpoints cho auth flow — ~200 lines\n5. Frontend OAuth buttons — ~100 lines\n6. Tests cho mỗi component — ~300 lines total\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eMỗi sub-task có context từ previous sub-tasks (provided as summary), tránh context window overflow.\u003c\/p\u003e\n\n\u003ch2\u003eQuality Trực Tiếp Phụ Thuộc Vào Planning Quality\u003c\/h2\u003e\n\n\u003cp\u003eMorten nhấn mạnh điều này nhiều lần, với nhiều ví dụ. Không phải một observation ngẫu nhiên — đây là pattern consistent nhất sau 1 tháng:\u003c\/p\u003e\n\n\u003cblockquote\u003e\n\u003cp\u003e\"Claude code is great at following instructions. The quality of what you get out is directly correlated to the quality of what you put in.\"\u003c\/p\u003e\n\u003c\/blockquote\u003e\n\n\u003cp\u003eVague instruction → vague code. Specific, well-thought-out instruction → specific, well-implemented code.\u003c\/p\u003e\n\n\u003cp\u003eĐiều này không khác gì khi làm việc với junior developer — nhưng với Claude, gap giữa good instruction và vague instruction thể hiện rõ hơn và faster.\u003c\/p\u003e\n\n\u003ch2\u003eTriết Lý Không Đổi: Make It Work, Make It Fast, Make It Pretty\u003c\/h2\u003e\n\n\u003cp\u003eĐây là quote mà nhiều developer resonates với:\u003c\/p\u003e\n\n\u003cblockquote\u003e\n\u003cp\u003e\"Remember mbv, make it work, make it fast, make it pretty. And always in that order. With claude, I feel like I make it through the loop faster.\"\u003c\/p\u003e\n\u003c\/blockquote\u003e\n\n\u003cp\u003eTriết lý này — được dùng trong software engineering từ lâu — vẫn hoàn toàn valid với vibe coding. Thực ra Claude Code làm cho nó \u003cem\u003edễ apply hơn\u003c\/em\u003e:\u003c\/p\u003e\n\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eMake it work:\u003c\/strong\u003e Claude implement nhanh. Bạn có prototype nhanh để test hypothesis về architecture.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eMake it fast:\u003c\/strong\u003e Sau khi working, bạn có thể ask Claude identify bottlenecks và optimize.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eMake it pretty:\u003c\/strong\u003e Refactoring với Claude — clean up code, better naming, better structure.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eLoop chạy nhanh hơn, nhưng \u003cem\u003eorder không thay đổi\u003c\/em\u003e. Cố optimize too early hay polish too early vẫn là premature optimization.\u003c\/p\u003e\n\n\u003ch2\u003eMulti-Project Productivity Boost\u003c\/h2\u003e\n\n\u003cp\u003eMột benefit ít ai nhắc đến: khả năng làm việc trên nhiều projects đồng thời tốt hơn.\u003c\/p\u003e\n\n\u003cp\u003eTrước đây: context switch giữa projects tốn cognitive cost lớn — cần \"load\" codebase vào đầu.\u003c\/p\u003e\n\n\u003cp\u003eBây giờ: Morten describe task, Claude code. Trong khi Claude implement project A, Morten review project B. Context switch ít tốn kém hơn vì Claude giữ technical context, Morten chỉ cần giữ product context.\u003c\/p\u003e\n\n\u003ch2\u003eAi Thắng: Expert Hay Novice?\u003c\/h2\u003e\n\n\u003cp\u003eMorten address trực tiếp câu hỏi nhiều người sợ hỏi: liệu developer không có kinh nghiệm có thể vibe code ra sản phẩm tốt như senior developer không?\u003c\/p\u003e\n\n\u003cp\u003eCâu trả lời của anh, được minh họa bằng hai historical parallels:\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eWordPress parallel:\u003c\/strong\u003e WordPress democratize web development. Thay vì ít web developer, có nhiều hơn vì accessibility tăng demand. Chất lượng vẫn distributed theo expertise.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eExpertise amplification:\u003c\/strong\u003e Expert wielding Claude Code vẫn outperforms novice wielding Claude Code. Vì:\u003c\/p\u003e\n\u003cul\u003e\n  \u003cli\u003eExpert biết cách break down problems\u003c\/li\u003e\n  \u003cli\u003eExpert biết khi nào code là wrong\u003c\/li\u003e\n  \u003cli\u003eExpert biết trade-offs của architecture decisions\u003c\/li\u003e\n  \u003cli\u003eExpert biết khi nào Claude đang hallucinate về technical details\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eAI là force multiplier — nó amplifies existing capability, không substitute for it. Xem thêm: \u003ca href=\"\/en\/products\/autonomous-coding-agent-ai-t%E1%BB%B1-vi%E1%BA%BFt-code-t%E1%BB%AB-spec\"\u003eAutonomous Coding Agent — AI tự viết code từ spec\u003c\/a\u003e.\u003c\/p\u003e\n\n\u003ch2\u003eRecommendations Cho Developer Muốn Bắt Đầu\u003c\/h2\u003e\n\n\u003cp\u003eTừ 1 tháng kinh nghiệm thực tế của Morten:\u003c\/p\u003e\n\n\u003ch3\u003eTuần 1: Learn Các Giới Hạn\u003c\/h3\u003e\n\u003cp\u003eĐừng cố dùng Claude Code cho mọi thứ ngay. Start với một task nhỏ, quen với review workflow, và học khi nào Claude excellent vs khi nào cần guidance nhiều hơn.\u003c\/p\u003e\n\n\u003ch3\u003eTuần 2-3: Build Workflow\u003c\/h3\u003e\n\u003cp\u003eDevelop personal patterns: cách describe task, cách review output, khi nào dùng 2-phase planning. Không có workflow universal — mỗi developer cần find what works for them.\u003c\/p\u003e\n\n\u003ch3\u003eTuần 4: Optimize\u003c\/h3\u003e\n\u003cp\u003eSau khi có workflow, tìm bottlenecks. Thường là: planning quality, review thoroughness, hay context management.\u003c\/p\u003e\n\n\u003cp\u003eSetup đề xuất ban đầu: \u003ca href=\"\/en\/products\/claude-md-masterclass-t%E1%BB%91i-%C6%B0u-workspace-cho-claude-code\"\u003eCLAUDE.md Masterclass\u003c\/a\u003e để cấu hình workspace đúng từ đầu.\u003c\/p\u003e\n\n\u003ch2\u003eKết Luận: Faster Loop, Same Principles\u003c\/h2\u003e\n\n\u003cp\u003eSau 1 tháng, Morten không sợ bị replaced. Anh cũng không phải người với output giảm — ngược lại. Nhưng anh đã thay đổi \u003cem\u003ecách\u003c\/em\u003e làm việc.\u003c\/p\u003e\n\n\u003cp\u003eNgười thắng trong kỷ nguyên vibe coding không phải người biết nhiều syntax nhất — mà là người biết rõ ràng nhất điều họ muốn build và tại sao. Những kỹ năng đó không bị obsolete bởi AI.\u003c\/p\u003e\n\n\u003cp\u003eMake it work, make it fast, make it pretty. Luôn theo thứ tự đó. Với Claude Code, bạn đi qua loop nhanh hơn. Nhưng bạn vẫn là người quyết định loop đó có đáng chạy không.\u003c\/p\u003e\n\n\u003chr\u003e\n\u003ch3\u003eNguồn tham khảo\u003c\/h3\u003e\n\u003cp\u003eBài viết dựa trên: \u003ca href=\"https:\/\/mortenvistisen.com\/posts\/one-month-with-claude-code\" target=\"_blank\"\u003eLearnings From Vibe Coding With Claude Code For 1 Month\u003c\/a\u003e — Morten Vistisen.\u003c\/p\u003e","brand":"Minh Tuấn","offers":[{"title":"Default Title","offer_id":47725797212372,"sku":null,"price":0.0,"currency_code":"VND","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0821\/0264\/9044\/files\/m_t-thang-vibe-coding-v_i-claude-code-vai-tro-m_i-tri_t-ly-m_i.jpg?v=1774574033","url":"https:\/\/claude.vn\/en\/products\/m%e1%bb%99t-thang-vibe-coding-v%e1%bb%9bi-claude-code-vai-tro-m%e1%bb%9bi-tri%e1%ba%bft-ly-m%e1%bb%9bi","provider":"CLAUDE.VN","version":"1.0","type":"link"}