Image default
Máy Tính

Vibe Coding: Biến Ý Tưởng Thành Ứng Dụng Không Cần Viết Code Với Sức Mạnh Của AI

Kể từ khi các chatbot AI như ChatGPT bùng nổ, một làn sóng lo lắng về việc AI sẽ “cướp” đi công việc của con người đã xuất hiện. Mặc dù vẫn còn nhiều lĩnh vực mà AI chatbot chưa thể làm được, nhưng một trong những mảng mà chúng chứng tỏ khả năng ấn tượng chính là lập trình.

Giờ đây, bất kỳ ai cũng có thể tạo ra mã lệnh của riêng mình bằng cách sử dụng các chatbot AI, chỉ đơn giản bằng cách mô tả những gì họ muốn thực hiện trong một “prompt” (lệnh văn bản). Kỹ thuật này đã được gọi là “vibe coding”. Với vai trò là biên tập viên công nghệ tại trangtincongnghe.net, tôi đã quyết định tự mình thử nghiệm “vibe coding” để xem liệu mình có thể tạo ra một ứng dụng đơn giản mà không cần gõ một dòng mã nào hay không. Bài viết này sẽ chia sẻ chi tiết hành trình khám phá và ứng dụng phương pháp “vibe coding”, cùng những kinh nghiệm thực tế để độc giả có thể tự mình trải nghiệm.

Vibe Coding Là Gì? Khai Phóng Sức Mạnh Lập Trình Bằng Lời Nói

“Vibe coding” là một phương pháp tạo ra phần mềm hoặc ứng dụng bằng cách sử dụng các công cụ AI, chẳng hạn như chatbot AI, để tạo mã dựa trên các mô tả bằng văn bản. Thay vì phải tự viết mã, bạn chỉ cần giải thích cho một chatbot AI những gì bạn muốn ứng dụng thực hiện. Chẳng hạn, nếu bạn muốn tạo một trò chơi đi cảnh (side-scrolling platform game), bạn chỉ cần mô tả các yếu tố, cơ chế hoạt động, và AI chatbot sẽ tự động tạo ra toàn bộ mã lệnh cho bạn.

Một người đang lập trình trên nhiều thiết bị, minh họa khái niệm "vibe coding" và cách AI hỗ trợ tạo mã.Một người đang lập trình trên nhiều thiết bị, minh họa khái niệm "vibe coding" và cách AI hỗ trợ tạo mã.

Bạn có thể tiếp tục tinh chỉnh ứng dụng của mình bằng các prompt bổ sung, yêu cầu chatbot thực hiện thay đổi về cách trò chơi hoạt động hoặc khắc phục bất kỳ lỗi nào xảy ra. Bằng cách để chatbot tinh chỉnh mã cho bạn, bạn có thể tạo ra phần mềm hoạt động mà không cần tự viết một dòng mã nào.

Hành Trình Kiến Tạo Ứng Dụng Năng Suất: Ý Tưởng và Mục Tiêu

Bản thân tôi có một chút kinh nghiệm về lập trình, nhưng tôi muốn xem liệu “vibe coding” có thể giúp tôi tạo ra một cái gì đó mà không cần phải tự mình thực hiện bất kỳ thay đổi nào đối với mã hay không. Tôi không muốn chọn một thứ gì đó quá phức tạp; tôi chỉ muốn xem liệu “vibe coding” có hiệu quả trong việc tạo ra một ứng dụng hữu ích và chức năng hoàn toàn bằng cách mô tả những gì tôi muốn.

Tôi luôn gặp khó khăn với năng suất làm việc, dễ dàng bị xao nhãng, và đã thử vô số ứng dụng để giải quyết vấn đề này. Phương pháp Pomodoro với 25 phút làm việc tập trung sau đó là 5 phút nghỉ ngơi đã giúp ích, nhưng tôi vẫn bị xao nhãng trong các phiên làm việc tập trung. Tôi cũng nhận thấy “time blocking” rất hữu ích.

