29 điểm bởi GN⁺ 2025-07-07 | 2 bình luận | Chia sẻ qua WhatsApp
  • Phát hành một ứng dụng macOS với hầu như toàn bộ mã nguồn, hơn 20.000 dòng, được tạo gần như hoàn toàn bằng Claude Code; lượng mã tự viết chưa đến 1.000 dòng
  • Cùng với sự xuất hiện của AI coding agent, trải nghiệm phát triển chuyển từ IDE truyền thống sang kiểu phát triển xoay quanh prompt
  • Dù việc sinh mã Swift và SwiftUI vẫn có một số giới hạn, chất lượng có thể được nâng cao nhờ thiết kế priming, context engineering và feedback loop
  • Từ tự động hóa, triển khai, tài liệu hóa đến kiểm thử, phần lớn đều do Claude xử lý, giúp cắt giảm mạnh các tác vụ thủ công lặp lại và thời gian tiêu tốn
  • IDE của tương lai sẽ tiến hóa thành một UX mới, trong đó trọng tâm không còn là trình soạn thảo mã mà là khai thác agent và quản lý ngữ cảnh

Trải nghiệm phát hành ứng dụng macOS chỉ bằng Claude Code

Tổng quan dự án

  • Gần đây đã phát hành một ứng dụng native cho macOS tên là Context. Đây là công cụ dành cho lập trình viên để debug máy chủ MCP
  • Ứng dụng này được làm gần như 100% bằng Claude Code. Trong khoảng 20.000 dòng mã, phần tự viết còn chưa tới 1.000 dòng
  • Việc tạo phần mềm bằng Claude vẫn đòi hỏi năng lực của lập trình viên, công việc lặp đi lặp lại và khả năng viết prompt
  • Bài viết này giải thích chi tiết toàn bộ quá trình tạo ứng dụng bằng Claude Code, từ chọn công cụ, ưu nhược điểm cho đến cách tạo ra mã chất lượng cao

1. Từ Copilot đến Claude Code, và sự thay đổi của môi trường phát triển

  • Công cụ AI hỗ trợ lập trình đầu tiên được sử dụng là GitHub Copilot, và chỉ riêng tính năng tự động hoàn thành đơn giản cũng đã cho thấy hiệu suất phát triển tăng đáng kể
  • Sau đó, hàng loạt công cụ dạng agent có khả năng thu thập ngữ cảnh từ codebase và tự động hóa cả vòng lặp build·test như agent mode của Cursor hay Windsurf lần lượt xuất hiện
  • Khác với các trình soạn thảo truyền thống như VS Code, Claude Code theo đuổi một môi trường agent thuần túy chỉ dùng terminal và xoay quanh việc nhập prompt
  • Đây là một UX đơn giản chỉ hiển thị một ô prompt và kết quả, trong khi phần lớn tính năng IDE truyền thống đã bị lược bỏ
  • Thay vì chỉ hỗ trợ IDE hiện có, coding agent đang thử thay thế hoàn toàn IDE
  • Dù ban đầu hoài nghi về UX vì giao diện và trải nghiệm sử dụng rất khác các công cụ cũ, cách tiếp cận mới này đủ hấp dẫn để thử dùng

2. Khởi động lại side project

  • Cũng như nhiều lập trình viên vừa đi làm vừa làm thêm dự án cá nhân, các side project dang dở ngày một chất đống
  • Việc tạo prototype thì nhanh, nhưng ở 20% hoàn thiện cuối cùng lại thiếu thời gian và năng lượng nên thường không thể đi đến phát hành thực tế
  • Từ trải nghiệm kiểm thử máy chủ MCP, nảy ra ý nghĩ rằng cần có một ứng dụng native, nên quyết định tự làm ứng dụng
  • Trong quá trình đó, bắt đầu sử dụng Claude Code một cách nghiêm túc và thực sự cảm nhận được AI agent có thể giúp đỡ nhiều đến mức nào

