{"product_id":"claude-code-toan-tập-lập-trinh-với-ai-agent-trong-terminal","title":"Claude Code toàn tập — Lập trình với AI agent trong terminal","description":"\n\u003ch2\u003eClaude Code là gì?\u003c\/h2\u003e\n\u003cp\u003eClaude Code là công cụ lập trình agentic chạy trong terminal, được Anthropic phát triển chính thức. Khác với các AI assistant thông thường chỉ gợi ý code, Claude Code \u003cstrong\u003ethực sự thực thi các thao tác\u003c\/strong\u003e: đọc file, chỉnh sửa code, chạy lệnh, quản lý git, và tương tác với toàn bộ codebase của bạn.\u003c\/p\u003e\n\n\u003cp\u003eĐiểm khác biệt cốt lõi: Claude Code không chỉ là chatbot với khả năng coding — đây là một \u003cem\u003eAI agent\u003c\/em\u003e có khả năng tự lên kế hoạch và thực thi nhiều bước để hoàn thành một nhiệm vụ phức tạp, từ \"refactor toàn bộ module authentication\" đến \"tìm và fix tất cả memory leaks trong codebase\".\u003c\/p\u003e\n\n\u003ch3\u003eTại sao Claude Code khác GitHub Copilot hay Cursor?\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eTerminal-first:\u003c\/strong\u003e Chạy trực tiếp trong terminal, không cần IDE hay extension\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eAgentic loop:\u003c\/strong\u003e Tự động lên kế hoạch, thực thi, kiểm tra kết quả, và điều chỉnh\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eFull codebase context:\u003c\/strong\u003e Đọc toàn bộ project, không chỉ file hiện tại\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eTool use thực sự:\u003c\/strong\u003e Bash, file editing, git operations — không chỉ suggestion\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCustomizable via CLAUDE.md:\u003c\/strong\u003e Cấu hình hành vi theo từng project\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch2\u003eCài đặt\u003c\/h2\u003e\n\u003cp\u003eClaude Code yêu cầu Node.js 18+ và npm. Cài đặt đơn giản qua npm:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003enpm install -g @anthropic-ai\/claude-code\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eSau khi cài, xác thực với Anthropic API:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003eclaude\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eLần đầu chạy, Claude Code sẽ hỏi API key hoặc redirect đến trang đăng nhập Anthropic. Nếu bạn đã có tài khoản Claude.ai Pro, có thể dùng OAuth login thay vì API key trực tiếp.\u003c\/p\u003e\n\n\u003ch3\u003eCấu hình môi trường\u003c\/h3\u003e\n\u003cp\u003eClaude Code đọc API key từ biến môi trường:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003eexport ANTHROPIC_API_KEY=\"sk-ant-...\"\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eThêm vào \u003ccode\u003e~\/.zshrc\u003c\/code\u003e hoặc \u003ccode\u003e~\/.bashrc\u003c\/code\u003e để tự động load mỗi lần mở terminal.\u003c\/p\u003e\n\n\u003ch3\u003eCập nhật Claude Code\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003enpm update -g @anthropic-ai\/claude-code\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch2\u003eChạy lần đầu\u003c\/h2\u003e\n\u003cp\u003eĐiều hướng vào project của bạn và khởi động Claude Code:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003ecd \/path\/to\/your\/project\nclaude\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eBạn sẽ thấy prompt tương tác. Thử ngay một lệnh đơn giản:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e\u0026gt; Hãy đọc cấu trúc project này và cho tôi biết đây là loại ứng dụng gì\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eClaude Code sẽ tự động dùng tool \u003ccode\u003eBash\u003c\/code\u003e để \u003ccode\u003els\u003c\/code\u003e, \u003ccode\u003ecat\u003c\/code\u003e các file quan trọng, phân tích và trả lời có ngữ cảnh thực sự của project.\u003c\/p\u003e\n\n\u003ch2\u003eCác khái niệm cốt lõi\u003c\/h2\u003e\n\n\u003ch3\u003eAgentic Loop\u003c\/h3\u003e\n\u003cp\u003eClaude Code hoạt động theo vòng lặp agent:\u003c\/p\u003e\n\n\u003col\u003e\n  \u003cli\u003e\n\u003cstrong\u003eNhận yêu cầu\u003c\/strong\u003e từ người dùng\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eLên kế hoạch\u003c\/strong\u003e các bước thực thi\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eChọn tool\u003c\/strong\u003e phù hợp (Bash, Read, Edit, Write...)\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eThực thi tool\u003c\/strong\u003e và quan sát kết quả\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eĐiều chỉnh kế hoạch\u003c\/strong\u003e dựa trên kết quả\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eLặp lại\u003c\/strong\u003e cho đến khi hoàn thành hoặc cần input\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003cp\u003eĐây là lý do Claude Code có thể xử lý các task phức tạp nhiều bước mà các AI assistant khác không thể — nó không chỉ gợi ý, mà thực sự làm.\u003c\/p\u003e\n\n\u003ch3\u003eTool Use\u003c\/h3\u003e\n\u003cp\u003eClaude Code có bộ công cụ tích hợp sẵn:\u003c\/p\u003e\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eTool\u003c\/th\u003e\n    \u003cth\u003eMô tả\u003c\/th\u003e\n    \u003cth\u003eVí dụ\u003c\/th\u003e\n  \u003c\/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eBash\u003c\/code\u003e\u003c\/td\u003e\n    \u003ctd\u003eChạy lệnh shell\u003c\/td\u003e\n    \u003ctd\u003enpm test, git status, ls -la\u003c\/td\u003e\n  \u003c\/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eRead\u003c\/code\u003e\u003c\/td\u003e\n    \u003ctd\u003eĐọc file\u003c\/td\u003e\n    \u003ctd\u003eĐọc source code, config files\u003c\/td\u003e\n  \u003c\/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eEdit\u003c\/code\u003e\u003c\/td\u003e\n    \u003ctd\u003eChỉnh sửa file (diff-based)\u003c\/td\u003e\n    \u003ctd\u003eSửa bug, refactor function\u003c\/td\u003e\n  \u003c\/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eWrite\u003c\/code\u003e\u003c\/td\u003e\n    \u003ctd\u003eTạo hoặc ghi đè file\u003c\/td\u003e\n    \u003ctd\u003eTạo file mới, viết tests\u003c\/td\u003e\n  \u003c\/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eGlob\u003c\/code\u003e\u003c\/td\u003e\n    \u003ctd\u003eTìm kiếm file theo pattern\u003c\/td\u003e\n    \u003ctd\u003eTìm tất cả *.test.js\u003c\/td\u003e\n  \u003c\/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eGrep\u003c\/code\u003e\u003c\/td\u003e\n    \u003ctd\u003eTìm kiếm trong nội dung file\u003c\/td\u003e\n    \u003ctd\u003eTìm tất cả TODO comments\u003c\/td\u003e\n  \u003c\/tr\u003e\n\u003c\/table\u003e\n\n\u003ch3\u003ePermission Model\u003c\/h3\u003e\n\u003cp\u003eClaude Code hỏi permission trước khi thực hiện các thao tác quan trọng:\u003c\/p\u003e\n\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRead-only ops\u003c\/strong\u003e: Tự động, không cần xác nhận\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eFile modifications\u003c\/strong\u003e: Hiển thị diff và hỏi xác nhận\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eBash commands\u003c\/strong\u003e: Hỏi hoặc tự động tùy cấu hình\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eDestructive ops\u003c\/strong\u003e: Luôn hỏi xác nhận\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eDùng flag \u003ccode\u003e--dangerously-skip-permissions\u003c\/code\u003e để bỏ qua tất cả xác nhận (chỉ dùng trong môi trường CI\/CD hoặc khi bạn tin tưởng hoàn toàn).\u003c\/p\u003e\n\n\u003ch2\u003eFile CLAUDE.md\u003c\/h2\u003e\n\u003cp\u003eCLAUDE.md là file cấu hình quan trọng nhất của Claude Code. Đặt tại root project, file này cho Claude biết:\u003c\/p\u003e\n\n\u003cul\u003e\n  \u003cli\u003eProject này làm gì, tech stack gì\u003c\/li\u003e\n  \u003cli\u003eCoding conventions và standards\u003c\/li\u003e\n  \u003cli\u003eWorkflows đặc thù của team\u003c\/li\u003e\n  \u003cli\u003eCác lệnh quan trọng (test, build, deploy)\u003c\/li\u003e\n  \u003cli\u003eNhững điều KHÔNG được làm\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eVí dụ CLAUDE.md cho một Next.js project:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e# CLAUDE.md\n\n## Project\nE-commerce platform built with Next.js 14, TypeScript, Prisma, PostgreSQL.\n\n## Tech Stack\n- Next.js 14 (App Router)\n- TypeScript strict mode\n- Prisma ORM\n- PostgreSQL\n- Tailwind CSS\n\n## Commands\n- Dev: `npm run dev`\n- Test: `npm test`\n- Type check: `npm run typecheck`\n- DB migrate: `npx prisma migrate dev`\n\n## Conventions\n- Use server components by default, client components only when needed\n- All API routes in \/app\/api\/, use Route Handlers\n- Prisma client singleton in \/lib\/prisma.ts\n- Never commit .env files\n\n## Do NOT\n- Modify \/prisma\/migrations\/ directly\n- Use `any` type in TypeScript\n- Skip error handling in API routes\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eClaude Code đọc CLAUDE.md ngay khi khởi động và giữ ngữ cảnh này trong suốt session.\u003c\/p\u003e\n\n\u003ch2\u003eSlash Commands\u003c\/h2\u003e\n\u003cp\u003eClaude Code có các built-in slash commands để điều khiển behavior:\u003c\/p\u003e\n\n\u003ch3\u003e\/plan\u003c\/h3\u003e\n\u003cp\u003eYêu cầu Claude lên kế hoạch chi tiết trước khi thực thi:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e\u0026gt; \/plan Refactor authentication module sang JWT tokens\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eClaude sẽ liệt kê từng bước cụ thể, các file cần sửa, potential risks — sau đó hỏi bạn có muốn thực thi không.\u003c\/p\u003e\n\n\u003ch3\u003e\/compact\u003c\/h3\u003e\n\u003cp\u003eKhi conversation quá dài và context window gần đầy:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e\u0026gt; \/compact\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eClaude tóm tắt lịch sử conversation, giải phóng context space trong khi vẫn giữ những thông tin quan trọng nhất.\u003c\/p\u003e\n\n\u003ch3\u003e\/review\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026gt; \/review src\/auth\/\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eYêu cầu code review cho file hoặc directory. Claude sẽ đọc code và đưa ra nhận xét về bugs, security issues, performance, và style.\u003c\/p\u003e\n\n\u003ch3\u003e\/clear\u003c\/h3\u003e\n\u003cp\u003eReset conversation history, bắt đầu session mới trong cùng project.\u003c\/p\u003e\n\n\u003ch3\u003e\/cost\u003c\/h3\u003e\n\u003cp\u003eXem token usage và estimated cost của session hiện tại.\u003c\/p\u003e\n\n\u003ch2\u003eTích hợp IDE\u003c\/h2\u003e\n\n\u003ch3\u003eVS Code\u003c\/h3\u003e\n\u003cp\u003eCài extension \u003cstrong\u003eClaude Code\u003c\/strong\u003e từ VS Code Marketplace. Extension cho phép:\u003c\/p\u003e\n\n\u003cul\u003e\n  \u003cli\u003eMở Claude Code panel ngay trong VS Code\u003c\/li\u003e\n  \u003cli\u003eHighlight code và yêu cầu Claude giải thích hoặc sửa\u003c\/li\u003e\n  \u003cli\u003eXem diffs trực tiếp trong editor\u003c\/li\u003e\n  \u003cli\u003eKeyboard shortcut: \u003ccode\u003eCmd+Shift+A\u003c\/code\u003e (macOS) mở Claude panel\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eJetBrains\u003c\/h3\u003e\n\u003cp\u003ePlugin \u003cstrong\u003eClaude Code\u003c\/strong\u003e có sẵn cho IntelliJ IDEA, WebStorm, PyCharm. Cài từ JetBrains Marketplace, cấu hình API key trong Settings.\u003c\/p\u003e\n\n\u003ch3\u003eTerminal trong IDE\u003c\/h3\u003e\n\u003cp\u003eCách đơn giản nhất: chạy \u003ccode\u003eclaude\u003c\/code\u003e trong integrated terminal của VS Code hoặc JetBrains. Vẫn có full functionality mà không cần plugin.\u003c\/p\u003e\n\n\u003ch2\u003eLàm việc với Git\u003c\/h2\u003e\n\u003cp\u003eClaude Code tích hợp tốt với git workflow:\u003c\/p\u003e\n\n\u003ch3\u003eXem changes trước khi commit\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026gt; Xem tất cả changes tôi đã làm hôm nay và viết commit message phù hợp\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eClaude chạy \u003ccode\u003egit diff\u003c\/code\u003e, \u003ccode\u003egit status\u003c\/code\u003e, phân tích changes và đề xuất commit message theo conventional commits format.\u003c\/p\u003e\n\n\u003ch3\u003eCode review trước PR\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026gt; Review code trong branch feature\/payment-integration so với main\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eResolve merge conflicts\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026gt; Có conflict trong src\/api\/users.ts, hãy resolve theo logic của branch feature\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eGit bisect automation\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026gt; Bug này xuất hiện từ commit nào? Test case để detect bug là: [mô tả]\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eClaude có thể tự động hóa git bisect để tìm commit gây ra bug.\u003c\/p\u003e\n\n\u003ch2\u003eMulti-file Editing\u003c\/h2\u003e\n\u003cp\u003eClaude Code thực sự mạnh khi cần thay đổi nhiều file cùng lúc — điều mà các AI assistant khác rất khó làm:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e\u0026gt; Rename interface UserProfile thành UserAccount trong toàn bộ codebase,\n  cập nhật tất cả imports và usages\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eClaude sẽ:\u003c\/p\u003e\n\u003col\u003e\n  \u003cli\u003eDùng \u003ccode\u003eGrep\u003c\/code\u003e tìm tất cả occurrences\u003c\/li\u003e\n  \u003cli\u003eDùng \u003ccode\u003eEdit\u003c\/code\u003e để rename trong từng file\u003c\/li\u003e\n  \u003cli\u003eChạy \u003ccode\u003enpm run typecheck\u003c\/code\u003e để verify không có errors\u003c\/li\u003e\n  \u003cli\u003eReport danh sách files đã thay đổi\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003ch3\u003eVí dụ multi-file workflow thực tế\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026gt; Thêm field \"lastLoginAt\" vào User model:\n  - Cập nhật Prisma schema\n  - Tạo migration\n  - Cập nhật TypeScript interfaces\n  - Cập nhật API endpoints liên quan\n  - Thêm unit tests\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eĐây là loại task mà Claude Code xử lý xuất sắc — một yêu cầu high-level, nhiều bước, nhiều file.\u003c\/p\u003e\n\n\u003ch2\u003eHooks\u003c\/h2\u003e\n\u003cp\u003eClaude Code hỗ trợ hooks để tự động hóa actions:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e# .claude\/hooks\/pre-commit.sh\n#!\/bin\/bash\nnpm run typecheck\nnpm run lint\nnpm test -- --passWithNoTests\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eCấu hình trong \u003ccode\u003e.claude\/settings.json\u003c\/code\u003e:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n  \"hooks\": {\n    \"pre-commit\": \".claude\/hooks\/pre-commit.sh\",\n    \"post-edit\": \".claude\/hooks\/format.sh\"\n  }\n}\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eHooks chạy tự động khi Claude thực hiện các actions nhất định, đảm bảo code luôn qua được quality gates.\u003c\/p\u003e\n\n\u003ch2\u003eMCP Servers\u003c\/h2\u003e\n\u003cp\u003eModel Context Protocol (MCP) cho phép Claude Code tích hợp với external tools và services:\u003c\/p\u003e\n\n\u003ch3\u003eCài đặt MCP server\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003eclaude mcp add github-mcp-server\nclaude mcp add postgres-mcp-server\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eVí dụ với GitHub MCP\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026gt; Tạo issue trên GitHub cho bug vừa tìm thấy,\n  label là \"bug\" và \"high-priority\"\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eVí dụ với Database MCP\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026gt; Query database production xem user nào đã login trong 24h qua\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eMCP mở rộng khả năng của Claude Code ra ngoài filesystem, cho phép tương tác với toàn bộ development ecosystem.\u003c\/p\u003e\n\n\u003ch2\u003eTips cho việc sử dụng hiệu quả\u003c\/h2\u003e\n\n\u003ch3\u003e1. Provide context upfront\u003c\/h3\u003e\n\u003cp\u003eThay vì: \u003cem\u003e\"Fix bug này\"\u003c\/em\u003e\u003c\/p\u003e\n\u003cp\u003eHãy nói: \u003cem\u003e\"Function calculateTax() trong src\/billing\/tax.ts trả về kết quả sai khi customer ở EU và có VAT exemption. Expected output là 0, actual là 20%. Đây là test case: [paste test]\"\u003c\/em\u003e\u003c\/p\u003e\n\n\u003ch3\u003e2. Dùng \/plan cho tasks lớn\u003c\/h3\u003e\n\u003cp\u003eVới bất kỳ task nào ảnh hưởng nhiều hơn 3 files hoặc cần nhiều hơn 5 bước, hãy dùng \u003ccode\u003e\/plan\u003c\/code\u003e trước. Xem và approve kế hoạch trước khi Claude thực thi.\u003c\/p\u003e\n\n\u003ch3\u003e3. Verify sau mỗi bước lớn\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026gt; Chạy tests để verify changes vừa làm không break gì\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003e4. Dùng CLAUDE.md để encode team knowledge\u003c\/h3\u003e\n\u003cp\u003eMọi \"unwritten rule\" của team nên được viết vào CLAUDE.md. Càng nhiều context, Claude càng ra quyết định tốt hơn.\u003c\/p\u003e\n\n\u003ch3\u003e5. Iterative refinement\u003c\/h3\u003e\n\u003cp\u003eKhông cần phải spec perfect ngay từ đầu. Bắt đầu với yêu cầu high-level, xem Claude làm gì, điều chỉnh tiếp.\u003c\/p\u003e\n\n\u003ch3\u003e6. Tận dụng --print flag cho automation\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003eclaude --print \"Summarize changes in last 10 commits\" \u0026gt; summary.txt\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eDùng trong scripts, CI\/CD pipeline, hoặc bất kỳ automation nào.\u003c\/p\u003e\n\n\u003ch2\u003eCommon Workflows\u003c\/h2\u003e\n\n\u003ch3\u003eBug Fixing\u003c\/h3\u003e\n\u003col\u003e\n  \u003cli\u003ePaste error message và stack trace\u003c\/li\u003e\n  \u003cli\u003eCung cấp steps to reproduce\u003c\/li\u003e\n  \u003cli\u003eClaude tìm root cause trong code\u003c\/li\u003e\n  \u003cli\u003eClaude đề xuất và implement fix\u003c\/li\u003e\n  \u003cli\u003eClaude viết regression test\u003c\/li\u003e\n  \u003cli\u003eChạy full test suite để verify\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003cpre\u003e\u003ccode\u003e\u0026gt; TypeError: Cannot read property 'id' of undefined\n  at UserService.getProfile (src\/services\/user.service.ts:45)\n\n  Xảy ra khi user chưa đăng nhập cố gắng access profile page.\n  Fix bug này và thêm proper error handling.\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eRefactoring\u003c\/h3\u003e\n\u003col\u003e\n  \u003cli\u003eChỉ rõ code cần refactor\u003c\/li\u003e\n  \u003cli\u003eMô tả mục tiêu (performance, readability, pattern)\u003c\/li\u003e\n  \u003cli\u003eClaude phân tích và đề xuất approach\u003c\/li\u003e\n  \u003cli\u003eApprove plan, Claude thực thi\u003c\/li\u003e\n  \u003cli\u003eRun tests, review diffs\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003cpre\u003e\u003ccode\u003e\u0026gt; src\/utils\/helpers.ts đang có 800 dòng với nhiều unrelated functions.\n  Hãy tách thành các modules nhỏ hơn theo domain:\n  date-utils, string-utils, array-utils, format-utils\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eNew Feature Development\u003c\/h3\u003e\n\u003col\u003e\n  \u003cli\u003eMô tả feature requirements\u003c\/li\u003e\n  \u003cli\u003eThảo luận architecture với Claude\u003c\/li\u003e\n  \u003cli\u003eApprove approach\u003c\/li\u003e\n  \u003cli\u003eClaude implement từng bước\u003c\/li\u003e\n  \u003cli\u003eReview code, request adjustments\u003c\/li\u003e\n  \u003cli\u003eClaude viết tests\u003c\/li\u003e\n  \u003cli\u003eFinal review và cleanup\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003ch3\u003eCode Review Preparation\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026gt; Tôi sắp submit PR này. Hãy review code, tìm potential issues,\n  suggest improvements, và kiểm tra xem có missing tests không.\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch2\u003ePricing và Limits\u003c\/h2\u003e\n\u003cp\u003eClaude Code dùng API tokens của Anthropic. Chi phí phụ thuộc vào:\u003c\/p\u003e\n\n\u003cul\u003e\n  \u003cli\u003eModel đang dùng (Claude Sonnet tiết kiệm hơn Claude Opus)\u003c\/li\u003e\n  \u003cli\u003eKích thước codebase (context tokens)\u003c\/li\u003e\n  \u003cli\u003eSố lượng tool calls\u003c\/li\u003e\n  \u003cli\u003eĐộ phức tạp của tasks\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eVới Claude Pro subscription, bạn có thể dùng Claude Code qua OAuth login với usage limits. Với API key, bạn pay per token và có flexibility hơn.\u003c\/p\u003e\n\n\u003cp\u003eDùng \u003ccode\u003e\/cost\u003c\/code\u003e thường xuyên để track spending trong session.\u003c\/p\u003e\n\n\u003ch2\u003eKết luận\u003c\/h2\u003e\n\u003cp\u003eClaude Code đại diện cho một paradigm shift trong developer tooling — từ AI-as-assistant sang AI-as-collaborator. Thay vì chỉ gợi ý code, Claude Code tham gia vào toàn bộ development workflow: từ hiểu codebase, lên kế hoạch, thực thi, đến verify kết quả.\u003c\/p\u003e\n\n\u003cp\u003eKey để tận dụng tối đa Claude Code:\u003c\/p\u003e\n\u003cul\u003e\n  \u003cli\u003eĐầu tư thời gian viết CLAUDE.md tốt cho mỗi project\u003c\/li\u003e\n  \u003cli\u003eTin tưởng vào agentic loop — cho Claude làm nhiều hơn một bước\u003c\/li\u003e\n  \u003cli\u003eProvide context rõ ràng, specific\u003c\/li\u003e\n  \u003cli\u003eVerify kết quả qua tests và code review\u003c\/li\u003e\n  \u003cli\u003eTreat Claude như senior developer, không phải autocomplete\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003chr\u003e\n\u003ch3\u003eBài viết liên quan\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"\/products\/claude-code-vs-github-copilot-vs-cursor-dau-la-ide-ai-t%E1%BB%91t-nh%E1%BA%A5t\"\u003eClaude Code vs GitHub Copilot vs Cursor — Đâu là IDE AI tốt nhất?\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"\/products\/claude-md-masterclass-t%E1%BB%91i-%C6%B0u-workspace-cho-claude-code\"\u003eCLAUDE.md Masterclass — Tối ưu workspace cho Claude Code\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"\/products\/developer-playbook-claude-cho-l%E1%BA%ADp-trinh-vien\"\u003eDeveloper Playbook — Claude cho lập trình viên\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"\/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\/li\u003e\n\u003cli\u003e\u003ca href=\"\/products\/b%E1%BA%AFt-d%E1%BA%A7u-v%E1%BB%9Bi-claude-vision-g%E1%BB%ADi-hinh-%E1%BA%A3nh-qua-api\"\u003eBắt đầu với Claude Vision — Gửi hình ảnh qua API\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Minh Tuấn","offers":[{"title":"Default Title","offer_id":47721062039764,"sku":null,"price":0.0,"currency_code":"VND","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0821\/0264\/9044\/files\/claude-code-toan-t_p-l_p-trinh-v_i-ai-agent-trong-terminal.jpg?v=1774521455","url":"https:\/\/claude.vn\/products\/claude-code-toan-t%e1%ba%adp-l%e1%ba%adp-trinh-v%e1%bb%9bi-ai-agent-trong-terminal","provider":"CLAUDE.VN","version":"1.0","type":"link"}