Đồng hồ Pomodoro truyền thống đặt cạnh laptop, tượng trưng cho phương pháp quản lý thời gian hiệu quả.Đồng hồ Pomodoro truyền thống đặt cạnh laptop, tượng trưng cho phương pháp quản lý thời gian hiệu quả.

Do đó, tôi quyết định thử tạo một ứng dụng kết hợp cả hai phương pháp này. Ứng dụng sẽ tạo ra các khối thời gian 30 phút mà tôi có thể điền vào với các tác vụ tôi muốn hoàn thành. Mỗi khối sẽ có bộ hẹn giờ Pomodoro riêng mà tôi có thể chạy từ khối đó, và vào cuối mỗi phiên làm việc 25 phút, ứng dụng sẽ nhắc tôi nhập bất kỳ yếu tố gây xao nhãng nào đã xảy ra. Điều này sẽ giúp tôi theo dõi những thứ đang “đánh cắp” sự tập trung của mình để tìm cách loại bỏ chúng.

Lựa Chọn Công Cụ: ChatGPT và Model Tối Ưu Cho “Vibe Coding”

Với kế hoạch đã có, tôi gần như sẵn sàng bắt đầu. Tôi có đăng ký ChatGPT Plus, vì vậy đây là chatbot tôi định sử dụng. Quyết định tiếp theo là chọn model nào để dùng trong ChatGPT. Tất cả các model đều có thể xử lý lập trình ở một mức độ nào đó.

Robot trắng bóng ngồi thiền với chữ 'GPT-4o' trên ngực, đại diện cho các mô hình AI tiên tiến của ChatGPT.Robot trắng bóng ngồi thiền với chữ 'GPT-4o' trên ngực, đại diện cho các mô hình AI tiên tiến của ChatGPT.

Một số model hỗ trợ tính năng Canvas, mở một cửa sổ riêng cho mã của bạn, nhưng vì tôi đang “vibe coding” và không muốn chạm vào mã chút nào, điều này không quan trọng. Cuối cùng, tôi đã chọn model o3-mini-high, dựa trên model o3-mini vốn nổi tiếng về khả năng lập trình. Model o3-mini-high được cho là thông minh hơn, mặc dù cần nhiều thời gian hơn một chút để xử lý.

Những Bước Đầu Tiên: Tạo Phiên Bản Ứng Dụng Cơ Bản

Tôi bắt đầu bằng cách mô tả những gì tôi muốn ứng dụng thực hiện. Tôi cố gắng đưa vào càng nhiều tính năng mong muốn càng tốt. Đây là phần khó nhất của toàn bộ quá trình; tôi cần một ý tưởng rõ ràng về chính xác những gì tôi muốn ứng dụng làm và cần mô tả nó một cách chính xác nhất có thể. Điều này sẽ đảm bảo kết quả gần nhất với mong muốn của tôi.

Tôi đã nhập một prompt bao gồm hầu hết các tính năng tôi muốn đưa vào, và model bắt đầu xử lý. Sau một phút 19 giây (tôi biết vì nó đã thông báo), ChatGPT đã tạo ra một khối mã. Tôi sao chép nó vào TextEdit, lưu dưới dạng tệp HTML, và khi tôi mở tệp, ứng dụng đã tải trong trình duyệt của tôi.

Giao diện phiên bản đầu tiên của ứng dụng Pomodoro và quản lý thời gian đang chạy trên trình duyệt web.Giao diện phiên bản đầu tiên của ứng dụng Pomodoro và quản lý thời gian đang chạy trên trình duyệt web.

Nỗ lực đầu tiên khá tốt; nó có các khối thời gian được sắp xếp và các trường để nhập tên phiên làm việc, chọn thời gian và thêm chúng vào lịch trình. Có một nút “schedule” rõ ràng để xóa toàn bộ trang.

Bộ đếm thời gian Pomodoro 25 phút hoạt động ở chế độ toàn màn hình trong trình duyệt, giúp tập trung cao độ.Bộ đếm thời gian Pomodoro 25 phút hoạt động ở chế độ toàn màn hình trong trình duyệt, giúp tập trung cao độ.