3. Khả năng sinh mã xuất sắc của Claude Code

  • Claude Code dùng các model Sonnet 4 và Opus 4 mới nhất, và thực sự tạo ra mã tốt với tốc độ rất nhanh
  • Nó đọc ngữ cảnh của dự án, nắm được phong cách code, đọc tài liệu và spec liên quan để triển khai tính năng, đồng thời tự viết luôn mã kiểm thử
  • Từ build, lặp test, phân tích log console và screenshot đến sửa bug, gần như mọi thứ đều được tự động hóa
  • Với chỉ một phần rất nhỏ thời gian mà lập trình viên thực sự phải ngồi viết code, nó vẫn có thể tạo ra đầu ra chất lượng cao
  • Mức độ này giống như đưa một nhân viên mới vào dự án mà không có ngữ cảnh gì, nhưng vẫn có thể hoàn thành tính năng chỉ trong vài phút

4. Chất lượng thực tế khi hỗ trợ Swift và SwiftUI

  • Sử dụng Swift 6.1, macOS 15.5 và SwiftUI mới nhất
  • Claude xử lý khá tốt đến Swift 5.5, nhưng lại yếu hơn ở những thay đổi gần đây như concurrency
  • Đôi khi nó cũng mắc lỗi khi trộn lẫn API hiện đại với API legacy, hoặc Objective-C với SwiftUI
  • Với mã SwiftUI, bản nháp ban đầu có thể còn thô và chưa hoàn chỉnh, nhưng nếu chỉ dẫn lặp lại thì vẫn có thể tinh chỉnh rất tốt
  • Khi mã UI phức tạp gây lỗi compiler như thất bại suy luận kiểu, Claude có thể tự refactor thành các hàm nhỏ hơn
  • Nếu ghi rõ chỉ dẫn trong file CLAUDE.md, có thể nâng chất lượng mã của Claude lên thêm một bậc
    • Ví dụ: ưu tiên SwiftUI, tuân thủ Apple Human Interface Guideline, tích cực tận dụng macOS mới nhất và các tính năng của Swift6
  • Ngoài ra, nếu tận dụng guideline từ repository agent-rules, có thể tạo ra mã còn chất lượng hơn nữa

5. Có thể yêu cầu kiểu “làm cho đẹp hơn đi”

  • Chỉ với những prompt đơn giản như “hãy làm cho đẹp hơn/thanh lịch hơn/dễ dùng hơn”, có thể để Claude cải thiện thiết kế UI
  • Với bug hoặc điểm cần cải thiện ở UI, chỉ cần dán screenshot vào Claude và phản hồi lặp lại là thay đổi sẽ được áp dụng ngay
  • Một cách có hệ thống hơn là trước tiên yêu cầu “hãy đề xuất cách làm UI đẹp hơn”, rồi chọn các thay đổi mong muốn trong số đó để áp dụng

6. Tầm quan trọng của context engineering

  • Các model AI gần đây hiểu khá tốt ngay cả khi prompt chưa hoàn chỉnh hoặc có lỗi ngữ pháp
  • Điều thực sự quan trọng là chỉ đặt vào cửa sổ ngữ cảnh giới hạn (200k token) những thông tin cần thiết nhất có thể
  • Khi ngữ cảnh hội thoại đầy, Claude sẽ tự động tóm tắt lại (compaction) rồi đặt lại ngữ cảnh; trong quá trình này có nguy cơ mất một phần thông tin như chi tiết bị thiếu hoặc chất lượng giảm sút
  • Vì vậy, “context engineering” — rút ra giá trị chất lượng cao nhất có thể trong một ngữ cảnh giới hạn — là bài toán cốt lõi khi dùng AI agent

7. Priming cho agent

  • Vì trong quá trình compaction có thể bị mất ngữ cảnh quan trọng, nên khi cần thì để Claude tự tóm tắt thủ công hoặc priming thêm thông tin từ trước là cách hiệu quả
  • Ngoài CLAUDE.md, nếu viết prompt để Claude đọc trước và tóm tắt các đoạn mã nguồn hay tài liệu spec cụ thể, chất lượng đầu ra sẽ được cải thiện
  • Với các thư viện mới hoặc API mới xuất hiện sau knowledge cutoff của Claude, cũng có thể dùng những công cụ như Context7, llm.codes để chuyển đổi tài liệu sang dạng Claude dễ hiểu hơn
  • Priming là quá trình khiến Claude hiểu trọn vẹn ngữ cảnh trước bằng các chỉ dẫn như “hãy đọc toàn bộ file mã nguồn·tài liệu·spec này và tóm tắt lại

