- Claude Code khai thác giao diện terminal phổ biến và linh hoạt, cho phép tích hợp liền mạch vào quy trình làm việc của nhà phát triển mà không cần công cụ mới.
- Sản phẩm đánh dấu sự quay trở lại của giao diện dựa trên văn bản, tận dụng khả năng của Mô hình ngôn ngữ lớn (LLM) để tương tác hiệu quả, loại bỏ sự phức tạp của các lớp trừu tượng UI.
- Nó nâng cấp quy trình phát triển từ chỉnh sửa mã cấp dòng lên cấp độ tệp/tác vụ, cho phép nhà thiết kế tham gia sâu hơn vào việc tạo mẫu, ước tính và hoàn thiện sản phẩm.
Designing Claude Code
- Tận dụng Terminal để Phát triển Nhanh: Claude Code được xây dựng trong giao diện terminal để dễ dàng xây dựng, lặp lại tính năng và tích hợp trực tiếp vào quy trình làm việc phổ biến của mọi nhà phát triển, dù họ dùng IDE hay Vim.
- Thiết kế Tối ưu cho LLM: LLM hoạt động hiệu quả nhất với giao diện văn bản (terminal) vì "văn bản vào, văn bản ra", loại bỏ nhu cầu về giao diện người dùng phức tạp và trừu tượng.
- Nâng cấp Quy trình Phát triển bằng AI: Claude Code chuyển đổi từ tự động hoàn thành cấp dòng sang thay đổi toàn bộ tệp hoặc tác vụ, với tầm nhìn tương lai là điều phối cấp độ dự án bằng các tác nhân AI tự chủ.
- Kiến trúc Tích hợp Điều khiển Giao diện: Claude Code sử dụng kiến trúc terminal với cờ lệnh và lệnh, đồng thời giới thiệu mô hình nhập câu lệnh (prompt) riêng biệt và tích hợp cài đặt qua
settings.jsonvàClaude.md. - Nguyên tắc Thiết kế tập trung vào Hiệu quả: Thiết kế ưu tiên sự sạch sẽ, tập trung vào tác vụ và cho phép khả năng "thô" của mô hình AI tỏa sáng, tránh "thiết kế quá mức" (over-design).
- Tăng cường Vai trò của Nhà Thiết kế: Claude Code cho phép các nhà thiết kế nhanh chóng tạo mẫu thử nghiệm ý tưởng, động não các trường hợp sử dụng, ước tính phạm vi và thậm chí đẩy mã lên môi trường sản xuất để hoàn thiện thiết kế sản phẩm.
- Cải thiện Hợp tác Kỹ thuật: Nó không chỉ mở khóa bộ kỹ năng mới cho người không chuyên về kỹ thuật mà còn tăng cường sự hợp tác giữa nhà thiết kế và kỹ sư bằng cách cho phép thử nghiệm ban đầu và thảo luận sâu hơn.
Claude Code— Claude Code (tên sản phẩm)Terminal— Thiết bị đầu cuối / Giao diện dòng lệnhCommand Line Interface (CLI)— Giao diện dòng lệnhLarge Language Model (LLM)— Mô hình ngôn ngữ lớnIntegrated Development Environment (IDE)— Môi trường phát triển tích hợpworkflow— quy trình làm việcprompt— câu lệnh (đầu vào cho AI)UI abstraction— trừu tượng giao diện người dùngPull Request— yêu cầu hợp nhất mã / yêu cầu kéosub-agent— tác nhân phụprototyping— tạo mẫu thử nghiệmdesign principles— nguyên tắc thiết kế
Giới thiệu về Claude Code và Giao diện Terminal
Xin chào, tôi là Alex, phụ trách quan hệ đối tác điện toán đám mây tại Anthropic. Hôm nay, chúng ta sẽ nói về thiết kế cho Claude Code, và đồng hành cùng tôi là đồng nghiệp Megan. Chào, tôi là Megan, trưởng nhóm thiết kế cho Claude Code. Megan, tôi muốn bắt đầu với yếu tố hình thức rất độc đáo mà Claude Code có. Chúng tôi đã xây dựng sản phẩm lập trình này và nó hoạt động bên trong một terminal. Bạn có thể cho tôi biết làm thế nào chúng ta có được điều đó không? Chắc chắn rồi. Nếu bạn đã xem một số video trước đây của chúng tôi, bạn sẽ biết rằng Claude Code là ý tưởng chủ đạo của một vài người tại Anthropic, những người thực sự đam mê khả năng của Claude trong việc giải quyết các vấn đề lập trình và giúp đỡ các nhà phát triển. Và một phần quyết định ban đầu cho việc sử dụng Giao diện dòng lệnh (Command Line Interface) thực sự chỉ là sự dễ dàng của yếu tố hình thức để có thể xây dựng rất nhanh chóng và lặp lại trên các tính năng và chức năng. Nhưng tôi nghĩ từ đó, thực sự đi ngược lại kỳ vọng của tôi và tất cả chúng tôi, nó đã tự phát triển vì nó rất linh hoạt. Một terminal có mặt trong mọi quy trình làm việc của nhà phát triển, dù bạn chủ yếu làm việc trong Môi trường phát triển tích hợp (IDE) hay chỉ là một người dùng Vim, bạn đều sử dụng terminal như một phần trong quy trình làm việc của mình theo cách này hay cách khác. Và vì vậy, nó cho phép bạn tích hợp trực tiếp vào quy trình làm việc của nhà phát triển ngay tại nơi họ đang làm việc, mà không cần phải sử dụng một công cụ mới nào. Tôi nghĩ đó là một điểm rất hay. Terminal đã là một thành phần nền tảng của phát triển phần mềm kể từ đó, về cơ bản là từ rất lâu rồi, chừng nào chúng ta còn làm công việc này. Vì vậy, việc nhúng thế hệ tiếp theo của một sản phẩm lập trình vào đó gần như là điều tự nhiên. Nhưng Claude Code làm được một số điều mà tôi không nghĩ là có thể với một terminal. Vậy bạn có thể cho tôi biết về lịch sử của các sản phẩm terminal cho đến nay và Claude Code là bước tiếp theo như thế nào không?
Sự Phát triển của Giao diện Người dùng và LLM
Đúng vậy, đây là điều mà cá nhân tôi rất đam mê. Tôi nghĩ terminal là giao diện người dùng đầu tiên, phải không? Là những cách đầu tiên con người dùng để nói chuyện với máy tính, chúng chỉ là văn bản, có những lệnh rất cụ thể bạn cần biết để có thể tương tác với các thiết bị này. Và chúng giống như một công cụ siêu mạnh. Và rồi từ đó, chúng ta phát triển thành những giao diện web thực sự phong phú. Chúng ta có tất cả những giao diện người dùng web đẹp mắt này. Chúng ta có Tailwind, có CSS, có JavaScript. Mọi thứ trở nên rất sống động và bóng bẩy. Nhưng sau đó, khi Mô hình ngôn ngữ lớn (LLM) xuất hiện, chúng ta thực sự quay trở lại việc chỉ trò chuyện với máy tính. Bạn không thực sự cần tất cả những nút bấm này. Bạn chỉ cần trò chuyện. Và tôi nghĩ terminal, điều thú vị là, thực sự là yếu tố hình thức hoàn hảo cho một LLM. Bởi vì bạn đưa văn bản vào, bạn nhận văn bản ra. Và nó rất tự nhiên với cách bạn nghĩ về việc sử dụng một giao diện dòng lệnh mà tôi nghĩ đó là một sự kết hợp tuyệt vời giữa những gì công nghệ có thể làm và những gì sản phẩm có thể làm. Và rồi thật trùng hợp là các nhà phát triển cũng dành thời gian của họ ở đó. Vì vậy, thật tuyệt. Tôi hiểu rồi. Vậy chúng ta gần như đang đi một vòng tròn hoàn chỉnh ở một mức độ nào đó, bởi vì mô hình AI cho phép chúng ta làm điều đó và loại bỏ nhu cầu về các lớp trừu tượng giao diện người dùng mà chúng ta đã phải phát triển trước đây cho các ứng dụng khác nhau. Chính xác, chính xác. Tôi cũng nghĩ một phần lớn lý do Claude Code thành công là không ai thích sao chép và dán mọi thứ từ giao diện người dùng web sang tệp cục bộ của bạn. Tôi chắc chắn làm điều này mọi lúc khi tôi sử dụng Claude AI. Và vì vậy, việc có thể làm việc nguyên bản trong môi trường nơi mọi thứ tồn tại là một phần rất phong phú của trải nghiệm. Nhưng nó cũng đi kèm với một số thách thức. Giao diện dòng lệnh (Command Line Interface) không nhất thiết là bề mặt tương tác phong phú nhất.
Nâng cấp Workflow của Nhà phát triển
Hãy nói nhiều hơn về phần quy trình làm việc đó, bởi vì tôi nhớ rất rõ khi tôi lần đầu tiên sử dụng Claude và các mô hình ngôn ngữ lớn để lập trình. Và tôi sẽ truy cập trang web Claude.ai và nhập một câu lệnh rồi dán một tệp. Sau đó, rõ ràng là khi tôi nhận được mã đầu ra và tôi phải sao chép nó, tìm tệp của mình. Tôi như một máy tính cục bộ, dán nó vào, tự chỉnh sửa thủ công. Và bây giờ chúng tôi đã loại bỏ phần đó khỏi quy trình làm việc của nhà phát triển và đi thẳng từ câu lệnh đến các chỉnh sửa trực tiếp trên tệp. Hãy cho tôi biết thêm một chút về cách chúng tôi đang nghĩ về các lần lặp lại trong tương lai của quy trình làm việc phát triển và vòng lặp phát triển này trong Claude Code. Chắc chắn rồi. Tôi nghĩ cách tôi và nhiều người trong nhóm đã nghĩ về nó là quy trình làm việc của nhà phát triển ban đầu bắt đầu bằng việc viết các dòng mã. Giống như bạn đang ở cấp độ từ, cấp độ hàm, và đó là nơi bạn dành thời gian. Và rồi sự phát triển Trí tuệ nhân tạo (AI) lớn đầu tiên cho lập trình là tự động hoàn thành bằng tab. Nhưng đó vẫn không phải là mã ở cấp độ dòng. Khi chúng ta đến với thế hệ đầu tiên của Claude Code, chúng ta đang nâng cấp nó lên thành thay đổi toàn bộ tệp, hoặc thay đổi toàn bộ tác vụ, gần như ở cấp độ yêu cầu kéo (Pull Request). Và tất nhiên có một số điều Claude Code có thể làm tốt hơn hoặc tệ hơn, nhưng chúng ta đang cố gắng đi theo hướng đó. Theo thời gian, khi các mô hình AI của chúng ta trở nên thông minh hơn, khi khả năng của chúng ta trở nên mạnh mẽ hơn, tôi nghĩ chúng ta sẽ không chỉ chuyển từ một tác vụ cụ thể, mà gần như sang cấp độ dự án, nơi bạn đang điều phối nhiều Claude từ nhiều nơi để có thể hoàn thành một điều gì đó. Và tôi nghĩ tác vụ sẽ chạy lâu hơn, và Claude sẽ tự chủ hơn rất nhiều. Và vì vậy, bạn sẽ đến một nơi mà tôi tin rằng cuối cùng, chúng ta có thể sẽ tạo ra thuật toán CLI, nhưng bạn cũng đang hoạt động ở một quy trình làm việc cấp cao hơn so với trước đây với tư cách là một nhà phát triển. Được rồi, liên quan đến mặt trận tác nhân, tôi biết rằng chúng tôi vừa mới, vài tuần trước, đã phát hành một sản phẩm tác nhân phụ. Hãy nói thêm về điều đó và cách mô hình lệnh gạch chéo và quy trình làm việc của tác nhân phụ và một số tính năng khác mà chúng tôi đã triển khai dưới nền tảng của Claude Code. Làm thế nào để tất cả những điều đó kết nối với nhau?
Triết lý Thiết kế và Kiến trúc của Claude Code
Vâng, chắc chắn rồi. Tôi nghĩ một phần lý do terminal rất tuyệt vời là vì nó có một kiến trúc tích hợp về cách bạn kiểm soát giao diện. Bạn có các cờ lệnh mà bạn nhập khi khởi chạy Claude, và sau đó bạn có các lệnh mà bạn có trong một terminal. Và chúng tôi đã giới thiệu một mô hình rất mới, đó là nhập câu lệnh trong terminal. Đã có rất nhiều cuộc tranh luận. Tôi thậm chí có một tài liệu với Boris từ, tôi nghĩ là tháng 11, tháng 12 năm ngoái về việc, chúng ta không thể đặt đường viền trong terminal vì khi bạn thay đổi kích thước cửa sổ, nó sẽ làm hỏng mọi thứ. Mọi trải nghiệm tôi có với việc thiết kế cho Giao diện dòng lệnh (Command Line Interface) trước đây, tôi tránh các đường viền như tránh bệnh dịch vì nó làm hỏng mọi thứ khi bạn gặp vấn đề. Đường viền là gì? Nó giống như đường viền xung quanh ô nhập liệu mà bạn có bây giờ. Bạn có xu hướng tránh chúng trong thiết kế Giao diện dòng lệnh (Command Line Interface) vì khi bạn thay đổi kích thước, tất cả chỉ là ký tự và khoảng trắng. Và vì vậy nó không căn chỉnh đúng cách. Nhưng Boris đã có một tầm nhìn, và tôi đã sai. Chúng tôi đã tìm thấy một thư viện tuyệt vời và một giao diện tuyệt vời, và đội ngũ đã làm việc rất chăm chỉ để làm cho nó dễ sử dụng. Và vì vậy, sự kết hợp giữa khả năng tách biệt việc nhập câu lệnh của bạn, đó là cách bạn nói chuyện với mô hình AI, và sau đó là các công cụ bạn có sẵn, đó là lệnh gạch chéo của chúng tôi, và các cài đặt cùng cách bạn cấu hình nó, nằm trong settings.json và Claude.md của chúng tôi, tôi nghĩ đó là kiến trúc cung cấp sức mạnh cho Claude Code, nhưng cũng chỉ là một phần của kiến trúc phát triển phần mềm thông thường. Một tệp README cũng rất giống. Vì vậy, nó kết hợp rất đẹp. Làm thế nào chúng ta thực sự thiết kế những thứ mới? Như hộp đường viền hoặc chỉ là tính thẩm mỹ trực quan? Chúng ta có tuân theo các nguyên tắc thiết kế nào không? Có quy tắc nào không hay chỉ cần hướng dẫn tôi qua quá trình đó?
Các Nguyên tắc Thiết kế và Tính Thẩm mỹ của Claude Code
Vâng, chắc chắn rồi. Tôi phải nói rằng mọi người ở Anthropic đều là một nhà phát minh chứ không chỉ riêng nhóm Claude Code. Vì vậy, phần lớn là một nhóm nhỏ gồm một hoặc hai kỹ sư đưa ra ý tưởng và sau đó tạo mẫu thử nghiệm chúng, rồi chúng tôi kiểm tra nội bộ nghiêm ngặt. Phần lớn, chúng được sử dụng bởi tất cả mọi người tại Anthropic, mọi người đều sử dụng Claude Code. Và đó là nơi chúng tôi nhận được rất nhiều phản hồi. Và sau đó, chúng tôi thường thực hiện một chu trình trau chuốt UX vào cuối khi chúng tôi cảm thấy rằng chúng tôi đã có hình dạng đúng đắn của công nghệ này. Tác nhân phụ là một trường hợp rất nhanh chóng, từ một ý tưởng trở thành sản phẩm, và có một chút chỉnh sửa thiết kế về cách chúng tôi hiển thị một tác nhân phụ và phân biệt giữa một tác nhân phụ với Claude, cách bạn thiết lập nó, tương tự với Giao thức Ngữ cảnh Mô hình (MCP). Nhưng các nguyên tắc lớn mà tôi giữ vững và thúc đẩy một cách mạnh mẽ là, bạn biết đấy, một Giao diện dòng lệnh (Command Line Interface) là một giao diện rất hạn chế. Chúng ta cần giữ nó sạch sẽ nhất có thể. Và vì vậy, chúng tôi muốn đảm bảo rằng chúng tôi không làm ngập nó với nhiều thông tin và chỉ giữ nó thực sự tập trung vào các tác vụ mà bạn đang thực hiện. Điều thứ hai là chúng tôi thực sự muốn mô hình AI tỏa sáng, bởi vì cuối cùng, một phần lý do Giao diện dòng lệnh (Command Line Interface) rất hay là vì nó là một lớp bọc mỏng nhất có thể xung quanh các mô hình AI của chúng tôi. Và vì vậy bạn chỉ cần truy cập vào khả năng thô của Claude. Và đó thành thật mà nói là điều khiến Claude Code trở nên mạnh mẽ đến vậy. Bạn có bất kỳ điểm nhấn thiết kế nhỏ yêu thích nào hoặc những điều chạm đến cảm xúc trong Claude Code không? Chắc chắn có. Tôi thực sự thích hiển thị ASCII khi Claude đang "nghĩ" và lập kế hoạch. Tôi nghĩ những điều đó tạo nên một cá tính tuyệt vời cho Claude. Và tôi cũng thực sự, thực sự thích các chế độ khác nhau, cách chúng tôi đã phác thảo nếu bạn đang ở chế độ suy nghĩ hoặc chế độ lập kế hoạch hoặc chế độ tự động chấp nhận. Tôi nghĩ đó chỉ là một cách rất phong phú để truyền đạt thông tin phức tạp theo cách mà mọi người có thể hiểu được. Tôi đồng ý. Và tôi cũng yêu những nét cá tính đó. Đôi khi, quá trình lập trình có thể là một điều gì đó robot. Bạn đang làm việc với các dòng mã và rất nhiều ký tự. Nhưng khi bạn sử dụng Claude Code, nó gần như là một trải nghiệm khác. Và nó khơi gợi một cảm xúc khác so với việc tôi chỉ ở trong một IDE và gõ từng dòng mã. Vâng, chắc chắn rồi. Tôi nghĩ thực sự có rất nhiều điều phong phú bạn có thể làm trong terminal. Và đôi khi thậm chí là kéo chúng ta lại. Giống như, ồ, thực ra, chúng ta không cần phải thiết kế quá mức điều này. Chúng ta chỉ có thể để mô hình AI xử lý nó. Bởi vì thành thật mà nói, nó thực sự giỏi trong việc đó. Thật tuyệt vời.
Mẹo và Thực tiễn tốt nhất khi sử dụng Claude Code
Tôi thực sự tò mò muốn nghe một số mẹo và thực tiễn tốt nhất của bạn khi sử dụng Claude Code, đặc biệt với tư cách là một nhà thiết kế và không phải là một người chuyên về kỹ thuật truyền thống. Bạn sử dụng Claude Code tốt nhất hàng ngày như thế nào? Tôi thích câu hỏi này. Đó là điều mà cá nhân tôi rất đam mê. Tôi là một nhà thiết kế sản phẩm. Tôi sẽ là người đầu tiên thừa nhận rằng tôi không nên viết bất kỳ mã nào. Và bất kỳ mã nào tôi viết chắc chắn được viết ẩu và cần được xem xét. Nhưng Claude và tất cả các tác nhân lập trình này đã mở khóa một bộ kỹ năng mới, hoặc giống như một cây kỹ năng mới cho những người không chuyên về kỹ thuật, nơi mà trước đây tôi có thể cần yêu cầu thời gian từ một kỹ sư phần mềm hoặc bỏ qua một số thứ nếu nó không nhất thiết đạt được mức độ ưu tiên phù hợp, bây giờ tôi có một bộ kỹ năng mới để tự mình làm điều đó. Và vì vậy, hai trục chính mà bạn sẽ nghe rất nhiều nhà thiết kế nói về, đầu tiên là chi phí cho một ý tưởng là bằng không. Bạn có thể tạo mẫu thử nghiệm rất, rất nhanh. Và tôi nghĩ điều đó thú vị, nhưng nó thực sự không phải là điểm mở khóa thú vị nhất đối với tôi. Tôi nghĩ điểm mở khóa thú vị hơn là tôi thực sự có thể đẩy mã lên môi trường sản xuất. Nó có thể thực hiện những thay đổi mà tôi muốn. Tôi đang ở trong cơ sở mã trực tiếp. Và vì vậy, một số trường hợp sử dụng phổ biến nhất mà tôi làm, gần như hàng ngày, là nếu tôi đang thiết kế một tính năng mới, tôi sẽ động não với Claude Code trước. Tôi sẽ hỏi, đâu là các trường hợp sử dụng phổ biến ở đây? Đâu là các trạng thái biên mà tôi nên nghĩ đến? Bạn sẽ thiết kế điều này như thế nào? Và sau đó tôi sẽ thực hiện một số lần lặp lại từ đó. Tôi cũng đôi khi yêu cầu Claude Code giúp tôi ước tính phạm vi thiết kế mà tôi đã đề xuất. Tôi sẽ vẽ, tôi có thể thả nó dưới dạng hình ảnh. Tôi sẽ hỏi, này, bạn nghĩ sẽ mất bao lâu để làm điều này? Và Claude sẽ cung cấp cho tôi ước tính để tôi có thể, bạn biết đấy, thảo luận thân thiện với các kỹ sư.
Tối ưu hóa Hoàn thiện Thiết kế Sản phẩm
Mất bao lâu để thực sự xây dựng một thứ gì đó, và chúng tôi đạt được một thỏa hiệp. Và điểm cuối cùng là, bạn biết đấy, khi ra mắt một sản phẩm mới, bạn thường không thực sự có thời gian để hoàn thiện 2% cuối cùng về mặt thiết kế mà bạn luôn muốn làm. Điều này không còn đúng nữa, bởi vì tôi có thể trực tiếp vào đó sau khi các kỹ sư hoàn thành công việc, và vào ngày cuối cùng trước khi ra mắt, hoặc thậm chí trong vài ngày sau khi ra mắt, tôi sẽ thực hiện và dọn dẹp tất cả những thứ được coi là P2 mà tôi thực sự muốn có trong sản phẩm. Wow, thật tuyệt vời. Tôi rất thích điều đó. Và đó là những mẹo hữu ích.
Sự Hội tụ giữa Nhà Thiết kế và Kỹ sư
Thật thú vị khi nghe về sự hội tụ này, gần như là sự hợp nhất giữa nhà thiết kế và kỹ sư thành một kỹ sư thiết kế, theo một nghĩa nào đó, nhờ vào Claude Code và những gì nó mang lại.
Nâng cao Hợp tác Kỹ thuật
Vâng, hoàn toàn đúng. Và tôi nghĩ một điều mà nó thực sự mang lại một cách đáng ngạc nhiên cho tôi, là nó đã cải thiện đáng kể mối quan hệ hợp tác của tôi với các kỹ sư, bởi vì có rất nhiều điều mà tôi thành thật mà nói không thể tự mình làm được ở thời điểm hiện tại. Nhưng ngay cả việc thử nghiệm lần đầu và sau đó chat với kỹ sư cũng khiến sự hợp tác của chúng tôi mạnh mẽ hơn rất nhiều. Vì vậy, nó không chỉ mang lại cho bạn một bộ kỹ năng mới. Nó còn giúp bạn cộng tác tốt hơn với các đối tác, điều mà tôi nghĩ là một phần thực sự quan trọng của quá trình này và là một chu trình hoàn chỉnh mà chúng tôi đang xây dựng. Tôi đồng ý. Thật tuyệt. Vâng, Megan, buổi nói chuyện này thật tuyệt vời. Tôi thực sự đánh giá cao cuộc trò chuyện này.
TL;DR
- Claude Code khai thác giao diện terminal phổ biến và linh hoạt, cho phép tích hợp liền mạch vào quy trình làm việc của nhà phát triển mà không cần công cụ mới.
- Sản phẩm đánh dấu sự quay trở lại của giao diện dựa trên văn bản, tận dụng khả năng của Mô hình ngôn ngữ lớn (LLM) để tương tác hiệu quả, loại bỏ sự phức tạp của các lớp trừu tượng UI.
- Nó nâng cấp quy trình phát triển từ chỉnh sửa mã cấp dòng lên cấp độ tệp/tác vụ, cho phép nhà thiết kế tham gia sâu hơn vào việc tạo mẫu, ước tính và hoàn thiện sản phẩm.
Điểm chính
- Tận dụng Terminal để Phát triển Nhanh: Claude Code được xây dựng trong giao diện terminal để dễ dàng xây dựng, lặp lại tính năng và tích hợp trực tiếp vào quy trình làm việc phổ biến của mọi nhà phát triển, dù họ dùng IDE hay Vim.
- Thiết kế Tối ưu cho LLM: LLM hoạt động hiệu quả nhất với giao diện văn bản (terminal) vì "văn bản vào, văn bản ra", loại bỏ nhu cầu về giao diện người dùng phức tạp và trừu tượng.
- Nâng cấp Quy trình Phát triển bằng AI: Claude Code chuyển đổi từ tự động hoàn thành cấp dòng sang thay đổi toàn bộ tệp hoặc tác vụ, với tầm nhìn tương lai là điều phối cấp độ dự án bằng các tác nhân AI tự chủ.
- Kiến trúc Tích hợp Điều khiển Giao diện: Claude Code sử dụng kiến trúc terminal với cờ lệnh và lệnh, đồng thời giới thiệu mô hình nhập câu lệnh (prompt) riêng biệt và tích hợp cài đặt qua
settings.jsonvàClaude.md. - Nguyên tắc Thiết kế tập trung vào Hiệu quả: Thiết kế ưu tiên sự sạch sẽ, tập trung vào tác vụ và cho phép khả năng "thô" của mô hình AI tỏa sáng, tránh "thiết kế quá mức" (over-design).
- Tăng cường Vai trò của Nhà Thiết kế: Claude Code cho phép các nhà thiết kế nhanh chóng tạo mẫu thử nghiệm ý tưởng, động não các trường hợp sử dụng, ước tính phạm vi và thậm chí đẩy mã lên môi trường sản xuất để hoàn thiện thiết kế sản phẩm.
- Cải thiện Hợp tác Kỹ thuật: Nó không chỉ mở khóa bộ kỹ năng mới cho người không chuyên về kỹ thuật mà còn tăng cường sự hợp tác giữa nhà thiết kế và kỹ sư bằng cách cho phép thử nghiệm ban đầu và thảo luận sâu hơn.
Từ vựng
Claude Code— Claude Code (tên sản phẩm)Terminal— Thiết bị đầu cuối / Giao diện dòng lệnhCommand Line Interface (CLI)— Giao diện dòng lệnhLarge Language Model (LLM)— Mô hình ngôn ngữ lớnIntegrated Development Environment (IDE)— Môi trường phát triển tích hợpworkflow— quy trình làm việcprompt— câu lệnh (đầu vào cho AI)UI abstraction— trừu tượng giao diện người dùngPull Request— yêu cầu hợp nhất mã / yêu cầu kéosub-agent— tác nhân phụprototyping— tạo mẫu thử nghiệmdesign principles— nguyên tắc thiết kế
Nội dung chi tiết
Giới thiệu về Claude Code và Giao diện Terminal
Xin chào, tôi là Alex, phụ trách quan hệ đối tác điện toán đám mây tại Anthropic. Hôm nay, chúng ta sẽ nói về thiết kế cho Claude Code, và đồng hành cùng tôi là đồng nghiệp Megan. Chào, tôi là Megan, trưởng nhóm thiết kế cho Claude Code. Megan, tôi muốn bắt đầu với yếu tố hình thức rất độc đáo mà Claude Code có. Chúng tôi đã xây dựng sản phẩm lập trình này và nó hoạt động bên trong một terminal. Bạn có thể cho tôi biết làm thế nào chúng ta có được điều đó không? Chắc chắn rồi. Nếu bạn đã xem một số video trước đây của chúng tôi, bạn sẽ biết rằng Claude Code là ý tưởng chủ đạo của một vài người tại Anthropic, những người thực sự đam mê khả năng của Claude trong việc giải quyết các vấn đề lập trình và giúp đỡ các nhà phát triển. Và một phần quyết định ban đầu cho việc sử dụng Giao diện dòng lệnh (Command Line Interface) thực sự chỉ là sự dễ dàng của yếu tố hình thức để có thể xây dựng rất nhanh chóng và lặp lại trên các tính năng và chức năng. Nhưng tôi nghĩ từ đó, thực sự đi ngược lại kỳ vọng của tôi và tất cả chúng tôi, nó đã tự phát triển vì nó rất linh hoạt. Một terminal có mặt trong mọi quy trình làm việc của nhà phát triển, dù bạn chủ yếu làm việc trong Môi trường phát triển tích hợp (IDE) hay chỉ là một người dùng Vim, bạn đều sử dụng terminal như một phần trong quy trình làm việc của mình theo cách này hay cách khác. Và vì vậy, nó cho phép bạn tích hợp trực tiếp vào quy trình làm việc của nhà phát triển ngay tại nơi họ đang làm việc, mà không cần phải sử dụng một công cụ mới nào. Tôi nghĩ đó là một điểm rất hay. Terminal đã là một thành phần nền tảng của phát triển phần mềm kể từ đó, về cơ bản là từ rất lâu rồi, chừng nào chúng ta còn làm công việc này. Vì vậy, việc nhúng thế hệ tiếp theo của một sản phẩm lập trình vào đó gần như là điều tự nhiên. Nhưng Claude Code làm được một số điều mà tôi không nghĩ là có thể với một terminal. Vậy bạn có thể cho tôi biết về lịch sử của các sản phẩm terminal cho đến nay và Claude Code là bước tiếp theo như thế nào không?
Sự Phát triển của Giao diện Người dùng và LLM
Đúng vậy, đây là điều mà cá nhân tôi rất đam mê. Tôi nghĩ terminal là giao diện người dùng đầu tiên, phải không? Là những cách đầu tiên con người dùng để nói chuyện với máy tính, chúng chỉ là văn bản, có những lệnh rất cụ thể bạn cần biết để có thể tương tác với các thiết bị này. Và chúng giống như một công cụ siêu mạnh. Và rồi từ đó, chúng ta phát triển thành những giao diện web thực sự phong phú. Chúng ta có tất cả những giao diện người dùng web đẹp mắt này. Chúng ta có Tailwind, có CSS, có JavaScript. Mọi thứ trở nên rất sống động và bóng bẩy. Nhưng sau đó, khi Mô hình ngôn ngữ lớn (LLM) xuất hiện, chúng ta thực sự quay trở lại việc chỉ trò chuyện với máy tính. Bạn không thực sự cần tất cả những nút bấm này. Bạn chỉ cần trò chuyện. Và tôi nghĩ terminal, điều thú vị là, thực sự là yếu tố hình thức hoàn hảo cho một LLM. Bởi vì bạn đưa văn bản vào, bạn nhận văn bản ra. Và nó rất tự nhiên với cách bạn nghĩ về việc sử dụng một giao diện dòng lệnh mà tôi nghĩ đó là một sự kết hợp tuyệt vời giữa những gì công nghệ có thể làm và những gì sản phẩm có thể làm. Và rồi thật trùng hợp là các nhà phát triển cũng dành thời gian của họ ở đó. Vì vậy, thật tuyệt. Tôi hiểu rồi. Vậy chúng ta gần như đang đi một vòng tròn hoàn chỉnh ở một mức độ nào đó, bởi vì mô hình AI cho phép chúng ta làm điều đó và loại bỏ nhu cầu về các lớp trừu tượng giao diện người dùng mà chúng ta đã phải phát triển trước đây cho các ứng dụng khác nhau. Chính xác, chính xác. Tôi cũng nghĩ một phần lớn lý do Claude Code thành công là không ai thích sao chép và dán mọi thứ từ giao diện người dùng web sang tệp cục bộ của bạn. Tôi chắc chắn làm điều này mọi lúc khi tôi sử dụng Claude AI. Và vì vậy, việc có thể làm việc nguyên bản trong môi trường nơi mọi thứ tồn tại là một phần rất phong phú của trải nghiệm. Nhưng nó cũng đi kèm với một số thách thức. Giao diện dòng lệnh (Command Line Interface) không nhất thiết là bề mặt tương tác phong phú nhất.
Nâng cấp Workflow của Nhà phát triển
Hãy nói nhiều hơn về phần quy trình làm việc đó, bởi vì tôi nhớ rất rõ khi tôi lần đầu tiên sử dụng Claude và các mô hình ngôn ngữ lớn để lập trình. Và tôi sẽ truy cập trang web Claude.ai và nhập một câu lệnh rồi dán một tệp. Sau đó, rõ ràng là khi tôi nhận được mã đầu ra và tôi phải sao chép nó, tìm tệp của mình. Tôi như một máy tính cục bộ, dán nó vào, tự chỉnh sửa thủ công. Và bây giờ chúng tôi đã loại bỏ phần đó khỏi quy trình làm việc của nhà phát triển và đi thẳng từ câu lệnh đến các chỉnh sửa trực tiếp trên tệp. Hãy cho tôi biết thêm một chút về cách chúng tôi đang nghĩ về các lần lặp lại trong tương lai của quy trình làm việc phát triển và vòng lặp phát triển này trong Claude Code. Chắc chắn rồi. Tôi nghĩ cách tôi và nhiều người trong nhóm đã nghĩ về nó là quy trình làm việc của nhà phát triển ban đầu bắt đầu bằng việc viết các dòng mã. Giống như bạn đang ở cấp độ từ, cấp độ hàm, và đó là nơi bạn dành thời gian. Và rồi sự phát triển Trí tuệ nhân tạo (AI) lớn đầu tiên cho lập trình là tự động hoàn thành bằng tab. Nhưng đó vẫn không phải là mã ở cấp độ dòng. Khi chúng ta đến với thế hệ đầu tiên của Claude Code, chúng ta đang nâng cấp nó lên thành thay đổi toàn bộ tệp, hoặc thay đổi toàn bộ tác vụ, gần như ở cấp độ yêu cầu kéo (Pull Request). Và tất nhiên có một số điều Claude Code có thể làm tốt hơn hoặc tệ hơn, nhưng chúng ta đang cố gắng đi theo hướng đó. Theo thời gian, khi các mô hình AI của chúng ta trở nên thông minh hơn, khi khả năng của chúng ta trở nên mạnh mẽ hơn, tôi nghĩ chúng ta sẽ không chỉ chuyển từ một tác vụ cụ thể, mà gần như sang cấp độ dự án, nơi bạn đang điều phối nhiều Claude từ nhiều nơi để có thể hoàn thành một điều gì đó. Và tôi nghĩ tác vụ sẽ chạy lâu hơn, và Claude sẽ tự chủ hơn rất nhiều. Và vì vậy, bạn sẽ đến một nơi mà tôi tin rằng cuối cùng, chúng ta có thể sẽ tạo ra thuật toán CLI, nhưng bạn cũng đang hoạt động ở một quy trình làm việc cấp cao hơn so với trước đây với tư cách là một nhà phát triển. Được rồi, liên quan đến mặt trận tác nhân, tôi biết rằng chúng tôi vừa mới, vài tuần trước, đã phát hành một sản phẩm tác nhân phụ. Hãy nói thêm về điều đó và cách mô hình lệnh gạch chéo và quy trình làm việc của tác nhân phụ và một số tính năng khác mà chúng tôi đã triển khai dưới nền tảng của Claude Code. Làm thế nào để tất cả những điều đó kết nối với nhau?
Triết lý Thiết kế và Kiến trúc của Claude Code
Vâng, chắc chắn rồi. Tôi nghĩ một phần lý do terminal rất tuyệt vời là vì nó có một kiến trúc tích hợp về cách bạn kiểm soát giao diện. Bạn có các cờ lệnh mà bạn nhập khi khởi chạy Claude, và sau đó bạn có các lệnh mà bạn có trong một terminal. Và chúng tôi đã giới thiệu một mô hình rất mới, đó là nhập câu lệnh trong terminal. Đã có rất nhiều cuộc tranh luận. Tôi thậm chí có một tài liệu với Boris từ, tôi nghĩ là tháng 11, tháng 12 năm ngoái về việc, chúng ta không thể đặt đường viền trong terminal vì khi bạn thay đổi kích thước cửa sổ, nó sẽ làm hỏng mọi thứ. Mọi trải nghiệm tôi có với việc thiết kế cho Giao diện dòng lệnh (Command Line Interface) trước đây, tôi tránh các đường viền như tránh bệnh dịch vì nó làm hỏng mọi thứ khi bạn gặp vấn đề. Đường viền là gì? Nó giống như đường viền xung quanh ô nhập liệu mà bạn có bây giờ. Bạn có xu hướng tránh chúng trong thiết kế Giao diện dòng lệnh (Command Line Interface) vì khi bạn thay đổi kích thước, tất cả chỉ là ký tự và khoảng trắng. Và vì vậy nó không căn chỉnh đúng cách. Nhưng Boris đã có một tầm nhìn, và tôi đã sai. Chúng tôi đã tìm thấy một thư viện tuyệt vời và một giao diện tuyệt vời, và đội ngũ đã làm việc rất chăm chỉ để làm cho nó dễ sử dụng. Và vì vậy, sự kết hợp giữa khả năng tách biệt việc nhập câu lệnh của bạn, đó là cách bạn nói chuyện với mô hình AI, và sau đó là các công cụ bạn có sẵn, đó là lệnh gạch chéo của chúng tôi, và các cài đặt cùng cách bạn cấu hình nó, nằm trong settings.json và Claude.md của chúng tôi, tôi nghĩ đó là kiến trúc cung cấp sức mạnh cho Claude Code, nhưng cũng chỉ là một phần của kiến trúc phát triển phần mềm thông thường. Một tệp README cũng rất giống. Vì vậy, nó kết hợp rất đẹp. Làm thế nào chúng ta thực sự thiết kế những thứ mới? Như hộp đường viền hoặc chỉ là tính thẩm mỹ trực quan? Chúng ta có tuân theo các nguyên tắc thiết kế nào không? Có quy tắc nào không hay chỉ cần hướng dẫn tôi qua quá trình đó?
Các Nguyên tắc Thiết kế và Tính Thẩm mỹ của Claude Code
Vâng, chắc chắn rồi. Tôi phải nói rằng mọi người ở Anthropic đều là một nhà phát minh chứ không chỉ riêng nhóm Claude Code. Vì vậy, phần lớn là một nhóm nhỏ gồm một hoặc hai kỹ sư đưa ra ý tưởng và sau đó tạo mẫu thử nghiệm chúng, rồi chúng tôi kiểm tra nội bộ nghiêm ngặt. Phần lớn, chúng được sử dụng bởi tất cả mọi người tại Anthropic, mọi người đều sử dụng Claude Code. Và đó là nơi chúng tôi nhận được rất nhiều phản hồi. Và sau đó, chúng tôi thường thực hiện một chu trình trau chuốt UX vào cuối khi chúng tôi cảm thấy rằng chúng tôi đã có hình dạng đúng đắn của công nghệ này. Tác nhân phụ là một trường hợp rất nhanh chóng, từ một ý tưởng trở thành sản phẩm, và có một chút chỉnh sửa thiết kế về cách chúng tôi hiển thị một tác nhân phụ và phân biệt giữa một tác nhân phụ với Claude, cách bạn thiết lập nó, tương tự với Giao thức Ngữ cảnh Mô hình (MCP). Nhưng các nguyên tắc lớn mà tôi giữ vững và thúc đẩy một cách mạnh mẽ là, bạn biết đấy, một Giao diện dòng lệnh (Command Line Interface) là một giao diện rất hạn chế. Chúng ta cần giữ nó sạch sẽ nhất có thể. Và vì vậy, chúng tôi muốn đảm bảo rằng chúng tôi không làm ngập nó với nhiều thông tin và chỉ giữ nó thực sự tập trung vào các tác vụ mà bạn đang thực hiện. Điều thứ hai là chúng tôi thực sự muốn mô hình AI tỏa sáng, bởi vì cuối cùng, một phần lý do Giao diện dòng lệnh (Command Line Interface) rất hay là vì nó là một lớp bọc mỏng nhất có thể xung quanh các mô hình AI của chúng tôi. Và vì vậy bạn chỉ cần truy cập vào khả năng thô của Claude. Và đó thành thật mà nói là điều khiến Claude Code trở nên mạnh mẽ đến vậy. Bạn có bất kỳ điểm nhấn thiết kế nhỏ yêu thích nào hoặc những điều chạm đến cảm xúc trong Claude Code không? Chắc chắn có. Tôi thực sự thích hiển thị ASCII khi Claude đang "nghĩ" và lập kế hoạch. Tôi nghĩ những điều đó tạo nên một cá tính tuyệt vời cho Claude. Và tôi cũng thực sự, thực sự thích các chế độ khác nhau, cách chúng tôi đã phác thảo nếu bạn đang ở chế độ suy nghĩ hoặc chế độ lập kế hoạch hoặc chế độ tự động chấp nhận. Tôi nghĩ đó chỉ là một cách rất phong phú để truyền đạt thông tin phức tạp theo cách mà mọi người có thể hiểu được. Tôi đồng ý. Và tôi cũng yêu những nét cá tính đó. Đôi khi, quá trình lập trình có thể là một điều gì đó robot. Bạn đang làm việc với các dòng mã và rất nhiều ký tự. Nhưng khi bạn sử dụng Claude Code, nó gần như là một trải nghiệm khác. Và nó khơi gợi một cảm xúc khác so với việc tôi chỉ ở trong một IDE và gõ từng dòng mã. Vâng, chắc chắn rồi. Tôi nghĩ thực sự có rất nhiều điều phong phú bạn có thể làm trong terminal. Và đôi khi thậm chí là kéo chúng ta lại. Giống như, ồ, thực ra, chúng ta không cần phải thiết kế quá mức điều này. Chúng ta chỉ có thể để mô hình AI xử lý nó. Bởi vì thành thật mà nói, nó thực sự giỏi trong việc đó. Thật tuyệt vời.
Mẹo và Thực tiễn tốt nhất khi sử dụng Claude Code
Tôi thực sự tò mò muốn nghe một số mẹo và thực tiễn tốt nhất của bạn khi sử dụng Claude Code, đặc biệt với tư cách là một nhà thiết kế và không phải là một người chuyên về kỹ thuật truyền thống. Bạn sử dụng Claude Code tốt nhất hàng ngày như thế nào? Tôi thích câu hỏi này. Đó là điều mà cá nhân tôi rất đam mê. Tôi là một nhà thiết kế sản phẩm. Tôi sẽ là người đầu tiên thừa nhận rằng tôi không nên viết bất kỳ mã nào. Và bất kỳ mã nào tôi viết chắc chắn được viết ẩu và cần được xem xét. Nhưng Claude và tất cả các tác nhân lập trình này đã mở khóa một bộ kỹ năng mới, hoặc giống như một cây kỹ năng mới cho những người không chuyên về kỹ thuật, nơi mà trước đây tôi có thể cần yêu cầu thời gian từ một kỹ sư phần mềm hoặc bỏ qua một số thứ nếu nó không nhất thiết đạt được mức độ ưu tiên phù hợp, bây giờ tôi có một bộ kỹ năng mới để tự mình làm điều đó. Và vì vậy, hai trục chính mà bạn sẽ nghe rất nhiều nhà thiết kế nói về, đầu tiên là chi phí cho một ý tưởng là bằng không. Bạn có thể tạo mẫu thử nghiệm rất, rất nhanh. Và tôi nghĩ điều đó thú vị, nhưng nó thực sự không phải là điểm mở khóa thú vị nhất đối với tôi. Tôi nghĩ điểm mở khóa thú vị hơn là tôi thực sự có thể đẩy mã lên môi trường sản xuất. Nó có thể thực hiện những thay đổi mà tôi muốn. Tôi đang ở trong cơ sở mã trực tiếp. Và vì vậy, một số trường hợp sử dụng phổ biến nhất mà tôi làm, gần như hàng ngày, là nếu tôi đang thiết kế một tính năng mới, tôi sẽ động não với Claude Code trước. Tôi sẽ hỏi, đâu là các trường hợp sử dụng phổ biến ở đây? Đâu là các trạng thái biên mà tôi nên nghĩ đến? Bạn sẽ thiết kế điều này như thế nào? Và sau đó tôi sẽ thực hiện một số lần lặp lại từ đó. Tôi cũng đôi khi yêu cầu Claude Code giúp tôi ước tính phạm vi thiết kế mà tôi đã đề xuất. Tôi sẽ vẽ, tôi có thể thả nó dưới dạng hình ảnh. Tôi sẽ hỏi, này, bạn nghĩ sẽ mất bao lâu để làm điều này? Và Claude sẽ cung cấp cho tôi ước tính để tôi có thể, bạn biết đấy, thảo luận thân thiện với các kỹ sư.
Tối ưu hóa Hoàn thiện Thiết kế Sản phẩm
Mất bao lâu để thực sự xây dựng một thứ gì đó, và chúng tôi đạt được một thỏa hiệp. Và điểm cuối cùng là, bạn biết đấy, khi ra mắt một sản phẩm mới, bạn thường không thực sự có thời gian để hoàn thiện 2% cuối cùng về mặt thiết kế mà bạn luôn muốn làm. Điều này không còn đúng nữa, bởi vì tôi có thể trực tiếp vào đó sau khi các kỹ sư hoàn thành công việc, và vào ngày cuối cùng trước khi ra mắt, hoặc thậm chí trong vài ngày sau khi ra mắt, tôi sẽ thực hiện và dọn dẹp tất cả những thứ được coi là P2 mà tôi thực sự muốn có trong sản phẩm. Wow, thật tuyệt vời. Tôi rất thích điều đó. Và đó là những mẹo hữu ích.
Sự Hội tụ giữa Nhà Thiết kế và Kỹ sư
Thật thú vị khi nghe về sự hội tụ này, gần như là sự hợp nhất giữa nhà thiết kế và kỹ sư thành một kỹ sư thiết kế, theo một nghĩa nào đó, nhờ vào Claude Code và những gì nó mang lại.
Nâng cao Hợp tác Kỹ thuật
Vâng, hoàn toàn đúng. Và tôi nghĩ một điều mà nó thực sự mang lại một cách đáng ngạc nhiên cho tôi, là nó đã cải thiện đáng kể mối quan hệ hợp tác của tôi với các kỹ sư, bởi vì có rất nhiều điều mà tôi thành thật mà nói không thể tự mình làm được ở thời điểm hiện tại. Nhưng ngay cả việc thử nghiệm lần đầu và sau đó chat với kỹ sư cũng khiến sự hợp tác của chúng tôi mạnh mẽ hơn rất nhiều. Vì vậy, nó không chỉ mang lại cho bạn một bộ kỹ năng mới. Nó còn giúp bạn cộng tác tốt hơn với các đối tác, điều mà tôi nghĩ là một phần thực sự quan trọng của quá trình này và là một chu trình hoàn chỉnh mà chúng tôi đang xây dựng. Tôi đồng ý. Thật tuyệt. Vâng, Megan, buổi nói chuyện này thật tuyệt vời. Tôi thực sự đánh giá cao cuộc trò chuyện này.