Khi tôi nhập tên cho một phiên, tôi có thể nhấp vào biểu tượng “Play” cho phiên đó để bắt đầu bộ hẹn giờ 25 phút, sau đó một bộ hẹn giờ nghỉ 5 phút sẽ chạy. Cho đến nay, mọi thứ đều tốt. Tuy nhiên, đây chưa phải là sản phẩm hoàn chỉnh, vì vậy tôi sẽ cần thực hiện một số thay đổi.

Tinh Chỉnh và Khắc Phục Lỗi: Nghệ Thuật Của Prompt Rõ Ràng

Có một vấn đề với bố cục; các khối thời gian được sắp xếp sao cho thời gian tăng dần theo chiều ngang trên màn hình, nhưng tôi muốn thời gian tăng dần theo chiều dọc thành các cột. Tôi đã không chỉ định điều này trong prompt ban đầu của mình, vì vậy lỗi này là do tôi.

Ngoài ra, tôi muốn bộ hẹn giờ mở ra dưới dạng cửa sổ toàn màn hình. Điều này sẽ giúp chặn tất cả các ứng dụng khác và giảm bớt sự xao nhãng cho tôi (tôi sẽ chạy ứng dụng trên MacBook trong khi làm việc trên iMac của mình).

Giao diện nhập prompt yêu cầu ChatGPT tinh chỉnh mã cho ứng dụng Pomodoro và quản lý thời gian, tập trung vào bố cục và chức năng.Giao diện nhập prompt yêu cầu ChatGPT tinh chỉnh mã cho ứng dụng Pomodoro và quản lý thời gian, tập trung vào bố cục và chức năng.

Tôi nhập một prompt giải thích những gì tôi muốn sửa, cùng với một vài chỉnh sửa khác, và ChatGPT đã suy nghĩ thêm 44 giây trước khi tạo ra mã mới. Chạy mã mới, tôi thấy rằng hướng dẫn của mình về bố cục đã quá mơ hồ; các khối thời gian giờ đây là một cột dọc dài thay vì lưới mà tôi đã yêu cầu ban đầu. Đây là một bài học quan trọng về “vibe coding”: kết quả chỉ tốt khi hướng dẫn của bạn rõ ràng.

Ứng dụng Pomodoro và quản lý thời gian hiển thị các khối thời gian trong một cột duy nhất, minh họa lỗi bố cục sau chỉnh sửa.Ứng dụng Pomodoro và quản lý thời gian hiển thị các khối thời gian trong một cột duy nhất, minh họa lỗi bố cục sau chỉnh sửa.

Tôi đã thêm một prompt khác để làm rõ, và sau 39 giây nữa, tôi nhận được mã đã sửa. Chạy phiên bản mới cho tôi bố cục tôi muốn và khắc phục các chỉnh sửa khác mà tôi đã yêu cầu.

Cũng có một vấn đề với bộ đếm thời gian. Nó hoạt động tốt khi màn hình đếm ngược đang được chú ý, nhưng nếu tôi bắt đầu sử dụng các ứng dụng khác, bộ đếm sẽ không tiếp tục chính xác. Chẳng hạn, nếu tôi sử dụng một ứng dụng khác trong một phút, bộ hẹn giờ sẽ chỉ giảm 30 giây.

Tôi đã thêm một prompt khác yêu cầu khắc phục sự cố với bộ hẹn giờ, giải thích rằng tôi muốn thời gian được đo chính xác ngay cả khi ứng dụng không được chú ý. Sau 72 giây nữa, mã đã được tạo và vấn đề hẹn giờ đã được khắc phục.

Nâng Cao Trải Nghiệm Người Dùng: Tự Động Điền Dữ Liệu và Ghi Nhận Phiền Nhiễu