8. Agent cần một spec rõ ràng

  • Khi yêu cầu Claude triển khai tính năng, nhất định phải cung cấp spec cụ thể và chi tiết thì mới nhận được kết quả mong muốn
  • Kiểu “tạo ứng dụng chỉ bằng một câu prompt” thường thấy trong demo thực chất chỉ khả thi ở mức prototype
  • Dù spec chưa quá tinh vi, chỉ cần mô tả theo cách thuận tiện như nhập giọng nói hay gõ văn bản là được

9. “Ultrathink and Make a Plan”

  • Nếu Claude lao ngay vào triển khai thì chất lượng đầu ra sẽ giảm, nên chiến lược hiệu quả là yêu cầu nó lập kế hoạch trước bằng chế độ tư duy mở rộng như think hay ultrathink
  • Nếu để nó làm việc theo từng bước, xem lại kế hoạch trước khi triển khai và phản hồi rồi mới tiếp tục, chất lượng sẽ cao hơn
  • Tài liệu Claude Code: Best practices for agentic coding của Anthropic được khuyến nghị là tài liệu nên đọc kỹ

10. Xây dựng feedback loop

  • Điểm mạnh thực sự của Claude Code phát huy tối đa khi nó có thể tự vận hành feedback loop một cách độc lập
  • Nghĩa là điều cốt lõi nằm ở việc tạo ra một chu trình tự động trong đó Claude tự sửa code (change), tự build (test), phân tích nguyên nhân thất bại (thu thập ngữ cảnh), rồi lặp lại
  • Càng thiết kế tốt vòng lặp này, Claude càng có thể tự chủ hơn trong việc hoàn thiện mã chất lượng cao
  • 1. Build
    • Claude cần có khả năng tự thực hiện quá trình build (compile) ứng dụng
    • Với Swift package, có thể build dễ dàng bằng lệnh swift build, và Claude xử lý điều này rất tự nhiên
    • Nhưng với target ứng dụng macOS như project Xcode, Claude thường bị lúng túng về việc nên dùng lệnh xcodebuild nào
    • Để giải quyết vấn đề này, đã dùng công cụ XcodeBuildMCP, cung cấp giao diện đơn giản hơn để Claude dễ build và chạy ứng dụng hơn
  • 2. Test
    • Sau khi build code, Claude cần có khả năng tự động chạy test và phân tích kết quả
    • Với Swift package, việc test qua swift test diễn ra tự nhiên và Claude cũng xử lý tốt quy trình này
    • Dù chưa thử để Claude trực tiếp chạy test toàn bộ ứng dụng hoặc UI test, nhưng dự đoán trường hợp này cũng sẽ cần các công cụ như XcodeBuildMCP
    • Dựa trên kết quả test (log thành công/thất bại), nó tiếp tục vòng lặp chỉnh sửa mã
  • 3. Fix Bugs
    • Claude có thể lần theo vấn đề bằng cách thêm log để debug
    • Tuy nhiên, Claude không thể tự thao tác ứng dụng để làm phát sinh log
    • Cần có quy trình người dùng tự thao tác ứng dụng, rồi copy log từ console và dán lại vào Claude
    • Cách này trên thực tế vẫn hoạt động tốt, nhưng nếu không viết đủ unit test hoặc UI test từ trước thì rất khó đạt đến mức sửa bug hoàn toàn tự động
    • Với web app thì có các giải pháp tự động hóa trình duyệt như playwright-mcp, nhưng với ứng dụng native thì vẫn chưa có phương án thay thế đủ chắc chắn
  • 4. Fix UX Issues
    • Để cải thiện vấn đề UI/UX, có thể dán trực tiếp screenshot vào Claude và phản hồi lặp lại
    • Dù có thể tự động hóa screenshot bằng công cụ như Peekaboo, vẫn có một giới hạn là trước hết phải tự thao tác ứng dụng đến trạng thái mong muốn thì mới chụp được ảnh
    • Nói cách khác, tự động hóa liên quan đến UX vẫn cần có sự can thiệp của người dùng

