- Những dự án cá nhân bị bỏ dở từ lâu phù hợp để thử nghiệm công cụ hỗ trợ lập trình vì mục tiêu là hoàn tất phần triển khai hơn là học cái mới
- Tác giả đã triển khai lại một shim để phơi bày YouTube Music qua OpenSubsonic API, giúp các client Subsonic khác nhau có thể kết nối theo cùng một cách
- Sau khi cố định trước cấu trúc tối thiểu và quy ước triển khai, tác giả làm việc theo các vòng lặp ngắn, đồng thời chạy sinh stub dựa trên đặc tả OpenAPI và kiểm thử kết nối với client thực tế
- Bản triển khai ban đầu chỉ khớp với đặc tả đã nhanh chóng vỡ vụn khi kết nối thực tế, và tác giả phải lặp lại việc kiểm tra log request cùng bổ sung kiểm thử đơn vị cho đến khi đạt mức có thể tìm kiếm và phát nhạc
- Nếu đó không phải là một stretch project để học tập mà là một dự án đơn giản là bạn muốn nó tồn tại, thì công cụ hỗ trợ lập trình có thể giúp biến công việc bị trì hoãn thành một dịch vụ thực sự dùng được
Bối cảnh dự án và cách tiếp cận
- Một dự án cá nhân từng đụng tới từ lâu nhưng chưa thể hoàn thành là đối tượng phù hợp để thử nghiệm công cụ hỗ trợ lập trình bằng AI
- Thứ được hồi sinh lần này là một shim nối giữa YouTube Music và OpenSubsonic API
- OpenSubsonic được dùng như một hợp đồng API cho phép tách biệt client và server của dịch vụ stream nhạc
- Phía server dùng Navidrome, client desktop là Feishin, còn Android dùng Symfonium
- Shim này phơi bày YouTube Music theo chuẩn OpenSubsonic API để có thể kết nối từ bất kỳ client nào
- Với việc truy vấn metadata, tác giả dùng
ytmusicapi, còn phần streaming thì gọi yt-dlp theo cách lập trình
- Phần stream cơ bản nối vào khá dễ, nhưng vẫn còn rất nhiều việc đuôi dài để triển khai đầy đủ mọi endpoint theo đúng chuẩn
- Dự án này phù hợp với công cụ hỗ trợ lập trình vì trọng tâm là triển khai một đặc tả rõ ràng hơn là giải quyết vấn đề mới lạ hay độc đáo
- Tác giả thực hiện như một thử nghiệm viết lại từ đầu bằng Claude Code và Opus 4.6
Thiết lập ban đầu
- Điểm khởi đầu là một dự án tối thiểu với cấu trúc đã được giới hạn trước
- Tạo project bằng
uv rồi thêm các dependency fastapi, pydantic, ytmusicapi, yt-dlp
main.py được đổi thành file main mẫu của FastAPI và đặc tả OpenAPI của OpenSubsonic được đặt vào thư mục
- Trong README chỉ ghi ngắn gọn vai trò của server, các thư viện sử dụng, URL tài liệu và vị trí của
openapi.json
- Thêm một file TODO trống và tạo
CLAUDE.md bằng /init
- Trong
CLAUDE.md, tác giả ghi riêng quy ước triển khai để giảm bớt chỉ dẫn lặp lại
- Yêu cầu type annotation và docstring cho tham số phương thức lẫn giá trị trả về
- Việc mô hình hóa dữ liệu được thống nhất theo quy ước Pydantic V2
- Docstring phải có các phần args và returns theo kiểu Google
- Test được thống nhất theo phong cách pytest hiện đại, dùng hàm cấp cao,
assert và fixture
- Điểm khởi đầu này được đóng gói thành một git repository
Luồng triển khai MVP
- Cách làm việc vận hành theo chế độ lập kế hoạch và các vòng lặp ngắn
- Tác giả ném công việc tiếp theo vào prompt rồi kiểm tra những điểm thiếu sót hay vấn đề trong kế hoạch ban đầu
- Nếu chệch hướng, tác giả cung cấp thêm liên kết tài nguyên liên quan hoặc, khi có nhiều lựa chọn, yêu cầu công cụ tìm cách làm quen thuộc hơn bằng công cụ tìm kiếm
- Sau mỗi lượt, tác giả dùng
"Accept and clear context" để xóa ngữ cảnh rồi lặp lại
- Bản triển khai đầu tiên tập trung tạo stub chỉ cho các endpoint JSON kiểu mới từ đặc tả OpenAPI
- Dù endpoint XML cũ và endpoint JSON mới cùng tồn tại, phạm vi được thu hẹp để chỉ xử lý phần mới
- Sau khi triển khai, có thêm một bước xác minh để kiểm tra lại toàn bộ phương thức đã đúng chưa
- Dù đã có đặc tả, lần thử đầu vẫn có lỗi, và phần lớn được bắt ra ở vòng kiểm tra thứ hai
- Sau những thay đổi lớn, tác giả chạy lại
/init để cập nhật CLAUDE.md theo trạng thái mới
- Bước tiếp theo là xác định và ghép vào tập tính năng tối thiểu cho tìm kiếm và streaming
- Mục tiêu là mức tối thiểu để có thể kết nối một client Subsonic, tìm bài hát và phát nhạc
- Tìm kiếm dùng
ytmusicapi, còn streaming dùng yt-dlp
Các vấn đề bộc lộ khi kết nối thực tế và cách hiệu chỉnh
- Một bản triển khai nhìn qua khá thuyết phục xuất hiện rất nhanh, nhưng khi gắn thực tế vào Feishin thì sụp đổ ngay
- Tác giả kiểm thử trực tiếp bằng client và chuyển log request của server cho Claude Code để sửa lặp đi lặp lại
- Cũng có những khác biệt chi tiết mà chỉ đặc tả không cho thấy, ví dụ hậu tố
.view của endpoint phải được lột bỏ
- Mỗi khi phát sinh lỗi, tác giả lại viết thêm kiểm thử đơn vị để ngăn hồi quy
- Chỉ sau vài vòng lặp, âm thanh thực sự bắt đầu phát trong Feishin
- Vấn đề cốt lõi là các endpoint stub không trả gì cả
- Phần lớn endpoint cần được đổi sang trả về response đúng cấu trúc, dù nội dung vẫn để trống
- Tuy vậy, MVP ở mức này không khác quá nhiều so với POC cũ, và tính hữu dụng thực sự vẫn phụ thuộc vào lượng việc đuôi dài phía sau
Công việc đuôi dài và mở rộng toàn bộ tính năng
- Theo tài liệu OpenSubsonic, API có khoảng 80 endpoint trải trên 15 nhóm
- Phạm vi cần cho MVP tương đối nhỏ
getLicense, getUser, getGenres, getMusicDirectories trả về các collection trống nhưng hợp lệ
getSong được xử lý như một pass-through, trả lại nguyên ID từ query parameter và điền các giá trị mặc định
search3 được triển khai bằng một lời gọi ytmusicapi đơn giản
stream dùng lời gọi yt-dlp được bọc bằng asyncio.to_thread để trích ra URL định dạng "bestaudio"
getCoverArt lấy URL ảnh bìa bằng yt-dlp
- Để hỗ trợ đầy đủ tính năng của client Subsonic, vẫn cần thêm việc
- Các lời gọi
ytmusicapi được thêm bộ nhớ đệm trong bộ nhớ đơn giản để tránh giới hạn sử dụng
- Tác giả dùng
sqlite để lưu metadata nhạc và triển khai toàn bộ endpoint trong nhóm browsing
getTopSongs cũng được xử lý bằng cách truy vấn danh sách top songs
- Trong lúc streaming, bài hát được lưu xuống đĩa để tránh tải lại
- Nếu client ngắt kết nối endpoint stream trước khi quá trình tải xong, cần thêm xử lý để dọn dẹp file chưa hoàn tất
- Những việc này vốn dĩ cũng có thể làm thủ công, nhưng là phần mà trước giờ tác giả chưa bao giờ làm xong, và vì không có kế hoạch triển khai công khai nên những phần khó như xác thực vẫn tiếp tục bị bỏ qua
- Cuối cùng, chỉ trong những khoảng thời gian buổi tối ngắn ngủi, tác giả đã tạo được một dịch vụ hoạt động được mà client Subsonic có thể kết nối tới, và đặt tên dự án là
Sub-standard
Nên dùng cho trường hợp nào
- Thay vì đẩy công cụ hỗ trợ lập trình vào mọi nơi, tác giả vẫn giữ mối lo về sự suy giảm năng lực do lệ thuộc
- Các dự án cá nhân được chia lớn thành hai nhánh
- Stretch project để học hỏi và phát triển
- Dự án mà đơn giản là bạn muốn nó tồn tại
- Dự án lần này thuộc nhánh thứ hai, và công cụ hỗ trợ lập trình rất hợp để hiện thực hóa điều mong muốn mà bấy lâu chưa thể hoàn thành
- Tác giả đã thực sự có được một dự án mà bình thường có lẽ chẳng bao giờ động tới, và cảm giác đó giống như giảm bớt được một chồng sách chưa đọc
- Tiêu chí quan trọng không phải là có làm các dự án thuộc nhánh thứ hai hay không, mà là liệu bạn có tiếp tục song song với các dự án học tập thuộc nhánh thứ nhất hay không
1 bình luận
Ý kiến trên Hacker News
Dạng dự án bị bỏ dở mà tôi gặp nhiều nhất là game
Tôi có hàng chục thư mục dự án bị ngưng giữa chừng, và giờ tôi đang chấp nhận lại chúng như những thử nghiệm
Tuần trước tôi thử khởi động lại một cái với Claude, và nó thực sự rất hợp, còn giúp chỉnh lại hướng đi ngay lập tức
Vì tôi đã nói trước đó là một dự án từng bị bỏ dở, nên nó thúc tôi hoàn thiện vòng lặp gameplay V0 trước rồi từ đó tìm ra cái vui để mở rộng tiếp, nhờ vậy tôi không bỏ cuộc nữa
Tôi đưa ý tưởng thiết kế game thì nó viết ra code chạy được, đưa bài báo về thuật toán procedural thì nó triển khai luôn, còn brainstorm item, làm graphic asset, thậm chí hỗ trợ xây dựng lore
Tổ hợp Claude Code + Godot thực sự rất vui, lâu lắm rồi tôi mới thấy dùng máy tính lại thú vị đến vậy
Không phải để chỉ trích, nhưng thấy vừa khá thú vị vừa hơi khó chịu
Tôi từng có hàng chục thư mục thử nghiệm, và giờ khá nhiều trong số đó đang trở thành dự án thật
Giờ có cái đã chạy được, cũng có cái vẫn quá phức tạp để agent xử lý
Dù vậy, việc làm app cá nhân đang ngày càng dễ hơn
Có lẽ chẳng bao lâu nữa chỉ cần nói kiểu “Alexa, hãy tạo cho tôi một app iPhone chụp ảnh đồ ăn trong tủ lạnh để thu thập thông tin dinh dưỡng, đồng bộ với app tập luyện, đối chiếu với nguyên liệu phù hợp mục tiêu trong app sức khỏe, rồi email cho tôi các nguyên liệu tốt hơn theo ngân sách, khu vực và hạn chế ăn uống” là trong 15 phút sẽ có app
Ví dụ, tôi từng gặp vài file tres bị sai, và việc để LLM tự sinh ID cũng khá bất ổn
Kiểu như phủ một lớp tường thuật sống lên trên nó
Model chạy local vẫn còn chậm và yếu, nhưng xem nó tạo ra kết quả gì vẫn khá thú vị
Quá tuyệt vời
Giờ đây có cực kỳ nhiều phần mềm cá nhân
Hôm qua tôi vừa làm một trình soạn thảo văn bản native tích hợp hoàn toàn vào MediaWiki, có cả tự động hoàn thành liên kết và hỗ trợ nhập cú pháp
Loại phần mềm này gần như chẳng có giá trị với ai khác, nên chẳng ai có lý do để làm ngoài tôi, mà trước đây tôi cũng không làm nổi vì tốn quá nhiều thời gian
Nhưng khi giao phần code cho agent thì nút thắt không còn là triển khai mà là sự chú ý của tôi, và cách nhét những việc cá nhân kiểu này vào các khoảng trống trong đầu lại rất hợp
Đúng là một thời điểm tuyệt vời
Nhờ AI mà tôi vượt qua được burnout sau COVID và đống dự án dở dang chất đống
Hôm nay tôi cũng sửa xong một công cụ RDP liên quan đến terminal, và đang quay lại xử lý issue đã mở trên OpenRA từ 10 năm trước
Engine đã nhanh hơn 10 lần và pathfinding giờ nhìn chung cũng hoạt động đúng
Tôi có khoảng 120 công cụ cá nhân, và đúng là nút thắt đã chuyển từ triển khai sang chuyển đổi ngữ cảnh
Vì thế giờ tôi để một file markdown ở mỗi thư mục gốc của dự án, và mỗi khi dừng lại thì ghi trạng thái cùng bước tiếp theo vào đó
Như vậy lúc quay lại sẽ không mất 20 phút để khôi phục xem “mình đã làm tới đâu rồi?”
Đằng nào cũng không ai khác dùng, nên chẳng có áp lực xử lý edge case hay tài liệu hóa, chỉ cần giải quyết chính xác vấn đề của tôi rồi chuyển sang cái tiếp theo
Nhìn vào vụ bùng nổ năng suất hiện tại, chắc cũng phải mất khá nhiều thời gian mới tích được từng ấy nhu cầu nhỏ
Nghĩ đến độ ngách của nó mà buồn cười
Vốn dĩ tôi đã biết code nhưng không có thời gian, và AI là một bước ngoặt thật sự giúp tôi đưa các dự án mã nguồn mở ra thế giới
Giờ tôi đang rất hào hứng làm các app GUI local cho Linux mà trước đây còn chẳng đủ động lực để bắt tay vào
Đây là app GUI Linux để quản trị từ xa Samba 4 Active Directory Domain Controller
Đây là app system tray GTK3 để quản lý vé Kerberos cho Linux Mint / Cinnamon và các môi trường GTK dùng GtkStatusIcon
Vì cả hai đều đúng kiểu ứng dụng mà tôi từng tìm kiếm và thực sự cần
Nhờ coding assistant, tôi có thể thử các thay đổi cấu trúc sâu, bao gồm cả thiết kế module, trong ít thời gian hơn nhiều so với trước
Tất nhiên không phải không có cái giá, vì một số model thường tạo ra code không đạt chuẩn về khả năng bảo trì
Việc tiết kiệm thời gian viết code không có nghĩa là bạn không còn phải mất thời gian sửa đi sửa lại, dọn dẹp, hay bổ sung system prompt và file instruction
Tôi không đồng ý lắm với ý lo rằng dùng công cụ quá nhiều sẽ bị deskilling
Tôi là người thuộc thế hệ millennial, và tôi làm đồ nội thất bằng dụng cụ cầm tay cùng các kiểu ghép gỗ cổ điển
Tôi không học từ ai cả, chỉ tự học qua tài liệu trên mạng, nhưng cuối cùng vẫn học được những gì mình muốn
Tôi không sợ sau này mất kỹ năng đó, vì nếu cần thì học lại là xong
Sách, video, công cụ và gỗ sẽ không biến mất
Dùng AI không tạo ra một lỗ đen trong não chỉ vì bạn không còn gõ code bằng tay thường xuyên
Nó không giống Alzheimer khiến bạn mất thông tin vĩnh viễn, chỉ là cần hâm nóng lại một chút rồi sẽ vào guồng rất nhanh
Những người từng code rồi chuyển sang quản lý, vài năm sau quay lại cũng chỉ hơi rỉ sét thôi rồi lại bắt nhịp được
Đặc biệt với dự án cá nhân thì chẳng cần phải đốt token Opus
Cứ dùng gói rẻ với thứ như MiniMax, chạy trong container ở yolo mode, rồi cung cấp context, prompt, web search và hệ thống ticket kiểu beads là được
Vì đâu có việc gì gấp, nên chỉ cần giữ đúng trình tự brainstorm → plan → implementation → testing, và chuẩn bị sẵn cách test thực tế chứ không chỉ mock hay unit test, thì cuối cùng vẫn có thể hoàn thành trong khi tiết kiệm thời gian lẫn tiền bạc
Cách đây 12 năm tôi từng muốn làm một app đơn giản hiển thị ngày/tuần/tháng của mình còn lại bao nhiêu bằng độ dài thanh, đồng thời biểu diễn thời tiết như nhiệt độ cao nhất, thấp nhất và lượng mây cũng bằng thanh
Tôi làm được phần nào bằng text và ASCII, nhưng không thể tạo ra giao diện đủ tốt để muốn dùng mỗi ngày, và rốt cuộc cũng không làm nổi GUI đồ họa
Thế là tôi mô tả giao diện đồ họa mình muốn cho Claude Code rồi chạy thử, và nó tạo ra đúng cái app tôi cần, còn tìm ra cả lỗi ở bộ phân tích ngày tháng mà tôi không hề biết
Giờ tôi luôn để app đó ở một góc màn hình
Tiếp theo tôi định làm một app iPhone tự động tắt báo thức vào những sáng bọn trẻ không phải đi học
Tôi hoàn toàn không biết gì về app iPhone và cũng không có thời gian để học, nên trước đây chưa bao giờ dám nghĩ đến
Với app cá nhân thì Claude Code thật sự rất xuất sắc, và vì chất lượng code không quá quan trọng nên dùng luôn kết quả của nó là đủ tốt
Trình quản lý clipboard trên Mac mà tôi dùng suốt nhiều năm bắt đầu dở chứng sau một bản cập nhật hệ điều hành, còn các app thay thế trên App Store thì lại thiếu đúng các tính năng tôi muốn
Thế là sau khi đọc bài về SwiftUI vibe coding của Simon Willison, tôi tự làm bằng Claude Code
Cần lặp vài lần, nhưng giờ nó chạy trên menu bar của Mac với đầy đủ tính năng tôi muốn và còn hơn thế nữa
Đặc biệt, khi tôi hỏi CC về ý tưởng tính năng bổ sung, nó đề xuất cả một danh sách dài những tùy chọn tôi chưa từng nghĩ tới, và việc cho nó triển khai luôn những thứ tôi chọn thật sự khá ấn tượng
Cách đây hai ngày tôi lại muốn có một trình soạn thảo markdown chuyên dụng, giống component chỉnh sửa markdown mới của LibreOffice nhưng nhỏ hơn và nhẹ hơn
Thế là tôi dùng GPT 5.5 để phác thảo và CC để triển khai, và chỉ sau hai phiên vibe coding thì gần như đã có xong một app Mac native nhẹ, có thể mở/tạo file, chỉnh sửa kiểu word processor, và lưu ra canonical markdown
Mới chỉ còn thiếu bảng markdown, và hôm nay tôi định để nó làm tiếp phần đó
https://simonwillison.net/2026/Mar/27/vibe-coding-swiftui/
https://news.ycombinator.com/item?id=47298885
Tôi thích tự làm mọi thứ, nhưng đôi khi chỉ muốn nhanh chóng có được thành phẩm
Khi muốn có một công cụ cá nhân phục vụ mục đích cụ thể mà không phải đốt trọn cả cuối tuần, sự hỗ trợ của LLM thực sự rất tuyệt, và chất lượng code cũng không quá quan trọng
Trên iPhone, có thể giải quyết bằng ứng dụng Shortcuts mặc định
Bạn tạo một shortcut tắt toàn bộ báo thức, rồi đọc tín hiệu như lịch để bật tắt báo thức vào ngày hoặc giờ cụ thể, và cho nó chạy theo lịch định kỳ là được
Tôi nghĩ side project thường không đáng làm nếu bạn không thật sự muốn làm
Nếu quá trình và trải nghiệm là chính thì đó là giải trí, còn nếu kết quả là chính thì đó là công việc
Nếu làm nhiều side project chỉ vì kết quả, thì rốt cuộc bạn đang làm việc trong thời gian rảnh, mà như vậy có thực sự còn là tự do không thì tôi nghi ngờ
Xã hội hiện đại vốn đã đòi hỏi ở chúng ta quá nhiều kết quả, nên ít nhất side project tôi vẫn muốn giữ lại cho tinh thần
Tuy vậy, vẫn có thể có ngoại lệ nếu bạn tin vào một mục đích vì lợi ích lớn hơn, và kiểu mục đích đó có thể làm cho chính quá trình cũng trở nên phong phú hơn
Có những lúc tôi cần phần mềm để làm cho một sở thích khác thú vị hơn, nhưng lại không muốn lấy thời gian của sở thích X để tự viết phần mềm đó
Hơn nữa, đôi khi loại việc đó cũng không phải kiểu code mà tôi thấy vui
Đây chính là sweet spot của coding có LLM hỗ trợ đối với tôi, và thực tế tôi đã làm vài app phụ trợ để tận hưởng tốt hơn các sở thích khác
Vẫn là thời gian cho sở thích, chỉ là sở thích đó không nhất thiết phải là code
Nhưng nếu bạn có một itch muốn giải quyết hoặc một hoài bão muốn thực hiện mà trước đây thiếu thời gian hay động lực, thì tôi không hiểu vì sao phải xem nó là lao động trong thời gian rảnh
Những dự án từng nuốt trọn cuối tuần hay kỳ nghỉ giờ có thể dựng được bộ khung chỉ trong 15 phút, và điều đó còn gần như đối lập với công việc hơn là giống công việc
Tôi đã lập trình hơn 30 năm, nhưng lúc nào cũng thấy hài lòng với app dòng lệnh, mãi gần đây mới học Qt để gắn UI desktop đúng nghĩa
Đường cong học tập rất dốc, nhưng giờ tôi cũng đã vượt qua được phần nào
Nhưng rồi tôi đăng ảnh chụp màn hình ứng dụng lên LinkedIn kèm dòng miễn phí và mã nguồn mở, và lại nhận hàng trăm bình luận từ những kiểu người LinkedIn vốn cũng chẳng định thuê tôi
Những phản hồi kiểu “chúng tôi muốn tích hợp nó vào workflow của mình” hay “bạn không phải người đầu tiên thử cái này” chẳng hề tạo động lực, ngược lại chỉ khiến tôi có cảm giác mình đang làm lợi cho người khác hoặc nhận về những lời phê bình vô ích
Tôi bị sốc đến mức buông tay khoảng một tháng, rồi cuối cùng nhận ra thứ mình thích thật ra là chính quá trình học Qt và nhìn những chương trình cũ của mình sống dậy
Thế là giờ tôi đối xử với nó như project car của riêng mình
Cứ tiếp tục tháo ra sửa vào, đập đi làm lại hoàn toàn data model để xem ưu nhược điểm của các thiết kế khác nhau, tự làm graphic view, rồi thử thêm cả dịch ngôn ngữ
Về mặt chức năng thì nó đã xong từ lâu, nhưng tôi có chừng năm phiên bản với cấu trúc bên trong hoàn toàn khác nhau, và đó mới chính là điều vui
Tôi dùng nó suốt cả ngày trong công việc, và sẽ không bao giờ nhắc đến nó trên LinkedIn nữa
Trong repo cá nhân của tôi có tới ba bản thử app ghi chú, và cả ba đều mắc kẹt trong khoảng trống giữa ý tưởng và thời gian rảnh
Nhưng nhờ Claude Code, tôi đã hoàn thành đúng cái mình thực sự muốn chỉ trong hai tháng
Bản thân quá trình làm ra nó là sở thích tuyệt nhất tôi từng có, tốt hơn game hay lướt vô tận rất nhiều
Khi một ý tưởng tôi ấp ủ nhiều năm cuối cùng cũng được phát hành, ứng dụng đó mang một phần con người tôi sâu hơn trong nó, và tôi nghĩ sắp tới sẽ có nhiều solo builder làm ra những thứ như vậy hơn rất nhiều
Tôi không có ý hạ thấp việc làm lại dự án cũ, nhưng thị trường có khả năng sẽ tràn ngập những dự án cực kỳ chuyên biệt
Ngày xưa hộp phần mềm còn có bảng thông số kỹ thuật, còn bây giờ có lẽ chúng ta sẽ cần một thứ giống ngôn ngữ mô hình hóa mới để mô tả mục đích sử dụng và phạm vi của chúng
Trải nghiệm của tôi cũng gần như y hệt
Một side project dùng để tổng hợp so sánh đã bị kẹt ở mức hoàn thành 20% hơn một năm, mỗi tháng tôi lại mở nó lên một lần, nhìn danh sách việc cần làm rồi mệt mỏi đóng tab lại
Nhưng chỉ cần vài cuối tuần ngồi cùng Claude là tôi đã vượt qua được bức tường “nửa vời” đó
Điều khiến tôi ngạc nhiên không phải tốc độ thuần túy, mà là chi phí tái nhập cuộc biến mất — trước kia, muốn làm gì tiếp thì tôi phải mất cả tiếng nạp lại code cũ của mình vào đầu
Tôi ghét kiểu hype phóng đại, nhưng phần lớn những người chế giễu các công cụ này có vẻ thật ra chưa từng thử dùng chúng cho những công việc buồn tẻ như vậy để thấy chúng hữu ích đến mức nào
Lúc nào tôi cũng có nhiều ý tưởng hơn khả năng gánh vác, và trong số đó có không ít cái khá hay
Nhờ các công cụ AI, giờ tôi có thể hiện thực hóa được nhiều cái hơn thành thứ ít nhất là chạy tạm ổn
Trớ trêu là giá trị của kiểu hiện thực hóa đó đang giảm rất nhanh
Vài tuần trước tôi làm một thư viện tìm kiếm nhỏ chạy trong trình duyệt, không cần server, hỗ trợ phần lớn query kiểu term/matching và aggregation theo phong cách Elasticsearch, còn gắn cả ANN vector search bằng WebGPU
Gần như cứ “thêm tính năng X đi” là nó có ngay, và tôi đã dùng nó trên vài website thật rồi
Nó không scale được lớn, nhưng cho blog hay trang tài liệu thì rất ổn, và trang tài liệu ở https://querylight.tryformation.com/
Nó hoạt động đúng như tôi hình dung, và tôi cảm giác có thể bổ sung thêm cả những tính năng đuôi dài của Elasticsearch mà không phải bỏ quá nhiều công
Trong khi đó phản ứng trên GitHub lại khá hờ hững
Giờ ai cũng bận dùng AI để làm thứ của riêng mình nên không còn quá hào hứng với nỗ lực của người khác nữa, và thật ra điều đó cũng dễ hiểu
Nếu cần thư viện tìm kiếm thì bạn có thể tự sinh ra, hoặc để AI chọn giúp một cái đủ dùng
Ngay từ đầu thì việc làm ra cái này cũng đâu phải lao động khổng lồ
Giá trị kinh tế của kiểu dự án này đang giảm rất nhanh
Dù vậy tôi vẫn tiếp tục vì thích tạo ra mọi thứ, và tôi cũng cho rằng việc làm quen với đường cong học tập của các công cụ này là quan trọng
Phía trước vẫn còn rất nhiều việc phải làm, nhưng mọi người sẽ mong đợi kết quả ổn với chi phí thấp hơn, và để đáp ứng kỳ vọng đó thì cần thành thạo công cụ
Cuối cùng, khi phạm vi khả thi mở rộng thì mức chuẩn của tham vọng cũng sẽ tăng theo, nên nếu nghĩ AI sẽ làm thay hết và con người không còn bị kỳ vọng nữa thì đó là một sự lầm tưởng
Bản thân tôi cũng đã làm việc những khoảng thời gian rất dài trong vài tháng qua
Trong nhiều năm, mỗi tuần tôi lại nảy ra vài ý tưởng sản phẩm, nhưng tất cả chỉ nằm trong Apple Notes
Thế mà chỉ trong một tháng vừa qua, tôi đã biến ba ý tưởng trong số đó thành beta dùng được thật sự, và giờ đang dùng cả ba mỗi ngày