Notes về
AI, code, & dev.
Bài viết từ kênh HoleTex — về AI tools, web hiện đại, và những thứ mình học được trong quá trình build sản phẩm. Bằng tiếng Việt.
Claude Sonnet 5.5 có gì mới cho lập trình viên: giá, benchmark và cách migrate
Claude Sonnet 5.5 ra ngày 28/9/2026: cùng giá $2/$10 như Sonnet 5 nhưng nhanh hơn, dùng ít token hơn và tiến gần Opus 5.5 trên benchmark coding. Bài này tóm tắt thông số, dùng ở đâu, khi nào chọn Sonnet, Opus hay Haiku 5.5, và 5 breaking change khi migrate.
Effort trong Claude Code: chọn mức nỗ lực và model sao cho đáng tiền
Đổi tên một biến mà Claude nghĩ mãi, sửa một bug khó thì nó báo xong quá sớm? Thường là do chọn sai effort. Bài này giải thích effort trong Claude Code là gì, mặc định của từng model, cách chọn theo loại việc, kết hợp với model và cách đo chi phí.
React Hook Form + Zod: làm form đăng ký chuẩn từ client tới Server Action
Form đăng ký với số điện thoại VN, validate ngay khi gõ, báo lỗi "email đã tồn tại" từ server, dùng chung một schema ở client và Server Action. Hướng dẫn React Hook Form + Zod 4 thực chiến, kèm so sánh với useActionState của React 19.
Next.js App Router thực chiến: cấu trúc file, caching với "use cache" và cách chuyển từ Pages Router
Copy code App Router từ tutorial năm ngoái vào project mới là build báo lỗi. Bài này đi qua Next.js App Router bản 16.4: file conventions, server/client, caching với "use cache", metadata, route handler, proxy.ts và lỗi khi rời Pages Router.
Zustand là gì: quản lý state React gọn nhẹ, từ store đầu tiên tới Next.js
Zustand là gì và dùng thế nào cho đúng trong app thật? Bài này đi qua Zustand v5 với TypeScript: selector và re-render, useShallow, slices, persist, devtools, dùng store ngoài React, lưu ý với Next.js, và khi nào chọn Context, Redux Toolkit hay TanStack Query.
Tailwind CSS là gì: utility-first, cài v4 với Vite, Next.js và cách dùng không rối
Tailwind CSS là gì, vì sao nhiều team React bỏ BEM và CSS Modules để dùng utility class? Bài này hướng dẫn cài Tailwind v4.3 với Vite và Next.js, dùng @theme làm design token, dark mode, tái sử dụng style với cn() và khi nào không nên dùng.
React Query là gì: dùng TanStack Query v5 thay cho fetch trong useEffect
Fetch trong useEffect chạy được, nhưng cache, race condition, refetch và cập nhật sau khi POST thì bạn tự lo. Bài này giải thích React Query (TanStack Query v5) là gì, cách dùng useQuery, useMutation, staleTime, gcTime, optimistic update và khi nào không cần.
React Server Components: hiểu đúng ranh giới server và client trong Next.js
Thêm useState vào page.tsx là lỗi, rải "use client" khắp nơi thì bundle phình to. Bài này giải thích React Server Components cho dev quen React SPA: server vs client component, props qua ranh giới, streaming, Server Functions, lỗi hay gặp và bảo mật.
Google Antigravity là gì: app quản lý agent, CLI agy và so với Cursor, Claude Code
Gemini CLI đã ngừng phục vụ tài khoản cá nhân, Google muốn bạn chuyển sang Antigravity. Bài này giải thích Antigravity 2.0 là gì, cài app và CLI agy ra sao, dùng model nào, giá gói ở Việt Nam, và khi nào nên chọn nó thay Cursor, Claude Code, Copilot.
Spec-driven development: viết spec trước để AI agent code đúng tính năng lớn
Prompt một dòng thì AI làm tốt việc nhỏ, nhưng với tính năng lớn nó tự đoán thay bạn. Bài này giải thích spec-driven development, vòng lặp spec, plan, tasks, implement, cách làm với Claude Code và GitHub Spec Kit, kèm một SPEC.md mẫu.
Prompt injection là gì: khi AI agent nghe lệnh từ người lạ
AI agent đọc README, issue, trang web rồi làm theo chỉ dẫn giấu bên trong. Prompt injection là gì, direct và indirect khác nhau ra sao, vì sao agent có tool làm rủi ro tăng mạnh, và team dev phòng thủ thế nào cho thực tế.
Claude Opus 5.5 có gì mới cho lập trình viên: giá, benchmark và cách dùng
Claude Opus 5.5 rẻ hơn Opus 5, là model mặc định của Claude Code và có trong GitHub Copilot. Bài này tóm tắt giá, benchmark chính thức, breaking change khi gọi API, mẹo dùng và khi nào nên chọn Opus 5.5, Sonnet 5.5, Haiku 5.5 hay Fable 5.1.
GPT-6 là gì? Astra, GPT-6.1 Sol, Luna khác nhau thế nào và dev nên dùng bản nào
GPT-6 gồm Astra, Sol (nay là GPT-6.1 Sol) và Luna. Bài này tóm gọn khác biệt, giá API, phụ phí context dài, dùng được ở ChatGPT, Codex, Copilot hay Cursor, và so với Claude Opus 5.5, Sonnet 5.5 để bạn chọn đúng model cho việc code.
RAG là gì: cho AI trả lời đúng theo tài liệu của bạn, ví dụ TypeScript + pgvector
Chatbot trả lời tự tin nhưng sai chính sách công ty? RAG là gì theo góc nhìn dev web: pipeline chunk, embed, retrieve, generate, hybrid search, reranking, Contextual Retrieval, cách đo chất lượng, khi nào không cần RAG, kèm code TypeScript + pgvector.
LLM là gì: giải thích cho developer về token, context window, giá và hallucination
Gọi API AI thì dễ, hiểu vì sao hóa đơn cao, vì sao cùng prompt ra kết quả khác, vì sao model tự tin bịa hàm mới khó. Bài này giải thích LLM cho developer: token, next-token prediction, context window, temperature, reasoning model và cách tính giá.
Ollama là gì: chạy AI local để code, từ cài đặt tới nối vào VS Code
Code không được rời khỏi máy công ty nhưng vẫn muốn có AI hỗ trợ? Bài này giải thích Ollama là gì, cách cài, chọn model coding vừa với RAM/VRAM, gọi API kiểu OpenAI, nối vào VS Code, Continue, Cline, và khi nào local thật sự đáng dùng.
AI code review: để AI review pull request với Copilot, Claude và Bugbot
PR nằm chờ review cả ngày trong khi AI viết code ngày càng nhanh. Bài này hướng dẫn cách để AI review pull request với Copilot, Claude, Cursor Bugbot và Codex: cách bật, file hướng dẫn review, chi phí, quy trình AI trước người sau.
OpenAI Codex là gì? Cài đặt, AGENTS.md, gói ChatGPT và so với Claude Code
Codex giờ là coding agent của OpenAI chạy ở terminal, ChatGPT desktop app, IDE và cloud. Cách cài đặt, chạy lần đầu, viết AGENTS.md, chọn sandbox, gói ChatGPT nào dùng được và khi nào nên chọn Codex thay vì Claude Code.
Dùng AI viết unit test: cách làm đúng để test có giá trị
AI viết test rất nhanh, nhưng nhiều bộ test xanh mà không bắt được bug nào. Workflow TDD với AI (spec trước, test fail trước, cấm sửa test), checklist review và mutation testing, kèm ví dụ Vitest chạy được.
Cursor Rules là gì? Cách viết rules để AI code đúng chuẩn dự án
Agent trong Cursor cứ quên quy ước dự án? Bài này giải thích Cursor Rules là gì, 4 kiểu áp dụng rule trong .cursor/rules, cách chuyển từ .cursorrules, kèm 3 rule mẫu cho Next.js + TypeScript + Tailwind và so sánh với CLAUDE.md, AGENTS.md, Copilot instructions.
AI agent là gì? Giải thích cho lập trình viên (2026)
AI agent khác chatbot và workflow ở đâu? Giải thích từ góc nhìn dev: vòng lặp model, tool và phản hồi từ môi trường, agent loop TypeScript rút gọn, coding agent hiện nay và khi nào không nên dùng agent.
MCP là gì? Model Context Protocol giải thích dễ hiểu cho dev
MCP là chuẩn mở giúp AI agent kết nối database, GitHub, Figma hay API nội bộ theo một cách thống nhất. Bài này giải thích kiến trúc MCP, cách thêm server vào Claude Code, Cursor, VS Code, tự viết server TypeScript và các rủi ro bảo mật.
So sánh model AI cho lập trình 2026: Claude Opus 5.5, GPT-6, Gemini 3.8, Grok 4.7
Model AI nào code tốt nhất lúc này? Bài này đặt Claude Opus 5.5, Sonnet 5.5, GPT-6.1 Sol, Gemini 3.8 Flash, Grok 4.7 và các model open-weight lên cùng một bảng: định vị, context, giá API, dùng được ở công cụ nào. Kèm cách đọc benchmark và gợi ý chọn model theo loại việc.
Context engineering là gì: quản lý ngữ cảnh để AI agent code đúng
Prompt hay mà AI vẫn code sai sau vài chục lượt chat? Thủ phạm thường là context. Bài này giải thích context engineering là gì, khác prompt engineering ra sao, vì sao context 1M token vẫn cần quản lý, và cách áp dụng cụ thể trong Claude Code, Cursor, Copilot, Codex.
Claude Code nâng cao: CLAUDE.md, subagents, skills, hooks và MCP
Dùng Claude Code được vài tuần, câu hỏi tiếp theo là làm sao để nó làm việc theo cách của bạn và team. Bài này đi qua các công cụ tùy biến chính: CLAUDE.md, subagents, skills, hooks, MCP và plugins, kèm file cấu hình mẫu và cách chọn công cụ nào cho việc nào.
GitHub Copilot là gì: tính năng, giá và cách dùng hiệu quả (2026)
GitHub Copilot không còn chỉ là công cụ gợi ý code. Năm 2026 nó có agent mode trong IDE, cloud agent tự mở PR, Copilot CLI, code review và hàng chục model từ Claude Opus 5.5 tới GPT-6. Bài này giải thích Copilot là gì, bảng giá AI Credits mới và cách bắt đầu.
Cursor là gì? Hướng dẫn dùng Cursor để code nhanh hơn
Cursor là code editor lấy AI làm trung tâm, được xây trên VS Code nhưng với AI tích hợp sâu hơn Copilot. Nó cho phép agent tự động sửa nhiều file, chạy lệnh và hoàn thành task phức tạp qua các mode Agent, Ask, Plan, Debug. Công cụ này đáng dùng nếu bạn đã có nền tảng lập trình vững, vì khoá chính là luôn hiểu code mà AI viết chứ không chỉ bấm accept.
Claude Code là gì? Giải thích dễ hiểu về AI lập trình trong terminal (2026)
Claude Code là công cụ agentic coding của Anthropic chạy trực tiếp trong terminal, cho phép bạn giao task bằng ngôn ngữ tự nhiên và để nó tự lập kế hoạch, sửa code qua nhiều file, chạy lệnh và lặp lại cho tới khi xong. Khác với Cursor và Copilot, Claude Code tập trung vào việc giao nguyên một task lớn thay vì gõi từng dòng code, giúp bạn chuyển từ vai "người gõ" sang "người giao việc và review". Bạn cần nền tảng lập trình vững chắc để review và kiểm soát code nó sinh ra, vì AI chỉ khuếch đại những gì bạn đã có.
Lập trình với AI 2026: Bản đồ toàn cảnh cho dev Việt (Cursor, Claude Code, Copilot)
Năm 2026, lập trình với AI đã phát triển từ gợi ý code đơn giản sang agent tự động có thể đọc codebase, lập kế hoạch và thực thi đa file. Bài viết này vẽ bản đồ toàn cảnh ba loại công cụ (autocomplete, AI editor, terminal agent), quy trình làm việc chuẩn (context → plan → execute → review), và những kỹ năng nền tảng cần có để tránh "vibe coding" mù quáng trên sản phẩm production.
Cursor vs Copilot vs Claude Code: so sánh thẳng thắn 3 AI coding tool (2026)
Năm 2026, ba công cụ AI coding chủ yếu là Cursor, GitHub Copilot và Claude Code, mỗi cái có cách tiếp cận khác nhau. Cursor là editor độc lập với AI ở trung tâm, Copilot gắn vào IDE bạn dùng, Claude Code là agent chạy terminal cho task lớn. Chọn cái nào tùy nhu cầu: dev đã làm việc thì Copilot Pro, muốn editor AI mạnh thì Cursor, thích terminal và task phức tạp thì Claude Code.
Vibe coding là gì? Hiểu đúng để dùng đúng (và biết khi nào nên dừng)
Vibe coding là trend dùng AI để viết code mà không review kỹ output, được Collins Dictionary chọn là từ của năm 2025. Nó tốt cho prototype nhanh và dự án cá nhân, nhưng nguy hiểm cho sản phẩm thật vì code chứa nhiều lỗi bảo mật và khó bảo trì. Để dùng AI hiệu quả, bạn cần hiểu và kiểm duyệt code thay vì "buông mình theo cảm hứng".
AI có thay thế lập trình viên không? Câu trả lời thẳng cho 2026
AI chưa thay thế lập trình viên, nhưng nghề đang thay đổi nhanh chóng. 84% dev dùng AI trong công việc, thị trường vẫn tăng 15% tới 2034, nhưng việc làm junior giảm 20% vì AI giỏi phần kiến thức sơ cấp. Người an toàn là những kỹ sư hiểu hệ thống, debug được vấn đề phức tạp, và biết kiểm chứng đầu ra AI—không phải người chỉ copy code.
Next.js là gì? Giải thích dễ hiểu cho người mới (2026)
Next.js là framework React dành cho dựng web app full-stack, do Vercel phát triển. Nó gói sẵn những tính năng React thuần không có như routing, server-side rendering, tối ưu hình ảnh và tạo API, giúp bạn tập trung vào sản phẩm thay vì tự lắp ráp tooling. Người mới nên học chắc React trước khi sang Next.js để tránh nhầm lẫn và học nhanh hơn.
Node.js là gì? Giải thích dễ hiểu cho frontend dev mới
Node.js là JavaScript runtime cho phép chạy JS ngoài trình duyệt, dựa trên engine V8 của Chrome kèm thư viện tương tác với máy tính. Nó nổi tiếng vì mô hình non-blocking I/O xử lý hàng nghìn kết nối đồng thời tốt, được dùng chủ yếu xây dựng API backend, app realtime, công cụ CLI và tự động hóa. Frontend dev nên học Node vì toàn bộ tooling JavaScript và framework như Next.js đều chạy trên nó.
Lương Frontend / React Developer ở Việt Nam 2026
Bài viết tổng hợp mức lương Frontend/React ở Việt Nam theo cấp độ kinh nghiệm, từ 3-7 triệu cho intern đến 35-50 triệu cho senior. Lương không chỉ phụ thuộc số năm mà chính là kỹ năng thực tế, TypeScript, portfolio có dự án deploy được, và tiếng Anh. Để tăng lương nhanh, cần hiểu sâu React, nhảy việc đúng lúc, và làm dự án thật thay vì chỉ học lý thuyết.
React là gì? Giải thích dễ hiểu cho người mới bắt đầu
React là thư viện JavaScript giúp xây dựng giao diện web động bằng cách quản lý dữ liệu thay vì tự tay sửa DOM. Nó dùng component tái sử dụng, state quản lý trạng thái, và props truyền dữ liệu. Nếu muốn đi làm frontend, học React gần như bắt buộc vì đó là kỹ năng thị trường đang cần.
Lộ trình học ReactJS từ con số 0 đến đi làm 2026
Bài viết đưa ra lộ trình học React thực tế: nền tảng JavaScript bắt buộc (4-8 tuần), React core với useState/useEffect (4-6 tuần), rồi thực tế hóa với API/Router/TypeScript (4-6 tuần). Tổng cộng 6-9 tháng nếu mới hoàn toàn, nhưng tránh 4 cái bẫy: tutorial hell, học nâng cao sớm, bỏ qua JavaScript, và không deploy project.
React Hooks là gì? Hiểu useState và useEffect qua ví dụ thực tế
Bài giới thiệu React Hooks là các hàm cho phép function component dùng state và lifecycle như class component nhưng code ngắn gọn hơn. Hai hooks chính là useState để quản lý state và useEffect để xử lý side effects, cùng hai quy tắc bắt buộc về thứ tự gọi và nơi gọi hooks. Nắm vững hai hooks này cộng các mẹo tránh lỗi và lựa chọn hook phù hợp là chìa khóa để thành thạo React hiện đại.
React vs Next.js: Khác nhau ở đâu và nên học cái nào trước?
React là library UI, còn Next.js là framework xây trên React thêm routing, rendering server-side và tối ưu SEO. Không phải chọn một bỏ một, mà Next.js là React cộng thêm tính năng. Học React vững trước, rồi bước lên Next.js sau để không bị hổng kiến thức.
TypeScript là gì? Giải thích dễ hiểu cho người mới (2026)
TypeScript là JavaScript được bổ sung cú pháp khai báo kiểu dữ liệu, giúp phát hiện lỗi sớm khi gõ code thay vì chờ chạy. Nó đã trở thành kỹ năng bắt buộc ở hầu hết dự án React hiện nay vì cải thiện autocomplete, tái cấu trúc code dễ hơn và giúp code tự mô tả. Người mới nên học nó sau khi chắc JavaScript cơ bản và React, áp dụng ngay vào dự án thật để hiểu nhanh hơn học lý thuyết tách rời.
Câu hỏi phỏng vấn React thường gặp + cách trả lời đúng (2026)
Bài viết tổng hợp những câu hỏi phỏng vấn React hay gặp nhất, chia thành 4 nhóm: nền tảng JavaScript, React core, tối ưu performance và state management, rồi đến thực tế dự án. Trọng tâm là hiểu bản chất chứ không học vẹt, biết giải thích vì sao kỹ thuật đó cần thiết thay vì chỉ nhớ định nghĩa. Nhà tuyển dụng thực sự đánh giá tư duy giải quyết vấn đề, nền tảng vững chắc và khả năng giao tiếp kỹ thuật rõ ràng.
Quản lý state trong React: từ useState đến Zustand và Redux
Bài viết hướng dẫn quản lý state trong React từ cơ bản tới nâng cao: bắt đầu với useState và lift state up, sau đó là Context API, useReducer, rồi mới tới thư viện ngoài như Zustand hay Redux. Quan trọng là chọn đúng công cụ cho từng tình huống thay vì dùng Redux sớm một cách không cần thiết, vì phần lớn app vừa và nhỏ đã đủ dùng React thuần.
React Router là gì? Điều hướng trong React cho người mới
React Router là thư viện routing phổ biến nhất cho React, giúp bạn chuyển trang mà không reload, gắn mỗi URL với một component cụ thể. Bạn có thể dùng <Link> để điều hướng, <Routes>/<Route> để khai báo trang, useParams để đọc tham số động, và nested routes để dùng chung layout. Nắm vững những cơ bản này là đủ xây dựng phần lớn cấu trúc điều hướng trong app thực tế.
async/await và Promise trong JavaScript: hiểu một lần, dùng cả đời
Bài viết giải thích ba cách xử lý bất đồng bộ trong JavaScript: callback (dễ rơi vào callback hell), Promise với .then()/.catch() (code phẳng và gom lỗi tốt), và async/await (cú pháp đường giúp viết bất đồng bộ như đồng bộ). Các developer nên nắm chắc nhóm này vì chúng xuất hiện ở mọi dòng code React và Node.js thực tế, kèm bẫy phổ biến như quên await hay không chạy song song với Promise.all().
REST API là gì? Giải thích dễ hiểu cho người mới (kèm ví dụ fetch)
API là giao diện để các phần mềm nói chuyện với nhau qua một bộ quy tắc rõ ràng. REST API là kiểu API phổ biến nhất trên web, tổ chức dữ liệu thành resource và thao tác bằng HTTP methods (GET/POST/PUT/PATCH/DELETE). Ở frontend, bạn gọi API bằng fetch, luôn nhớ kiểm tra res.ok để xử lý lỗi đúng cách.
Portfolio xin việc Frontend: làm thế nào để được gọi phỏng vấn
Portfolio frontend quan trọng hơn bằng cấp vì nhà tuyển dụng muốn thấy sản phẩm thực tế chạy được trong 30 giây đầu. Nên có 2-4 dự án hoàn chỉnh với stack hiện đại (React, Next.js, TypeScript), mỗi cái giải quyết vấn đề thật, deploy live, và mô tả rõ vấn đề, vai trò, tech stack, kết quả đo được. Tránh clone tutorial, link chết, vỡ trên mobile, và viết mô tả không ai hiểu.
Học lập trình bắt đầu từ đâu? Hướng dẫn cho người mới hoàn toàn 2026
Bài viết cung cấp lộ trình rõ ràng cho người mới học lập trình: bắt đầu với web/frontend vì thấy kết quả nhanh, nhu cầu thị trường cao và tài nguyên dồi dào. Nền tảng bắt buộc là HTML, CSS, JavaScript trước khi học framework như React. Người mới nên học đều đặn, tập trung 80% vào thực hành, tránh nhảy giữa công nghệ khác nhau và học thụ động mà không xây dựng dự án thực.
Prompt cho lập trình: cách viết prompt để AI code đúng ý
Chất lượng code từ AI phụ thuộc chủ yếu vào cách viết prompt, không phải khả năng mô hình. Prompt cụ thể với đủ ngữ cảnh, ràng buộc và ví dụ sẽ cho code chạy được ngay, tiết kiệm thời gian sửa lại. Viết prompt tốt là kỹ năng nền tảng của dev thời AI, ngang với đọc code và debug.
Build app với AI từ A-Z: quy trình thực chiến để không tạo ra đống nợ kỹ thuật
Năm 2026, AI đủ mạnh để bạn biến ý tưởng thành app chạy được, nhưng khoảng cách giữa demo xịn và sản phẩm thực tế nằm hết ở quy trình. Bài viết hướng dẫn từng bước cụ thể: làm rõ ý tưởng, chọn stack phổ biến, để AI lập kế hoạch trước khi code, dựng từng phần nhỏ, review diff kỹ lưỡng, test đầy đủ, rồi deploy với cấu hình an toàn. Cái bẫy lớn nhất là ship code mà bạn không hiểu, nên phải đọc và hiểu mọi thay đổi để tránh nợ kỹ thuật.
AI workflow lập trình: một ngày code với AI trông thế nào
Bài viết hướng dẫn quy trình lập trình với AI thực tế: thay vì chỉ dùng autocomplete, bạn nên mô tả rõ yêu cầu, review diff cẩn thận, và biết chia việc nào cho AI (boilerplate, test, refactor) và việc nào tự làm (logic phức tạp, quyết định kiến trúc). Chìa khóa là quản lý ngữ cảnh tốt, lập kế hoạch cho task lớn, và luôn kiểm soát được code bạn merge.
Tối ưu performance trong React: re-render, memo, useMemo và useCallback
React mặc định đã nhanh, nhưng app vẫn có thể giật lag do render lại thừa. Phần lớn vấn đề performance không cần giải pháp phức tạp, chỉ cần hiểu re-render hoạt động thế nào rồi sửa đúng chỗ, bắt đầu từ việc tách component hợp lý, đặt state gần nơi dùng, rồi chỉ dùng React.memo, useMemo, useCallback khi thực sự đo được chúng cần thiết, vì tối ưu sớm thường phản tác dụng.
JavaScript ES6+ là gì? Những tính năng cần nắm trước khi học React
Bài viết giới thiệu ES6+ là JavaScript hiện đại từ 2015 trở đi, không phải cú pháp riêng của React. Nắm vững các tính năng quan trọng như arrow function, destructuring, spread/rest và .map() trước khi học React sẽ giúp bạn tập trung vào tư duy component thay vì vật lộn với cú pháp.
Fullstack hay Frontend? Nên học hướng nào cho người mới 2026
Người mới vào web thường phân vân giữa frontend và fullstack. Sự thật là cả hai đều có việc, có lương tốt, chỉ phụ thuộc vào mục tiêu và giai đoạn học của bạn. Lời khuyên thực tế là học chắc frontend trước, sau đó mở rộng sang backend để thành fullstack tự nhiên, tránh bị ngợp khi nuốt hai thế giới cùng lúc.