11. Claude Code làm được nhiều hơn là viết code

  • Vì Claude Code hoạt động dựa trên mô hình ngôn ngữ lớn (LLM) đa dụng, nên ngoài viết code còn có thể dùng cho nhiều công việc phi phát triển khác
  • Ví dụ, có thể tự nhiên yêu cầu Claude làm các việc ngoài lập trình như biên tập nội dung hiển thị trong ứng dụng, lập kế hoạch phát hành, đề xuất hướng cải thiện tính năng
  • Một trong những điểm đặc biệt hữu ích là khả năng tự động tạo Mock data ở giai đoạn đầu khi chưa có dữ liệu thật
    • Khi phát triển ứng dụng Context, đã muốn tiếp tục làm prototype UI dù thư viện MCP client cho Swift vẫn chưa hoàn thiện
    • Bình thường, việc tự tạo dữ liệu mock trông chân thực là cực kỳ phiền và tốn thời gian, đến mức thực tế có lẽ đã không thử làm
    • Nhưng Claude có thể tự động tạo Mock data rất thuyết phục chỉ trong vài giây, giúp tạo ra trạng thái UI gần như khó phân biệt với dữ liệu thật
    • Khi chia sẻ UI cho bạn bè xem, các screenshot dùng cũng dựa trên Mock data này, và vẫn tạo được ấn tượng như một dịch vụ thật
    • Với máy chủ MCP, thời điểm đó nhiều nơi mới chỉ triển khai một phần của spec chính thức nên rất khó lấy được dữ liệu thực
    • Dù vậy, nhờ Mock data do Claude tạo ra, vẫn có thể xác thực toàn bộ luồng UI và cách tính năng vận hành

12. Thời đại mà việc hiện thực hóa tự động hóa chất lượng cao đã trở nên gần như miễn phí

  • Một trong những phần đau đớn nhất của 20% cuối cùng trước khi phát hành phần mềm là tự động hóa quy trình release ứng dụng
  • Đặc biệt với ứng dụng macOS, có rất nhiều bước triển khai phức tạp như code signing, notarization, packaging (tạo DMG), nên việc phát hành thường bị chậm vì thao tác thủ công hoặc script thiếu ổn định
  • Trước đây thường phải cố gắng thiết lập các công cụ tự động hóa như fastlane, hoặc tự viết tối thiểu một vài script Python để xử lý
  • Trong dự án lần này, chỉ với vài giờ lặp prompt và debug, Claude đã tạo ra một script tự động hóa phát hành hoàn chỉnh
  • Các công việc chính mà script này đảm nhiệm:
    • Kiểm tra thiết lập môi trường: xác minh các công cụ cần thiết đã được cài đúng hay chưa
    • Tự động tạo changelog: trích xuất lịch sử thay đổi từ git commit và kết hợp với các mục viết tay để tạo ghi chú phát hành dạng HTML
    • Build và đóng gói ứng dụng: tự động hóa toàn bộ quy trình từ build ứng dụng → ký mã → notarization → đóng gói DMG
    • Tạo feed cập nhật Sparkle (appcast): cung cấp cập nhật tự động cho người dùng hiện có
    • Tag và phát hành release: thêm tag lên GitHub và đăng release
    • Upload symbol lên Sentry: tự động tải debug symbol lên để phân tích crash report
  • Sau khi script hoàn thiện, chỉ với một câu prompt “hãy làm đầu ra CLI đẹp hơn” là có thể cải thiện luôn cả CLI UI
  • Kết quả cuối cùng là khoảng 2.000 dòng mã Python; nếu làm thủ công thì có lẽ chỉ dừng ở các chức năng tối thiểu, nhưng nhờ Claude mà có thể hoàn thiện ở mức chất lượng cao
  • Nhờ script tự động hóa này, mỗi lần release có thể tiết kiệm hàng chục phút công việc lặp lại
  • Chỉ cần mô tả spec bằng ngôn ngữ tự nhiên và phản hồi cho Claude các lỗi phát hiện trong lúc chạy, phần lớn công việc sẽ được hoàn tất

