Khám phá cách Claude Code đang cách mạng hóa ngành công nghiệp phần mềm và cách bạn có thể khai thác sức mạnh của nó để tăng năng suất công việc, đơn giản hóa quy trình và thậm chí cải thiện chất lượng cuộc sống cá nhân.
Mục lục
Sự Bùng Nổ Của AI Trong Kỹ Thuật Phần Mềm: Kỷ Nguyên Mới Đã Đến
Thế giới kỹ thuật phần mềm đang chứng kiến một cuộc cách mạng chưa từng có, và trung tâm của cơn bão này chính là Claude Code. Công cụ AI này không chỉ là một tiện ích bổ sung; nó đang định hình lại toàn bộ cục diện của ngành với tốc độ chóng mặt. Những kỹ sư hàng đầu, từng là những người cẩn trọng nhất, nay tự hào tuyên bố rằng họ đang viết gần như 0 dòng mã nhờ sự trợ giúp của AI. Một ví dụ điển hình là Jaana Dogan, Kỹ sư Trưởng tại Google, người đã chia sẻ kinh nghiệm đáng kinh ngạc của mình khi giao cho Claude Code mô tả một vấn đề liên quan đến điều phối tác nhân phân tán. Chỉ trong khoảng một giờ, Claude Code đã tạo ra một bằng chứng khái niệm (proof-of-concept) mà đội của cô đã cố gắng xây dựng suốt một năm.
Tất nhiên, Jaana Dogan đã cẩn thận làm rõ: đây là mã POC, chưa sẵn sàng cho môi trường sản xuất. Nó vẫn cần được xác thực, kiểm tra bảo mật, và đánh giá hiệu suất. Nhưng dù vậy, sự khác biệt giữa một giờ và một năm là một bước nhảy vọt đáng kinh ngạc. Điều này cho thấy tiềm năng to lớn của AI trong việc đẩy nhanh chu trình phát triển.
Qua quá trình làm việc với Claude Code trong năm qua, tôi nhận thấy một điều: lợi ích mà nó mang lại quá lớn đến mức tôi ngạc nhiên khi không thấy sự bùng nổ tương ứng về số lượng ứng dụng, tính năng và tiến bộ tổng thể trong thế giới phần mềm. Tôi tin rằng chúng ta không còn ở giai đoạn “áp dụng sớm” như nhiều người vẫn nghĩ. Việc viết mã đã trở thành một yếu tố cơ bản, và điều đó có nghĩa là nút thắt cổ chai đã dịch chuyển sang những khía cạnh khác: tạo ra những ý tưởng mới, thử nghiệm và phát hành, và trên hết là phân phối. Các ứng dụng do AI tạo ra có thể đã tràn ngập thị trường, chúng ta chỉ đơn giản là chưa nhận thức được chúng, vì chúng chưa tiếp cận được chúng ta.
Tuy nhiên, bên cạnh sự phấn khích, điều này cũng mang lại cảm giác lo lắng đáng kể. Nếu bạn là một kỹ sư phần mềm, có lẽ bạn cũng đang cảm nhận điều đó. Mỗi tuần lại có một thông báo mới, một khả năng mới, một khoảnh khắc “thay đổi mọi thứ”. Và bạn tự hỏi: Liệu mình có đang theo kịp không? Hay mình đang bị bỏ lại phía sau? Mình có còn việc làm trong hai năm tới không?
Tôi không có câu trả lời chắc chắn cho những câu hỏi đó – tôi nghĩ chưa ai có cả. Nhưng điều tôi có thể chia sẻ là cách tôi đã sử dụng những công cụ này để trở nên năng suất hơn đáng kể, và cách sự năng suất đó thực sự đã làm cho công việc của tôi thú vị hơn, chứ không hề giảm đi. Càng sử dụng AI, tôi càng nhận ra rằng những kỹ sư học cách hợp tác hiệu quả với các công cụ này sẽ có một lợi thế khổng lồ. Và đó chính là trọng tâm của bài viết này.
Phần 1: Tăng Tốc Công Việc Kỹ Sư Phần Mềm với Claude Code
Thay vì đi sâu vào các tính năng của Claude Code (vốn đã có rất nhiều hướng dẫn về các tệp CLAUDE.md, /commands và các kỹ năng của nó), tôi muốn chia sẻ những gì tôi thực sự học được từ gần một năm sử dụng hàng ngày. Đây không phải là những cách “thông minh” để sử dụng các tính năng của Claude, mà là những thói quen, quy trình làm việc và mô hình tư duy đã hình thành từ việc sử dụng thường xuyên. Những điều trước đây không khả thi nay đã trở thành cốt lõi trong cách tôi làm việc với tư cách là một kỹ sư phần mềm.
Nắm Bắt MỌI THỨ
Việc gia nhập một công ty thường đồng nghĩa với hàng tháng trời làm quen dần dần. Bạn sẽ từ từ xây dựng các mô hình tư duy về các tính năng khác nhau, hỏi đi hỏi lại những câu hỏi tương tự và quên đi một nửa những gì bạn đã học. Ngày nay, không có lý do gì để điều đó xảy ra nữa.
Với Claude Code, tôi cử các “tác nhân” đi điều tra toàn bộ các dịch vụ, và trỏ nó đến các ticket Jira, GitHub PRs, các luồng Slack, hay bất cứ điều gì mở rộng ngữ cảnh. Sau đó, tôi yêu cầu nó tạo ra một hướng dẫn chi tiết, có tính giáo khoa bằng định dạng Markdown và lưu vào một thư mục chuyên dụng AI_DOCS/ trong kho lưu trữ của mình.
Hãy yêu cầu nó sử dụng rộng rãi các sơ đồ ASCII. Claude Code với Opus 4.5 thực sự xuất sắc trong việc này và là một công cụ tuyệt vời để giải thích các luồng dữ liệu và kiến trúc phức tạp, đa kho lưu trữ.
Đây là những gì tôi yêu cầu Claude tài liệu hóa cho mọi dịch vụ chính:
- Tổng quan kiến trúc
- Các điểm cuối API và mục đích của chúng
- Các tập hợp và lược đồ cơ sở dữ liệu
- Phụ thuộc dịch vụ bên ngoài
- Các tệp chính và mối quan hệ của chúng
Một trong những hướng dẫn của tôi đã chắt lọc hàng chục cuộc trò chuyện, PR và phiên gỡ lỗi thành một nguồn thông tin duy nhất. Đó là hàng tháng trời kiến thức tích lũy mà tôi không bao giờ phải xây dựng lại.
Mẫu prompt tôi sử dụng trông như thế này:
Khám phá [SERVICE/FEATURE] và tạo tài liệu toàn diện:
1. Tóm tắt điều hành - Mục đích cốt lõi của nó là gì?
2. Kiến trúc - Nó được cấu trúc như thế nào? Bao gồm các sơ đồ ASCII.
3. Luồng dữ liệu - Dữ liệu di chuyển vào và ra như thế nào? Trực quan hóa bằng sơ đồ.
4. Tuyến API - Nó phơi bày những điểm cuối nào?
5. Cơ sở dữ liệu - Nó lưu trữ những gì? Bao gồm tổng quan về lược đồ.
6. Phụ thuộc bên ngoài - Nó gọi đến những dịch vụ nào khác? Bằng cách nào?
7. Các tệp chính - Logic quan trọng nằm ở đâu?
8. Các lỗi thường gặp - Điều gì dễ hỏng? Điều gì gây nhầm lẫn? Điều gì chưa được tài liệu hóa?
9. Các thao tác phổ biến - Làm thế nào để kiểm tra/triển khai/gỡ lỗi nó?
Đây là kho báu của bạn. Mỗi khi bạn quay lại hệ thống đó, gỡ lỗi một thứ liên quan, hoặc giải quyết một tính năng tương tự, bạn có ngay ngữ cảnh, cả cho bản thân và để cung cấp lại cho Claude. Kiến thức được tích lũy thay vì bốc hơi.
Cấp quyền truy cập cho Claude vào mọi công cụ có thể
Claude sẽ có thể sử dụng tất cả các công cụ bạn có sẵn nhanh hơn, hiệu quả hơn và sâu sắc hơn bạn. Có một số công cụ mà tôi cho rằng là thiết yếu, và bạn sẽ tự làm khó mình nếu không có chúng.
💡 Nếu cả hai tùy chọn tồn tại, tôi ưu tiên CLIs (Giao diện dòng lệnh) hơn MCPs (Multi-Channel Platforms) (vì MCPs có thể làm đầy ngữ cảnh và chậm). CLIs cực kỳ mạnh mẽ và nhanh chóng, sẽ cung cấp cho bạn các tính năng tương tự (hoặc nhiều hơn) so với MCP tương ứng.
Đây là bộ công cụ thiết yếu của tôi:
- GitHub CLI: Dành cho PRs, issues, kiểm tra trạng thái CI, mọi thứ. Claude có thể tạo PRs, xem xét mã, kiểm tra các lần chạy workflow, tất cả mà không cần rời khỏi terminal.
- AWS CLI: Để gỡ lỗi log Lambda, kiểm tra hàng đợi SQS, truy vấn DynamoDB. Cũng như Localstack cho phát triển cục bộ, sử dụng cùng giao diện CLI.
- Logs (Datadog): Chúng tôi sử dụng Datadog, vì vậy tôi cho phép Claude truy vấn log trực tiếp. Khi gỡ lỗi các vấn đề sản xuất, điều này là vô giá.
- Cơ sở dữ liệu (mongosh): Cấp cho Claude quyền truy cập vào môi trường staging, và nếu có thể, quyền đọc vào môi trường prod. Nếu không thể, staging cũng đủ để trả lời các câu hỏi như hiểu lược đồ hoặc kiểm tra trạng thái dữ liệu.
- Slack MCP: Cái này siêu quan trọng. Rất nhiều kiến thức và ngữ cảnh lịch sử bị mắc kẹt trong Slack (Searchable Log of All Conversation and Knowledge!). Vấn đề là, LLM của bạn cần truy cập dữ liệu này theo cách không yêu cầu bạn sao chép và dán.
- Atlassian MCP: Dành cho các ticket Jira và trang Confluence. Ở đây tôi sử dụng MCP vì tôi thấy API khó làm việc trực tiếp.
Biến mọi kiến thức thành dạng AI có thể tiếp nhận
Mỗi startup đều có MỘT người biết tính năng X hoạt động như thế nào, dự án Clojure huyền bí đó làm gì, hoặc cách kết nối Salesforce trong môi trường phát triển cục bộ. Trước đây, bạn sẽ phải lên lịch một cuộc họp, ghi chép nhanh chóng, có thể ghi âm lại. Sau đó, chúc may mắn khi xem lại video dài hàng giờ mỗi khi bạn cần làm theo các bước.
Đây là mẹo: AI có thể trích xuất kiến thức truyền miệng đó và biến nó thành tài liệu vĩnh viễn, có thể truy vấn được.
Một bản tóm tắt từ Meeting Copilot sẽ không đủ ở đây. Khi bạn cần chi tiết mở rộng (các bước cần làm theo, các quyết định lịch sử, các lệnh cụ thể), một bản tóm tắt sẽ mất quá nhiều thông tin. Bạn cần nguyên liệu thô: video + bản ghi.
Đây là những gì tôi làm:
- Ghi lại buổi chuyển giao kiến thức. Gửi một Meeting Copilot, hoặc chỉ cần quay màn hình trong khi chuyên gia hướng dẫn bạn qua quy trình.
- Lấy video + bản ghi. Bạn cần cả hai. Bản ghi ghi lại những gì đã nói, nhưng chia sẻ màn hình cho thấy những gì đã làm.
- Trích xuất các khung hình từ video. Claude chưa thể xử lý video trực tiếp (chưa), nhưng nó có thể xử lý hình ảnh. Tôi sử dụng ffmpeg để lấy một khung hình sau mỗi vài giây:
ffmpeg -i meeting_recording.mp4 -vf "fps=1/3" frames/frame_%04d.png
- Chỉ Claude vào các khung hình + bản ghi. Yêu cầu nó tạo một hướng dẫn chi tiết, sử dụng các khung hình làm ảnh chụp màn hình nội tuyến khớp với các bước liên quan.
Kết quả thật đáng kinh ngạc. Claude đã tạo ra một hướng dẫn từng bước với các ảnh chụp màn hình được chọn chính xác dựa trên những gì đang được thảo luận ở mỗi thời điểm, lấy thông tin từ cả bản ghi và màn hình được chia sẻ.
Bây giờ bạn có một hướng dẫn mà bạn sẽ không bao giờ cần phải tạo lại. Nhưng đây là lợi ích thực sự: cung cấp hướng dẫn đó lại cho Claude, và nó có thể tự thực hiện tác vụ cho bạn.
Đây là ý tôi khi nói đến việc biến kiến thức thành dạng AI có thể tiếp nhận. Trích xuất kiến thức truyền miệng một lần, và nó sẽ có sẵn cho AI mãi mãi. Thời gian của chuyên gia được lưu giữ, không bị mất đi.
Học hỏi trong ngữ cảnh
Việc học một công nghệ mới từng rất tẻ nhạt. Đọc tài liệu, thử các ví dụ nhỏ, có thể tạo một boilerplate khởi đầu. Nhưng những thứ đó không bao giờ giống như các trường hợp sử dụng thực tế. Bạn sẽ hiểu cú pháp mà không hiểu cách nó phù hợp với một codebase thực tế với các ràng buộc thực tế.
Claude Code đảo ngược điều này. Thay vì học một cách cô lập, tôi học trong ngữ cảnh: ứng dụng thực tế của tôi, độ phức tạp thực tế của tôi, các yêu cầu thực tế của tôi.
Điều đó trông như thế này:
- Hỏi Claude: “Công nghệ [công nghệ X] sẽ mang lại điều gì cho ứng dụng này? Các đánh đổi là gì?”
- Yêu cầu nó thực sự triển khai.
- Yêu cầu nó thay thế bằng một tùy chọn cạnh tranh.
- So sánh chúng song song, trong codebase của bạn.
Một ví dụ thực tế: tôi đang xây dựng một ứng dụng cần các quy trình tác nhân và muốn đánh giá các framework: OpenAI Agents SDK, Claude Agents SDK, Google ADK và AWS Strands. Tôi đã nhờ Claude xây dựng POC với OpenAI SDK trước, giải thích kiến trúc và các đánh đổi khi nó thực hiện. Khi tôi hiểu cách hoạt động của nó, tôi mở nhiều terminal Claude và yêu cầu nó xây dựng lại cùng một chức năng với mỗi framework còn lại, đồng thời tài liệu hóa sự khác biệt.
Chỉ trong một buổi chiều, tôi đã có bốn triển khai hoạt động và một cảm nhận rõ ràng về các đánh đổi. Tất cả trong mã đang chạy mà tôi có thể sửa đổi và mở rộng.
Sau đó, tôi đẩy xa hơn. Tôi đã nghe loáng thoáng rằng Temporal có thể giúp với “các quy trình làm việc dài hạn” và các mẫu “human-in-the-loop”, nhưng tôi không biết điều đó sẽ phù hợp hoặc giúp ích cho ứng dụng của mình như thế nào.
Vì vậy, tôi hỏi Claude: “Những tính năng Temporal nào có thể giúp tôi ở đây?” Nó đã đưa ra bảy trường hợp sử dụng cụ thể, bao gồm kịch bản chính xác tôi cần, mỗi trường hợp kèm theo đề xuất về các phần của codebase của tôi có thể giúp ích, cùng với các diff và giải thích cho từng cái.
Nhưng tôi không dừng lại ở đó. Sau khi xem xét các khuyến nghị và hiểu các đề xuất, tôi hỏi: “Vậy, tại sao Temporal lại cần thiết? Tôi không thể đạt được điều này mà không có nó sao?” Và nó đã cho tôi một so sánh song song về cả hai kiến trúc, với các mẫu mã song song được lấy trực tiếp từ ứng dụng tôi đã xây dựng.
Đó là sự khác biệt. So sánh thực tế, trong mã của bạn, cho trường hợp sử dụng của bạn. Vì vậy, bạn có thể học hỏi và hiểu bằng cách tìm hiểu những điều mới trong một ngữ cảnh thực sự quan trọng và có ý nghĩa đối với bạn.
Sử dụng nhiều công cụ AI cùng nhau
Mỗi mô hình đều có điểm mù. Trong bất kỳ lần chạy nào, một mô hình có thể bỏ lỡ một trường hợp biên, một mô hình khác có thể thiết kế quá mức, một mô hình khác có thể áp dụng một cách tiếp cận kiến trúc hoàn toàn khác. Khi bạn chạy cùng một tác vụ phức tạp qua nhiều mô hình và so sánh các kết quả đầu ra của chúng, chính sự khác biệt sẽ tiết lộ những đánh đổi mà bạn sẽ không xem xét.
Đối với bất kỳ tác vụ không tầm thường nào, tôi sẽ prompt:
- Claude (thông qua Claude Code)
- Codex (OpenAI)
- Gemini CLI (hiện tại được trợ cấp, về cơ bản là miễn phí)
Sau đó, tôi so sánh các cách tiếp cận của chúng. Đôi khi một mô hình phát hiện ra các trường hợp biên mà những mô hình khác bỏ lỡ. Đôi khi chúng đề xuất các kiến trúc hoàn toàn khác. Bằng cách kết hợp các hiểu biết từ nhiều kết quả đầu ra, tôi thường có được một triển khai mạnh mẽ hơn so với bất kỳ mô hình nào có thể tạo ra một mình.
Tôi cũng thực hiện đánh giá chéo mô hình. Sau khi một AI tạo ra một kế hoạch hoặc mã, tôi nhờ một AI khác xem xét nó:
Đây là một kế hoạch mà Claude đã tạo cho [TASK]:
[Dán kế hoạch vào đây]
Vui lòng xem xét kế hoạch này và xác định:
1. Các trường hợp biên tiềm ẩn chưa được đề cập
2. Các lo ngại về bảo mật
3. Các tác động về hiệu suất
4. Xử lý lỗi bị thiếu
5. Các cách tiếp cận thay thế đơn giản hơn
Hãy coi nó như một diễn đàn AI. Bạn đặt các mô hình vào cuộc cạnh tranh lành mạnh, cho phép chúng thách thức và tinh chỉnh suy nghĩ của nhau. Kết quả tốt hơn những gì bất kỳ mô hình nào có thể tạo ra một mình, và bạn đạt được điều đó nhanh hơn so với việc chỉ làm việc qua lại với một mô hình.
Phần 2: Cách Sử Dụng Claude Code để Cải Thiện Cuộc Sống Của Bạn
Vài tuần trước, tôi đọc bài viết “The Personal Panopticon” của Molly Cantillon và nó đã thay đổi hoàn toàn cách tôi suy nghĩ. Ý tưởng cốt lõi của cô ấy là: chúng ta đang chìm trong dữ liệu về bản thân nhưng vẫn mù quáng một cách thảm hại. Các cam kết của chúng ta nằm rải rác trên sáu ứng dụng khác nhau mà không có sự gắn kết. Tài chính của chúng ta nằm rải rác trên các sàn giao dịch không liên kết với nhau. Các mục tiêu của chúng ta nằm trong một ghi chú bị lãng quên từ tháng Một. Chúng ta có nhiều thông tin về bản thân hơn bất kỳ con người nào trong lịch sử, nhưng chúng ta hầu như không thể nhìn thấy bất kỳ điều gì trong số đó.
Giải pháp của cô ấy cho vấn đề này rất đơn giản: Xây dựng panopticon của riêng bạn. Đặt mình vào trung tâm. Sử dụng Claude Code như một công cụ quan sát, nhưng hướng nó vào bên trong. Cô ấy chạy nhiều phiên bản Claude Code song song, mỗi phiên bản theo dõi một phần khác nhau trong cuộc sống của mình. Tài chính, sức khỏe, email, dự án cá nhân. Tài chính của cô ấy được tổng hợp qua đêm từ nhiều sàn giao dịch, đối chiếu với dữ liệu thị trường, và cô ấy thức dậy với một bản tóm tắt ngắn gọn. Các chỉ số sản phẩm của cô ấy được kéo tự động và biến thành các thông tin chi tiết có thể hành động. Email của cô ấy đạt inbox zero với các trả lời tự động được soạn thảo mà cô ấy chỉ cần xem xét lại.
Tôi chưa đạt đến mức độ đó. Nhưng tôi đã bắt đầu xây dựng theo hướng đó.
Tôi có một thư mục chính với tệp CLAUDE.md nơi tôi cho Claude biết về cơ bản mọi thứ về tôi, hoặc hướng dẫn nó kéo dữ liệu từ các nguồn bên ngoài để biết:
- Tôi là ai: tên, tuổi, quê quán, nơi ở
- Tình trạng gia đình: đã kết hôn, một con, sắp có thêm
- Công việc hiện tại, công ty tôi làm việc
- Kỹ năng và những lỗ hổng kiến thức của tôi
- Thu nhập hàng năm của tôi
- Thu nhập hàng năm của vợ tôi
- Các khoản chi tiêu của chúng tôi (tiền thuê nhà, tiện ích, đăng ký dịch vụ, mọi thứ)
- Tài sản của chúng tôi (tiết kiệm, đầu tư, bất động sản)
- Lịch trình của tôi trong một ngày bình thường
- Các mục tiêu cuộc sống tổng thể (mục tiêu hưu trí, kế hoạch du lịch, nơi chúng tôi muốn sống lâu dài)
- Các dự án ngắn hạn (học một kỹ năng mới, sửa sang nhà cửa, cân nhắc công việc)
- Thông tin sức khỏe liên quan đến các quyết định
- Các mối quan hệ và cam kết quan trọng
Vâng, về cơ bản là mọi thứ cần biết về tôi. Tôi biết điều đó nghe có vẻ thế nào. Nhưng tôi nhận ra rằng Claude càng biết nhiều, nó càng trở nên hữu ích. Khi tôi hỏi “tôi có nên nhận lời đề nghị công việc này không?”, nó không đưa ra lời khuyên chung chung về ưu và nhược điểm. Nó biết tình hình tài chính của tôi, quỹ đạo sự nghiệp của tôi, kế hoạch gia đình của tôi, mức độ chấp nhận rủi ro của tôi. Nó thực sự có thể suy luận về tình hình CỦA TÔI, chứ không phải của một người giả định nào đó.
Để bắt đầu điều này, tôi đã yêu cầu ChatGPT (có tính năng bộ nhớ) tạo một hướng dẫn hồ sơ cá nhân toàn diện để Claude Code có thể tiếp nhận. Vì ChatGPT đã biết khá nhiều về tôi từ các cuộc trò chuyện của chúng tôi trong năm qua, nó đã có thể biên soạn một điểm khởi đầu khá tốt. Sau đó, tôi xem xét lại, thêm chi tiết, sửa những điều nó làm sai, và bây giờ tôi tiếp tục cập nhật nó khi mọi thứ thay đổi.
Một số câu hỏi thực tế mà Claude đã giúp tôi trả lời:
- Lập kế hoạch tài chính: “Với thu nhập, chi phí và em bé sắp chào đời của chúng ta, liệu chúng ta có đủ khả năng chuyển đến một căn hộ lớn hơn không?”
- Tối ưu hóa lịch trình: “Tôi muốn bắt đầu chạy bộ lại nhưng buổi sáng của tôi rất bận rộn. Hãy xem xét thói quen của tôi và gợi ý một khoảng thời gian.”
- Ra quyết định: “Người quản lý của tôi đã đề nghị tôi thay đổi vai trò này. Đây là những gì tôi biết về nó. Tôi đang bỏ qua điều gì?”
- Theo dõi mục tiêu: “Đã 3 tháng kể từ khi tôi đặt ra những mục tiêu này. Hãy mở tệp lên và giúp tôi xem xét tiến độ.”
Và không giống như một cố vấn con người mà bạn sẽ phải giải thích lại toàn bộ tình hình của mình mỗi lần, Claude chỉ cần đọc tệp và có đầy đủ ngữ cảnh ngay lập tức.
Tôi cũng bắt đầu thử nghiệm với Clawdbot, một trợ lý tự lưu trữ kết nối Claude với các ứng dụng nhắn tin của tôi. Vì vậy, thay vì mở terminal, tôi có thể chỉ cần nhắn tin cho AI của mình qua WhatsApp hoặc Telegram, từ bất cứ đâu.
Cantillon kết thúc bài luận của mình với lời nhắn: “Các công cụ tổng hợp giờ đây thuộc về mỗi cá nhân. Hãy tự quản lý bản thân cho phù hợp.” Tôi đang cố gắng làm điều đó.



