Vibe coding: Tương lai phát triển phần mềm với AI

Việc Replit trình diễn khả năng tạo ra một bản đồ tương tác chỉ bằng một chuỗi các câu lệnh gợi ý đã gợi nhớ đến công nghệ holodeck trong Star Trek, nơi các thành viên thủy thủ đoàn có thể kiến tạo nên những cảnh tượng sống động chỉ với yêu cầu bằng lời. Đây là một minh chứng rõ nét cho thấy vibe coding, hay phát triển ứng dụng có sự hỗ trợ của AI, đang định hình lại cách chúng ta xây dựng phần mềm. Vibe coding đại diện cho một bước tiến hóa quan trọng, vượt xa các công cụ tạo mã AI đơn thuần và các phương pháp cải thiện quy trình phát triển phần mềm hiện có.

Khác với việc chỉ đơn thuần tạo ra các đoạn mã, vibe coding cho phép các nhà phát triển hoặc những người ít kinh nghiệm hơn xây dựng các ứng dụng full-stack thông qua một chuỗi các tương tác lặp đi lặp lại với AI. Quá trình này bắt đầu bằng việc thiết lập ý tưởng ban đầu và sau đó liên tục cải tiến thiết kế ứng dụng dựa trên phản hồi và chỉ dẫn của người dùng. Điều này đặt ra câu hỏi lớn: Liệu vibe coding có phải là sự kết thúc của phát triển phần mềm như chúng ta vẫn biết?

Các chuyên gia nhìn nhận vibe coding dưới nhiều góc độ. Một số coi đây là một công cụ phát triển AI, không phải là mối đe dọa đối với các nhà phát triển phần mềm. Nic Benders, chiến lược gia kỹ thuật trưởng tại New Relic, ví von vibe coding với sự ra đời của trình biên dịch hay các ngôn ngữ lập trình bậc cao. Những bước chuyển dịch này ban đầu gây xáo trộn nhưng sau đó đã trở thành nền tảng, giúp con người chuyển từ “thì thầm với phần cứng” sang “xây dựng ứng dụng”. Ông nhấn mạnh rằng sự phát triển này sẽ tiếp tục, miễn là chúng ta tập trung vào việc xác định đúng vấn đề, giữ con người trong vòng lặp và đảm bảo tính minh bạch cùng an ninh.

Bharat Guruprakash, giám đốc sản phẩm tại Algolia, đồng tình rằng vibe coding là một bước tiến hóa, một sự trừu tượng hóa lên bậc cao hơn, tương tự như cách lập trình thủ tục hay hướng đối tượng đã làm vào những năm 1960-1970. Lịch sử cho thấy, mỗi lần có sự trừu tượng hóa trong lập trình, khối lượng công việc phát triển không giảm mà còn tăng lên đáng kể, nhưng bản chất công việc đã thay đổi. Vibe coding được dự đoán sẽ mang lại hiệu ứng tương tự.

Diego Tartara, CTO toàn cầu tại Globant, cho rằng tương lai của coding sẽ thiên về vibe coding hơn là coding truyền thống, bởi sự phát triển nhanh chóng của công nghệ đòi hỏi sự thích ứng. Tuy nhiên, ông cũng lưu ý rằng vibe coding và các công cụ hỗ trợ vẫn đang trong giai đoạn phát triển. Việc xây dựng các ứng dụng đáng tin cậy, hiệu quả và có khả năng bảo trì ở quy mô lớn bằng ngôn ngữ không cấu trúc, dễ dẫn đến nhiều cách diễn giải khác nhau, là không lý tưởng nếu thiếu các quy trình phù hợp.

Vibe coding mang lại những ưu điểm đáng kể, đặc biệt là khả năng tạo ra các bản mẫu (prototype) chức năng cao một cách nhanh chóng. Việc có thể lặp lại và cải tiến trải nghiệm người dùng một cách tức thời có giá trị lớn, dẫn đến chu kỳ phát triển nhanh hơn và trải nghiệm người dùng tốt hơn so với các bản thiết kế tĩnh. Tuy nhiên, một số ý kiến đặt ra nghi vấn về khả năng tạo ra các ứng dụng doanh nghiệp phức tạp, có khả năng mở rộng và bảo mật của vibe coding.

Michael Berthold, CEO và nhà sáng lập KNIME, nhận định vibe coding lý tưởng cho việc tạo mẫu, nghiên cứu khám phá và thiết kế giai đoạn đầu. Tuy nhiên, điểm mạnh này cũng là hạn chế, vì nó khó tạo ra các hệ thống có thể dự đoán, tái tạo hoặc giải thích được, dẫn đến khó khăn trong việc gỡ lỗi. Các hệ thống được tạo ra theo cách này có thể gặp lỗi ở các trường hợp biên mà các bài kiểm tra không phát hiện ra, đồng thời tiềm ẩn các lỗ hổng bảo mật. Do không thể kiểm toán rõ ràng, chúng không nên được tin dùng trong môi trường sản xuất hoặc các ứng dụng yêu cầu độ an toàn cao.