13. IDE tương lai sẽ hoàn toàn khác

  • Trong suốt dự án này, thực tế chỉ có hai công cụ được dùng từ đầu đến cuối là Claude Code và GitHub Desktop (để xem diff)
  • Các chức năng cốt lõi của IDE truyền thống như cây thư mục, trình soạn thảo mã, extension, plugin gần như không còn cần thiết
  • Dù đôi khi có mở Xcode để tự sửa code, nhưng cũng hầu như không dùng đến những tính năng đặc trưng của Xcode như SwiftUI Previews hay View Debugger
  • Vì hiện tại vẫn là thời điểm năng lực của AI coding agent còn thấp nhất, nên có cảm giác IDE trong tương lai sẽ tiến hóa sang một hình thái hoàn toàn mới
  • Copilot, Cursor, Windsurf đều là những công cụ bắt đầu từ VS Code rồi bổ sung thêm tính năng, nhưng bản thân VS Code cũng gần như không khác nhiều so với IDE JetBrains của 20 năm trước
  • Những dự án như Warp đang cố gắng hiện đại hóa terminal để biến nó thành môi trường phát triển cho agent, nhưng cũng cho rằng UX xoay quanh terminal sẽ không phải lời giải tối hậu của tương lai
  • Cốt lõi của IDE tương lai là giúp lập trình viên chuẩn bị ngữ cảnh (priming) hiệu quả cho agent, đồng thời thiết kế và quản lý feedback loop
  • Nói cách khác, trọng tâm sẽ không còn là trình soạn thảo mã, mà sẽ chuyển mạnh sang UX xoay quanh việc khai thác agent và quản lý ngữ cảnh

14. Có thể lại phát hành side project

  • Điều ấn tượng nhất trong hành trình lần này không phải là đã tạo ra một ứng dụng đẹp, mà là đã có thể một lần nữa tự mình phát hành side project ngoài đời thực
  • Cảm giác như có thêm 5 giờ mỗi ngày, trong khi cái giá chỉ là $200 mỗi tháng
  • Nhờ các AI coding agent như Claude Code, đã lấy lại được động lực và sự tự tin để biến những ý tưởng bị trì hoãn bấy lâu thành hiện thực

2 bình luận

 
geek12356 2025-07-08