Vấn đề tiếp theo là điều tôi chưa xem xét khi viết prompt ban đầu. Khi lên kế hoạch cho ngày của mình, tôi có xu hướng điền từng khối thời gian theo thứ tự. Ở dạng hiện tại, ứng dụng tự động điền trường thời gian với thời gian của khối có sẵn tiếp theo.

Tuy nhiên, vì hầu hết các tác vụ của tôi thường mất hơn 25 phút, tôi thường chèn nhiều khối cho cùng một tác vụ, vì vậy sẽ hợp lý hơn nếu tên phiên giữ nguyên tên của khối trước đó cho đến khi bị ghi đè.

Giao diện ứng dụng Pomodoro tự động điền tên phiên làm việc và thời gian, tối ưu hóa quy trình lập kế hoạch công việc.Giao diện ứng dụng Pomodoro tự động điền tên phiên làm việc và thời gian, tối ưu hóa quy trình lập kế hoạch công việc.

Tôi đã tạo một prompt khác, và ChatGPT đã làm công việc của nó. Sau khoảng một phút, mã đã được tạo. Nó gần như hoạt động như mong đợi, nhưng có một vấn đề. Nếu tôi chọn một thời gian khác bằng menu thả xuống, phiên sẽ được thêm vào vị trí có sẵn tiếp theo thay vì thời gian tôi đã chọn. Một prompt nhanh nữa, và 15 giây sau, vấn đề đã được khắc phục.

Tôi nhận ra có một phần quan trọng mà tôi đã bỏ lỡ trong prompt ban đầu. Một trong những điều tôi muốn từ ứng dụng của mình là khả năng ghi lại bất cứ điều gì đã làm tôi xao nhãng trong phiên làm việc tập trung. Điều này sẽ giúp tôi xác định các nguyên nhân phổ biến nhất gây xao nhãng và tìm cách giảm thiểu chúng.

Đây là lúc tôi thử một cái gì đó hơi khác. Prompt đầu tiên của tôi đã bỏ lỡ một số thông tin quan trọng, vì vậy tôi tự hỏi liệu ChatGPT có thể giúp tôi viết prompt “vibe coding” hay không. Tôi đã mở model GPT-4o, giải thích những gì tôi muốn một cách dài dòng và yêu cầu nó cung cấp cho tôi một prompt mà tôi có thể sử dụng để thực hiện các thay đổi thích hợp đối với mã của mình.

Trường nhập liệu cho việc ghi lại các yếu tố gây xao nhãng trong ứng dụng Pomodoro, với gợi ý từ các mục đã nhập trước đó.Trường nhập liệu cho việc ghi lại các yếu tố gây xao nhãng trong ứng dụng Pomodoro, với gợi ý từ các mục đã nhập trước đó.

Tôi lấy prompt kết quả và dán vào cuộc trò chuyện “vibe coding” của mình, và ChatGPT đã cập nhật mã cho tôi. Phải mất một vài chỉnh sửa nữa để nó hoạt động hoàn hảo, nhưng không lâu sau, tôi đã có tất cả các tính năng cần thiết cho ứng dụng của mình.

Ứng dụng hoàn chỉnh làm mọi thứ tôi yêu cầu, và nó được tạo ra mà không cần tôi viết một dòng mã nào. Tôi chắc chắn rằng tôi sẽ thực hiện một số cải tiến cho nó theo thời gian (ví dụ, giao diện chưa thực sự đẹp), nhưng tôi đã sử dụng nó để lên kế hoạch cho ngày của mình và giữ cho bản thân tập trung vào các tác vụ trong tầm tay.

Tính Năng “Work With Apps”: Trợ Thủ Đắc Lực Khi Phát Triển Với AI

Một tính năng rất tiện dụng mà tôi đã sử dụng khi tạo ứng dụng này là “Work With Apps”. Sử dụng tính năng này, ứng dụng ChatGPT dành cho máy tính để bàn có thể giao tiếp với các ứng dụng khác mà bạn đang mở trên máy tính của mình. Tôi đã sử dụng TextEdit để nhập mã ban đầu, và bằng cách nhấn nút “Work With Apps” trong ChatGPT, tôi có thể liên kết nó với tệp TextEdit của mình.