Các công cụ vibe coding như Base44, Cursor, Replit hướng đến các đối tượng người dùng và kỹ năng kỹ thuật khác nhau. Ngoài các câu lệnh, chúng cung cấp các trải nghiệm, tính năng và công cụ đa dạng. Sự khác biệt này có thể gây khó khăn cho các nhà phát triển trong các ngành được quản lý chặt chẽ, nơi có các tiêu chuẩn phát triển và hạ tầng cụ thể, khiến họ khó có thể làm gì hơn ngoài việc tạo mẫu.

Marcus Torres, giám đốc sản phẩm tại Quickbase, chỉ ra rằng vibe coding giúp hiện thực hóa ý tưởng nhanh chóng, nhưng nhiều công cụ còn thiếu cơ sở hạ tầng cần thiết để mở rộng ngoài phạm vi bản mẫu. Thiếu các cấu trúc dữ liệu tích hợp, kiểm soát truy cập hoặc bảo mật cấp doanh nghiệp, người dùng không chuyên thường gặp khó khăn. Đó là lý do tại sao vibe coding chủ yếu vẫn nằm trong lĩnh vực các dự án rủi ro thấp hoặc mang tính thử nghiệm.

Tuy nhiên, vibe coding đánh dấu một sự thay đổi mô hình trong cách các kiến trúc sư, chủ sản phẩm và kỹ sư cộng tác. Việc thử nghiệm vibe coding là rất tốt để kiểm tra chức năng và xác định cách sử dụng hiệu quả các công cụ đã chọn. Michael Ameling, chủ tịch SAP Business Technology Platform, tin rằng AI-assisted coding mở ra một mô hình phát triển mới, nơi các nhà phát triển chuyển từ viết mã từng dòng sang định hình logic, ngữ cảnh và mục tiêu để hướng dẫn các hệ thống thông minh. Thành công của vibe coding phụ thuộc vào khả năng của đội ngũ trong việc kiến trúc hóa với AI như một cộng tác viên, dựa trên dữ liệu sạch, có cấu trúc tốt để mang lại kết quả chính xác nhất.

Việc người không chuyên có nên sử dụng vibe coding hay không cũng là một vấn đề gây tranh luận. Giai đoạn đầu của phát triển low-code và no-code có nhiều điểm tương đồng với cách các chuyên gia nhìn nhận tiềm năng và rủi ro của vibe coding hiện nay. Giống như low-code, một số chuyên gia hào hứng với khả năng lặp lại nhanh chóng, đơn giản hóa kỹ năng phát triển và lợi ích từ việc tăng tốc phản hồi của người dùng cuối.

Noah Schwartz, trưởng bộ phận sản phẩm tại Postman API Network, khuyên nên tiếp cận vibe coding với tư duy lặp lại, chia nhỏ vấn đề và làm việc với AI để tinh chỉnh. Tương tự như làm việc với đồng nghiệp, bạn có thể bắt đầu bằng cách mô tả mục tiêu cuối cùng, sau đó chia nhỏ vấn đề và xây dựng giải pháp. Việc trình diễn cách bạn sử dụng vibe coding cũng quan trọng như việc trình diễn các tính năng bạn xây dựng, bởi đây là một kỹ năng có thể dạy, trình diễn và học hỏi.

Ngược lại, một số ý kiến cảnh báo rằng việc mở rộng khả năng phát triển cũng làm gia tăng nguy cơ về lỗ hổng bảo mật. Ashwin Mithra, trưởng bộ phận an ninh thông tin toàn cầu tại CloudBees, cho rằng vibe coding có lợi ích là dân chủ hóa phát triển, nhưng cũng tiềm ẩn nguy cơ phân tán rủi ro. Các kiểm tra bảo mật còn hạn chế và không thể phát hiện mọi thứ, đặc biệt là các rủi ro theo ngữ cảnh, lỗ hổng phức tạp, rò rỉ API, xác thực yếu, lộ thông tin cá nhân và dữ liệu không được mã hóa. Để mở rộng khả năng khoa học dữ liệu và phát triển của công dân một cách an toàn, việc thiết lập quản trị AI mạnh mẽ là cần thiết. Các tổ chức muốn thử nghiệm vibe coding nên xây dựng chính sáchxác định các nguyên tắc bất khả nhượng về devsecops.