Hãy làm nhiều vào

 
GN⁺ 2025-07-07
Ý kiến Hacker News
  • Chỉ mới 2 năm trước thôi tôi còn rất tự tin rằng mình là một kỹ sư Python thực sự xuất sắc, nhưng giờ thì tôi đã ở trạng thái có thể làm app mobile native, app desktop giao tiếp với Slack, API viết bằng Go, thậm chí cả một web app hoàn chỉnh dựa trên React chỉ trong vài ngày hoặc vài giờ
    Cảm giác như được sở hữu siêu năng lực, như thể năng suất, tốc độ và sự sáng tạo đang tuôn trào, nhưng đồng thời tôi cũng cảm thấy một nỗi buồn kỳ lạ
    Công việc của tôi, đam mê của tôi, mọi thứ tôi đã dành rất nhiều thời gian để rèn luyện và cả hy sinh nữa, giờ phần lớn đang bị máy móc thay thế
    Các công ty làm ra những công cụ này vẫn mới chỉ ở điểm khởi đầu
    Tôi tự hỏi điều này sẽ có ý nghĩa gì với thế hệ kỹ sư tiếp theo, và xu hướng này sẽ còn đi xa đến đâu
    Cũng tò mò không biết có ai cảm thấy giống tôi không

    • Việc có thể xử lý hiệu quả nhiều công cụ khác nhau như native, mobile, Go, React trên nhiều nền tảng thực ra là nhờ kinh nghiệm phát triển phần mềm của tôi với tư cách kỹ sư Python
      Phần mà LLM thay thế là việc không cần phải ghi nhớ những chi tiết vụn vặt đặc thù của từng nền tảng
      Tôi có thể không nhớ cú pháp vòng lặp for trong Go, nhưng vẫn có thể ngay lập tức viết ra mã Go hữu ích
      Nhưng điều không thay đổi là vẫn phải hiểu các nguyên lý nền tảng như vòng lặp, khái niệm của Go, lập trình có cấu trúc, compiler, script build và test
      Với người không có nền tảng lập trình thì đây chính là phần còn thiếu rất lớn
      Tôi cảm thấy LLM là bộ khuếch đại và gia tốc giúp biến lượng tri thức mơ hồ mà tôi tích lũy qua nhiều năm kinh nghiệm thành thứ có thể áp dụng ngay vào nhiều ngôn ngữ và nền tảng khác nhau
      Trước đây tôi chỉ giải quyết mọi vấn đề bằng Python, JavaScript và SQL vì ngại phải học lại những khác biệt lặt vặt của ngôn ngữ hay nền tảng mới
      Giờ thì tôi sẵn sàng dùng cả Go, Bash, AppleScript, jq, ffmpeg, và cũng đang cân nhắc cả dự án Swift

    • Tôi từng thấy những người không xuất thân kỹ thuật dùng LLM để làm thứ gì đó, nhưng phần lớn là chậm hơn rất nhiều hoặc gần như thất bại
      Kỹ năng kỹ thuật có thể rốt cuộc không phải là bắt buộc tuyệt đối, nhưng khả năng diễn đạt rõ ràng thì chắc chắn là cần thiết
      Chỉ cần hiểu HTML ở mức cơ bản thôi cũng đã có thể chèn văn bản gọn gàng để LLM hiểu rõ hơn nhiều
      Tôi vẫn nghĩ nền tảng kỹ thuật là một lợi thế

    • Tôi nghĩ những lao động thủ công trước thời Cách mạng Công nghiệp hẳn cũng từng có cảm xúc tương tự
      Nhưng cũng cần nhớ rằng phần lớn họ không được học hành tử tế, 1 hoặc 2 đứa con của họ chết trước 10 tuổi vì bệnh vặt, và họ sống mà không có điện, nước máy, hệ thống ống nước trong nhà hay tủ lạnh
      Tự tay làm ra công cụ quả là lãng mạn thật đấy (giống như ngồi viết Python bằng tay vậy), nhưng khi thời đại phát triển hơn thì sống ở tầng trừu tượng cao hơn thực ra cũng có lợi cho cả tổ tiên chúng ta
      Không ai ngăn bạn tự viết Python cả, và tôi chắc rồi cũng sẽ có người xem nó như một thú vui kiểu nghề thủ công than chì vậy

    • Tôi khó mà đồng ý với ý nghĩ rằng công việc, đam mê và kỹ năng tôi gây dựng giờ đang bị máy móc thay thế
      Máy móc chỉ là thứ làm theo chỉ thị, không có kinh nghiệm, trực giác, khả năng tự phản tư, lập kế hoạch hay sáng tạo
      Chỉ con người mới có ý tưởng, sáng tạo, mục tiêu, sự đồng cảm, khả năng thuyết phục người khác bằng ý tưởng hay, hoặc cân nhắc ngữ cảnh cho phù hợp với tình huống
      Tôi nghĩ không phải nghề lập trình đang biến mất, mà là nó đang dịch chuyển lên một mức trừu tượng cao hơn nhiều
      Trước đây người ta vẫn có thể trở thành developer mà chẳng cần biết gì về bit, byte hay một dòng assembly nào, dù từng có thời assembly là bắt buộc
      Giờ thì ngay cả khi không biết ngôn ngữ lập trình, chỉ cần giỏi tiếng Anh và hiểu yêu cầu là cũng có thể tạo ra chương trình
      Dù vậy, những người hiểu cấu trúc bộ nhớ, assembly và các khái niệm cấp thấp vẫn hiểu rõ hơn chuyện gì đang diễn ra phía sau, và khi cần thì vẫn có thể làm tốt hơn
      Nhưng điều đó không có nghĩa các tầng trừu tượng cao hơn trở nên vô dụng hay sẽ biến mất

    • Tôi cũng cảm thấy y hệt
      Tôi đã làm phần mềm chuyên nghiệp hơn 20 năm, và thực sự rất yêu công việc này
      Giờ tôi tận dụng Claude Code 100% và năng suất rõ ràng tăng lên, nhưng nếu ngày trước quy trình làm việc mang cảm giác như một nghệ thuật thì bây giờ nó giống sản xuất công nghiệp hàng loạt hơn
      Tôi muốn tìm lại điều gì đó của riêng mình để có thể lại đắm chìm sâu vào phần mềm trong thực tại mới này, và chắc chắn là niềm vui đã giảm đi khá nhiều

  • Bài viết rất hay và chỉ riêng việc đọc thôi cũng đã thấy thích thú
    IDE của tương lai sẽ hoàn toàn khác bây giờ
    Tôi cũng bắt đầu với Cursor, rồi dùng các IDE kiểu VS Code tăng cường, và cuối cùng chuyển sang Claude Code
    Thế là vai trò của terminal tăng lên, nên tôi chuyển workflow sang iTerm với Ghostty (nhanh, nhẹ và hiện đại), Tmux, Tmuxinator và NeoVim
    Tôi kiểm tra file bằng lệnh cat hoặc bat, đôi khi chỉ chỉnh sửa văn bản, còn phần lớn việc nặng thì để Claude Code xử lý
    Kiểu như chỉ viết đặc tả và prompt trong NeoVim hay Emacs thôi, và tôi cực kỳ thích workflow này
    Không chỉ sinh mã, mà cả khi sửa file cấu hình như zsh, neovim, ghostty v.v. tôi cũng giao task cho Claude Code để nó xử lý
    Ngay cả refactor file cấu hình cũng chỉ mất vài phút
    Hỏi đáp về codebase, refactor code, viết tài liệu cho code, tạo commit message... tôi đều giao hết, đúng là tuyệt vời thuần túy

    • Ở đoạn cuối có nhắc tới việc nó làm cả hỏi đáp về codebase, refactor, tài liệu hóa code và cả commit có ý nghĩa nữa, tôi cũng từng dùng CC để tạo ra commit message rất tốt bằng cách đưa thông tin và ví dụ về Conventional Commits vào file CLAUDE.md

    • Không biết CC có tự động backup các file cấu hình cá nhân như .zshrc trước khi sửa không nhỉ

  • Terminal + Claude Code + thư mục dự án
    Đến giờ tôi mới nhận ra là thật sự chỉ cần vậy là đủ
    Từ trước tôi vốn không thích mấy bộ thiết lập IDE đầy đủ vì quá phiền, mà khi cross-compile theo từng OS thì cấu hình QT cũng phức tạp, nên tôi luôn nghĩ tổ hợp editor với terminal là hợp lý nhất
    Giờ thêm Claude Code như một cửa sổ terminal mở sẵn để hỗ trợ xử lý yêu cầu, tôi có cảm giác mình đã “level up” từ developer thành project lead
    Lại còn không có stress quản lý nhân sự
    Giờ thì từ lúc Claude ra mắt vào tháng 3, chỉ trong vài tháng tôi đã hoàn thành hết mọi side project mà mình muốn làm từ lâu

  • Từ 1, 2 năm trước tôi đã nghĩ rằng LLM là một trợ lý tuyệt vời cho developer có tay nghề, sẽ rất tệ nếu cố thay thế developer giỏi, và là một trợ lý nguy hiểm cho developer thiếu kinh nghiệm
    Khi tự mình trải nghiệm thì phần lớn đúng là như vậy
    Giờ tôi có nghĩ LLM có thể là một mentor tốt cho developer chưa thành thạo, nhưng trong thực tế tôi vẫn thấy nhiều hơn những trường hợp họ cứ sửa bừa mà không hiểu tại sao code hoạt động, rồi lặp đi lặp lại cho tới khi nó tạm chạy được
    Thế nên cuối cùng tôi lại càng tin hơn vào ý nghĩ ban đầu rằng trong tình huống đó LLM là một trợ lý nguy hiểm
    Lúc ấy các bug và vấn đề tinh vi rất dễ âm thầm ẩn trong code mà không ai nhận ra, và ngay cả khi phát hiện thì cũng thường không hiểu được nguyên nhân

  • Kết luận rằng trợ lý LLM đã làm giảm mạnh 20% cuối cùng trong mức độ hoàn thiện của side project thực sự rất ấn tượng
    Với tôi, điều thú vị nhất trong hành trình này không phải là app mới, mà là việc giờ đây tôi lại có thể thỏa cơn thèm code và phát hành những side project gọn gàng với mức độ hoàn thiện cao
    Cảm giác như mỗi ngày được thêm 5 tiếng, mà chỉ cần 200 USD một tháng

  • Tôi chủ yếu dùng nó để làm các utility nhỏ, và nó hoạt động cực kỳ tuyệt vời
    Tôi đã dùng Claude để làm trong vài giờ một utility hiển thị trạng thái task launchctl/launchd (đang chạy/unloaded/thất bại v.v.) giống như biểu tượng menu của OrbStack

    • Tôi cũng từng làm một app iOS và một plugin Wordpress chỉ để tự vui, và thực sự rất hài lòng
      Có vẻ sau này sẽ có nhiều người làm như vậy hơn, nên tôi tự hỏi liệu mọi người có nên chia sẻ code lên github không
  • Nếu là người đã làm phần mềm cho Mac từ năm 2008 thì hẳn bạn sẽ nhanh chóng nhận ra Claude đi sai ở đâu và sửa lại được ngay

    • Những công cụ như Claude Code có vai trò khuếch đại kỹ năng và kinh nghiệm sẵn có
      Chúng tuyệt đối không thể thay thế chuyên môn

    • Cuối cùng thì tới phần cuối bài mới lộ ra rằng công việc này tốn 200 USD mỗi tháng, mà với tôi ngay cả 50 USD cho Autodesk, thứ thiết yếu cho sở thích chính của mình, còn thấy tiếc
      Tôi nghĩ các công ty AI kiểu này hiện còn chưa có lãi, và khi nhà đầu tư bắt đầu đòi lợi nhuận thì hoặc chi phí sẽ tăng vọt, hoặc chất lượng dịch vụ sẽ đi xuống, điều đó là không thể tránh khỏi
      Nếu các model này bị kiện thua vì cung cấp code đã học trái phép thì khả năng sinh Swift của Claude cũng sẽ tụt dốc ngay lập tức
      Tôi nghi ngờ chuyện có thể kỳ vọng Disney sẽ thua trong các vụ kiện AI
      Thật lòng mà nói bình luận của tôi có thể chẳng ý nghĩa gì, nhưng sự mệt mỏi vì AI thực sự đã rất nghiêm trọng
      Ở thời điểm này tôi còn nghĩ HN hay các diễn đàn công nghệ khác nên cấm kiểu bài đăng như thế này
      Nếu ai đó đăng bài khoe mình code dễ dàng nhờ Google hay StackOverflow thì chắc chắn mọi người sẽ mỉa mai là nhạt nhẽo, và tôi nghĩ những bài kiểu này rốt cuộc cũng chẳng khác gì
      Tôi đã quá ngán ngẩm với chuyện “đi nhờ” AI cho sở thích hay công việc rồi

  • Việc tự làm những công cụ tùy chỉnh cho riêng mình bằng các công cụ như Windsurf và các CLI tool giờ đã dễ hơn trước rất nhiều
    Đây đúng là một thời điểm thú vị

  • Tôi có cảm giác rồi sẽ sớm tới lúc có người dùng LLM để sao chép cả MacOS

  • Vài tuần trước tôi đã dùng bộ công cụ LLM để khởi động thành công một trình render wireframe 6DOF trong app system 6 (Mac cổ điển) bằng retro68 và c++