Cẩm nang Claude Code: Giới thiệu chuyên nghiệp về xây dựng ứng dụng với sự hỗ trợ của trí tuệ nhân tạo
Claude Code không phải là một công cụ tự động hoàn thành thông minh hơn. Nó là một tác nhân: một hệ thống đọc mã nguồn của bạn, suy luận về những việc cần làm, viết và chỉnh sửa tệp, chạy các lệnh và thực hiện một nhiệm vụ từ đầu đến cuối – với sự chỉ đạo của bạn, việc xác minh đầu ra và việc đưa ra các quyết định cần sự phán đoán. Nó đại diện cho một sự thay đổi có ý nghĩa trong cách xây dựng phần mềm, chứ không phải là một cải tiến nhỏ so với những gì đã có trước đây.
Cẩm nang này bao gồm mọi thứ từ cài đặt và các phiên làm việc đầu tiên đến quy trình làm việc của các tác nhân song song, tích hợp MCP và các vòng lặp tự động. Nó được tổ chức để xây dựng năng lực một cách tuần tự, vì mỗi chương đều giả định rằng bạn đã đọc các chương trước đó. Nhưng nó cũng được viết để trở thành tài liệu tham khảo mà bạn có thể quay lại khi kỹ năng thực hành của bạn phát triển. Mục tiêu không phải là giúp bạn làm quen với Claude Code, mà là giúp bạn thành thạo nó.
Những điều bạn sẽ học được
Sau khi đọc xong cuốn cẩm nang này, bạn sẽ có thể thực hiện những việc mà trước đây đòi hỏi nhiều năm kinh nghiệm kỹ thuật hoặc cả một nhóm:
Xây dựng các ứng dụng thực tế từ đầu – không phải các dự án nhỏ hay bản sao hướng dẫn, mà là phần mềm hoạt động được mà bạn dự định triển khai và sử dụng.
Đừng chờ đợi các nhà phát triển nữa – hãy tự mình biến ý tưởng từ khái niệm thành nguyên mẫu hoạt động, mà không cần phụ thuộc vào thời gian hoặc ngân sách của người khác.
Hoàn thành các tính năng chỉ trong vài giờ thay vì vài tuần – cấu trúc các phiên làm việc bằng Chế độ Lập kế hoạch, xây dựng từng tính năng một và nhắc nhở thường xuyên để Claude tạo ra sản phẩm đúng như bạn mong muốn.
Duy trì tính liên tục của dự án qua hàng chục phiên làm việc – quản lý cửa sổ ngữ cảnh và đảm bảo tính liền mạch để bạn không bao giờ mất tiến độ hoặc phải xây dựng lại ngữ cảnh từ đầu.
Kết nối các công cụ của bạn – liên kết Claude Code với GitHub, Notion, Slack, Google Workspace và các dịch vụ khác thông qua Giao thức Ngữ cảnh Mô hình (MCP) để bạn có thể thực thi toàn bộ quy trình làm việc chỉ bằng một lệnh duy nhất.
Làm việc như một nhóm độc lập – chạy song song các quy trình công việc của tác nhân để tạo ra kết quả tương đương với ba hoặc bốn kỹ sư cùng lúc, mà không cần thêm thao tác phối hợp.
Tránh những sai lầm làm lãng phí nhiều ngày – hãy hiểu khi nào và làm thế nào để sử dụng các vòng lặp tự động một cách an toàn, để bạn không phải quay lại phiên làm việc và phát hiện ra Claude đã đi sai hướng suốt hai tiếng đồng hồ.
Tạo ra mã nguồn mà bạn có thể tự tin đăng tải – xem xét và xác minh kết quả do AI tạo ra theo tiêu chuẩn chuyên nghiệp, để không có gì được đưa ra thị trường mà bạn không thực sự hiểu và chịu trách nhiệm.
Đối tượng phù hợp
1. Các nhà phát triển muốn hoạt động ở quy mô khác nhau
Nếu bạn đã viết phần mềm nhiều năm, Claude Code không phải là công cụ thay thế kỹ năng của bạn – mà là công cụ nhân rộng hiệu quả. Những nhà phát triển tận dụng tối đa lợi ích từ nó không chỉ sử dụng như một công cụ tự động hoàn thành. Họ sử dụng nó để chạy các phiên làm việc song song, phân công toàn bộ luồng công việc phát triển tính năng, duy trì các codebase mà trước đây cần đến cả một nhóm, và phát hành sản phẩm với tốc độ mà trước đây không thể đạt được nếu không có thêm nhân lực.
Sổ tay này đề cập đến các phương pháp thực hành – Chế độ Lập kế hoạch, quản lý ngữ cảnh, vòng lặp tự động, cây công việc Git – những yếu tố phân biệt việc sử dụng Claude Code ở cấp độ chuyên nghiệp với việc sử dụng cơ bản.
2. Những người sáng lập, chuyên gia sản phẩm và chuyên gia lĩnh vực muốn loại bỏ một rào cản cụ thể.
Điều quan trọng cần hiểu trước khi đọc tiếp: viết mã chỉ là một phần nhỏ trong những yếu tố thực sự cần thiết để một sản phẩm thành công. Một codebase hoạt động không tạo ra người dùng, không xác thực mô hình kinh doanh, không đảm bảo sự phù hợp giữa sản phẩm và thị trường, và không thể thay thế cho khả năng phán đoán, phân phối và kiến thức chuyên môn quyết định xem phần mềm có thực sự hữu ích với ai đó hay không.
Claude Code loại bỏ rào cản lập trình. Rào cản đó trước đây rất đáng kể: đối với những người không chuyên về kỹ thuật, đó thường là điều khiến việc xây dựng sản phẩm trở nên bất khả thi ngay từ đầu. Việc loại bỏ rào cản này rất quan trọng. Nhưng điều đó không giống như việc loại bỏ mọi trở ngại khác giữa bạn và một sản phẩm hoạt động hiệu quả trên thị trường.
Những gì vẫn hoàn toàn thuộc về bạn bao gồm: hiểu rõ vấn đề bạn đang giải quyết, xác định xem giải pháp đó có thực sự phù hợp hay không, quyết định xây dựng cái gì và theo thứ tự nào, nói chuyện với người dùng, hiểu lý do tại sao mọi người sẽ hoặc sẽ không sử dụng những gì bạn đang xây dựng, và tất cả mọi thứ liên quan đến việc đưa sản phẩm đến tay người dùng mục tiêu.
Cẩm nang này sẽ giúp bạn từ ý tưởng ban đầu đến khi tạo ra phần mềm hoạt động. Phần còn lại – phần thực sự làm cho phần mềm đó có giá trị – không phải là vấn đề kỹ thuật.
3. Bất kỳ ai có ý tưởng nhưng chưa thể thực hiện được.
Nếu điều cản trở bạn chính là mã nguồn – không phải ý tưởng, không phải thị trường, không phải khâu phân phối, mà chính là mã nguồn – thì cuốn cẩm nang này dành cho bạn. Nó sẽ loại bỏ trở ngại cụ thể đó.
Nó sẽ không loại bỏ những cái khác. Kỳ vọng ban đầu cần phải chính xác: điều này giúp bạn có được một ứng dụng hoạt động nhanh hơn so với trước đây, chứ không phải là một con đường tắt để có được một sản phẩm thành công.
Không cần kinh nghiệm lập trình trước đó để bắt đầu – nhưng kinh nghiệm trước đó sẽ giúp quá trình học nhanh hơn. Điều cần thiết trong cả hai trường hợp là sự sẵn lòng nghiêm túc tìm hiểu những gì Claude Code tạo ra: đọc, đặt câu hỏi, kiểm chứng và hướng nó đến những gì bạn thực sự cần.
Tại sao kỹ năng này lại quan trọng
Mọi người bị thu hút bởi Claude Code và phát triển phần mềm có sự hỗ trợ của trí tuệ nhân tạo vì nó mở ra những cơ hội trước đây không thể có được. Khả năng xây dựng phần mềm – biến một ý tưởng từ khái niệm thành sản phẩm hoạt động – trước đây đòi hỏi nhiều năm đào tạo, một nhóm được tài trợ hoặc cả hai. Rào cản đó đang thay đổi nhanh chóng.
Đây không phải là công cụ sẽ khiến khả năng phán đoán của con người trở nên không cần thiết. Trí tuệ nhân tạo sẽ tự động hóa rất nhiều thứ, nhưng không phải tất cả. Thế giới quá liên kết, quá phức tạp và quá phụ thuộc vào sự sáng tạo, chuyên môn và khả năng phán đoán của con người nên việc tự động hóa hoàn toàn là không thể.
Có những thứ ngoài việc viết mã lập trình giúp thế giới vận hành, và điều đó sẽ vẫn đúng. Nhưng đối với việc xây dựng phần mềm – biến ý tưởng của bạn thành các ứng dụng hoạt động – Claude Code thực sự mang tính đột phá.
Tính đến đầu năm 2026, Claude Code chiếm 4% tổng số commit trên toàn cầu của GitHub. Các kỹ sư tại Spotify đã không viết mã thủ công kể từ tháng 12. Nhóm của Anthropic tự mình gửi từ 10 đến 30 pull request mỗi ngày, tất cả đều do Claude tạo ra. Đây là tình trạng hiện tại – không phải là dự báo.
Kỹ năng chỉ đạo, đánh giá và xây dựng bằng các công cụ AI đã là một trong những khả năng quý giá nhất mà một chuyên gia có thể sở hữu. Giá trị đó sẽ tăng lên chứ không giảm đi khi AI trở nên mạnh mẽ hơn. Các nhà phát triển, nhà xây dựng và nhà tư tưởng thành thạo các công cụ như Claude Code hiện nay sẽ có lợi thế cạnh tranh khi lĩnh vực này phát triển.
Mục lục
Chương 1: Bối cảnh khiến Claude Code trở nên cần thiết
Chương 2: Nhân học — Bối cảnh và Mục đích
Chương 3: Gia đình kiểu mẫu Claude
Chương 4: Claude Code là gì?
Chương 5: Tại sao cộng đồng phát triển lại cần điều này
Chương 6: Cài đặt và Thiết lập ban đầu
Chương 7: VS Code và phần mở rộng Claude Code
Chương 8: Đăng ký, Chi phí Token và Cách sử dụng
Chương 9: Làm việc trong buổi đầu tiên
Chương 10: Kỷ luật kịp thời — Đầu vào quyết định đầu ra
Chương 11: Lập kế hoạch như một hoạt động cốt lõi
Chương 12: Xây dựng từng tính năng một
Chương 13: Cách thức hoạt động thực sự của Claude Code
Chương 14: Thiết kế kiến trúc ứng dụng hiệu quả với Claude Code
Chương 15: Chế độ Lập kế hoạch, Chế độ Chỉnh sửa và Chế độ Vận hành
Chương 16: Cửa sổ ngữ cảnh và quản lý phiên
Chương 17: Máy chủ MCP và các tích hợp bên ngoài
Chương 18: Các tác nhân, tác nhân phụ và quy trình làm việc song song
Chương 19: Kỹ năng, Quy tắc và Hướng dẫn bền vững
Chương 20: Vòng lặp tự trị — Điều kiện sử dụng
Chương 21: Rà soát mã, bảo mật và xác minh
Chương 22: Bản thiết kế dự án khởi đầu
Chương 23: Ranh giới hiện tại của Claude Code
Chương 24: Kỹ thuật phần mềm như một ngành học
Chương 25: Một lộ trình có cấu trúc để tiến về phía trước
Chương 1:
Bối cảnh khiến Claude Code trở nên cần thiết
Ngành phát triển phần mềm từ trước đến nay luôn bị hạn chế về quyền truy cập. Việc xây dựng một ứng dụng hoạt động được như dịch vụ web, công cụ dữ liệu hoặc sản phẩm dành cho người dùng đòi hỏi nhiều năm đào tạo kỹ thuật hoặc một nhóm kỹ sư được tài trợ. Rào cản về kiến thức rất lớn, thời gian đầu tư cần thiết rất đáng kể, và số lượng người có khả năng xây dựng lại rất ít.
Sự hạn chế này bắt đầu giảm dần với sự xuất hiện của các mô hình ngôn ngữ lớn có khả năng tạo ra mã chức năng từ các mô tả bằng ngôn ngữ tự nhiên. Điều bắt đầu như một sự hỗ trợ cho các nhà phát triển cá nhân, chỉ trong vài năm, đã trở thành một sự chuyển đổi cấu trúc trong cách xây dựng phần mềm.
Tính đến đầu năm 2026, quy mô của sự thay đổi này đã có thể đo lường và rất đáng kể, và ý nghĩa của nó vượt ra ngoài các chỉ số năng suất. Khả năng xây dựng phần mềm đang trở nên dễ tiếp cận hơn với nhiều người hơn – không phải vì sự phức tạp vốn có đã được loại bỏ, mà vì phần lớn quá trình chuyển đổi từ ý định sang thực thi giờ đây có thể được giao cho một tác nhân AI.
Về mặt con người, điều này mở ra gần giống với những gì máy in đã mở ra cho giao tiếp bằng văn bản: sự mở rộng đáng kể về đối tượng có thể tham gia.
Boris Cherny đã diễn đạt điều đó một cách chính xác: "Tôi hình dung ra một thế giới nơi mọi người đều có thể lập trình. Bất cứ ai cũng có thể tạo ra phần mềm bất cứ lúc nào." Ông đã so sánh điều này một cách rõ ràng với máy in – một công nghệ đã chuyển giao khả năng trước đây chỉ thuộc về một nhóm nhỏ, chuyên biệt cho toàn dân, và là tiền đề cho sự bùng nổ về sản lượng sáng tạo và trí tuệ của con người.
Cẩm nang này ra đời nhằm giúp bạn trở thành một người tham gia có năng lực trong quá trình chuyển đổi đó.
Chương 2:
Nhân học — Bối cảnh và Mục đích
Claude Code là một sản phẩm của Anthropic. Để hiểu đầy đủ về sản phẩm này, việc hiểu về tổ chức đã tạo ra nó là rất hữu ích.
Sự thành lập và sứ mệnh
Anthropic được thành lập vào năm 2021 bởi Dario Amodei, Daniela Amodei và một số đồng nghiệp từng làm việc tại OpenAI. Động lực thành lập không phải là để cạnh tranh về vị thế, mà là do bất đồng quan điểm về nguyên tắc trong việc phát triển trí tuệ nhân tạo.
Những người sáng lập tin tưởng – và vẫn tiếp tục tin tưởng – rằng việc xây dựng các hệ thống trí tuệ nhân tạo mạnh mẽ mà không có sự cam kết nghiêm ngặt, hàng đầu đối với an toàn là một trong những rủi ro nghiêm trọng nhất mà nhân loại đã tạo ra. Phản ứng của họ là thành lập một tổ chức mà mục đích chính là phát triển năng lực trí tuệ nhân tạo và an toàn trí tuệ nhân tạo song song, coi an toàn trí tuệ nhân tạo không phải là một hạn chế đối với năng lực trí tuệ nhân tạo mà là một mục tiêu ngang bằng và không thể tách rời.
Ba trong số những người đồng sáng lập của Anthropic là đồng tác giả của bài báo gốc về các định luật mở rộng quy mô , một trong những tài liệu nền tảng của nghiên cứu AI hiện đại. Bài báo mô tả bằng toán học cách khả năng của mô hình mở rộng theo kích thước và sức mạnh tính toán. Đây là những người đã hiểu được quỹ đạo phát triển khả năng của AI trước khi hầu hết ngành công nghiệp nhận ra điều đó. Việc họ lựa chọn xây dựng một tổ chức tập trung vào sự an toàn phản ánh niềm tin có cơ sở, chứ không chỉ là sự thận trọng.
An toàn có nghĩa là gì trong thực tế?
Tại Anthropic, nghiên cứu an toàn được thể hiện trên nhiều cấp độ. Cấp độ sâu sắc nhất là khả năng giải thích cơ chế: nỗ lực khoa học để hiểu điều gì thực sự đang xảy ra bên trong một mô hình ở cấp độ các thành phần tính toán riêng lẻ.
Đây không phải là một bài tập trừu tượng. Như Boris Cherny đã mô tả:
"Chúng ta có thể xác định được một tế bào thần kinh liên quan đến sự lừa dối. Chúng ta đang bắt đầu tiến đến giai đoạn có thể theo dõi và hiểu được sự hoạt động của nó."
Công trình nghiên cứu này cung cấp thông tin về cách các mô hình được huấn luyện, đánh giá và triển khai. Nó cũng trực tiếp định hình Claude Code. Trước khi phát hành rộng rãi, Claude Code đã được chạy nội bộ tại Anthropic trong bốn đến năm tháng, với hành vi được nghiên cứu cẩn thận trước khi phát hành ra bên ngoài. Đây không phải là một hình thức. Nó phản ánh sự không chắc chắn thực sự về cách một hệ thống AI tác nhân sẽ hoạt động trong các điều kiện mà việc đánh giá trong quá trình huấn luyện không thể dự đoán đầy đủ.
Quy mô và tầm ảnh hưởng
Đến đầu năm 2026, Anthropic đạt mức định giá hơn 350 tỷ đô la. Claude Code được báo cáo tạo ra doanh thu hàng năm hơn 2 tỷ đô la và tiếp tục tăng trưởng nhanh chóng: số người dùng hoạt động hàng ngày đã tăng gấp đôi trong tháng trước khi bài viết này được thực hiện.
Các mô hình của công ty, đặc biệt là Claude Sonnet 4.6 và Claude Opus 4.6, hiện là tiêu chuẩn cho việc phát triển phần mềm hỗ trợ trí tuệ nhân tạo chuyên nghiệp tại nhiều tổ chức, từ các công ty khởi nghiệp giai đoạn đầu đến các công ty công nghệ lớn nhất thế giới.
Chương 3:
Gia đình kiểu mẫu Claude
Claude Code được vận hành bởi các mô hình Claude của Anthropic. Các mô hình này là trí tuệ nền tảng của hệ thống. Claude Code cung cấp môi trường – các công cụ, giao diện, cấu trúc hỗ trợ – nhưng chính các mô hình quyết định chất lượng của quá trình suy luận, lập kế hoạch và thực thi.
Claude Sonnet 4.6
Claude Sonnet 4.6 là mô hình tầm trung của Anthropic. Nó mang lại hiệu năng mạnh mẽ trong các tác vụ lập trình – lập kế hoạch, triển khai, gỡ lỗi, lập tài liệu – với chi phí trên mỗi token thấp hơn đáng kể so với Opus.
Sonnet 4.6 đánh dấu bước ngoặt đưa Claude Code trở nên hữu ích rộng rãi. Trước thế hệ này, các mô hình tuy có khả năng nhưng chưa đủ tin cậy cho quy trình làm việc sản xuất. Sonnet 4.6 đã thay đổi điều đó, cung cấp chiều sâu lập luận cần thiết cho công việc kỹ thuật thực tế với mức giá mà các nhà phát triển cá nhân và các nhóm nhỏ có thể tiếp cận.
Đối với hầu hết các tác vụ phát triển có độ phức tạp vừa phải, Sonnet 4.6 là đủ dùng. Nó xử lý tốt việc triển khai các tính năng đơn lẻ, các phiên gỡ lỗi và tạo tài liệu. Khi gặp phải những hạn chế (như trong các phiên tự động kéo dài, các quyết định kiến trúc phức tạp, suy luận nhiều bước phức tạp), Opus 4.6 trở thành lựa chọn phù hợp hơn.
Claude Opus 4.6
Claude Opus 4.6 là mô hình mạnh mẽ nhất của Anthropic. Nghiên cứu đo lường hiệu suất của nó trên các tác vụ kỹ thuật phần mềm thực tế cho thấy nó đạt được thời gian hoàn thành khoảng 14,5 giờ với tỷ lệ hoàn thành nhiệm vụ 50% – nghĩa là nó có thể xử lý công việc tự động mà một kỹ sư lành nghề sẽ mất phần lớn thời gian làm việc trong ngày.
Boris Cherny chỉ sử dụng Opus 4.6, với chế độ nỗ lực tối đa được kích hoạt, và không bao giờ giảm khả năng lưu token. Lý do của ông ấy rất rõ ràng:
"Vì mô hình kém hiệu quả hơn sẽ kém thông minh hơn, nên nó cần nhiều token hơn để thực hiện cùng một nhiệm vụ. Không phải lúc nào việc sử dụng mô hình rẻ hơn cũng thực sự tiết kiệm chi phí. Thông thường, mô hình hiệu quả nhất lại rẻ hơn và ít tốn token hơn vì nó hoàn thành nhiệm vụ nhanh hơn với ít sự chỉnh sửa hơn."
Opus 4.6 là mẫu sản phẩm đầu tiên của Anthropic đạt chuẩn ASL-3 – một phân loại trong khung phân loại an toàn của hãng, áp dụng cho các mẫu có công suất đủ lớn để cần tuân thủ các quy trình an toàn nghiêm ngặt nhất trước và sau khi xuất xưởng.
Claude Haiku
Claude Haiku là mô hình nhẹ nhất của Anthropic, nhanh, tiết kiệm chi phí và phù hợp với các tác vụ đơn giản: tóm tắt, tra cứu ngắn gọn, tạo văn bản nhẹ. Đối với công việc lập trình Claude Code, Haiku hiếm khi là lựa chọn phù hợp. Nó thiếu chiều sâu lập luận cần thiết cho việc phát triển phần mềm có ý nghĩa.
Hướng dẫn lựa chọn mô hình
Nguyên tắc thực tiễn rất đơn giản: nếu có thể, đừng chọn mô hình chủ yếu dựa trên chi phí. Một mô hình kém hiệu quả hơn, đòi hỏi nhiều chu kỳ hiệu chỉnh hơn, nhiều bước làm rõ ngữ cảnh hơn và nhiều token hơn để đạt được kết quả chấp nhận được, thường có tổng chi phí cao hơn so với một mô hình hiệu quả hơn nhưng hoàn thành nhiệm vụ trong ít lần xử lý hơn.
Chương 4:
Claude Code là gì?
Claude Code là một tác nhân trí tuệ nhân tạo (AI) dành cho phát triển phần mềm. Định nghĩa này cần được giải thích rõ hơn.
Sự khác biệt so với Trí tuệ nhân tạo đàm thoại
Hệ thống trí tuệ nhân tạo đàm thoại – ChatGPT, Claude.ai ở dạng cơ bản, và hầu hết các sản phẩm AI đời đầu – tạo ra văn bản để phản hồi lại văn bản khác. Nó có thể giải thích, tóm tắt, dịch thuật, soạn thảo. Nó tạo ra đầu ra mà con người sau đó sẽ xử lý. Bản thân AI không hành động trong thế giới thực.
Claude Code hoàn toàn khác biệt. Nó là một tác nhân : một hệ thống trí tuệ nhân tạo được trang bị các công cụ cho phép nó hoạt động. Trong một phiên làm việc với Claude Code, mô hình không chỉ đơn thuần tạo ra một đoạn mã và trả về cho bạn. Nó đọc các tệp trong dự án của bạn, ghi và sửa đổi các tệp đó, thực thi các lệnh trên thiết bị đầu cuối, cài đặt các gói, chạy thử nghiệm, tìm kiếm trên web, cam kết với hệ thống kiểm soát phiên bản, mở các yêu cầu kéo... và còn nhiều nữa.
Sự khác biệt này rất quan trọng. Khi bạn giao cho Claude Code một nhiệm vụ phát triển, bạn không chỉ đang điều khiển một trình tạo văn bản tự động. Bạn đang điều khiển một tác nhân tự động có khả năng thực hiện các chuỗi hành động, đưa ra quyết định về việc sử dụng công cụ nào và tạo ra kết quả hữu hình trong mã nguồn của bạn.
Kiến trúc tác nhân
Hầu hết các công cụ phát triển dựa trên trí tuệ nhân tạo được xây dựng bằng cách ràng buộc mô hình: xác định các quy trình làm việc cứng nhắc, kiểm soát những gì mô hình có thể nhìn thấy, chỉ định chính xác những công cụ nào nó có thể sử dụng theo trình tự nào. Điều này tạo ra tính dự đoán được nhưng lại đánh đổi bằng sự linh hoạt và khả năng.
Kiến trúc của Claude Code đảo ngược điều này. Như Boris Cherny mô tả: "Sản phẩm chính là mô hình." Cách tiếp cận là phơi bày mô hình một cách trực tiếp nhất có thể, với một bộ công cụ tối thiểu và cấu trúc hỗ trợ tối thiểu, và cho phép mô hình tự xác định cách tiếp cận tốt nhất cho một nhiệm vụ nhất định. Mô hình quyết định sử dụng công cụ nào, theo thứ tự nào và cách kết hợp chúng.
Cách tiếp cận này tin tưởng vào khả năng phán đoán của mô hình. Với Claude Opus 4.6, niềm tin đó là hoàn toàn có cơ sở. Mô hình có thể đánh giá một vấn đề phức tạp, xây dựng chiến lược, thực thi chiến lược đó bằng các công cụ có sẵn và thích ứng khi gặp phải những điều kiện bất ngờ — mà không cần sự can thiệp liên tục của con người.
Nơi mà Claude Code hoạt động
Claude Code có sẵn trên nhiều bề mặt khác nhau:
Thiết bị đầu cuối (Mac, Windows, Linux)
Tiện ích mở rộng VS Code
Ứng dụng máy tính để bàn Claude (tab Mã)
Ứng dụng Claude dành cho iOS và Android
Tích hợp GitHub (tự động kiểm tra mã và quản lý yêu cầu kéo)
Tích hợp Slack
Về cơ bản, tác nhân cốt lõi là giống nhau trên mọi nền tảng. Giao diện có thể khác nhau, nhưng khả năng thì không.
Sự đa dạng này là một biểu hiện có chủ đích của triết lý sản phẩm: đưa công cụ đến bất cứ nơi nào mọi người đang làm việc, thay vì yêu cầu mọi người phải thích nghi với một môi trường mới. Boris mô tả điều này là "nhu cầu tiềm ẩn" – một nguyên tắc đã định hình cả việc triển khai thiết bị đầu cuối ban đầu của Claude Code và sự mở rộng sau đó của nó.
Tác động hiện tại
Claude Code (đầu năm 2026) chiếm 4% tổng số lượt commit trên toàn cầu của GitHub.
Dự kiến sẽ đạt 20% tổng số lượt commit vào cuối năm 2026.
Số người dùng hoạt động hàng ngày của Anthropic đã tăng gấp đôi trong tháng trước.
Năng suất kỹ thuật tại Anthropic đã tăng 200% kể từ khi áp dụng Claude Code.
100% các yêu cầu kéo (pull request) tại Anthropic đều được Claude xem xét trước khi được con người đánh giá.
Boris mô tả quỹ đạo tăng trưởng vẫn đang tăng tốc: "Nó không chỉ đang đi lên mà còn đang đi lên ngày càng nhanh hơn."
Chương 5:
Tại sao cộng đồng phát triển lại cần điều này
Claude Code không ra đời từ một chiến lược sản phẩm. Nó xuất phát từ một nhu cầu thực sự về cách thức xây dựng phần mềm, và từ một quan sát về những điểm gây trở ngại trong quá trình đó.
Gánh nặng cơ học
Phát triển phần mềm chuyên nghiệp bao gồm rất nhiều công việc mang tính kỹ thuật, không liên quan gì đến thách thức trí tuệ của việc xây dựng các hệ thống tốt. Phần lớn thời gian làm việc của một lập trình viên, trong một codebase điển hình, bao gồm:
Tra cứu tài liệu hướng dẫn cho các API có cú pháp thay đổi giữa các phiên bản.
Viết lại đoạn văn bản mẫu về xác thực và ủy quyền lần thứ một trăm.
Thiết lập kết nối cơ sở dữ liệu, cấu hình môi trường, điểm cuối REST.
Giải mã các thông báo lỗi khó hiểu
Tìm kiếm giải pháp cho những vấn đề mà gần như chắc chắn đã được giải quyết ở đâu đó rồi.
Soạn thảo các bài kiểm tra về hành vi mà tính đúng đắn của nó đã được biết trước.
Quản lý xung đột phụ thuộc và các thay đổi gây lỗi.
Tất cả những điều này không phải là nơi mà chuyên môn kỹ thuật được vận dụng. Đó chỉ là chi phí phát sinh của quá trình dịch thuật: chuyển đổi sự hiểu biết thành cú pháp, cú pháp chính xác, trong các tệp tin phù hợp. Boris mô tả nó là "những chi tiết vụn vặt" và "những phần tẻ nhạt" - những thứ tiêu tốn thời gian mà không đòi hỏi những khả năng quan trọng.
Claude Code loại bỏ phần công việc phát sinh này. Việc dịch thuật tự động được thực hiện bởi tác nhân. Phần việc còn lại của kỹ sư là phần cần sự phán đoán: xây dựng cái gì, thiết kế kiến trúc như thế nào, liệu nó có đúng đắn hay không, liệu nó có phục vụ mục đích của nó hay không.
Rào cản tiếp cận
Ngoài sự nhàm chán mà các nhà phát triển chuyên nghiệp gặp phải, còn có rào cản về cấu trúc đối với tất cả những người khác. Việc xây dựng phần mềm hoạt động hiệu quả đòi hỏi nhiều năm đào tạo kỹ thuật. Các ý tưởng thì có ở khắp mọi nơi. Nhưng khả năng thực hiện chúng lại tập trung ở một nhóm nhỏ các chuyên gia kỹ thuật.
Claude Code phân bổ lại năng lực đó. Nó không loại bỏ nhu cầu về sự hiểu biết và khả năng phán đoán (một điểm mà cuốn cẩm nang này sẽ đề cập nhiều lần), nhưng nó làm giảm đáng kể ngưỡng cần thiết để một người có thể tạo ra phần mềm hoạt động. Một người quản lý sản phẩm, một nhà khoa học, một chủ doanh nghiệp, một chuyên gia trong lĩnh vực nào đó với một ý tưởng rõ ràng giờ đây có thể bắt đầu xây dựng theo cách mà trước đây họ không thể làm được.
Vấn đề vòng lặp phản hồi
Các kỹ sư cấp cao thường biết chính xác những gì họ muốn nhưng lại khó truyền đạt điều đó một cách đủ chính xác để tạo ra sản phẩm một cách nhất quán. Khoảng cách giữa đặc tả và việc thực hiện – điều mà các kỹ sư gọi là khoảng cách đặc tả – là một trong những nguồn gốc gây ra mâu thuẫn kinh niên trong các nhóm kỹ thuật.
Với Claude Code, khoảng cách đó thu hẹp đáng kể. Nhà phát triển luôn được cập nhật thông tin xuyên suốt, xem xét kế hoạch trước khi thực hiện, kiểm tra kết quả khi được tạo ra và điều chỉnh khi cần thiết. Chu kỳ phản hồi được rút ngắn từ nhiều ngày xuống còn vài phút. Các sai sót được phát hiện sớm, khi việc khắc phục còn dễ dàng và tiết kiệm chi phí.
Chương 6:
Cài đặt và Thiết lập ban đầu
Chương này bao gồm mọi thứ cần thiết để chạy Claude Code trên máy tính của bạn từ trạng thái chưa cấu hình gì trước đó.
Bước 1: Thiết lập tài khoản Claude
Trước khi cài đặt Claude Code, bạn cần có tài khoản trên Claude.ai.
Truy cập trang claude.ai trong trình duyệt
Chọn "Đăng ký" và tạo tài khoản bằng địa chỉ email của bạn.
Xác nhận địa chỉ email của bạn
Tài khoản của bạn hiện đã được kích hoạt.
Bước 2: Chọn gói đăng ký
Claude Code yêu cầu đăng ký trả phí. Các gói đăng ký hiện có tính đến năm 2026:
Claude Pro: 20 đô la mỗi tháng
Gói Pro cung cấp quyền truy cập vào các mô hình của Claude với giới hạn sử dụng hàng ngày. Khi đạt đến giới hạn đó, bạn phải đợi đến ngày hôm sau mới có thể tiếp tục.
Đối với người mới bắt đầu sử dụng Claude Code, xây dựng các dự án nhỏ, học cách sử dụng hệ thống và thực hiện các phiên làm việc với cường độ vừa phải, gói Pro là đủ. Nó không được thiết kế để sử dụng chuyên nghiệp lâu dài, nhưng là một điểm khởi đầu phù hợp.
Claude Max: \(100 hoặc \)200 mỗi tháng
Gói Max tăng đáng kể hoặc loại bỏ hoàn toàn giới hạn sử dụng. Ở mức giá 200 đô la, chính đội ngũ của Anthropic cho biết họ chưa bao giờ gặp phải giới hạn sử dụng trong điều kiện làm việc bình thường.
Nếu Claude Code trở thành công cụ chính trong quy trình làm việc của bạn – điều chắc chắn sẽ xảy ra nếu bạn sử dụng nó thường xuyên – thì gói Pro sẽ hạn chế bạn. Hãy nâng cấp lên gói Max khi bạn bắt đầu thường xuyên gặp phải các giới hạn.
Bước 3: Truy cập tài liệu hướng dẫn cài đặt
Truy cập vào code.claude.ai. Đây là trang cài đặt chính thức của Anthropic dành cho Claude Code. Trang này cung cấp:
Các lệnh cài đặt cho Mac và Linux (thông qua npm)
Hướng dẫn cài đặt cho Windows (thông qua PowerShell)
Liên kết đến các tiện ích mở rộng IDE
Nếu bạn quen thuộc với giao diện dòng lệnh, chỉ cần lệnh cài đặt npm một dòng là đủ. Nếu không, hãy chuyển sang phương pháp sử dụng VS Code được mô tả trong chương tiếp theo.
Chương 7:
VS Code và phần mở rộng Claude Code
Đối với những người chưa từng làm quen với quy trình làm việc trên dòng lệnh, Visual Studio Code cung cấp điểm khởi đầu dễ tiếp cận nhất vào Claude Code. Chương này sẽ trình bày đầy đủ về quá trình thiết lập đó.
Tại sao nên chọn VS Code?
Visual Studio Code là một trình soạn thảo mã nguồn mở miễn phí do Microsoft phân phối. Nó chiếm hơn 70% thị phần trong số các nhà phát triển và là môi trường mà phần lớn hoạt động phát triển phần mềm chuyên nghiệp diễn ra hiện nay – không phải vì nó vượt trội về mặt kỹ thuật so với tất cả các lựa chọn thay thế khác, mà vì nó được thiết kế tốt, có khả năng mở rộng và được hỗ trợ rộng rãi.
Tiện ích mở rộng Claude Code dành cho VS Code cung cấp giao diện đồ họa cho cùng một tác nhân cơ bản mà bạn truy cập thông qua cửa sổ dòng lệnh. Trong giao diện này:
Các tệp dự án của bạn sẽ hiển thị trong thanh bên cố định.
Các chỉnh sửa tệp của Claude được hiển thị trong chế độ xem so sánh (các phần bổ sung màu xanh lá cây, các phần xóa màu đỏ) trước khi chúng được áp dụng.
Bạn có thể xem xét, chấp thuận hoặc từ chối từng thay đổi riêng lẻ.
Bạn có thể mở bất kỳ tệp nào mà Claude tham chiếu trực tiếp từ bảng điều khiển Claude.
Nếu cần, bạn vẫn có thể truy cập toàn bộ thiết bị đầu cuối.
Môi trường này phù hợp với mọi trình độ kỹ năng. Các nhà phát triển có kinh nghiệm sẽ được hưởng lợi từ sự tích hợp chặt chẽ. Những người mới bắt đầu lập trình sẽ được hưởng lợi từ tính trực quan, vì luôn rõ ràng Claude đang làm gì và tại sao.
Cài đặt VS Code
Truy cập vào code.visualstudio.com
Tải xuống trình cài đặt cho hệ điều hành của bạn.
Chạy trình cài đặt và chấp nhận cấu hình mặc định ở mỗi bước.
Khởi chạy VS Code sau khi hoàn tất
Cài đặt tiện ích mở rộng Claude Code
Trong VS Code, hãy tìm bảng Extensions ở thanh bên trái. Biểu tượng của nó trông giống như bốn hình vuông, ba hình được sắp xếp theo hình chữ L với một hình lệch.
Trong ô tìm kiếm, nhập Claude Code
Chọn tiện ích mở rộng chính thức của Anthropic và xác nhận rằng nó có hàng triệu lượt tải xuống.
Nhấp vào Cài đặt
Sau khi quá trình cài đặt hoàn tất, biểu tượng Claude Code sẽ xuất hiện trên thanh công cụ của VS Code. Thao tác này sẽ mở bảng điều khiển Claude Code.
Khởi động một dự án
Claude Code hoạt động trong một thư mục – thư mục chứa các tệp dự án của bạn. Trước khi bắt đầu, hãy tạo một thư mục cho dự án của bạn và mở nó trong VS Code:
Tạo một thư mục mới ở bất kỳ đâu trên hệ thống của bạn.
Trong VS Code: Tệp → Mở thư mục
Chọn và mở thư mục
VS Code sẽ hiển thị thư mục (hiện đang trống) trong thanh bên. Claude Code sẽ đọc và ghi vào thư mục này trong suốt phiên làm việc của bạn.
Nhấp vào biểu tượng Claude Code. Bảng Claude Code sẽ mở ra. Bạn đã sẵn sàng bắt đầu.
Cấu hình ban đầu
Lần đầu tiên mở Claude Code, hãy nhập lệnh /model để chọn mô hình bạn muốn sử dụng. Đối với những lần sử dụng đầu tiên, Sonnet 4.6 là một điểm khởi đầu hợp lý.
Tiếp theo, hãy xem lại quyền truy cập bằng cách gõ lệnh /permissions. Cài đặt mặc định yêu cầu Claude phải hỏi trước khi chỉnh sửa bất kỳ tệp nào. Điều này là phù hợp cho đến khi bạn quen thuộc với cách hoạt động của Claude.
Bạn có thể gõ /help để xem tất cả các lệnh có sẵn.
Chương 8:
Đăng ký, Chi phí Token và Cách sử dụng
Việc nắm vững kinh tế token sẽ giúp bạn đưa ra những quyết định tốt hơn về cách sử dụng Claude Code.
Token là gì?
Mỗi tương tác với mô hình Claude đều tiêu tốn token. Một token tương ứng khoảng ba phần tư của một từ – vì vậy, một câu hỏi gợi ý dài 100 từ và một câu trả lời dài 300 từ sẽ tiêu tốn khoảng 530 token.
Lượng token tiêu thụ được tích lũy trong suốt một phiên. Mỗi tin nhắn bạn gửi, mỗi phản hồi Claude tạo ra, mỗi tập tin Claude đọc – tất cả đều được mã hóa thành token và tính toán. Đối với các gói đăng ký, mức sử dụng tích lũy này được so sánh với hạn mức hàng ngày của gói dịch vụ.
Nơi lượng tiêu thụ token tích lũy
Các truy vấn ngắn chỉ tiêu tốn một lượng token rất nhỏ. Nhưng loại công việc mà Claude Code được xây dựng để thực hiện (đọc qua mã nguồn hiện có, lập kế hoạch tính năng, triển khai tính năng đó, điều chỉnh hướng đi, chạy xác minh) có thể tiêu tốn hàng chục nghìn token trong một phiên làm việc duy nhất.
Người dùng cao cấp chạy nhiều tác nhân song song tiêu thụ nhiều tài nguyên hơn đáng kể. Boris Cherny lưu ý rằng một số kỹ sư tại Anthropic chi hàng trăm nghìn đô la mỗi tháng cho chi phí token. Đối với những nhà phát triển đó, Claude Code đã thay thế những công việc mà trước đây cần đến toàn bộ đội ngũ kỹ sư.
Đối với người mới bắt đầu, mức sử dụng sẽ khá khiêm tốn. Chi phí token ở gói Pro không phải là vấn đề đáng lo ngại trong giai đoạn học tập.
Chi phí giảm năng lực
Như tôi đã đề cập ở trên, lời khuyên của Boris Cherny về việc lựa chọn mô hình đề cập đến một điểm trái ngược với trực giác: sử dụng một mô hình kém hiệu quả hơn để giảm chi phí token thường làm tăng tổng mức tiêu thụ token. Một mô hình có khả năng suy luận yếu hơn cần nhiều lần hiệu chỉnh hơn, tạo ra nhiều sự làm rõ ngữ cảnh hơn và mất nhiều thời gian hơn để hội tụ về một kết quả chấp nhận được. Mô hình kém hiệu quả hơn có chi phí mỗi token thấp hơn và thường tốn nhiều chi phí hơn cho mỗi tác vụ.
Lời khuyên của ông ấy: hãy sử dụng mô hình có khả năng nhất hiện có. Hiện tại, đó là Opus 4.6. Chỉ giảm khả năng của mô hình khi yêu cầu về hiệu năng rõ ràng là thấp hơn và sự đánh đổi được hiểu rõ.
Nguyên tắc tổng quát hơn mà ông ấy nêu ra là: "Đừng cố gắng tối ưu hóa quá sớm. Hãy cung cấp cho các kỹ sư số lượng token cần thiết. Khi nào một thứ gì đó được chứng minh là có khả năng mở rộng quy mô, thì hãy tối ưu hóa. Không phải trước đó."
Hướng dẫn thực tiễn
Nguyên tắc là: hãy bắt đầu với gói dịch vụ không gây khó chịu cho việc sử dụng của bạn. Nếu bạn đạt đến giới hạn và muốn tiếp tục, đó là tín hiệu. Điều đó có nghĩa là bạn đã tích hợp công cụ này vào công việc của mình. Hãy nâng cấp khi nhận được tín hiệu đó.
Chương 9:
Làm việc trong buổi đầu tiên
Sau khi cài đặt Claude Code và mở thư mục dự án, buổi học đầu tiên là một bài tập giúp người học hiểu cách hệ thống giao tiếp và phản hồi.
Bắt đầu một cách đơn giản
Điểm khởi đầu thích hợp là một dự án có kết quả hiển thị ngay lập tức. Nếu bạn mới bắt đầu học lập trình phần mềm, các dự án web là tối ưu: bạn viết mã, mở trình duyệt và xem kết quả trực tiếp. Quá trình phản hồi diễn ra nhanh chóng và rõ ràng.
Một nhiệm vụ đầu tiên tối thiểu có thể trông như thế này:
Build a personal homepage. Include a name, a short biographical description,and links to LinkedIn and Twitter. The design should be clean and dark-themed.
Use HTML and CSS only — no JavaScript frameworks.
Claude Code sẽ:
Đánh giá yêu cầu và lập kế hoạch.
Yêu cầu quyền tạo các tệp được chỉ định (nếu đang hoạt động ở chế độ mặc định)
Viết các tệp HTML và CSS
Xác nhận những gì đã được sản xuất
Mở index.html tệp kết quả trong trình duyệt. Đánh giá xem nó có đáp ứng được mục đích của bạn hay không. Nếu không, hãy nêu rõ chính xác những gì cần thay đổi. Chu trình này – gợi ý, đầu ra, đánh giá, tinh chỉnh – là phương pháp làm việc cơ bản.
Học hỏi thông qua quá trình lặp lại
Kỹ năng sử dụng Claude Code được phát triển thông qua việc sử dụng, chứ không phải chỉ qua việc đọc. Mỗi chu kỳ gồm gợi ý, kết quả và tinh chỉnh đều giúp xây dựng khả năng phán đoán về cách xác định ý định một cách rõ ràng, cách đánh giá kết quả của Claude và cách điều chỉnh hướng đi một cách hiệu quả.
Điều này không chỉ riêng với các công cụ AI. Đó là cách mà sự thành thạo trong bất kỳ công cụ nào cũng phát triển. Hãy bắt đầu với phạm vi khiêm tốn, quan sát kỹ lưỡng và điều chỉnh. Tốc độ phát triển sự thành thạo tỷ lệ thuận với mức độ tích cực bạn tương tác với mỗi kết quả thay vì chấp nhận hoặc bác bỏ nó mà không phân tích.
Chương 10:
Kỷ luật kịp thời — Đầu vào quyết định đầu ra
Mối quan hệ giữa chất lượng phản hồi nhanh và chất lượng đầu ra là trực tiếp và nhất quán. Đây không phải là hạn chế của Claude Code, mà là đặc tính của bất kỳ hệ thống nào phải chuyển đổi ý định thành hành động. Ý định càng được diễn đạt chính xác, thì khả năng thực thi càng cao.
Nguyên tắc cốt lõi
Kết quả kém từ Claude Code hầu như không bao giờ là do khả năng của mô hình. Chúng thường là do các yêu cầu được chỉ định chưa đầy đủ. Khi Claude tạo ra thứ không khớp với những gì bạn muốn, câu hỏi chẩn đoán chính xác là: liệu các yêu cầu tôi đã chỉ định có đủ để tạo ra thứ tôi muốn hay không?
Trong hầu hết các trường hợp, điều đó không đúng.
Claude hoạt động dựa trên những thông tin nhận được. Nếu bạn cung cấp một mô tả trừu tượng về sản phẩm, Claude sẽ lấp đầy những khoảng trống bằng các giả định hợp lý của riêng nó. Khi những giả định đó khác biệt so với kỳ vọng của bạn – và điều này chắc chắn sẽ xảy ra – kết quả đầu ra sẽ gây thất vọng. Khoảng cách không nằm ở việc Claude có thể làm gì và bạn cần gì, mà nằm ở việc Claude đã biết gì và cần biết gì.
Thông số kỹ thuật yêu cầu những gì?
Các lời nhắc hiệu quả cần cụ thể, phù hợp với ngữ cảnh và tập trung vào tính năng. Hãy xem xét sự khác biệt:
Chưa được xác định rõ:
Build a task management app.
Đã được xác định rõ ràng:
Build a task management application for a three-person team. Requirements:
1. Tasks have a title, optional description, due date, and priority level (low, medium, high)
2. Each task can be assigned to one of three hardcoded users: Alice, Bob, or Carol
3. Tasks can be marked complete, with the completion timestamp recorded
4. The task list can be filtered by assignee or by priority
5. All data persists in localStorage — no backend required
6. Interface: clean, light theme; no external CSS frameworks
Technology: HTML, CSS, vanilla JavaScript only.
Phiên bản thứ hai giải quyết tất cả các điểm quyết định quan trọng mà Claude lẽ ra sẽ giải quyết bằng giả định. Nó tạo ra kết quả gần với ý định ban đầu hơn đáng kể ngay từ lần đầu tiên.
Rõ ràng hơn là ngầm định.
Hãy nêu rõ những gì bạn muốn Claude làm, ngay cả khi điều đó có vẻ hiển nhiên. Nếu bạn muốn Claude xem xét tài liệu trước khi viết mã, hãy nói rõ điều đó. Nếu bạn muốn sử dụng các phiên bản thư viện cụ thể, hãy chỉ định chúng. Nếu bạn không muốn thay đổi các tệp hiện có, hãy nói rõ điều đó. Nếu bạn muốn một cấu trúc tệp cụ thể, hãy mô tả nó.
Kỳ vọng ngầm định là những kỳ vọng thường không được đáp ứng. Chỉ thị rõ ràng là những chỉ thị được tuân thủ một cách nhất quán.
Tiêu chuẩn đặc hiệu
Một bài kiểm tra thực tế: nếu một kỹ sư có năng lực đọc yêu cầu của bạn mà không có bất kỳ ngữ cảnh nào khác, liệu họ có thể xây dựng chính xác những gì bạn đang nghĩ đến không? Nếu không, yêu cầu đó vẫn chưa đủ cụ thể.
Tiêu chuẩn này hữu ích vì nó chỉ ra những thiếu sót thực tế: những quyết định bạn chưa đưa ra, những ràng buộc bạn chưa nêu rõ, những hành vi bạn chưa định nghĩa. Việc lấp đầy những thiếu sót đó trước khi Claude bắt đầu xây dựng hiệu quả hơn nhiều so với việc phát hiện ra chúng trong kết quả đầu ra.
Chương 11:
Lập kế hoạch như một hoạt động cốt lõi
Lập kế hoạch là hoạt động có đòn bẩy cao nhất trong quá trình phát triển dự án theo mô hình Claude Code. Đồng thời, đây cũng là hoạt động thường bị đầu tư thiếu hụt nhất.
Vì sao lập kế hoạch quyết định kết quả
Một kế hoạch được xác định rõ ràng, được xem xét và phê duyệt trước khi viết bất kỳ đoạn mã nào, sẽ tạo ra ba hiệu quả:
Claude đầu tư lý lẽ của mình vào vấn đề đúng đắn.
Những sai lệch giữa ý định và cách tiếp cận được phát hiện trước khi chúng được đưa vào mã lập trình.
Kết quả triển khai mang tính nhất quán vì nó tuân theo một thiết kế nhất quán.
Nếu không có kế hoạch đầy đủ, Claude sẽ tự động đưa ra các quyết định về kiến trúc và triển khai, dựa trên những gì nó suy luận từ nguồn thông tin hạn chế. Một số quyết định đó sẽ đúng, một số thì không. Việc phát hiện ra những quyết định nào sai sau khi toàn bộ mã nguồn đã được xây dựng dựa trên chúng là rất tốn kém. Nó đòi hỏi phải đọc, hiểu và sửa chữa mã nguồn được tạo ra với chi phí token đáng kể.
Tỷ lệ thời gian lập kế hoạch so với thời gian phát triển để tạo ra kết quả tối ưu cao hơn so với dự đoán ban đầu của hầu hết mọi người. Ba mươi phút lập kế hoạch có cấu trúc thường rút ngắn thời gian xây dựng từ mười giờ xuống còn ba giờ. Phép toán không hề khó hiểu.
Chế độ lập kế hoạch
Claude Code bao gồm một Chế độ Lập kế hoạch chuyên dụng . Ở chế độ này, Claude sẽ phân tích nhiệm vụ và tạo ra một kế hoạch có cấu trúc – những tệp nào sẽ bị ảnh hưởng, trình tự thực hiện sẽ như thế nào, dữ liệu sẽ luân chuyển ra sao, những trường hợp ngoại lệ nào cần được xử lý – mà không cần viết một dòng mã nào.
Bạn xem xét kế hoạch. Bạn có thể đặt câu hỏi, sửa đổi, bác bỏ một số phần hoặc thêm các ràng buộc. Chỉ khi kế hoạch phản ánh đúng ý định thực sự của bạn, bạn mới cho phép Claude bắt đầu thực hiện.
Boris Cherny sử dụng Chế độ Lập kế hoạch (Plan Mode) trong khoảng 80% các phiên làm việc của mình. Cơ chế này vô cùng đơn giản: chỉ một câu duy nhất được đưa vào ngữ cảnh của mô hình: "Vui lòng không viết bất kỳ đoạn mã nào ngay bây giờ." Chỉ một hướng dẫn đó thay đổi hành vi của Claude từ thực thi sang suy luận có cấu trúc.
Để kích hoạt Chế độ Lập kế hoạch:
Trong cửa sổ dòng lệnh : nhấn Shift+Tab hai lần.
Trong VS Code hoặc ứng dụng dành cho máy tính để bàn : nhấp vào nút Chế độ lập kế hoạch (Plan Mode) trong giao diện.
Nguyên tắc ở đây rất quan trọng: hãy thực sự đọc kỹ kế hoạch mà Claude đưa ra. Đừng vội vàng chấp thuận. Kế hoạch chính là điểm mà bạn có thể can thiệp với chi phí tối thiểu.
Tài liệu yêu cầu sản phẩm
Kết quả chính thức của một buổi lập kế hoạch là Tài liệu Yêu cầu Sản phẩm (PRD). Đối với các dự án riêng lẻ, tài liệu này không cần phải quá chi tiết. Nó nên bao gồm:
Một tuyên bố rõ ràng về những gì đang được xây dựng và dành cho ai.
Một danh sách cụ thể các tính năng, mỗi tính năng được mô tả bằng thuật ngữ hành vi.
Yêu cầu kỹ thuật: công nghệ sử dụng, cơ sở dữ liệu, API bên ngoài, trình duyệt được hỗ trợ.
Các thông số giao diện: kiểu dáng trực quan, quyết định bố cục, mô hình tương tác
Tiêu chí rõ ràng để xác định thế nào là một tính năng hoàn chỉnh.
Một PRD.md tập tin nằm ở thư mục gốc của dự án, có thể đọc được bởi Claude Code khi bắt đầu mỗi phiên làm việc, cung cấp ngữ cảnh nhất quán được duy trì xuyên suốt các phiên. Chất lượng của tài liệu này quyết định trực tiếp chất lượng của mọi phiên xây dựng tiếp theo.
Phương pháp phỏng vấn
Một kỹ thuật hữu ích để lập ra bản mô tả yêu cầu dự án hoàn chỉnh là hướng dẫn Claude phỏng vấn bạn về dự án trước khi lên kế hoạch bất cứ điều gì:
I want to build [project description]. Before writing any plan or code, please use the Ask User Question tool to interview me systematically — covering technical requirements, feature specifications, UI decisions, data model, and any trade-offs I should consider.
Do not proceed to planning until the interview is complete.
Điều này giúp làm sáng tỏ những quyết định mà bạn có thể chưa chủ động hình thành. Một số câu hỏi sẽ có câu trả lời rõ ràng. Những câu hỏi khác sẽ cho thấy những lỗ hổng trong tư duy của bạn – những lỗ hổng mà bạn muốn lấp đầy trước khi chúng dẫn đến những quyết định thực thi sai lầm.
Chương 12:
Xây dựng từng tính năng một
Một dự án được lên kế hoạch cần được xây dựng từng bước một. Bạn nên tránh khuynh hướng cố gắng hoàn thành toàn bộ dự án trong một lần duy nhất. Phát triển từng tính năng không chậm hơn – mà đáng tin cậy hơn, dễ kiểm chứng hơn và cuối cùng là nhanh hơn.
Lý do ủng hộ phát triển từng bước
Mỗi tính năng được triển khai là một đơn vị hành vi có thể được kiểm chứng độc lập. Nếu Tính năng 2 được xây dựng dựa trên Tính năng 1 mà không kiểm chứng Tính năng 1, thì các lỗi sẽ tích lũy. Một lỗi trong nền tảng sẽ lan truyền lên trên, ăn sâu vào mọi thứ được xây dựng phía trên nó. Phát hiện ra lỗi đó muộn sẽ làm tăng gấp bội chi phí sửa chữa.
Mỗi tính năng đã được kiểm chứng cũng là một nền tảng ổn định để từ đó có thể xây dựng tính năng tiếp theo một cách tự tin. Sự tích lũy các hành vi hoạt động đã được kiểm chứng chính là bản chất của một hệ thống sản xuất.
Ngoài ra còn có vấn đề về sự hiểu biết. Một nhà phát triển đã quan sát – và xem xét – quá trình Claude xây dựng từng tính năng một, sẽ hiểu cách hệ thống hoạt động. Sự hiểu biết đó là cần thiết để đưa ra những chỉnh sửa hiệu quả, đưa ra các quyết định kiến trúc sáng suốt và giải thích hệ thống cho người khác.
Chu kỳ xây dựng
Đối với mỗi tính năng trong PRD:
Hãy mô tả chi tiết tính năng đó. Cung cấp mô tả tính năng và bất kỳ ngữ cảnh bổ sung nào: các tệp sẽ liên quan, các ràng buộc về triển khai, tiêu chí chấp nhận.
Vào Chế độ Lập kế hoạch và xem xét kế hoạch. Đọc phương pháp tiếp cận mà Claude đề xuất. Phương pháp đó có phù hợp với ý định thiết kế của bạn không? Liệu nó có ảnh hưởng đến các tập tin không nên bị tác động không? Luồng dữ liệu có chính xác không? Sửa đổi kế hoạch nếu cần thiết.
Phê duyệt và cho phép triển khai. Khi kế hoạch đã khả thi, hãy cho phép Claude thực hiện. Xem lại bản so sánh sự khác biệt cho mỗi thay đổi trong tệp.
Kiểm tra tính năng. Tự mình vận hành tính năng theo đúng chức năng mong muốn. Cố ý kiểm tra các điều kiện giới hạn. Tính năng có hoạt động chính xác khi dữ liệu bị thiếu không? Khi các giá trị đạt đến giới hạn? Khi người dùng thực hiện thao tác không mong đợi?
Hãy giải quyết mọi điểm không nhất quán. Nêu rõ chính xác điều gì không chính xác và yêu cầu Claude sửa chữa. Tính cụ thể trong việc sửa chữa cũng quan trọng như tính cụ thể trong bản mô tả ban đầu.
Xác nhận và tiếp tục. Khi tính năng hoạt động chính xác, hãy chuyển sang tính năng tiếp theo.
Các dự án khởi đầu phù hợp
Nếu bạn mới bắt đầu học lập trình phần mềm, những dự án ban đầu tốt nhất là những dự án nhỏ, dựa trên nền tảng web và tạo ra kết quả có thể thấy ngay lập tức. Ví dụ:
Các dự án web không yêu cầu cấu hình máy chủ, thiết lập triển khai và quy trình xây dựng. Mở trình duyệt, tải tệp và quan sát kết quả. Chu kỳ phản hồi ngắn nhất có thể, giúp chu kỳ học tập cũng ngắn nhất có thể.
Chương 13:
Cách thức hoạt động thực sự của Claude Code
Hiểu rõ cơ chế hoạt động của Claude Code ở cấp độ kỹ thuật sẽ thay đổi cách bạn sử dụng nó. Khi bạn biết điều gì đang xảy ra bên trong một phiên làm việc, bạn sẽ viết được các lời nhắc tốt hơn, chẩn đoán sự cố nhanh hơn và đưa ra quyết định tốt hơn về thời điểm nên can thiệp và thời điểm nên để tác nhân tiếp tục.
Vòng lặp tác nhân
Về bản chất, Claude Code hoạt động như một vòng lặp suy luận . Mỗi phiên, ở mỗi bước, đều tuân theo cùng một chu trình cơ bản:
Nhận đầu vào: một tin nhắn từ bạn, hoặc kết quả của một lệnh gọi công cụ trước đó.
Lý do: Xác định hành động tiếp theo cần thực hiện là gì.
Chọn công cụ: chọn chức năng cần sử dụng.
Thực thi công cụ: tiến hành hành động
Quan sát kết quả: nhận những gì công cụ trả về.
Lý luận một lần nữa: xác định hành động tiếp theo dựa trên thông tin mới.
Lặp lại: cho đến khi nhiệm vụ hoàn thành hoặc cần nhập liệu.
Chu trình này không hiển thị trên giao diện. Bạn chỉ thấy thông báo và các chỉnh sửa tệp. Bên trong, Claude thực hiện vòng lặp này nhiều lần cho mỗi tác vụ: đọc một tệp, suy nghĩ về ý nghĩa của nó, đọc một tệp khác, lập kế hoạch, ghi lại thay đổi, chạy lệnh để xác minh, đọc kết quả đầu ra và quyết định xem có nên điều chỉnh hay không.
Mô hình là cỗ máy lập luận. Các công cụ cung cấp đôi tay. Vòng lặp cung cấp cấu trúc.
Cách thức hoạt động của các lệnh gọi công cụ
Claude Code có quyền truy cập vào một bộ công cụ cụ thể. Từ góc nhìn của mô hình, đây là các hàm có thể gọi được, mỗi hàm có một tên, một tập hợp các tham số và một giá trị trả về.
Khi Claude quyết định đọc một tập tin, nó không "nhìn thấy" tập tin đó. Nó tạo ra một lệnh gọi công cụ có cấu trúc: read_file(path="src/auth.js"). Công cụ này được thực thi và trả về nội dung của tập tin. Claude nhận được nội dung đó và tiếp tục suy luận.
Các công cụ mà Claude Code có sẵn, ở dạng đơn giản hóa, bao gồm:
Khi Claude Code chạy một bộ kiểm thử, nó sẽ phát lệnh run_command("npm test"), nhận kết quả đầu ra, đọc xem những bài kiểm thử nào bị lỗi, sau đó sử dụng edit_file lệnh để áp dụng các bản sửa lỗi. Sau đó, nó chạy lại lệnh đó. Khi khám phá một cơ sở mã không quen thuộc, nó sẽ phát lệnh list_directory để hiểu cấu trúc trước khi mở các tệp cụ thể.
Đây là lý do tại sao Chế độ Lập kế hoạch lại mạnh mẽ đến vậy: nó cho phép Claude thực hiện phần suy luận của vòng lặp – quyết định công cụ nào sẽ được sử dụng, theo trình tự nào, cho mục đích gì – mà không cần thực sự thực thi các công cụ đó. Bạn sẽ thấy trình tự được đề xuất trước khi bất cứ điều gì xảy ra.
Cách Claude đọc mã nguồn
Khi bạn mở một dự án trong Claude Code, Claude không tự động đọc tất cả các tệp của bạn. Nó đọc một cách chọn lọc, theo yêu cầu, khi vòng lặp cần thiết.
Một trình tự khám phá mã nguồn điển hình:
Claude thực hiện các thao tác list_directory trên thư mục gốc và xem cấu trúc thư mục cấp cao nhất.
Nó xác định các thư mục có ý nghĩa ( src/, app/, components/, v.v.) và đọc các thư mục đó.
Đối với nhiệm vụ cụ thể đang thực hiện, nó sẽ đọc các tệp có khả năng liên quan nhất: thành phần đang được sửa đổi, dịch vụ đang được gọi, cấu hình đang được điều chỉnh.
Nếu nó gặp phải lệnh nhập khẩu hoặc tham chiếu đến thứ gì đó mà nó chưa đọc, nó cũng sẽ đọc tệp đó.
Việc đọc có chọn lọc, theo yêu cầu này rất hiệu quả nhưng có những hệ quả mà bạn cần hiểu rõ:
Thứ nhất, cái nhìn của Claude về mã nguồn của bạn luôn luôn không đầy đủ. Tại bất kỳ thời điểm nào trong một phiên làm việc, Claude chỉ đọc một số tệp của bạn chứ không phải tất cả. Nếu có nội dung quan trọng nào đó tồn tại trong một tệp mà Claude chưa đọc, Claude sẽ không biết về điều đó.
Đây là lý do tại sao việc đưa ra lời nhắc rõ ràng lại quan trọng: nếu một ràng buộc hoặc quy ước nằm trong một tệp mà Claude chưa được yêu cầu đọc, nó sẽ không áp dụng ràng buộc đó trừ khi bạn chỉ định hoặc trỏ nó đến tệp đó.
Thứ hai, tệp CLAUDE.md luôn được đọc đầu tiên. Vì vậy, đây CLAUDE.md là nơi đáng tin cậy nhất để mã hóa các quy ước. Đó là mẩu thông tin duy nhất mà Claude có trước khi đọc bất cứ thứ gì khác.
Cuối cùng, bạn có thể hướng sự chú ý của Claude. Trong các lời nhắc, bạn có thể nêu tên các tệp cụ thể: "Trước khi triển khai tính năng này, hãy đọc src/auth/middleware.js và src/db/schema.js." Claude sẽ đọc các tệp đó trước, kết hợp nội dung của chúng vào sự hiểu biết của mình và áp dụng sự hiểu biết đó vào nhiệm vụ.
Cách Claude xây dựng bối cảnh cho từng bước
Mỗi bước trong vòng lặp xây dựng nên cái gọi là ngữ cảnh – toàn bộ thông tin mà mô hình nhận được trước khi tạo ra phản hồi tiếp theo. Ngữ cảnh này bao gồm:
Lịch sử cuộc trò chuyện cho đến nay (tin nhắn của bạn, phản hồi của Claude)
Kết quả của tất cả các lệnh gọi công cụ trong phiên này.
Nội dung của bất kỳ tập tin nào mà Claude đã đọc
Tệp tin CLAUDE.md (nếu có)
Bất kỳ hướng dẫn nào ở cấp hệ thống từ Anthropic
Toàn bộ bối cảnh được tập hợp này là những gì mô hình "nhìn thấy". Không có bộ nhớ nào nằm ngoài nó. Không có gì được lưu giữ từ phiên này sang phiên khác ngoại trừ những gì tồn tại trong các tệp trên ổ đĩa.
Đây là lý do tại sao quản lý ngữ cảnh lại quan trọng. Một phiên làm việc với lịch sử hội thoại dài, nhiều lần đọc tệp lớn và đầu ra công cụ mở rộng sẽ có đầy đủ ngữ cảnh khi đạt đến 40-50% giới hạn cửa sổ. Mô hình suy luận trên mọi thứ trong ngữ cảnh cùng một lúc — khi cửa sổ quá đầy, mô hình bắt đầu coi trọng các đầu vào gần đây hơn các đầu vào trước đó, và tính nhất quán với các quyết định được đưa ra sớm trong phiên làm việc có thể bị suy giảm.
Vì sao phán đoán của mô hình lại quan trọng
Vì kiến trúc của Claude Code cho phép mô hình hoạt động trực tiếp – không bị ràng buộc bởi các quy trình làm việc được lập trình chặt chẽ, nên mô hình phải thực hiện phán đoán thực sự ở mỗi bước của vòng lặp. Nó quyết định:
Những tập tin nào đáng đọc dựa trên nhiệm vụ được giao?
Liệu kế hoạch có cần điều chỉnh dựa trên những gì đã phát hiện trong hồ sơ hay không.
Cho dù lỗi kiểm thử đó là do lỗi phần mềm thực sự hay chỉ là lỗi cần cập nhật.
Liệu nên hỏi bạn một câu hỏi hay đưa ra một giả định hợp lý và tiếp tục...
Khi nào một nhiệm vụ thực sự hoàn thành so với khi cần xác minh thêm.
Đây là ý nghĩa thực tiễn của câu nói "sản phẩm chính là mô hình". Chất lượng của Claude Code chính là chất lượng của mô hình. Các công cụ nhất quán. Vòng lặp nhất quán. Điều khác biệt giữa các thế hệ mô hình là chất lượng của quá trình lập luận tại mỗi điểm quyết định. Và đó là tất cả.
Chương 14:
Thiết kế kiến trúc ứng dụng hiệu quả với Claude Code
Viết một lời nhắc tạo ra một tính năng là một kỹ năng. Thiết kế một ứng dụng mà Claude Code có thể xây dựng một cách đáng tin cậy, bảo trì nhất quán và mở rộng theo thời gian lại là một kỹ năng khác, sâu sắc hơn.
Chương này đề cập đến các nguyên tắc cấu trúc giúp phát triển Claude Code hiệu quả và đảm bảo tính bảo trì của các codebase mà nó tạo ra.
Mối liên hệ giữa cấu trúc và chất lượng phản hồi nhanh
Có mối quan hệ trực tiếp giữa cách tổ chức mã nguồn và khả năng hoạt động hiệu quả của Claude Code trong đó. Một mã nguồn được cấu trúc tốt là mã nguồn mà:
Mỗi tập tin có một trách nhiệm duy nhất, có thể xác định được.
Tên tệp và thư mục phản ánh chính xác nội dung của chúng.
Các mối quan hệ phụ thuộc giữa các thành phần chỉ diễn ra theo một chiều.
Cấu hình được tách biệt khỏi logic.
Các tích hợp bên ngoài được phân lập trong các ranh giới xác định.
Khi mã nguồn có cấu trúc như vậy, Claude có thể đọc một số lượng nhỏ các tệp để hiểu một thành phần nhất định, thực hiện các thay đổi có mục tiêu và tạo ra đầu ra phù hợp một cách nhất quán với những gì đã tồn tại.
Khi mã nguồn không được tổ chức tốt – logic lẫn lộn với giao diện, các tệp chịu trách nhiệm cho nhiều việc không liên quan, các phụ thuộc rối rắm giữa các lớp – mỗi thay đổi mà Claude thực hiện đều yêu cầu đọc thêm ngữ cảnh để hiểu hệ thống, và khả năng xảy ra tác dụng phụ không mong muốn tăng lên. Các yêu cầu cần thiết trở nên dài hơn và mang tính hướng dẫn hơn. Gánh nặng xem xét tăng lên.
Cấu trúc tốt không chỉ đơn thuần là tổ chức vì mục đích tổ chức. Đó là một khoản đầu tư vào năng suất. Một codebase mà Claude Code có thể điều hướng hiệu quả là một codebase tạo ra sản phẩm chất lượng cao hơn với ít token hơn.
Nguyên tắc trách nhiệm duy nhất, được áp dụng.
Nguyên tắc cấu trúc quan trọng nhất đối với các dự án Claude Code cũng là một trong những nguyên tắc quan trọng nhất trong kỹ thuật phần mềm nói chung: mỗi mô-đun chỉ nên thực hiện một nhiệm vụ duy nhất.
Trên thực tế, đối với một ứng dụng web:
src/
components/ — UI components: each component renders one thing
services/ — Business logic: each service owns one domain
api/ — HTTP handlers: each handler manages one route group
db/ — Data access: each module owns one entity
utils/ — Pure utility functions: no side effects, no state
config/ — All configuration: no configuration scattered elsewhere
Khi bạn yêu cầu Claude "thêm xác thực email vào biểu mẫu đăng ký", Claude sẽ đọc components/SignupForm.jsx (thành phần), services/auth.js (logic xác thực) và có thể cả utils/validation.js (các trình xác thực dùng chung). Ba tệp. Thay đổi tập trung. Kết quả rõ ràng.
Nếu logic đăng ký được nhúng trong một app.js tệp lớn duy nhất cùng với tất cả các logic khác, Claude sẽ cần phải đọc mọi thứ, suy luận xem nên chỉnh sửa gì và không nên chỉnh sửa gì, và làm việc trong một môi trường mà một lỗi chỉnh sửa nhỏ cũng có thể ảnh hưởng đến các hành vi không liên quan. Thay đổi là như nhau – nhưng chi phí thực hiện thì khác nhau.
Phân tách lớp như một hệ số nhân mã Claude
Phương pháp luôn mang lại kết quả tốt nhất với Claude Code là sự phân tách nghiêm ngặt giữa các lớp của ứng dụng:
Lớp trình bày: những gì người dùng nhìn thấy và tương tác. Các thành phần, trang, mẫu. Không có logic nghiệp vụ. Không lấy dữ liệu vượt quá những gì thành phần cần trực tiếp.
Lớp logic nghiệp vụ: những gì ứng dụng thực hiện. Các dịch vụ, các trường hợp sử dụng. Không cần hiểu biết về giao diện cơ sở dữ liệu. Không cần quan tâm đến giao diện người dùng.
Lớp truy cập dữ liệu: cách dữ liệu được lưu trữ và truy xuất. Mô hình kho lưu trữ hoặc lớp dịch vụ cụ thể cho tương tác cơ sở dữ liệu. Không có logic nghiệp vụ. Không liên quan đến vấn đề trình bày.
Lớp tích hợp: kết nối với các dịch vụ bên ngoài (API, nhà cung cấp email, bộ xử lý thanh toán). Được tách biệt hoàn toàn để phần còn lại của hệ thống không phụ thuộc vào chi tiết triển khai của các dịch vụ bên ngoài.
Khi các lớp này được thực thi, cả trong cấu trúc tệp và trong các CLAUDE.mdquy ước, Claude Code sẽ tự động tuân thủ chúng. Nó biết rằng một tính năng tác động đến giao diện người dùng không yêu cầu thay đổi ở lớp truy cập dữ liệu. Nó biết rằng việc tích hợp email nằm ở một nơi duy nhất và được gọi thông qua một giao diện đã được xác định. Các thay đổi được nhắm mục tiêu. Tác dụng phụ là tối thiểu. Các đánh giá nhất quán.
Hướng dẫn cấu trúc một dự án mới cho Claude Code
Khi bắt đầu một dự án mới, hãy dành thời gian cho cấu trúc thư mục trước khi yêu cầu Claude viết bất kỳ đoạn mã nào. Thiết lập cấu trúc, viết tệp cấu hình CLAUDE.md, và sau đó mới bắt đầu triển khai tính năng.
Một trình tự thực tế:
1. Create the directory structure manually (or ask Claude to create it from a spec)
2. Write CLAUDE.md with: stack, conventions, layer rules, library choices
3. Create a PRD.md with the full feature list
4. Ask Claude to implement a skeleton — empty files in the right places,
with the right imports and class/function signatures, but no real logic yet
5. Review the skeleton — is the structure right? — before building on it
6. Implement features one at a time into this established structure
Bước 4 đặc biệt quan trọng: một khung sườn cung cấp cho bạn cái nhìn tổng thể về cấu trúc của ứng dụng trước khi có bất kỳ logic nào. Những lỗi cấu trúc – như một thành phần nằm ở lớp sai, một phụ thuộc đặt sai vị trí, một giao diện bị thiếu – đều dễ nhận thấy và dễ sửa chữa. Một khi logic đã được viết vào cấu trúc sai, việc sửa chữa cấu trúc đòi hỏi phải viết lại cả logic.
Những chỉnh sửa tệp của Claude Code cho bạn biết điều gì về thiết kế của bạn?
Hãy chú ý đến những tập tin mà Claude chỉnh sửa khi triển khai một tính năng. Cụ thể:
Nếu Claude chỉnh sửa nhiều hơn 3-5 tệp cho một tính năng duy nhất, tính năng đó có thể không được xác định phạm vi một cách nhất quán, hoặc cấu trúc ứng dụng có quá nhiều sự phụ thuộc giữa các thành phần.
Nếu Claude liên tục chỉnh sửa cùng một tập tin trong nhiều tính năng khác nhau, thì các tập tin đó đang phải chịu quá nhiều trách nhiệm.
Nếu Claude đặt câu hỏi làm rõ trước khi bắt đầu, điều đó có nghĩa là bản đặc tả chưa đầy đủ hoặc cấu trúc hiện tại không rõ ràng về vị trí đặt tính năng đó.
Mỗi một trong số này đều là một tín hiệu. Hãy đọc nó như thông tin về thiết kế, chứ không phải là lời chỉ trích về hướng dẫn. Các hệ thống được thiết kế tốt sẽ tạo ra những thay đổi tập trung. Các hệ thống rối rắm sẽ tạo ra những thay đổi lan rộng.
Đặt tên và vấn đề điều hướng
Claude Code điều hướng mã nguồn của bạn bằng cách đọc tên tệp và thư mục, kiểm tra các câu lệnh import và tìm kiếm các mẫu. Do đó, tên không chỉ mang tính hình thức mà còn mang tính cấu trúc.
Một tệp có tên utils.js hầu như không cho Claude biết gì về nội dung bên trong. Một tệp có tên validation.js, dateFormatters.js, hoặc currencyUtils.js cho Claude biết chính xác nơi cần tìm khi cần chức năng đó.
Hãy thực thi các tiêu chuẩn đặt tên này trong CLAUDE.md:
## Naming Conventions
- Components: PascalCase, descriptive noun (UserProfileCard, TaskListItem)
- Services: camelCase, domain noun (authService, notificationService)
- Utilities: camelCase, descriptive of the concern (dateFormatters, currencyUtils)
- API handlers: camelCase, resource-oriented (userHandlers, taskHandlers)
- Test files: same name as the file being tested, with `.test.js` suffix
Với những quy tắc này CLAUDE.md, Claude sẽ tuân thủ chúng một cách nhất quán. Mã của bạn sẽ dễ dàng được Claude xem xét trong một phiên làm việc, cũng như các nhà phát triển (bao gồm cả bạn) quay lại dự án sau này.
Định nghĩa "Hoàn thành" trong tệp CLAUDE.md của bạn
Một trong những yếu tố bổ sung có giá trị cao nhất cho bất kỳ dự án nào CLAUDE.md là định nghĩa rõ ràng về ý nghĩa của từ "hoàn thành" đối với một tính năng. Các nhà phát triển sử dụng các tiêu chuẩn khác nhau. Claude Code nên sử dụng tiêu chuẩn của bạn:
## Definition of Done
A feature is complete when:
1. The specified behavior works correctly across all described scenarios
2. Edge cases identified in the specification are handled
3. All new functions have JSDoc comments
4. A corresponding unit test exists and passes
5. No linting errors are introduced
6. The feature works correctly at desktop and mobile viewport widths
Với định nghĩa này, Claude sẽ không tuyên bố một tính năng đã hoàn thành khi trường hợp lý tưởng hoạt động và các trường hợp ngoại lệ chưa được kiểm tra. Nó sẽ hoàn thành tất cả các bước trong định nghĩa trước khi thông báo cho bạn rằng nhiệm vụ đã hoàn thành.
Chương 15:
Chế độ Lập kế hoạch, Chế độ Chỉnh sửa và Chế độ Vận hành
Các chế độ hoạt động của Claude Code chi phối cách thức hoạt động của nó khi thực hiện một tác vụ. Hiểu rõ các chế độ này giúp ngăn ngừa các lỗi thường gặp và cho phép bạn điều chỉnh mức độ giám sát phù hợp với ngữ cảnh của mình.
Chế độ lập kế hoạch
Chúng ta đã thảo luận chi tiết về điều này trong Chương 11. Claude lập luận rằng – nó không tự viết. Hãy sử dụng nó để bắt đầu bất kỳ nhiệm vụ nào có độ phức tạp đáng kể. Chi phí cho vài phút ở Chế độ Lập kế hoạch luôn thấp hơn chi phí sửa chữa một lỗi triển khai không chính xác.
Hãy hỏi trước khi chỉnh sửa
Đây là chế độ mặc định. Trước khi sửa đổi bất kỳ tệp hiện có nào hoặc tạo tệp mới, Claude sẽ trình bày đề xuất thay đổi và yêu cầu sự chấp thuận rõ ràng.
Bản trình bày được hiển thị dưới dạng so sánh: các đề xuất bổ sung được hiển thị bằng màu xanh lá cây, các đề xuất xóa được hiển thị bằng màu đỏ. Bạn có thể chấp thuận hoặc từ chối từng thay đổi riêng lẻ.
Chế độ này phù hợp trong các trường hợp sau:
Bạn đang làm việc với một codebase không quen thuộc.
Bạn đang xây dựng một thứ gì đó lần đầu tiên với Claude Code.
Hậu quả của việc chỉnh sửa sai là rất nghiêm trọng.
Việc bỏ công sức để xem xét và phê duyệt từng thay đổi không phải là lãng phí. Đó là quá trình học hỏi. Bạn hiểu được những gì đang được xây dựng bởi vì bạn đã xem xét từng yếu tố của nó.
Chế độ chỉnh sửa tự động
Ở chế độ này, Claude ghi các tập tin mà không cần xin phê duyệt giữa mỗi lần thay đổi. Điều này chỉ phù hợp sau khi bạn đã sử dụng Chế độ Lập kế hoạch và đã xem xét cũng như phê duyệt kế hoạch. Sau khi bạn đã xác nhận rằng phương pháp của Claude là chính xác, việc phê duyệt từng lần ghi tập tin riêng lẻ không còn giá trị gì nữa – chiến lược đã được thiết lập.
Boris mô tả quá trình chuyển đổi:
"Khi kế hoạch đã ổn, tôi chỉ việc để mô hình tự động thực thi. Sau đó, tôi tự động chấp nhận các chỉnh sửa. Với Opus 4.6, nó hầu như luôn thực hiện chính xác ngay từ lần đầu tiên."
Đừng mặc định sử dụng chế độ này. Hãy tự mình xây dựng sự tự tin trong việc xem xét lại kế hoạch của bản thân. Việc chỉnh sửa tự động mà không xem xét lại kế hoạch là điều kiện dễ dẫn đến sai sót chồng chất nhất.
Chương 16:
Cửa sổ ngữ cảnh và quản lý phiên
Mỗi phiên Claude hoạt động trong một cửa sổ ngữ cảnh, là tổng dung lượng thông tin mà mô hình có thể lưu trữ đồng thời. Khi cửa sổ đó đầy, thông tin cũ hơn sẽ bị nén hoặc mất đi. Hiểu rõ hạn chế này là cần thiết để quản lý hiệu quả các phiên dài và các dự án đa phiên.
Cửa sổ ngữ cảnh
Đối với Claude Opus 4.6, giới hạn ngữ cảnh là 200.000 token – tương đương với khoảng 150.000 từ, hoặc khoảng 200–300 trang văn bản.
Trong một phiên phát triển dài, cửa sổ này đầy nhanh hơn vẻ bề ngoài. Việc đọc một lượng lớn mã nguồn sẽ tiêu tốn nhiều token. Một cuộc trò chuyện dài cũng tích lũy thêm nhiều token. Kế hoạch, cách triển khai, kết quả kiểm thử, chỉnh sửa – tất cả đều được mã hóa thành token, tất cả đều được tính vào cửa sổ.
Triệu chứng của việc bão hòa ngữ cảnh là sự lệch hướng: Claude bắt đầu đưa ra các quyết định không nhất quán với các ràng buộc mà nó đã thiết lập từ đầu phiên. Nó quên mất các quyết định về kiến trúc. Nó quay trở lại các giả định mặc định. Nếu bạn nhận thấy điều này, rất có thể phiên làm việc đã tiêu thụ hầu hết ngữ cảnh có sẵn.
Phương pháp thực hành 50%
Một quy ước thực tiễn giữa những người dùng Claude Code có kinh nghiệm: khi mức sử dụng ngữ cảnh đạt 40–50%, hãy bắt đầu một phiên mới. Điều này đủ thận trọng để tránh vùng suy giảm hiệu suất và duy trì sự rõ ràng trong suốt phiên hoạt động.
Claude Code hiển thị mức độ sử dụng ngữ cảnh dưới dạng phần trăm. Hãy theo dõi chỉ số này trong các phiên làm việc dài.
Tính liên tục giữa các phiên
Bắt đầu một phiên làm việc mới không có nghĩa là bắt đầu lại từ đầu. Mọi tập tin bạn đã viết, mọi quyết định kiến trúc được mã hóa trong mã nguồn của bạn và mọi quy ước được ghi lại bằng văn bản thuần túy vẫn còn trên ổ đĩa. Claude có thể đọc lại tất cả chúng một cách mới mẻ khi bắt đầu một phiên làm việc mới. Điều mà nó không thể làm là nhớ lại cuộc hội thoại đã tạo ra chúng. Bối cảnh đó chỉ tồn tại trong phiên làm việc đã tạo ra nó.
Giải pháp là làm cho dự án của bạn tự động ghi lại tài liệu. Khi một dự án được ghi chép đầy đủ, một phiên làm việc mới có thể bắt đầu hoạt động hiệu quả trong vòng chưa đầy một phút, mà không cần phải nhớ lại từ đầu.
Bốn tài liệu về tính liên tục
Phương pháp hiệu quả nhất sử dụng bốn tập tin, mỗi tập tin phục vụ một mục đích riêng biệt:
CLAUDE.md — Các quy ước dự án và bối cảnh kiến trúc
Tệp này nằm ở thư mục gốc của dự án. Claude Code tự động đọc tệp này khi bắt đầu mỗi phiên làm việc, trước khi đọc bất kỳ tệp nào khác. Đây là kênh đáng tin cậy nhất để mã hóa ngữ cảnh cấp dự án, ngữ cảnh này luôn phải có sẵn.
Một công trình được bảo trì tốt CLAUDE.md bao gồm:
Bộ công nghệ được sử dụng và lý do lựa chọn các công nghệ cụ thể.
Cấu trúc thư mục và nội dung của từng thư mục chính.
Các quy ước lập trình (mẫu đặt tên, phong cách bất đồng bộ, phương pháp xử lý lỗi)
Lựa chọn thư viện: những gì được sử dụng và những gì bị cấm rõ ràng
Các quy tắc lớp (ví dụ: "tất cả truy cập cơ sở dữ liệu đều phải thông qua db/repos/– không được sử dụng SQL trong các tệp định tuyến")
Các yêu cầu bảo mật cụ thể cho dự án này
Định nghĩa trạng thái "hoàn thành" cho một tính năng đã hoàn thiện.
PRD.md — Công trình đang được xây dựng là gì?
Tài liệu Yêu cầu Sản phẩm (PRD) định nghĩa toàn bộ tập hợp các tính năng theo khía cạnh hành vi. Nó là câu trả lời chính xác cho câu hỏi "hệ thống này nên làm gì?". Claude đọc PRD vào đầu bất kỳ buổi họp về tính năng nào để thiết lập sự thống nhất giữa ý định của bạn và kế hoạch triển khai.
Một mục PRD cho một tính năng cần bao gồm:
Tiêu đề tính năng và mô tả ngắn gọn (một dòng)
Đặc tả hành vi (điều gì xảy ra khi X, điều gì xảy ra khi Y)
Tiêu chí chấp nhận: điều kiện nào phải đúng để tính năng này được coi là hoàn chỉnh?
Các trường hợp ngoại lệ cần được xử lý
README.md — Tình trạng triển khai hiện tại
Tệp README phục vụ hai mục đích: mô tả dự án cho bất kỳ ai lần đầu tiên tiếp xúc với nó, và – đối với mục đích của Claude Code – duy trì hồ sơ về những gì đã được xây dựng và những gì còn lại. Cập nhật nó khi các tính năng được hoàn thành. Một tệp README với phần trạng thái triển khai chính xác cho phép một phiên làm việc mới tiếp tục giữa chừng dự án mà không cần phải bắt đầu lại từ đầu.
Phần trạng thái thực tế trông như sau:
## Implementation Status
### Completed
- [x] User authentication (JWT, register, login, logout)
- [x] Task creation and persistence (SQLite, full CRUD)
- [x] Task filtering by status and priority
### In Progress
- [ ] Email notification on task assignment (backend logic done; email provider integration pending)
### Remaining
- [ ] Team management (invite members, manage roles)
- [ ] Export to CSV
progress.md — Ghi chú và quyết định cấp phiên
Việc này là tùy chọn nhưng rất hữu ích đối với các dự án dài hạn. Nó đóng vai trò như một cuốn nhật ký: ghi lại các quyết định được đưa ra trong quá trình phát triển, các phương pháp đã được thử và bị loại bỏ, các câu hỏi chưa được giải quyết và ghi chú về bất cứ điều gì sẽ ảnh hưởng đến các quyết định triển khai trong tương lai.
Không giống như PRD (bản đặc tả kỹ thuật) và README (bản ghi trạng thái hoàn thành), tài liệu này progress.mdghi lại lý do đằng sau các quyết định — những điều mà nếu không có nó sẽ chỉ tồn tại trong lịch sử trò chuyện của một phiên đã kết thúc.
Nơi lưu trữ các tập tin này
Cả bốn tập tin đều nằm ở thư mục gốc của dự án: thư mục cấp cao nhất mà Claude Code đang làm việc. Đây là nơi Claude tìm kiếm đầu tiên khi đọc một dự án.
my-project/
CLAUDE.md ← read automatically every session
PRD.md ← read at the start of feature sessions
README.md ← updated as features complete
progress.md ← optional; captures decisions and open questions
src/
...
Cách Claude truy cập chúng
Claude Code đọc dữ liệu CLAUDE.md tự động. Đối với các tập tin khác, bạn cần cung cấp hướng dẫn cụ thể khi bắt đầu phiên làm việc:
New session. Read the following files in order:
1. CLAUDE.md
2. PRD.md
3. README.md (specifically the Implementation Status section)
4. progress.md
Confirm your understanding of the project state and tell me where we left off.
Hướng dẫn này chỉ mất ba mươi giây để viết. Claude đọc cả bốn tài liệu, tổng hợp nội dung của chúng và đưa ra bản tóm tắt về tình trạng hiện tại của dự án. Bạn cần sửa chữa bất kỳ sự hiểu lầm nào trước khi tiếp tục. Sau đó, bạn bắt đầu phiên làm việc từ một vị trí hiểu biết chung và có bối cảnh chính xác.
Việc duy trì thói quen lưu trữ các tập tin này – cập nhật chúng khi các tính năng hoàn thiện, bổ sung thêm progress.md khi có những quyết định quan trọng – là thói quen quý giá nhất bạn có thể xây dựng cho các dự án nhiều phiên làm việc. Mỗi phiên chỉ tốn vài phút, nhưng lại giúp tiết kiệm hàng giờ làm lại.
Chương 17:
Máy chủ MCP và các tích hợp bên ngoài
MCP (Model Context Protocol) là giao thức mở của Anthropic kết nối các tác nhân AI với các công cụ, dịch vụ và hệ thống bên ngoài. Nó được phát triển bởi cùng một nhóm đã xây dựng Claude Code và được phát hành như một tiêu chuẩn mở.
MCP cho phép những gì?
Ngay từ khi cài đặt, Claude Code đã có thể đọc và ghi tệp, thực thi các lệnh terminal và tìm kiếm trên web. MCP mở rộng khả năng này để bao gồm hầu hết mọi ứng dụng hoặc dịch vụ có giao diện tương thích.
Khi máy chủ MCP được cài đặt và kết nối, Claude Code có khả năng tương tác trực tiếp với dịch vụ đó – đọc dữ liệu từ đó, sửa đổi dữ liệu bên trong nó, kích hoạt các hành động trong đó – mà không cần bất kỳ thao tác truyền dữ liệu thủ công nào giữa Claude và hệ thống bên ngoài.
Đây là sự khác biệt giữa việc Claude đưa cho bạn một bài đăng trên LinkedIn để bạn tự đăng tải và việc Claude trực tiếp đăng tải bài đó, bao gồm cả việc lên lịch và đính kèm hình ảnh.
Các ứng dụng MCP tiêu biểu
GitHub (được bao gồm theo mặc định):
Mở trực tiếp các yêu cầu kéo (pull request) từ phiên Claude.
Xem xét các yêu cầu kéo (PR) đến và thêm bình luận trực tiếp.
Giám sát các lỗi CI/CD và đề xuất các biện pháp khắc phục.
Không cần điều hướng trình duyệt
Khái niệm:
Đọc ghi chú và thông số kỹ thuật của dự án.
Cập nhật trạng thái công việc khi hoàn thành.
Tạo trang tài liệu
Google Workspace:
Đọc và ghi dữ liệu từ Google Docs và Google Sheets.
Soạn thảo và gửi email qua Gmail.
Nhà viết kịch (tự động hóa trình duyệt):
Mở một phiên trình duyệt thực
Điều hướng đến các URL và hoàn tất các tương tác biểu mẫu.
Trích xuất dữ liệu có cấu trúc từ các trang web.
Tích hợp Airtable / cơ sở dữ liệu:
Đọc dữ liệu từ các nguồn dữ liệu có cấu trúc.
Ghi kết quả và cập nhật hồ sơ.
Boris sử dụng Claude để thanh toán tiền phạt đậu xe, hủy đăng ký, gửi tin nhắn Slack, duy trì bảng tính theo dõi dự án và gửi lời nhắc nhở cho các thành viên nhóm – tất cả đều thông qua các hướng dẫn bằng tiếng Anh đơn giản gửi đến một tác nhân thực thi các tác vụ này thông qua các máy chủ MCP được kết nối.
Cài đặt máy chủ MCP — Hướng dẫn từng bước
Việc cài đặt máy chủ MCP kết nối Claude Code với một dịch vụ bên ngoài. Dưới đây là hướng dẫn chi tiết sử dụng máy chủ MCP hệ thống tệp, một trong những máy chủ hữu ích nhất và nên được cài đặt đầu tiên.
Bước 1: Tìm máy chủ MCP
Anthropic duy trì một danh sách chính thức các máy chủ MCP tại github.com/modelcontextprotocol/servers . Mỗi máy chủ đều có lệnh cài đặt và định dạng cấu hình riêng. Đối với các dịch vụ của bên thứ ba, tài liệu của chính dịch vụ đó sẽ cung cấp cấu hình MCP.
Bước 2: Cài đặt máy chủ thông qua Claude Code
Mở một phiên Claude Code và nhập:
Add the following MCP server at user scope so it is available across all my projects:
npx -y @modelcontextprotocol/server-filesystem /path/to/your/allowed/directory
Cờ này user scope có nghĩa là máy chủ sẽ được áp dụng cho tất cả các dự án của bạn — chứ không chỉ dự án hiện tại. Sử dụng project scope nếu bạn muốn máy chủ chỉ hoạt động cho thư mục hiện tại.
Bước 3: Cung cấp cấu hình nếu cần
Một số máy chủ MCP yêu cầu khóa API hoặc cấu hình. Ví dụ, khi kết nối với Notion:
Add the Notion MCP server at user scope with the following configuration:
- Server package: @notionhq/notion-mcp-server
- API key: [your Notion integration token]
Claude Code sẽ tự động ghi cấu hình ~/.claude/mcp_settings.json. Bạn không cần phải chỉnh sửa tệp này theo cách thủ công.
Bước 4: Khởi động lại phiên
Sau khi cài đặt, hãy nhập lệnh /restarthoặc đóng và mở lại phiên Claude Code của bạn. Máy chủ MCP sẽ được khởi tạo khi khởi động. Bạn có thể kiểm tra các máy chủ đã kết nối bằng cách nhập lệnh:
/mcp
Danh sách này hiển thị tất cả các máy chủ MCP đang hoạt động và các công cụ có sẵn. Nếu máy chủ xuất hiện trong danh sách này, nghĩa là nó đã được kết nối và sẵn sàng để Claude sử dụng.
Bước 5: Sử dụng nó trong một buổi tập
Sau khi kết nối, bạn tương tác với dịch vụ hỗ trợ MCP bằng tiếng Anh thông thường. Claude sẽ tự động chọn công cụ MCP phù hợp:
Create a new Notion page in the "Projects" database titled "Sprint 14 Planning"
and add sections for Goals, Tasks, and Blockers.
Claude thực hiện cuộc gọi API Notion thích hợp thông qua máy chủ MCP, tạo trang và trả về kết quả – mà không cần bạn mở trình duyệt.
Tích hợp MCP thực tiễn
GitHub: công cụ có giá trị tức thì nhất
GitHub MCP được tích hợp sẵn trong Claude Code và rất đáng để sử dụng ngay từ ngày đầu tiên. Cách sử dụng phổ biến:
"Mở một yêu cầu kéo (pull request) cho nhánh tính năng feature/auth-redesignvào main. Tiêu đề: 'Xác thực: Làm mới mã thông báo JWT'. Mô tả: Tóm tắt các thay đổi bạn đã thực hiện trong phiên này."
"Hãy xem xét các yêu cầu kéo (pull request) đang mở trong kho lưu trữ này và cho tôi biết yêu cầu nào có nhận xét đánh giá chưa được giải quyết."
"Kiểm tra trạng thái đường dẫn CI cho lần commit cuối cùng vào ngày main..."
"Hãy tạo một Issue trên GitHub cho lỗi xác thực mà tôi vừa mô tả và giao nhiệm vụ đó cho tôi."
Biên kịch — cho bất cứ thứ gì liên quan đến web
Tác giả kịch bản tặng Claude một trình duyệt thực sự. Hữu ích cho:
Trích xuất dữ liệu từ các trang web không có API công khai.
Kiểm thử ứng dụng đã triển khai của chính bạn bằng cách tương tác với nó như một người dùng thực thụ.
Hoàn thành các quy trình làm việc trực tuyến nhiều bước (gửi biểu mẫu, điều hướng, đăng nhập)
Một ví dụ thực tế: "Hãy truy cập vào môi trường thử nghiệm của chúng tôi tại staging.myapp.com, đăng nhập bằng thông tin đăng nhập thử nghiệm .env, tạo một tác vụ mới và xác minh xem tác vụ đó có xuất hiện trong danh sách tác vụ hay không."
Slack
"Hãy gửi tin nhắn đến kênh #engineering: 'Dịch vụ xác thực đã được triển khai. Hãy theo dõi lỗi trong 30 phút tới.'"
"Hãy kiểm tra kênh #bug-reports để xem có tin nhắn nào trong 24 giờ qua không và tóm tắt các vấn đề đã được báo cáo."
Không gian làm việc của Google
"Hãy đọc phiên bản mới nhất của Yêu cầu Sản phẩm trong tài liệu Google Doc 'Lộ trình Quý 2' và tạo phiên bản Markdown của nó trong tệp PRD.md."
"Thêm một hàng vào bảng tính 'Sprint Tracker' cho ngày hôm nay với các cột: tính năng đã hoàn thành, thời gian đã sử dụng, các vấn đề gặp phải."
Máy chủ hệ thống tệp
Hệ thống tập tin MCP mở rộng quyền truy cập tập tin của Claude vượt ra ngoài thư mục dự án hiện tại. Hữu ích cho:
Đọc một triển khai tham chiếu trong thư mục dự án khác.
Truy cập các tệp mẫu được lưu trữ ở nơi khác trên máy tính của bạn.
Ghi dữ liệu đầu ra vào thư mục dùng chung
Các vấn đề cần xem xét về bảo mật MCP
Máy chủ MCP mở rộng phạm vi hoạt động của Claude Code. Điều này có nghĩa là chúng mở rộng tác động tiềm tàng của các lỗi – hoặc các chỉ thị độc hại – một cách tương ứng. Một máy chủ được kết nối có thể thực hiện các hành động thực tế trong các dịch vụ thực tế. Hãy sử dụng khả năng đó một cách cẩn trọng.
1. Chỉ cấp quyền truy cập cần thiết
Khi cấu hình máy chủ MCP hệ thống tập tin, hãy chỉ định các thư mục mà nó có thể truy cập thay vì cấp quyền truy cập cấp root. Khi cấu hình máy chủ Notion hoặc Google Workspace, hãy sử dụng mã thông báo tích hợp được giới hạn phạm vi cho các trang hoặc thư mục cụ thể mà Claude cần – chứ không phải mã thông báo cấp quyền truy cập toàn bộ tài khoản.
2. Xem xét lại trước khi thực hiện
Khi Claude đề xuất một hành động thông qua máy chủ MCP – đặc biệt là hành động sửa đổi dữ liệu, gửi tin nhắn hoặc ảnh hưởng đến hệ thống sản xuất – hãy đọc kỹ hành động được đề xuất trước khi phê duyệt. Một chỉ thị bị hiểu sai dẫn đến việc tạo ra hai mươi trang Notion hoặc gửi tin nhắn Slack đến kênh sai có thể được khắc phục. Tuy nhiên, một hành động xóa bản ghi khỏi cơ sở dữ liệu sản xuất có thể không thể khắc phục được.
3. Hãy đưa ra hướng dẫn cụ thể.
Những chỉ dẫn mơ hồ dễ dẫn đến những hành động không mong muốn thông qua MCP. "Cập nhật công cụ theo dõi dự án" là không rõ ràng. "Thêm một hàng vào trang tính Theo dõi Sprint với ngày hôm nay và các giá trị X, Y, Z trong các cột B, C, D" thì không. Những chỉ dẫn chính xác sẽ tạo ra những hành động có thể dự đoán được.
4. Không lưu trữ thông tin đăng nhập trong các lời nhắc.
Nếu Claude yêu cầu khóa API hoặc thông tin xác thực để cấu hình máy chủ MCP, hãy cung cấp chúng một lần trong quá trình thiết lập. Không nên cung cấp thông tin xác thực đang hoạt động trong các lời nhắc lặp lại. Hãy lưu trữ chúng trong tệp cấu hình MCP mà Claude Code ghi vào thư mục cấu hình trên máy tính cục bộ của bạn.
Bắt đầu tích hợp MCP
Hãy kết nối các máy chủ MCP tương ứng với các công cụ bạn đang sử dụng. Việc kết nối các dịch vụ mà bạn không sử dụng là không có giá trị gì. Giá trị của MCP nằm ở việc giảm thiểu sự phức tạp trong các quy trình làm việc hiện có, chứ không phải ở việc tạo ra các quy trình mới.
Hãy bắt đầu với GitHub. Nó đã được cấu hình sẵn, có thể sử dụng ngay lập tức và thể hiện giá trị cốt lõi của MCP ngay trong phiên làm việc đầu tiên bạn sử dụng.
Chương 18:
Các tác nhân, tác nhân phụ và quy trình làm việc song song
Khi kỹ năng sử dụng Claude Code của bạn phát triển và được cải thiện, bước mở rộng tự nhiên là hoạt động song song: nhiều phiên Claude chạy đồng thời, mỗi phiên xử lý một luồng công việc riêng biệt.
Cấu trúc phiên song song
Một dự án phần mềm thường bao gồm nhiều luồng công việc độc lập không yêu cầu thực hiện tuần tự. Việc triển khai giao diện người dùng, logic phía máy chủ, kiểm thử, lập tài liệu – những công việc này thường có thể tiến hành song song mà không gây xung đột, miễn là mỗi phiên làm việc trên các tệp khác nhau.
Nhiều phiên Claude Code, mỗi phiên được chỉ định một phạm vi cụ thể, mô phỏng khả năng xử lý song song của một nhóm nhỏ. Một phiên xây dựng hệ thống xác thực. Một phiên khác xây dựng lớp trực quan hóa dữ liệu. Phiên thứ ba viết các bài kiểm tra cho các tính năng đã hoàn thành. Mỗi phiên hoạt động độc lập; tất cả đều ghi vào cùng một ổ đĩa.
Boris Cherny thường xuyên thực hiện năm hoặc nhiều phiên làm việc song song. Ông mô tả quy trình làm việc của mình như sau: "Tôi bắt đầu một việc, rồi việc khác, rồi việc khác nữa, và đi pha cà phê trong khi họ làm việc."
Chạy song song nhiều phiên — Một ví dụ cụ thể
Giả sử bạn đang xây dựng ứng dụng ghi chú từ Bản thiết kế 4 trong Chương 25. Bạn đã hoàn thành API REST phía máy chủ và giờ muốn xây dựng giao diện người dùng và viết các bài kiểm tra API cùng lúc. Đây là cách thực hiện chính xác.
Cửa sổ 1: Phiên giao diện người dùng
Mở VS Code. Mở bảng điều khiển Claude Code. Gõ:
We are building the frontend for the notes application. The backend REST API is
already running on port 3001. Your scope for this session is the client/ directory only.
Read CLAUDE.md and PRD.md first. Then implement the three-panel frontend layout
described in the PRD:
- Sidebar with the note list (read from GET /api/notes)
- Editor panel for the active note (with auto-save on keystroke debounce)
- Empty state when no note is selected
Do not touch any files in the server/ directory.
Enter Plan Mode first. Show me your implementation plan before writing anything.
Cửa sổ 2: Phiên kiểm thử
Mở cửa sổ VS Code thứ hai (hoặc cửa sổ dòng lệnh thứ hai). Mở một phiên Claude Code mới. Gõ:
We are writing integration tests for the notes application REST API. Your scope
for this session is the server/tests/ directory (create it if it doesn't exist).
Read CLAUDE.md and the server/routes/notes.js file. Write integration tests that
cover:
1. GET /api/notes — returns array, returns empty array when no notes exist
2. POST /api/notes — creates note, returns it with an id, rejects missing title
3. PUT /api/notes/:id — updates note, returns 404 for nonexistent id
4. DELETE /api/notes/:id — deletes note, returns 204, returns 404 if not found
Use the jest + supertest stack. Create server/tests/notes.test.js.
Do not modify any files outside server/tests/.
Cả hai phiên làm việc hiện đang chạy đồng thời. Phiên 1 xây dựng giao diện người dùng. Phiên 2 viết các bài kiểm thử. Không phiên nào can thiệp vào các tệp của phiên kia. Bạn sẽ xem xét cả hai khi chúng hoàn thành.
Nguyên tắc giúp đảm bảo an toàn này là:
Mỗi phiên làm việc nhận được một ranh giới phạm vi rõ ràng ("phạm vi của bạn chỉ là thư mục client/") và một lệnh cấm rõ ràng ("không được động vào bất kỳ tệp nào trong thư mục server/"). Những ràng buộc này ngăn chặn lỗi thường gặp của các phiên làm việc song song: hai phiên cùng sửa đổi một tệp theo những cách không tương thích.
Đại lý phụ
Claude Code có thể tự động tạo ra các tác nhân con bên trong – các phiên bản Claude bổ sung dành riêng cho các thành phần cụ thể của một tác vụ lớn hơn. Điều này diễn ra tự động khi Claude xác định rằng việc thực thi song song các tác vụ con là phù hợp.
Ví dụ: với chỉ thị "kiểm tra toàn bộ mã nguồn để tìm các lỗ hổng bảo mật", Claude có thể tạo ra các tác nhân phụ cho các mô-đun khác nhau, mỗi tác nhân sẽ tạo ra một báo cáo kết quả, sau đó Claude sẽ tổng hợp các báo cáo này thành một tài liệu duy nhất. Bạn chỉ cần gửi một chỉ thị và nhận được một kết quả nhất quán.
Khả năng này tỷ lệ thuận với khả năng của mô hình. Opus 4.6 vận hành các phiên tự động trong 10 đến 30 phút một cách đáng tin cậy. Các phiên kéo dài hàng giờ hoặc hơn được báo cáo trong các triển khai nâng cao.
Git Worktrees để phát triển song song an toàn
Cây thư mục làm việc của Git là gì?
Thông thường, một kho lưu trữ Git chỉ có một thư mục làm việc: thư mục chứa các tệp của bạn và nơi bạn thực hiện các thay đổi. Một Git worktree là một thư mục làm việc bổ sung được liên kết với cùng một kho lưu trữ. Mỗi worktree sẽ kiểm tra một nhánh khác nhau, và mỗi worktree có tập hợp các tệp riêng trên ổ đĩa.
Kết quả là bạn có thể có nhiều nhánh của cùng một kho lưu trữ hoạt động đồng thời, mỗi nhánh nằm trong một thư mục riêng. Một phiên Claude Code trỏ đến một thư mục chỉ thấy các tệp của nhánh đó. Nó không thể vô tình sửa đổi các tệp của nhánh khác vì các tệp đó nằm trong thư mục khác.
Đây là cơ chế tối ưu nhất hiện có để chạy các phiên tác vụ song song trên một cơ sở mã dùng chung.
Thiết lập cây công việc cho các tác nhân song song
Giả sử chi nhánh chính của bạn là main và bạn muốn hai nhân viên làm việc song song – một người phụ trách tính năng xác thực và một người phụ trách hệ thống thông báo.
Bước 1: Tạo cây công việc cho mỗi nhánh tính năng:
# From the repository root on main
git worktree add ../my-project-auth feature/authentication
git worktree add ../my-project-notifications feature/notifications
Thao tác này sẽ tạo ra hai thư mục mới ở cùng cấp độ với thư mục gốc của dự án:
../my-project-auth/– một bản sao đầy đủ của kho lưu trữ, đã được sao chép vềfeature/authentication
../my-project-notifications/– một bản sao đầy đủ, đã được mượnfeature/notifications
Bước 2: Mở từng worktree trong một phiên Claude Code riêng biệt:
Mở VS Code. Mở ../my-project-auth thư mục dự án. Khởi tạo một phiên Claude Code với phạm vi xác thực.
Mở cửa sổ VS Code thứ hai. Mở ../my-project-notifications. Bắt đầu phiên Claude Code với phạm vi thông báo.
Cả hai phiên đều chạy trên cùng một kho lưu trữ nhưng ở các nhánh riêng biệt. Xung đột tập tin là không thể xảy ra, vì các thay đổi của mỗi phiên nằm trong một thư mục riêng. Khi công việc hoàn tất, bạn hợp nhất như bình thường:
cd my-project
git merge feature/authentication
git merge feature/notifications
Khi nào nên sử dụng worktrees
Cây công việc phù hợp khi:
Bạn đang làm việc trên một codebase sản phẩm, nơi mà các xung đột có thể gây tốn kém.
Nhiều phiên sẽ đề cập đến các phần chồng chéo của cấu trúc thư mục.
Bạn cần có lịch sử phiên bản rõ ràng với mỗi tính năng được tách biệt trên nhánh riêng của nó.
Chúng không cần thiết cho các phiên làm việc song song đơn giản hơn với phạm vi được xác định rõ ràng. Một thư mục làm việc duy nhất, được phân chia giữa các phiên bằng các chỉ dẫn phạm vi tệp rõ ràng, là đủ cho hầu hết các công việc. Khi công việc của một nhánh hoàn tất và được xác minh, nó sẽ được hợp nhất vào nhánh chính thông qua quy trình xem xét tiêu chuẩn.
Điều này đòi hỏi sự quen thuộc với quy trình làm việc của Git. Ban đầu thì không cần thiết, nhưng nó trở nên quan trọng khi quy mô và độ phức tạp của các luồng công việc song song tăng lên.
Chương 19:
Kỹ năng, Quy tắc và Hướng dẫn bền vững
Claude Code có thể được cung cấp các hướng dẫn cụ thể cho từng dự án, những hướng dẫn này sẽ được duy trì xuyên suốt các phiên làm việc – được áp dụng nhất quán mà không cần phải xác định lại trong mỗi cuộc trò chuyện mới. Chúng được gọi là Kỹ năng (theo thuật ngữ của Anthropic) hoặc đơn giản hơn là các quy tắc .
Những lợi ích mà lệnh duy trì mang lại
Mỗi dự án đều có các tiêu chuẩn riêng: cách đặt tên tập tin, thư viện nào được sử dụng và thư viện nào bị cấm, yêu cầu về độ phủ kiểm thử, cách thức triển khai xác thực, và các mẫu truy cập cơ sở dữ liệu. Những tiêu chuẩn này tồn tại để đảm bảo tính nhất quán của mã nguồn xuyên suốt các đóng góp, các phiên làm việc và theo thời gian.
Nếu không có hướng dẫn cụ thể, bạn sẽ phải xác định lại các tiêu chuẩn này trong mỗi phiên làm việc. Với các hướng dẫn đó, Claude sẽ nắm được các quy ước của dự án ngay từ khi phiên làm việc bắt đầu. Chất lượng đầu ra sẽ phù hợp với tiêu chuẩn của bạn mà không cần phải liên tục xác định lại.
Tệp CLAUDE.md
Cơ chế chính để lưu trữ các hướng dẫn lâu dài là một tệp tin có tên CLAUDE.md nằm ở thư mục gốc của dự án. Claude Code đọc tệp tin này khi bắt đầu mỗi phiên làm việc.
Một bài viết hay CLAUDE.md cần có những yếu tố sau:
# Project: [Name] — Claude Context
## Architecture
[Technology stack, infrastructure, auth mechanism, external services]
## Conventions
- [Naming conventions]
- [File organization]
- [Async patterns — e.g., always async/await]
- [Data access patterns — e.g., all DB calls through service layer]
## Libraries
[What is used, what is prohibited]
## Testing
[Framework, coverage requirements, testing patterns]
## Security
[Specific security requirements — credential handling, input sanitization specifics]
## Definition of Done
[What constitutes a completed feature before it can be marked complete]
Với tập tin này, mỗi phiên họp Claude cho dự án này đều bắt đầu với sự hiểu biết đầy đủ về các tiêu chuẩn của mã nguồn. Bạn không cần phải lặp lại lời nói của mình. Mã nguồn không đi chệch khỏi các quy ước của chính nó.
Kỹ năng cấp độ hệ sinh thái
Các tổ chức và nền tảng đang bắt đầu công bố các Kỹ năng được tiêu chuẩn hóa. Đây là các bộ hướng dẫn được viết sẵn, mã hóa các phương pháp tốt nhất để xây dựng trên nền tảng của họ. Vercel đã khởi xướng sáng kiến này cho nền tảng lưu trữ và triển khai của mình, cho phép Claude Code đưa ra các quyết định triển khai chính xác mà không cần hướng dẫn rõ ràng.
Điều này thể hiện hướng phát triển tiếp theo của hệ sinh thái: một thư viện các bộ hướng dẫn đã được kiểm chứng, dành riêng cho từng nền tảng, mà bất kỳ nhà phát triển nào cũng có thể đưa vào dự án của mình, mã hóa hàng thập kỷ kinh nghiệm kỹ thuật tích lũy vào ngữ cảnh có sẵn của Claude.
Chương 20:
Vòng lặp tự trị — Điều kiện sử dụng
Chế độ vận hành vòng lặp tự động – trong đó Claude Code thực thi một chuỗi tác vụ mà không cần sự chấp thuận của con người giữa các bước – thường được thảo luận và cũng thường bị áp dụng sai. Chương này mô tả các điều kiện thích hợp và không thích hợp để áp dụng chế độ này.
Cấu trúc của một vòng lặp
Trong chế độ hoạt động tự động, Claude Code nhận một danh sách nhiệm vụ và thực hiện chúng theo trình tự mà không cần tạm dừng để chờ phê duyệt. Nó đưa ra quyết định, gặp trở ngại, thích ứng và tiếp tục. Người quan sát chỉ xem xét kết quả tổng thể, chứ không phải từng bước riêng lẻ.
Hiệu quả đạt được là có thật. Một vòng lặp được xây dựng tốt, chạy trên một danh sách tác vụ được xác định rõ ràng, có thể hoàn thành hàng giờ công việc lặp đi lặp lại – lập tài liệu, tạo kiểm thử, tái cấu trúc hệ thống – mà không cần sự giám sát của con người.
Rủi ro chồng chất
Vòng lặp khuếch đại cả chất lượng của các chỉ thị và các lỗi bên trong chúng. Nếu có sự hiểu sai trong đặc tả nhiệm vụ, vòng lặp sẽ thực hiện tất cả các nhiệm vụ tiếp theo một cách nhất quán với sự hiểu sai đó. Lỗi không tự sửa chữa mà tích lũy dần.
Đây là lý do tại sao các vòng lặp không phù hợp với các nhiệm vụ mơ hồ, không được xác định rõ ràng hoặc đòi hỏi sự sáng tạo cao. Việc thiếu sự xem xét của con người giữa các bước sẽ loại bỏ các điểm kiểm tra giúp phát hiện sự sai lệch sớm.
Lời khuyên thực tiễn từ những người đã học được điều này: hãy xây dựng mà không cần vòng lặp trước . Phát triển một loạt các dự án mà bạn đã xem xét kỹ lưỡng từng kế hoạch, phê duyệt từng chỉnh sửa và hiểu rõ từng kết quả đầu ra. Xây dựng khả năng phán đoán cần thiết để phân biệt một nhiệm vụ được xác định rõ ràng với một nhiệm vụ chưa được xác định rõ ràng. Chỉ sau đó mới đưa vào các vòng lặp tự động, và chỉ dành cho loại nhiệm vụ – được giới hạn rõ ràng, lặp đi lặp lại, được xác định rõ ràng – mà chúng thực sự hữu ích.
Các tác vụ mà vòng lặp là phù hợp
Bổ sung tài liệu cho một tập hợp các chức năng được định nghĩa một cách có hệ thống.
Tạo các bài kiểm tra cho các thành phần với hành vi được xác định rõ ràng.
Áp dụng một mẫu tái cấu trúc đã được xác định trên một tập hợp các tệp nhất quán.
Thực hiện phân tích cụ thể dựa trên một tập hợp dữ liệu đầu vào và ghi lại kết quả.
Các tác vụ không thích hợp sử dụng vòng lặp.
Xây dựng các tính năng mới trong trường hợp phạm vi hoặc hành vi chưa được xác định rõ ràng.
Công việc kiến trúc hoặc thiết kế đòi hỏi khả năng ra quyết định sáng tạo.
Bất kỳ nhiệm vụ nào mà tính chấp nhận được của kết quả không thể xác định trước được.
Làm việc trong các môi trường mã nguồn không quen thuộc, nơi có thể xảy ra các sự cố bất ngờ.
Vòng lặp là một công cụ để giải quyết các vấn đề đã biết. Nó không thể thay thế cho sự hiểu biết hoặc giám sát.
Một vòng lặp tự động trông như thế nào — Một ví dụ cụ thể
Cách tốt nhất để hiểu sự khác biệt giữa quy trình làm việc có giám sát và vòng lặp tự động là xem cùng một nhiệm vụ được thực hiện theo cả hai cách.
Nhiệm vụ: Thêm chú thích tài liệu JSDoc vào mọi hàm trong thư mục mã nguồn utils/. Có mười hai tệp tiện ích, mỗi tệp chứa từ ba đến mười hàm.
Không sử dụng vòng lặp — được giám sát, từng bước một:
Bạn mở một phiên họp và nói:
Document all functions in utils/dateFormatters.js with JSDoc comments.
For each function, include: @param (name, type, description) for each parameter,
@returns (type, description), and a one-line @description.
Show me the diff before applying changes.
Claude soạn thảo tài liệu, bạn xem xét sự khác biệt, phê duyệt. Sau đó, bạn lặp lại quy trình cho utils/currencyUtils.js, và cứ thế tiếp tục cho tất cả mười hai tệp. Bạn xem xét mọi thay đổi ngay khi nó được thực hiện.
Cách tiếp cận này phù hợp khi bạn chưa quen thuộc với mã nguồn, khi các hàm có hành vi không rõ ràng cần được giải thích, hoặc khi bạn muốn phát hiện bất kỳ sự hiểu lầm nào ngay từ đầu.
Cái giá phải trả: mười hai chu kỳ qua lại, mỗi chu kỳ đều cần sự chú ý của bạn.
Với vòng lặp — thực thi tự động, theo lô:
Bạn đã giám sát một số tập tin và xác nhận rằng Claude đang diễn giải các hàm một cách chính xác và tạo ra JSDoc sạch. Mẫu này rõ ràng, hành vi nhất quán và cùng một thao tác được áp dụng đồng đều trên tất cả các tập tin. Bây giờ bạn đưa vào vòng lặp:
You are going to add JSDoc documentation to every function in the utils/ directory.
Rules:
- For each function, add: @description (one line), @param (name, type, description)
for each parameter, and @returns (type, description)
- Do not change any logic — only add documentation comments
- Do not modify any files outside of utils/
- Process one file at a time, in alphabetical order
- After completing all files, output a summary: which files were modified,
and how many functions were documented in total
Begin with utils/analyticsHelpers.js and proceed through all files in utils/
without stopping for approval between files. Apply changes to each file before
moving to the next.
Claude tự động xử lý cả mười hai tập tin. Bạn xem lại kết quả tổng hợp khi quá trình hoàn tất: bản tóm tắt các thay đổi đã thực hiện, mà bạn có thể xác minh bằng lệnh git diff.
Điều gì đã làm cho vòng lặp này an toàn ở đây:
Công việc này lặp đi lặp lại và đồng nhất – cùng một thao tác được áp dụng cho mỗi tập tin.
Bạn đã kiểm chứng nhận định của Claude trên một mẫu đại diện.
Bản đặc tả đã hoàn chỉnh – không có sự mơ hồ nào về ý nghĩa của từ "hoàn thành" đối với từng chức năng.
Phạm vi được giới hạn – "không được sửa đổi bất kỳ tệp nào nằm ngoài thư mục utils/"
Thao tác chỉ mang tính chất cộng thêm – "không thay đổi bất kỳ logic nào".
Thay đổi bất kỳ điều kiện nào trong số này đều khiến vòng lặp trở nên rủi ro hơn. Một codebase không quen thuộc, một định nghĩa mơ hồ về trạng thái hoàn thành, hoặc một nhiệm vụ đòi hỏi sự phán đoán sáng tạo có nghĩa là thực thi có giám sát là phương pháp phù hợp.
Chương 21:
Rà soát mã, bảo mật và xác minh
Khả năng của Claude Code không loại bỏ yêu cầu xác minh. Mã do AI tạo ra phải tuân thủ các tiêu chuẩn giống như bất kỳ mã nào khác. Và những tiêu chuẩn đó cần được xem xét.
Các loại lỗi thường gặp
Claude Code tạo ra mã dựa trên các mẫu đã học được trong quá trình huấn luyện. Trên nhiều tác vụ khác nhau, điều này tạo ra đầu ra chính xác, hoạt động tốt và an toàn. Tuy nhiên, trong một số điều kiện nhất định, nó lại không làm được điều đó.
Ảo giác API : Claude có thể tham chiếu đến các hàm, tham số hoặc phiên bản thư viện không tồn tại hoặc đã thay đổi kể từ khi dữ liệu huấn luyện được thu thập. Điều này thường xảy ra nhất ở các thư viện phát triển nhanh chóng.
Bỏ sót các trường hợp ngoại lệ : Claude tạo ra các triển khai xử lý luồng chính một cách chính xác và có thể không giải quyết đầy đủ các điều kiện biên – đầu vào trống, giá trị null, lỗi mạng, dữ liệu không đúng định dạng.
Giới thiệu về lỗ hổng bảo mật : Các loại lỗ hổng phổ biến – tấn công SQL injection, xử lý dữ liệu đầu vào không đầy đủ, tạo số ngẫu nhiên không an toàn, xử lý thông tin đăng nhập không đúng cách – có thể xuất hiện trong mã được tạo ra mà thoạt nhìn có vẻ không gặp vấn đề. Việc phát hiện ra chúng đòi hỏi phải tiến hành xem xét bảo mật kỹ lưỡng.
Sự tự tin thái quá trong việc đưa ra thông tin sai : Claude luôn trình bày kết quả với sự tự tin nhất quán bất kể tính chính xác của nó. Giọng điệu của câu trả lời không phải là một chỉ báo đáng tin cậy về độ chính xác.
Tiêu chuẩn xác minh
Dưới đây là một số cách quan trọng để bạn xem xét kết quả đầu ra của Claude nhằm đảm bảo nó đáp ứng các tiêu chuẩn và giao thức bảo mật của bạn:
Hãy đọc mã nguồn. Không cần đọc kỹ từng chi tiết, nhưng cần nắm được nội dung chính. Hiểu rõ chức năng của từng phần quan trọng. Bạn có thể giải thích được không? Logic của mã nguồn có nhất quán với các yêu cầu đã nêu không?
Kiểm tra hành vi. Tự mình thực hiện chức năng. Kiểm tra luồng chính. Kiểm tra các trường hợp ngoại lệ. Liệu nó có hoạt động chính xác khi thiếu dữ liệu đầu vào? Khi các giá trị ở mức cực đoan? Khi các phụ thuộc không khả dụng?
Hãy sử dụng phương pháp xác minh tự động. Yêu cầu Claude tạo các bài kiểm thử cho mã mà nó viết. Yêu cầu độ phủ kiểm thử bao gồm cả các trường hợp ngoại lệ một cách rõ ràng. Các bài kiểm thử tự động không thể thay thế cho việc xem xét mã, nhưng chúng giúp phát hiện các lỗi hồi quy một cách có hệ thống.
Tăng cường giám sát đối với các lĩnh vực nhạy cảm. Xác thực, ủy quyền, xử lý thanh toán, xử lý dữ liệu y tế, lưu trữ dữ liệu liên quan đến quyền riêng tư – những lĩnh vực này đòi hỏi chuyên môn về bảo mật và xem xét cẩn thận vượt xa những gì các kiểm tra tự động cung cấp.
Bảo mật mã Claude
Anthropic đã phát hành Claude Code Security , một tính năng đang trong giai đoạn thử nghiệm (tính đến năm 2026) có khả năng quét mã nguồn để tìm các mẫu lỗ hổng đã biết và đề xuất các biện pháp khắc phục.
Điều này thể hiện xu hướng phát triển của các công cụ bảo mật: tích hợp, tự động hóa và hỗ trợ bởi trí tuệ nhân tạo. Đối với các hệ thống sản xuất, hãy coi nó như một lớp bảo mật bổ sung, chứ không phải là sự thay thế cho việc xem xét của chuyên gia.
Vai trò tiếp tục của việc viết mã
Kinh nghiệm từ cộng đồng Claude Code luôn khẳng định: các nhà phát triển tự viết một phần mã thay vì giao toàn bộ việc lập trình cho người khác sẽ hiểu rõ hơn đáng kể về hệ thống của họ.
Sự hiểu biết này không phải là ngẫu nhiên. Chính nó cho phép đánh giá chính xác các sản phẩm của Claude. Chính nó giúp phát hiện ra những lỗi nhỏ mà người không có kiến thức chuyên môn không thể nhận thấy. Và chính nó tạo ra những hệ thống vẫn có thể bảo trì được ngay cả khi bối cảnh tạo ra chúng không còn mới mẻ.
Hãy sử dụng Claude Code để loại bỏ những công việc thừa thãi: những đoạn mã mẫu, những thao tác lặp đi lặp lại, những tài liệu tốn thời gian nhưng không đòi hỏi sự đánh giá. Đừng sử dụng nó để thay thế sự tham gia trực tiếp vào hệ thống mà bạn đang xây dựng. Chính sự tham gia đó mới là nơi thể hiện chuyên môn của bạn, và cũng là nơi quyết định chất lượng của hệ thống.
Chương 22:
Bản thiết kế dự án khởi đầu
Sáu bản thiết kế dự án sau đây cung cấp đầy đủ thông số kỹ thuật – lựa chọn công nghệ, cấu trúc thư mục, danh sách tính năng và trình tự triển khai – sẵn sàng để chuyển trực tiếp cho Claude Code. Mỗi bản thiết kế được tạo ra cho một giai đoạn phát triển năng lực cụ thể và một loại trường hợp sử dụng cụ thể.
Đây không phải là những ví dụ đồ chơi. Chúng là những dự án thực tế tạo ra phần mềm thực sự hữu ích, được lựa chọn vì chúng giới thiệu những mô hình quan trọng trong một phạm vi được kiểm soát.
Bản thiết kế 1: Trang chủ cá nhân
Phù hợp cho: Người mới bắt đầu hoàn toàn. Buổi học đầu tiên với Claude Code.
Nội dung khóa học: Cấu trúc tệp HTML/CSS, giao diện người dùng chủ đề tối, bố cục đáp ứng, các thành phần liên kết.
Công nghệ: HTML5, CSS3, không yêu cầu JavaScript.
Cấu trúc thư mục:
my-homepage/
index.html
style.css
assets/
avatar.jpg (add your own photo)
Yêu cầu cung cấp mã cho Claude:
Build a personal homepage. Specifications:
1. Single-page HTML/CSS site — no JavaScript, no frameworks
2. Sections: hero with name and one-line description, short bio (2–3 sentences),
links section with icons for LinkedIn, GitHub, and Twitter/X, footer with year
3. Design: dark background (#0f0f13), light body text (#e2e2e2),
accent color (#6366f1 — indigo), sans-serif typography (Inter via Google Fonts)
4. Responsive: readable and clean on both desktop and mobile
5. File structure: index.html and style.css only
Placeholder text is fine for bio — I will replace it. Use placeholder links (#)
for the social links — I will update them.
Enter Plan Mode first. Show me the plan before writing any files.
Những điều cần kiểm tra sau khi quá trình biên dịch hoàn tất:
Mở trong trình duyệt – trông có đúng không?
Thay đổi kích thước cửa sổ cho phù hợp với chiều rộng của thiết bị di động – bố cục có tự động điều chỉnh không?
Kiểm tra xem tất cả các liên kết có tồn tại hay không (kể cả dưới dạng liên kết giữ chỗ).
Hãy xem mã nguồn HTML – bạn có hiểu được cấu trúc của nó không?
Bản thiết kế 2: Trình quản lý tác vụ với localStorage
Phù hợp cho: Trình độ sơ cấp đến trung cấp. Ứng dụng đầu tiên có tính năng quản lý trạng thái và tương tác.
Nội dung khóa học: Thao tác DOM bằng JavaScript, lưu trữ dữ liệu bằng localStorage, các mẫu CRUD, xử lý sự kiện, lọc dữ liệu.
Công nghệ: HTML5, CSS3, JavaScript thuần túy. Không phụ thuộc vào bất kỳ thư viện nào. Không cần bước biên dịch.
Cấu trúc thư mục:
task-manager/
index.html
style.css
app.js
components/
TaskList.js
TaskForm.js
TaskFilter.js
utils/
storage.js (localStorage read/write)
dateUtils.js (formatting helpers)
Yêu cầu cung cấp mã cho Claude:
Build a task manager application. Full specification:
FEATURES:
1. Create task: title (required), description (optional), due date,
priority (Low / Medium / High)
2. Display tasks as cards in a list, sorted by due date ascending
3. Mark task complete — completed tasks display with strikethrough and 50% opacity
4. Delete task with confirmation
5. Filter tasks: by status (All / Active / Completed), by priority (All / Low / Medium / High)
6. All data persists in localStorage — survives page refresh
TECHNICAL REQUIREMENTS:
- Vanilla JavaScript, ES6 modules
- File structure as specified: index.html, style.css, app.js,
components folder with TaskList.js / TaskForm.js / TaskFilter.js,
utils folder with storage.js and dateUtils.js
- No external libraries, no frameworks, no build step
- storage.js must abstract all localStorage access — no other file reads/writes localStorage directly
DESIGN:
- Clean light theme, comfortable whitespace
- Cards with subtle shadow and hover state
- Priority levels: low = blue, medium = amber, high = red (use colored left border on card)
- Responsive for mobile and desktop
CLAUDE.md content to follow: all localStorage access through storage.js only.
No inline styles — all styling through style.css.
Enter Plan Mode. Show me the complete file tree and implementation plan
before writing anything.
Những điều cần kiểm tra sau khi quá trình biên dịch hoàn tất:
Tạo nhiều nhiệm vụ với mức độ ưu tiên và thời hạn khác nhau.
Hãy kiểm tra xem họ có sắp xếp theo ngày đến hạn một cách chính xác hay không.
Đánh dấu một số mục đã hoàn thành – xác minh trạng thái trực quan
Làm mới trang – kiểm tra xem dữ liệu có được lưu giữ hay không.
Kiểm tra các bộ lọc – mỗi sự kết hợp đều phải cho ra kết quả chính xác.
Xóa tác vụ – xác minh bước xác nhận hoạt động bình thường
Bản thiết kế 3: Bảng điều khiển dữ liệu kết nối API
Phù hợp cho: Trình độ trung cấp. Dự án đầu tiên liên quan đến API bên ngoài và hiển thị dữ liệu động.
Nội dung khóa học: Sử dụng API, async/await, tải trạng thái, xử lý lỗi, hiển thị dữ liệu có cấu trúc.
Công nghệ: HTML5, CSS3, JavaScript thuần túy. Sử dụng API công cộng miễn phí, không yêu cầu xác thực.
API được sử dụng: API thời tiết Open-Meteo (miễn phí, không cần khóa).
Cấu trúc thư mục:
weather-dashboard/
index.html
style.css
app.js
services/
weatherApi.js (all API calls isolated here)
components/
CurrentWeather.js
ForecastCard.js
LocationSearch.js
utils/
formatters.js (unit conversion, date formatting)
Yêu cầu cung cấp mã cho Claude:
Build a weather dashboard using the Open-Meteo API (https://open-meteo.com).
No API key required. Full specification:
FEATURES:
1. Location search: user types a city name, app geocodes it using
Open-Meteo's geocoding API and retrieves weather data
2. Current conditions display: temperature (Celsius), feels-like, humidity,
wind speed, weather description with an icon (use Unicode weather emoji)
3. 7-day forecast: one card per day showing high/low temps and condition
4. Loading state: visible spinner while data is fetching
5. Error state: clear message if location not found or API fails
6. Last searched location persists in localStorage on refresh
TECHNICAL REQUIREMENTS:
- All API calls must go through services/weatherApi.js — no fetch() calls elsewhere
- Async/await throughout — no .then() chaining
- formatters.js handles all unit formatting and date display
- Graceful error handling: network failures and invalid locations display
user-readable messages (never raw error objects)
API REFERENCE:
- Geocoding: https://geocoding-api.open-meteo.com/v1/search?name={city}&count=1
- Weather: https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lon}
¤t=temperature_2m,relative_humidity_2m,wind_speed_10m,weather_code
&daily=temperature_2m_max,temperature_2m_min,weather_code
&timezone=auto&forecast_days=7
DESIGN: clean card-based layout, dark theme, readable type hierarchy.
Enter Plan Mode. Describe the complete data flow before writing code:
how a user search triggers the API chain and populates each component.
Những điều cần kiểm tra sau khi quá trình biên dịch hoàn tất:
Tìm kiếm một thành phố đã biết – kết quả có trả về dữ liệu thời tiết không?
Tìm kiếm một địa điểm không tồn tại – liệu nó có hiển thị lỗi rõ ràng không?
Hãy ngắt kết nối mạng và tìm hiểu xem hệ thống có xử lý sự cố một cách êm ái không?
Làm mới trang – vị trí cuối cùng có được tải lại không?
Bản thiết kế 4: Ứng dụng ghi chú toàn diện
Phù hợp cho: Trình độ trung cấp-nâng cao. Dự án đầu tiên có sử dụng backend và cơ sở dữ liệu thực tế.
Nội dung khóa học: Máy chủ Node.js/Express, cơ sở dữ liệu SQLite, thiết kế API REST, phân tách máy chủ-máy khách, CRUD ở mọi lớp.
Công nghệ: Node.js, Express, better-sqlite3 (liên kết SQLite đồng bộ), giao diện người dùng HTML/CSS/JavaScript thuần túy được phục vụ tĩnh.
Cấu trúc thư mục:
notes-app/
server/
index.js (Express app setup)
db/
database.js (SQLite connection and migrations)
notesRepo.js (all database queries for notes)
routes/
notes.js (REST routes for /api/notes)
middleware/
errorHandler.js
client/
index.html
style.css
app.js
services/
notesApi.js (all fetch calls to the backend)
components/
NoteEditor.js
NoteList.js
package.json
.env
Yêu cầu cung cấp mã cho Claude:
Build a full-stack notes application. Complete specification:
BACKEND (Node.js + Express + SQLite):
1. Express server running on port 3001
2. SQLite database via better-sqlite3 package
3. Notes table: id (integer primary key autoincrement), title (text),
content (text), created_at (datetime), updated_at (datetime)
4. REST API:
- GET /api/notes — return all notes, ordered by updated_at descending
- GET /api/notes/:id — return single note
- POST /api/notes — create note, return created note
- PUT /api/notes/:id — update note, return updated note
- DELETE /api/notes/:id — delete note, return 204
5. Database initialization: create table if not exists on server start
6. Error handling middleware: catch all unhandled errors, return JSON error response
FRONTEND (HTML/CSS/vanilla JS):
1. Three-panel layout: sidebar (note list), editor (active note), empty state
2. Click a note in the sidebar to open it in the editor
3. New Note button creates an empty note and opens it immediately
4. Auto-save: debounce saves to the API 1 second after the user stops typing
5. Delete button on active note with confirmation
6. Note list shows title and first line of content as preview, plus updated date
CONVENTIONS (enforce in CLAUDE.md):
- All database access through notesRepo.js — no SQL in route files
- All API calls through client/services/notesApi.js — no fetch() elsewhere in frontend
- All routes return JSON — no HTML from the API
Enter Plan Mode. Show me the complete architecture: how data flows
from the database through the API to the UI and back on save.
Những điều cần kiểm tra sau khi quá trình biên dịch hoàn tất:
Khởi động máy chủ:node server/index.js
Tạo ghi chú – ghi chú đó có hiển thị ở thanh bên không?
Chỉnh sửa đi – nó có tự động lưu không?
Khởi động lại máy chủ – ghi chú đó còn ở đó không?
Xóa một ghi chú – ghi chú đó có bị xóa khỏi danh sách không?
Hãy kiểm tra khi mở tab mạng – các lệnh gọi API có chính xác không?
Bản thiết kế 5: Công cụ tự động hóa CLI
Phù hợp cho: Các nhà phát triển quen thuộc với giao diện dòng lệnh. Giới thiệu về các công cụ lập trình kịch bản.
Nội dung khóa học: Phân tích đối số dòng lệnh, tự động hóa hệ thống tập tin, xuất dữ liệu có cấu trúc, các công cụ thực tiễn.
Công cụ được xây dựng: Một công cụ tạo cấu trúc dự án – khi được cung cấp đối số loại dự án, nó sẽ tạo ra cấu trúc thư mục với các tệp khởi đầu.
Công nghệ sử dụng: Node.js, commander (thư viện đối số dòng lệnh), fs-extra.
Cấu trúc thư mục:
scaffold-tool/
src/
index.js (entry point, argument definitions)
commands/
create.js (scaffold a new project)
list.js (list available templates)
templates/
web-basic/ (template directory structure)
node-api/
react-app/
utils/
fileSystem.js (file/directory operations)
logger.js (colored console output)
package.json
README.md
Yêu cầu cung cấp mã cho Claude:
Build a Node.js command-line scaffolding tool. Full specification:
PURPOSE: Running `scaffold create <template-name> <project-name>` generates
a new project directory with a starter file structure.
COMMANDS:
1. scaffold create <template> <name>
- Creates a new directory named <name> in the current working directory
- Copies the corresponding template into it
- Replaces the placeholder {{PROJECT_NAME}} in all template files with <name>
- Prints a success message with next steps
2. scaffold list
- Lists all available templates with a one-line description of each
TEMPLATES TO INCLUDE (create each as an actual template directory with starter files):
- web-basic: index.html, style.css, app.js, README.md
- node-api: server.js, routes/index.js, package.json with express, README.md
- react-app: package.json with react/vite, src/App.jsx, src/main.jsx, index.html
TECHNICAL REQUIREMENTS:
- commander package for argument parsing
- fs-extra for file system operations (not native fs)
- All file/directory operations through utils/fileSystem.js
- Colored console output (green = success, red = error, blue = info)
- If the target directory already exists, exit with a clear error — do not overwrite
- Executable via `npx scaffold` (set up package.json bin entry)
Enter Plan Mode. Show me how the create command flow works
end-to-end before writing any files.
Những điều cần kiểm tra sau khi quá trình biên dịch hoàn tất:
Chạy thử node src/index.js list- các mẫu đã được liệt kê chưa?
Chạy lệnh node src/index.js create web-basic my-test-project– thư mục có hiện ra không?
Hãy kiểm tra xem nó {{PROJECT_NAME}}đã được thay thế trong toàn bộ các tệp được tạo ra chưa.
Chạy lại lệnh đó – liệu nó có từ chối bản sao trùng lặp không?
Bản thiết kế 6: Công cụ nội bộ nhóm
Phù hợp cho: Trình độ trung cấp nâng cao. Dự án đầu tiên được thiết kế để sử dụng thực tế bởi người khác.
Nội dung khóa học: Tư duy sản phẩm hướng đến người dùng, xác thực dữ liệu, trạng thái chia sẻ, các vấn đề về khả năng sẵn sàng sản xuất.
Công cụ được xây dựng: Một công cụ theo dõi cuộc họp nhóm hàng ngày – các thành viên nhóm ghi lại nhật ký cuộc họp (những việc họ đã làm, những việc họ đang làm, bất kỳ trở ngại nào), và công cụ này hiển thị lịch sử hoạt động của từng người.
Công nghệ: Node.js, Express, SQLite, giao diện người dùng JavaScript thuần túy.
Cấu trúc thư mục:
standup-tracker/
server/
index.js
db/
schema.sql (initial table definitions)
database.js
repos/
standupsRepo.js
usersRepo.js
routes/
standups.js
users.js
middleware/
validate.js (input validation)
errorHandler.js
client/
index.html
style.css
app.js
services/
api.js
components/
StandupForm.js
TeamView.js
PersonHistory.js
package.json
Yêu cầu cung cấp mã cho Claude:
Build a team standup tracker. Complete specification:
CONTEXT: A small team (3–10 people) uses this tool to log and view
daily standups. Each standup has three fields: yesterday, today, blockers.
DATABASE SCHEMA:
- users: id, name, email (unique), created_at
- standups: id, user_id (FK), date (date type, one per user per day),
yesterday (text), today (text), blockers (text, nullable), created_at
BACKEND API:
- GET /api/users — list all users
- POST /api/users — create user (name + email, validate uniqueness)
- GET /api/standups?date=YYYY-MM-DD — all standups for a given date, with user data joined
- GET /api/standups/user/:userId — last 14 days of standups for one user
- POST /api/standups — submit standup (userId, date, yesterday, today, blockers)
— if standup for that user+date already exists, update it (upsert)
FRONTEND:
- Default view: today's standups for the whole team, one card per person
- Each card: user name, their standup fields, time submitted (or "Not submitted" if absent)
- Date navigation: prev/next day buttons to browse historical dates
- Submit standup: user selects their name from a dropdown, fills three fields, submits
- If the user already submitted today, the form pre-fills their existing standup for editing
VALIDATION (enforce server-side via validate.js middleware):
- yesterday and today: required, non-empty, max 1000 characters
- blockers: optional, max 1000 characters
- date: must be a valid date, not in the future
- userId: must reference an existing user
CONVENTIONS (write into CLAUDE.md before starting):
- All DB access through repos/ — no SQL in route files
- All validation through validate.js middleware — no validation logic in route handlers
- Routes return consistent JSON: { data: ... } on success, { error: ... } on failure
Enter Plan Mode. This is a multi-file, multi-layer project. Show me
the complete plan — architecture, data flow, file list, implementation sequence —
before writing a single file.
Những điều cần kiểm tra sau khi quá trình biên dịch hoàn tất:
Tạo hai hoặc ba người dùng thông qua API (sử dụng trình khách REST hoặc curl)
Gửi báo cáo ngắn gọn cho từng người – chúng có hiển thị trong chế độ xem nhóm không?
Hãy điều hướng đến ngày hôm qua – liệu nó có hiển thị trạng thái trống một cách chính xác không?
Gửi báo cáo standup thứ hai cho cùng người dùng và ngày tháng – liệu nó có cập nhật nội dung thay vì tạo bản sao?
Gửi biểu mẫu mà thiếu trường "ngày hôm nay" - liệu máy chủ có từ chối và hiển thị lỗi rõ ràng không?
Tiến trình thông qua các bản thiết kế
Sáu dự án này được xây dựng dựa trên một trình tự phát triển có chủ đích:
Mỗi bản thiết kế đều sử dụng các mô hình từ những bản trước đó và bổ sung thêm một chiều hướng mới. Việc xây dựng chúng theo trình tự sẽ tạo ra một nhà phát triển đã gặp phải và giải quyết được các vấn đề cơ bản ở mỗi tầng kiến trúc ứng dụng – đây chính là nền tảng để vận dụng Claude Code một cách hiệu quả nhất.
Chương 23:
Ranh giới hiện tại của Claude Code
Tốc độ phát triển nhanh chóng các khả năng của Claude Code khiến bất kỳ mô tả nào về các tính năng "hiện tại" đều chỉ mang tính tạm thời. Sau đây là bản mô tả về tình trạng hiện tại tính đến đầu năm 2026.
Tạo nhiệm vụ chủ động
Claude Code đang bắt đầu đưa ra những đề xuất có thể thực hiện được dựa trên các tín hiệu quan sát được từ dự án – không chỉ đơn thuần là thực hiện các nhiệm vụ do nhà phát triển chỉ định, mà còn xác định các nhiệm vụ cần được chú ý.
Boris mô tả tình trạng hiện tại: Claude đọc các luồng phản hồi trên Slack, xem xét các trình theo dõi lỗi trên GitHub, xem xét dữ liệu đo lường và đưa ra các đề xuất kèm theo yêu cầu kéo (pull request): "Đây là một vài việc tôi có thể làm. Tôi đã tạo một vài yêu cầu kéo. Anh muốn xem qua không?"
Nhà phát triển xem xét, phê duyệt và chỉ đạo. Nhưng sáng kiến không còn chỉ diễn ra theo một chiều. Người đại diện bắt đầu tham gia vào việc quyết định nên xây dựng cái gì, chứ không chỉ thực hiện những gì đã được quyết định.
Vượt ra ngoài phạm vi phát triển phần mềm
Boris đánh giá tình hình hiện tại: "Việc lập trình về cơ bản đã được giải quyết – ít nhất là loại lập trình mà tôi đang làm." Theo đó, phạm vi nghiên cứu đang mở rộng sang các lĩnh vực liền kề.
Sản phẩm cộng tác này mở rộng khả năng hoạt động như một tác nhân của Claude Code – thao tác trên các công cụ, thực hiện các tác vụ nhiều bước, vận hành trong môi trường trình duyệt – sang lĩnh vực công việc tri thức tổng quát. Đối tượng mục tiêu không chỉ là các nhà phát triển mà còn là bất kỳ ai làm việc với các công cụ kỹ thuật số: nhà phân tích, quản lý sản phẩm, quản trị viên, nhà nghiên cứu.
Đối với cộng đồng phát triển phần mềm, điều này mở rộng phạm vi hỗ trợ của Claude Code không chỉ dừng lại ở việc triển khai mà còn bao gồm toàn bộ vòng đời xây dựng sản phẩm: tổng hợp nghiên cứu người dùng, lập đặc tả sản phẩm, phân tích thị trường, giao tiếp với khách hàng, điều phối dự án.
Xây dựng mô hình cho sáu tháng tới
Lời khuyên chiến lược thiết thực nhất của Boris dành cho những ai đang xây dựng dựa trên mô hình của Claude Code: "Hãy xây dựng cho mô hình sáu tháng tới, chứ không phải cho mô hình hiện tại."
Khả năng sử dụng công cụ, thời lượng phiên làm việc, độ tin cậy của hoạt động tự động – những khía cạnh này sẽ được cải thiện theo một quỹ đạo có thể dự đoán được. Một quy trình làm việc được thiết kế cho những giới hạn khả năng hiện tại sẽ trở nên lỗi thời sau sáu tháng. Một quy trình làm việc được thiết kế ở giới hạn khả năng của tương lai gần sẽ hiệu quả chính xác vào thời điểm cần thiết.
Điều này đòi hỏi phải chấp nhận rằng trải nghiệm sản phẩm hiện tại có thể hơi vượt trội so với phạm vi hoạt động đáng tin cậy của mô hình hiện tại. Khoảng cách đó sẽ thu hẹp lại. Các nhà phát triển và tổ chức đã xây dựng quy trình làm việc khi mô hình bắt kịp sẽ có lợi thế về mặt cấu trúc.
Chương 24:
Kỹ thuật phần mềm như một ngành học
Chương này giải đáp câu hỏi cốt lõi trong mọi chương của cuốn cẩm nang này: việc thực hành kỹ thuật phần mềm với sự hỗ trợ của trí tuệ nhân tạo có nghĩa là gì?
Ba cấp độ tương tác với phần mềm
Có ba cách chính mà các kỹ sư phần mềm tham gia vào các dự án của họ:
Lập trình là quá trình chuyển đổi logic thành mã lệnh. Nó đòi hỏi kiến thức về cú pháp, thư viện và các mẫu thiết kế. Nó là lớp kỹ thuật cơ học.
Kỹ thuật phần mềm là thiết kế và xây dựng các hệ thống đáng tin cậy, dễ bảo trì. Nó đòi hỏi khả năng phán đoán về kiến trúc, chiến lược kiểm thử, các vấn đề vận hành và hậu quả lâu dài của các quyết định hiện tại. Mã nguồn là phương tiện, và hệ thống là sản phẩm.
Kiến trúc phần mềm là một lĩnh vực nghiên cứu về việc đưa ra các quyết định cấu trúc xác định tiềm năng phát triển của một hệ thống. Nó đòi hỏi khả năng chuyển đổi các yêu cầu phức tạp thành thiết kế và dự đoán cách thức hệ thống cần phải phát triển trong tương lai.
Claude Code đảm nhiệm một phần đáng kể của lớp lập trình. Các lớp kỹ thuật và kiến trúc vẫn là trách nhiệm của con người – và tầm quan trọng của chúng, nếu có, sẽ tăng lên khi việc chuyển đổi tự động được giao cho một tác nhân.
Với khả năng triển khai nhanh chóng của Claude, chất lượng của công trình được xây dựng gần như hoàn toàn phụ thuộc vào chất lượng của thiết kế dẫn dắt quá trình đó.
Những điều vẫn cần thiết để học hỏi
Vậy, với tư cách là một nhà phát triển phần mềm, bạn cần biết những gì trong thời điểm hiện nay? Bạn nên tập trung vào việc học hỏi và cải thiện những gì?
Cách thức hoạt động của các hệ thống
Hiểu được tầm quan trọng của chỉ mục truy vấn, tác dụng của ràng buộc khóa ngoại, cách xác thực mã thông báo phiên, và bản chất của rò rỉ bộ nhớ – những kiến thức này cho phép bạn điều khiển Claude Code một cách chính xác và đánh giá kết quả đầu ra của nó một cách chuẩn xác. Bạn không cần phải tự tay thực hiện những việc này. Bạn cần phải hiểu chúng.
Vì sao các quyết định thiết kế tồn tại?
Phân tách trách nhiệm, đảo ngược phụ thuộc, xác thực đầu vào, kiểm soát truy cập nhiều lớp không chỉ là những quy ước hành chính. Chúng là giải pháp cho các vấn đề kỹ thuật thường xuyên xảy ra. Khi bạn hiểu tại sao một mô hình tồn tại, bạn có thể hướng dẫn Claude thực hiện nó một cách chính xác và phát hiện ra các sai lệch.
Chất lượng được thể hiện như thế nào?
Mã nguồn dễ đọc. Hành vi nhất quán. Xử lý lỗi khéo léo. Giao diện rõ ràng. Độ phủ kiểm thử đầy đủ. Những đánh giá này đòi hỏi khả năng phán đoán được phát triển thông qua kinh nghiệm, và khả năng phán đoán đó là điều phân biệt phần mềm hoạt động tốt với phần mềm bền lâu.
Hương vị và Tiêu chuẩn
Boris nói về "sự táo bạo và gu thẩm mỹ" như những phẩm chất mà ông tìm kiếm trong các sản phẩm mà nhóm của mình xây dựng – phần mềm khiến người dùng phải dừng lại và chú ý, giải quyết vấn đề một cách tinh tế đến mức giải pháp trở nên tất yếu. Tiêu chuẩn này không thể được ủy thác.
Gu thẩm mỹ được hình thành thông qua sự gắn bó bền bỉ với những tác phẩm xuất sắc. Đọc hiểu phần mềm tốt. Sử dụng các sản phẩm được thiết kế tốt với con mắt phê bình. Hiểu được điều gì tạo nên cảm giác chất lượng, và có khả năng diễn đạt sự hiểu biết đó đủ chính xác để hướng Claude đến với nó.
Những nhà phát triển tạo ra phần mềm xuất sắc bằng Claude Code không sử dụng nó để thay thế cho phán đoán của riêng họ. Họ sử dụng nó như một công cụ thực thi cho một tầm nhìn hoàn toàn thuộc về họ.
Tính độc đáo vượt trội hơn sự bắt chước.
Việc sao chép các sản phẩm hiện có – xây dựng một phiên bản khác của thứ đã tồn tại – là một bài tập học tập hợp lý. Nhưng đó lại là cách sử dụng không hiệu quả những khả năng mà Claude Code thực sự mang lại.
Rào cản trong việc xây dựng phần mềm mới đã thay đổi. Một nguyên mẫu hoạt động của một ý tưởng thực sự độc đáo có thể được tạo ra trong một ngày cuối tuần. Chi phí để khám phá một cách tiếp cận khác thường đã giảm đáng kể so với trước đây. Khả năng thử nghiệm một điều chưa từng được thử và có được phiên bản hoạt động chỉ trong vài giờ là điều mới mẻ.
Điều này tạo ra nghĩa vụ phải suy nghĩ tham vọng hơn về những gì cần xây dựng, chứ không phải bằng lòng với sự thoải mái của những gì đã biết. Câu hỏi đáng đặt ra không phải là "những gì đã tồn tại mà tôi có thể xây dựng lại?" mà là "những gì nên tồn tại mà hiện chưa có?"
Chương 25:
Một lộ trình có cấu trúc để tiến về phía trước
Chương cuối cùng này cung cấp một trình tự cụ thể để áp dụng mọi thứ trong cuốn cẩm nang này.
Bắt đầu từ tuần này
Quá trình học tập bắt đầu với một dự án thực tế: không phải bài tập, không phải là bản sao chép bài hướng dẫn, mà là thứ bạn dự định tạo ra và có khả năng sử dụng.
Kích thước nên tối thiểu. Một trang chủ cá nhân. Một công cụ đơn giản cho quy trình làm việc cá nhân cụ thể. Một trang đích cho một ý tưởng mà bạn đã ấp ủ. Điều kiện tiên quyết là nó phải thực tế – việc hoàn thành nó phải tạo ra thứ gì đó có giá trị thực sự đối với bạn.
Một tuần đầu tiên được lên kế hoạch bài bản:
Ngày 1: Cài đặt VS Code và tiện ích mở rộng Claude Code. Cấu hình tài khoản của bạn. Tìm hiểu các chức năng của Claude Code. Hiểu giao diện.
Ngày 2: Xác định dự án đầu tiên của bạn. Viết ra năm tính năng cụ thể. Càng cụ thể càng tốt. Đừng bắt đầu xây dựng ngay.
Ngày 3: Sử dụng Chế độ Lập kế hoạch để thảo luận dự án với Claude. Hoàn thiện kế hoạch cho đến khi nó phản ánh chính xác ý định của bạn. Triển khai Tính năng 1.
Ngày 4: Kiểm tra Tính năng 1 cho đến khi bạn chắc chắn rằng nó hoạt động chính xác. Triển khai Tính năng 2.
Ngày 5: Hoàn thiện dự án. Yêu cầu Claude xem xét lại so với bản đặc tả ban đầu. Khắc phục mọi thiếu sót.
Ngày 6: Chia sẻ dự án với người có thể cho bạn phản hồi trung thực. Ghi lại khoảng cách giữa những gì bạn đã xây dựng và những gì đáng lẽ ra phải tốt hơn.
Ngày 7: Đánh giá tuần vừa qua. Điều gì khó hơn dự kiến? Sản phẩm của Claude làm bạn ngạc nhiên ở điểm nào? Bạn sẽ làm gì khác đi? Bạn muốn xây dựng gì tiếp theo?
Chu trình này – một tuần, một dự án nhỏ, một lần lặp hoàn chỉnh – mang lại hiệu quả học tập cao hơn bất kỳ lượng kiến thức nào được thu thập từ việc đọc sách về Claude Code.
Trình tự phát triển
Năng lực sử dụng Claude Code được phát triển theo từng giai đoạn. Trình tự mà tôi thấy hiệu quả và hợp lý nhất là:
Giai đoạn 1 — Định hướng (Tuần 1–4) : Các dự án dựa trên web. Phạm vi một tính năng duy nhất. Tập trung vào việc học cách giao tiếp chính xác với Claude Code và đánh giá kết quả đầu ra của nó một cách khách quan.
Giai đoạn 2 — Xây dựng (Tháng 1-3) : Các dự án đa tính năng. Giới thiệu về cơ sở dữ liệu, API và kiến trúc đa tập tin. Nhấn mạnh vào kỷ luật lập kế hoạch và xác minh từng tính năng.
Giai đoạn 3 — Thực hành chuyên nghiệp (Tháng 3–6) : Ứng dụng full-stack. Các vấn đề triển khai và vận hành. Quy trình làm việc đa phiên. Tích hợp MCP. Nhấn mạnh vào độ tin cậy, bảo mật và khả năng bảo trì.
Giai đoạn 4 — Vận hành nâng cao (Tháng 6 trở đi) : Luồng công việc song song của các tác nhân. Vòng lặp tự động cho các tác vụ đã xác định. Kỹ năng tùy chỉnh và cấu hình cấp dự án. Đóng góp vào mã nguồn mở và tích hợp Claude Code ở cấp nhóm.
Mỗi giai đoạn đều phụ thuộc vào giai đoạn trước đó. Sự cám dỗ muốn bỏ qua các giai đoạn sẽ tạo ra những khoảng trống, và những khoảng trống này sẽ trở nên tốn kém về sau.
Nguyên tắc để tiếp tục phát triển
Hãy bắt đầu bằng cách phân tích mọi kết quả bất ngờ. Khi Claude tạo ra thứ gì đó khác với những gì bạn mong đợi – tốt hơn hoặc tệ hơn – hãy hiểu lý do tại sao. Đây là cách mô hình hành vi của Claude trở nên chính xác và sự hướng dẫn của bạn trở nên chuẩn xác hơn.
Hãy chắc chắn rằng bạn đọc và hiểu mã nguồn mà Claude viết. Không cần đọc từng dòng một, mà cần hiểu toàn bộ nội dung. Việc chấp nhận một cách thụ động những mã nguồn mà bạn không hiểu sẽ tạo ra một codebase mà bạn không thể bảo trì, điều khiển hoặc giải thích được.
Bạn cũng nên nghiên cứu những phần mềm mà bạn cho là xuất sắc. Tiêu chuẩn mà bạn dùng để hướng dẫn Claude là tiêu chuẩn mà bạn có thể trình bày rõ ràng. Hãy phát triển tiêu chuẩn đó thông qua việc tiếp xúc thường xuyên với các hệ thống được xây dựng tốt.
Và đừng quên tự mình viết một vài đoạn mã. Hãy tích cực tham gia vào quá trình triển khai. Khả năng phán đoán đến từ việc trực tiếp xây dựng chính là điều làm cho việc hướng dẫn Claude của bạn trở nên hiệu quả.
Về những tác động nghề nghiệp
Nhận định của Boris Cherny về bối cảnh nghề nghiệp rất thẳng thắn: ranh giới giữa các vai trò của kỹ sư phần mềm, quản lý sản phẩm và nhà thiết kế đang ngày càng mờ nhạt.
Các kỹ sư, quản lý sản phẩm và nhà thiết kế trong nhóm của anh ấy đều viết mã. Giá trị đóng góp của mỗi người đang chuyển từ việc thực thi kỹ thuật chuyên môn sang khả năng đánh giá đa ngành chỉ có được khi hiểu rõ toàn bộ hệ thống – nhu cầu người dùng, ràng buộc kỹ thuật, bối cảnh kinh doanh, chất lượng thiết kế.
Lời khuyên của ông: hãy trau dồi kiến thức toàn diện. Khả năng suy luận trên nhiều lĩnh vực – nắm bắt đồng thời các khía cạnh kỹ thuật, sản phẩm và thiết kế – là điều tạo ra những quyết định mạch lạc nhất. Trí tuệ nhân tạo (AI) đảm nhiệm việc thực thi máy móc. Con người cung cấp sự thấu hiểu.
Điều quan trọng không phải là đoạn mã bạn đã viết. Đó là khả năng phán đoán bạn đã phát triển thông qua việc xây dựng những sản phẩm thực tế, nghiên cứu những gì người khác đã xây dựng và hiểu được những tiêu chuẩn phân biệt công việc bền vững với công việc không bền vững. Khả năng tích lũy đó không thể được sao chép bởi một tác nhân AI. Nó thuộc về bạn.
Phụ lục A: Tài liệu tham khảo lệnh mã Claude
Phụ lục B: Mẫu câu hỏi tiêu chuẩn
Bắt đầu một tính năng mới:
I want to implement the following feature:
[Feature title]
[Behavioral specification from PRD]
Enter Plan Mode and show me your proposed approach before writing any code.
Include: files to be affected, implementation sequence, data flow, edge cases.
Chẩn đoán lỗi:
A defect exists with the following characteristics:
Expected behavior: [description]
Observed behavior: [description]
Steps to reproduce: [sequence]
Relevant files: [if known]
Diagnose the cause and propose a correction. Do not implement until I have
reviewed your diagnosis.
Kiểm tra mã nguồn:
Review the implementation you produced for [feature] against the following
criteria:
1. Are there edge cases not handled by the current implementation?
2. Are there security considerations that require attention?
3. Is the code readable and maintainable for someone encountering it without context?
4. Is error handling adequate for the failure modes this code may encounter?
Provide your assessment before I approve this feature as complete.
Đang tải ngữ cảnh cho phiên mới:
New session. Begin by reading the following files in order:
1. PRD.md
2. CLAUDE.md
3. README.md
Confirm your understanding of the project's current state and identify
where we left off, so we can proceed without reconstructing context manually.
Phụ lục C: Tài liệu tham khảo
Tài liệu nhân học
claude.ai — Quản lý tài khoản và truy cập Claude.ai
code.claude.ai — Hướng dẫn cài đặt và tài liệu chính thức của Claude Code
Đọc tài liệu cơ bản
Bài học cay đắng — Rich Sutton. Một cuốn sách cần thiết để hiểu tại sao các mô hình tổng quát lại hoạt động hiệu quả hơn các hệ thống chuyên biệt.
Triết lý thiết kế phần mềm — John Ousterhout. Lý giải rõ ràng nhất về những yếu tố làm cho phần mềm dễ bảo trì.
Những nguyên tắc cơ bản của kiến trúc phần mềm — Mark Richards và Neal Ford. Cách tiếp cận thực tiễn đối với việc ra quyết định về kiến trúc.
Kết thúc
Sổ tay này được viết vào tháng 3 năm 2026. Các chi tiết cụ thể của Claude Code – các tính năng, khả năng mô hình, giao diện của nó – sẽ tiếp tục được phát triển. Một số nội dung được viết ở đây sẽ cần được cập nhật trong vòng vài tháng tới.
Các nguyên tắc cơ bản sẽ không thay đổi.
Chất lượng của những gì bạn xây dựng bằng Claude Code được quyết định bởi chất lượng kế hoạch, sự chính xác trong giao tiếp, tính nghiêm ngặt trong kiểm chứng và sự rõ ràng trong các tiêu chuẩn của bạn. Đây là những thuộc tính của thực tiễn, không phải của công cụ. Chúng tích lũy theo thời gian. Chúng không bao giờ lỗi thời.
.jpeg)
Nhận xét
Đăng nhận xét