Ngay cả khi đã có quản trị, các chuyên gia lưu ý rằng các nhà phát triển thường bổ sung bảo mật sau khi triển khai, và nhiều người chưa áp dụng các thực hành bảo mật sớm (shift-left security). Việc mở rộng tư duy này sang vibe coding, nơi vẫn còn nhiều điều cần tìm hiểu về bảo mật mã do AI tạo ra, tiềm ẩn những rủi ro thực tế. Liav Caspi, CTO tại Legit Security, nhấn mạnh rằng các thực tiễn tốt nhất cho vibe coding xoay quanh việc cảnh giác cao độ và đảm bảo không bỏ qua các biện pháp bảo mật đã được thiết lập. Điều này bao gồm quét lỗ hổng, mô hình hóa mối đe dọa, thiết lập kiểm tra và xác nhận tự động, cùng với việc giám sát chặt chẽ những gì AI tạo ra. Các nhà phát triển cần áp dụng cách tiếp cận zero-trust với mã do AI tạo ra, và ghi nhớ rằng các công cụ vibe coding ưu tiên năng suất hơn quyền riêng tư và bảo mật, do đó phải được sử dụng cẩn trọng.

Chris Joynt, giám đốc tại Securiti AI, bổ sung rằng vibe coding với trợ lý AI mang lại tốc độ vượt trội cho bản nháp đầu tiên, nhưng tốc độ này có thể dễ dàng dẫn đến các lỗ hổng injection, kiểm soát truy cập bị lỗi hoặc lộ bí mật nếu thiếu thiết lập, ngữ cảnh, giám sát phù hợp và quá trình xem xét mã kỹ lưỡng.

Các nền tảng low-code và no-code thường có các hàng rào bảo mật tích hợp để quản lý cách mã được tạo ra và khả năng tích hợp các thành phần bên thứ ba. Các nền tảng vibe coding có thể mở hơn, đòi hỏi quá trình xem xét bảo mật kỹ lưỡng hơn đối với các thành phần và mã được tạo ra. Scott Sanders, VP kỹ thuật nền tảng tại Sonar, cho rằng vibe coding đề cao việc định nghĩa và kiến trúc ban đầu, cho phép sự sáng tạo thăng hoa trong việc tạo mẫu nhanh và xây dựng các sản phẩm khả dụng tối thiểu (MVP) bằng cách ưu tiên lặp lại thay vì sự hoàn hảo. Tuy nhiên, từ góc độ bảo mật, khối lượng mã khổng lồ được tạo ra khiến việc tuân thủ các tiêu chuẩn bảo mật và quy định trở nên khó khăn, tạo thêm gánh nặng nhận thức cho các nhà phát triển trong việc xem xét và xác nhận ở quy mô lớn.

Một mối quan tâm khác là quyền sở hữu và điều khoản sử dụng đối với tài sản trí tuệ được tạo ra trên các nền tảng vibe coding. Các lãnh đạo IT nên tham khảo ý kiến bộ phận pháp lý trước khi tạo mẫu để hiểu rõ cách mỗi nền tảng xử lý tài sản trí tuệ. David Minarsch, nhà sáng lập Olas, cảnh báo rằng các nền tảng vibe coding tập trung sẽ âm thầm ghi lại và tiếp nhận mọi thứ người dùng nhập vào, từ ý tưởng sáng tạo đến các đoạn mã nhạy cảm về kinh doanh. Điều này tiềm ẩn rủi ro thực sự cho các nhà phát triển xây dựng quy trình làm việc độc quyền hoặc công cụ nội bộ, vì người dùng có thể từ bỏ quyền đối với logic, quy trình làm việc và dự án sáng tạo của chính họ.

Khi các tổ chức cho phép sử dụng các nền tảng vibe coding cho mục đích tạo mẫu, những câu hỏi và lo ngại bổ sung nảy sinh liên quan đến việc triển khai các ứng dụng này trong môi trường sản xuất. Steve Touw, đồng sáng lập và CTO tại Immuta, cho rằng vibe coding có thể mang lại cảm giác nhanh chóng và liền mạch, nhưng đó là một mẫu phản tác dụng (anti-pattern) trá hình năng suất. Nó loại bỏ các thực hành kỹ thuật nền tảng để ưu tiên sự đoán mò của AI, tạo ra các hệ thống mong manh với các lỗi ẩn và lỗ hổng bảo mật. Mặc dù hữu ích cho việc tạo mẫu ở mức độ rủi ro thấp, việc dựa vào nó cho các ứng dụng thực tế mà không có kiểm thử, khả năng kiểm toán hoặc quản trị truy cập là liều lĩnh.

