Sử dụng AI để "hồi sinh" những dự án lập trình cá nhân bạn từng bỏ dở

25 tháng 4, 2026·5 phút đọc

Bài viết chia sẻ kinh nghiệm sử dụng công cụ lập trình hỗ trợ AI (Claude Code) để hoàn thành một dự án cá nhân đã bị bỏ dở từ lâu. Tác giả nhận thấy AI rất hiệu quả trong việc xử lý các tác vụ lặp lại và chi tiết kỹ thuật khô khan, giúp biến ý tưởng thành hiện thực nhanh chóng. Tuy nhiên, ông cũng nhấn mạnh tầm quan trọng của việc vẫn tự tay code các dự án học tập để tránh mất đi kỹ năng cốt lõi.

Sử dụng AI để "hồi sinh" những dự án lập trình cá nhân bạn từng bỏ dở

Sử dụng AI để "hồi sinh" những dự án lập trình cá nhân bạn từng bỏ dở

Tương tự như khái niệm "Tsundoku" trong tiếng Nhật dùng để chỉ những chồng sách mua về nhưng chưa bao giờ đọc, chúng ta đều có những dự án cá nhân bắt đầu nhưng chưa bao giờ hoàn thành. Có thể là do cuộc sống bận rộn, hoặc đơn giản là bị thu hút bởi những dự án mới hào nhoáng hơn. Tuy nhiên, những dự án bỏ dở này lại là ứng cử viên tuyệt vời để chúng ta thử nghiệm các công cụ lập trình hỗ trợ AI. Dù sao thì chúng cũng chẳng bao giờ được hoàn thành nếu không có sự can thiệp này.

Dự án bị lãng quên

Cá nhân tôi từng có một ý tưởng tạo ra một lớp trung gian (shim) giữa YouTube Music và API OpenSubsonic. OpenSubsonic về cơ bản là một hợp đồng API giúp giải phóng các ứng dụng khách và máy chủ phát nhạc, cho phép người dùng tự do lựa chọn. Tôi thích dùng Navidrome làm máy chủ, Feishin cho máy tính để bàn và Symfonium trên Android. Mục tiêu là khiến YouTube Music tuân thủ API này để tôi có thể thêm nó vào bất kỳ ứng dụng khách nào mình muốn.

Về mặt kỹ thuật, tôi sử dụng ytmusicapi để tra cứu metadata và gọi yt-dlp theo chương trình để phát nhạc. Việc thiết lập luồng phát cơ bản khá đơn giản, nhưng việc triển khai tất cả các endpoint theo đúng quy chuẩn là một quá trình dài và tẻ nhạt. Rất nhanh chóng, tôi bị phân tâm bởi những dự án mới khác và để nó dang dở.

Thiết lập môi trường cho AI

Vì dự án này không có gì quá mới mẻ và có một thông số kỹ thuật (spec) rõ ràng để triển khai, nó là hoàn hảo cho lập trình có sự hỗ trợ của AI. Tôi quyết định thử nghiệm Claude Code với mô hình Opus 4.6 để xem nó có thể xây dựng lại dự án từ đầu như thế nào.

Quá trình thiết lập bao gồm:

  • Tạo dự án uv với các thư viện phụ thuộc: FastAPI, Pydantic, ytmusicapi và yt-dlp.
  • Thêm tệp thông số kỹ thuật OpenSubsonic (openapi.json) vào thư mục.
  • Viết mô tả ngắn gọn trong tệp README.
  • Tạo tệp CLAUDE.md để thiết lập các quy ước cho AI, bao gồm yêu cầu về chú thích kiểu (type annotations), docstrings theo phong cách Google, và sử dụng Pydantic V2.

Việc có một cấu trúc ban đầu rõ ràng và các quy tắc trong CLAUDE.md giúp hạn chế công cụ AI và định hướng nó đúng theo ý muốn của tôi.

Triển khai MVP và xử lý các chi tiết tẻ nhạt

Quy trình làm việc của tôi khá đơn giản: sử dụng chế độ lập kế hoạch (plan mode), đưa ra yêu cầu, xem xét kế hoạch, đặt câu hỏi bổ sung và lặp lại quy trình.

Lời nhắc đầu tiên là yêu cầu Claude tạo một máy chủ FastAPI bất đồng bộ (async) với các phương thức giả (stubbed methods) cho tất cả các endpoint JSON mới trong thông số kỹ thuật. Sau đó, tôi yêu cầu kết nối với một ứng dụng khách Subsonic để tìm kiếm và phát nhạc bằng ytmusicapiyt-dlp.

Tôi khá ngạc nhiên khi nghe thấy âm thanh phát ra qua Feishin chỉ sau vài lần lặp lại. Các vấn đề chủ yếu nằm ở các endpoint giả không trả về dữ liệu, cần được cập nhật để trả về phản hồi rỗng nhưng có cấu trúc đúng.

Tuy nhiên, phần thú vị nhất là xử lý "đuôi dài" của dự án — những công việc tẻ nhạt cần thiết để dự án thực sự khả dụng. OpenSubsonic có khoảng 80 endpoint. Để hỗ trợ đầy đủ chức năng, tôi cần:

  • Thêm bộ nhớ đệm (caching) trong bộ nhớ cho các cuộc gọi API.
  • Sử dụng SQLite để lưu trữ metadata nhạc.
  • Lưu bài hát vào đĩa khi phát để tránh tải xuống lại.
  • Xử lý việc dọn dẹp tệp không hoàn chỉnh khi khách hàng ngắt kết nối.

Đây là những việc tôi biết mình cần làm nhưng chưa bao giờ thực hiện vì sự lười biếng. Nhưng với sự hỗ trợ của AI, tôi đã có một dịch vụ hoạt động hoàn chỉnh chỉ trong một buổi tối.

Suy ngẫm về việc sử dụng AI

Tôi không muốn trở thành người cổ súy mù quáng cho AI. Tôi vẫn lo ngại về việc mất kỹ năng (deskilling) nếu phụ thuộc quá nhiều vào các công cụ này. Đó là lý do tôi vẫn đang cố gắng học Rust một cách đau đớn.

Trong tâm trí tôi, các dự án cá nhân được chia làm hai loại: một là những việc tôi làm để học hỏi và phát triển kỹ năng, và hai là những thứ tôi thực sự mong muốn tồn tại nhưng không có thời gian hoặc động lực để hoàn thành. Dự án loại thứ hai này chính là nơi AI tỏa sáng như một hình thức thỏa mãn mong muốn. Nó giúp giảm bớt những "cuốn sách" chưa đọc trên kệ ảo của chúng ta.

Điều quan trọng không phải là bạn có đang làm dự án loại hai hay không, mà là bạn vẫn đang thực hiện những dự án thử thách thuộc loại một để rèn luyện bản thân.

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