Lợi ích là bất cứ khi nào tôi thay đổi bất kỳ mã nào, ChatGPT có thể tự động thực hiện các thay đổi đối với tệp TextEdit cho tôi mà không cần phải thực hiện tất cả việc sao chép và dán. Tất cả những gì tôi cần làm là lưu tệp và làm mới trình duyệt của mình để thử phiên bản cập nhật.

Tuy nhiên, điều này không phải lúc nào cũng hoạt động. Có vẻ như nếu ứng dụng bạn đang làm việc ở chế độ nền quá lâu, kết nối sẽ bị mất và mã sẽ không còn cập nhật nữa.

“Vibe Coding” Có Thực Sự Hiệu Quả? Kiên Nhẫn Là Chìa Khóa

Ứng dụng của tôi khó có thể được coi là một kỳ tích của công nghệ hiện đại, nhưng nó thực hiện chính xác những gì tôi muốn và hoàn toàn có thể sử dụng được. Hơn nữa, nó chạy cục bộ và không tốn kém gì cho tôi, không giống như một số ứng dụng năng suất mà tôi đã sử dụng trước đây. Tôi có thể hoàn thành nó chỉ trong hơn một giờ, và có thể nhanh hơn rất nhiều nếu tôi đã suy nghĩ kỹ mọi thứ trước đó.

Hai người cùng làm việc trên máy tính, biểu tượng cho sự hợp tác giữa con người và AI trong lập trình.Hai người cùng làm việc trên máy tính, biểu tượng cho sự hợp tác giữa con người và AI trong lập trình.

Trong toàn bộ quá trình, tôi không chạm vào mã một lần nào; tất cả các thay đổi đều được thực hiện thông qua các prompt. Ngay cả khi tôi không có kiến thức về lập trình, tôi cũng có thể đạt được kết quả tương tự. Đây là một điểm khởi đầu tuyệt vời cho những người không chuyên về lập trình để khám phá những gì có thể, nhưng nó sẽ chưa thay thế được bất kỳ nhà phát triển phần mềm nào.

“Vibe coding” vẫn còn xa mới hoàn hảo và đòi hỏi sự kiên nhẫn để giải quyết các vấn đề bạn gặp phải. Bạn cũng cần cẩn thận để các prompt của mình thật rõ ràng. Tuy nhiên, nếu bạn kiên trì, bạn sẽ thấy ấn tượng với những gì mình có thể tạo ra mà không cần viết một dòng mã nào của riêng bạn.


Kết luận: Qua trải nghiệm thực tế này, “vibe coding” đã chứng minh tiềm năng to lớn của AI trong việc dân chủ hóa quá trình tạo ứng dụng. Mặc dù vẫn còn những thách thức về sự rõ ràng của prompt và tính ổn định của công cụ, khả năng biến ý tưởng thành sản phẩm mà không cần kiến thức lập trình sâu là một bước tiến vượt bậc. Trangtincongnghe.net tin rằng đây sẽ là một xu hướng đáng để khám phá cho bất kỳ ai muốn hiện thực hóa các ý tưởng công nghệ cá nhân.

Bạn đã từng thử “vibe coding” hay có ý tưởng nào độc đáo để áp dụng nó không? Hãy chia sẻ suy nghĩ và trải nghiệm của bạn dưới phần bình luận để chúng ta cùng thảo luận về tương lai thú vị của lập trình bằng AI nhé!

Related posts

Microsoft PowerToys: 4 Tính Năng Tuyệt Vời Đáng Lẽ Phải Có Sẵn Trong Windows

Administrator

Hướng Dẫn Chi Tiết Cách Tạo File ISO Từ Đĩa CD/DVD/Blu-Ray Trên Windows, Mac Và Linux

Administrator

Mật Mã Học: Lá Chắn Vô Hình Bảo Vệ Dữ Liệu Của Bạn Trên Internet

Administrator