Một mối quan ngại khác là liệu các nhà phát triển có kết nối vibe coding với môi trường sản xuất với quyền truy cập không hạn chế để thực hiện các thay đổi hạ tầng hay không. Trong một trường hợp, một nền tảng vibe coding đã xóa một cơ sở dữ liệu sản xuất, nhưng vẫn còn câu hỏi liệu đây có phải là một thất bại trong quản trị hay không. Rob Whiteley, CEO của Coder, nhận định vibe coding đại diện cho một sự thay đổi trong cách chúng ta cộng tác với mã, chuyển từ thủ công sang sáng tạo, tương tự như lập cặp với AI. Ông khuyên nên coi vibe coding như làm việc với một nhà phát triển cấp dưới, với việc xem xét mã, quyền hạn được giới hạn và các vòng lặp chặt chẽ, bởi AI thiếu bối cảnh kiến trúc, tư duy dài hạn và các mặc định an toàn. Nếu không có giới hạn, nó có thể nhanh chóng chuyển từ hữu ích sang nguy hiểm, và mã nhanh mà không có quản trị chắc chắn sẽ thất bại theo cách này hay cách khác.

Gurjeet Arora, đồng sáng lập và CEO của Observo AI, cảnh báo rằng AI-assisted coding, bao gồm cả vibe coding, đang góp phần làm gia tăng đột biến lượng dữ liệu telemetry và khả năng quan sát thô. Ngay cả khi mã hoạt động, nó có thể cực kỳ kém hiệu quả trong việc tạo ra các bản ghi (log). Tại các tổ chức xử lý tất cả nhật ký của họ thông qua hệ thống quản lý thông tin và sự kiện bảo mật (SIEM), lượng dữ liệu mới này có thể làm tăng chi phí một cách đáng kể. Các tổ chức IT cần theo dõi chặt chẽ lưu lượng SIEM để phát hiện các ứng dụng “lạc loài” có thể làm ngập hệ thống. Vì những lý do này, nhiều chuyên gia khuyến nghị hạn chế việc sử dụng vibe coding cho mục đích khám phá sáng tạo và tạo mẫu, ít nhất là cho đến nay.

Facundo Giuliani, kỹ sư quan hệ nhà phát triển tại Storyblok, khuyên nên xem vibe coding như một phương pháp để tạo mẫu hoặc khám phá ý tưởng, chứ không phải là một con đường trực tiếp đến sản xuất. Vibe coding xuất sắc trong việc khơi gợi sự sáng tạo, nhanh chóng biến ý tưởng thành các bản mẫu hoạt động thông qua các câu lệnh ngôn ngữ tự nhiên, rất phù hợp cho việc thử nghiệm và xác thực nhanh chóng.

Việc cho rằng những lo ngại và thách thức hiện tại xung quanh các nền tảng và thực tiễn vibe coding sẽ không phát triển theo thời gian là một sai lầm. Tám năm trước, câu hỏi đặt ra là liệu AI có thể học cách viết mã hay không, và giờ đây nó đang xây dựng toàn bộ ứng dụng. Nếu vibe coding đi theo quỹ đạo tương tự như phát triển low-code, chúng ta có thể mong đợi khả năng, bảo mật và các rủi ro của nó sẽ được giải quyết khi việc áp dụng ngày càng tăng. Tobie Morgan Hitchcock, CEO và đồng sáng lập SurrealDB, cho rằng chúng ta đang trải qua sự thay đổi, nhưng đó là sự tiến hóa chứ không phải cách mạng. Các điểm xuất phát đã thay đổi, và việc coding thủ công đơn giản sẽ nhường chỗ cho AI, hạ thấp rào cản cho những người làm nghề tự do và doanh nghiệp nhỏ, trong khi các tác vụ đòi hỏi khắt khe hơn của các nhà phát triển sẽ là lặp lại, xem xét, kiểm thử và tinh chỉnh.

Với mỗi phương pháp luận mới ra đời, đều có những người ủng hộ nhiệt tình và những người phản đối, cũng như cơ hội và rủi ro. Nhưng nếu khả năng của vibe coding được cải thiện theo thời gian, như nhiều chuyên gia kỳ vọng, thì nó có thể đánh dấu một sự tiến hóa trong phát triển phần mềm vượt xa các công cụ tạo mã và trợ lý mã mà các nhà phát triển đang sử dụng ngày nay.

Tóm lại, vibe coding đại diện cho một bước tiến quan trọng trong lĩnh vực phát triển phần mềm, mang lại tiềm năng tăng tốc độ sáng tạo và đơn giản hóa quy trình xây dựng ứng dụng. Tuy nhiên, để khai thác tối đa lợi ích và giảm thiểu rủi ro, việc áp dụng vibe coding cần được thực hiện một cách có chiến lược, ưu tiên bảo mật, quản trị chặt chẽ và sự giám sát của con người. Các tổ chức nên bắt đầu với việc thử nghiệm ở quy mô nhỏ, xây dựng các chính sách rõ ràng và chuẩn bị cho một tương lai nơi AI sẽ trở thành một cộng tác viên không thể thiếu trong hành trình phát triển phần mềm.