[Next Vibe Coding] Bước 1: Nguyên lý cốt lõi của SDD giúp giảm 80% công việc làm lại với AI
Kết quả vibe coding cứ liên tục khác với ý định của bạn? Hãy học quy trình xác định mục tiêu, phạm vi, quy tắc nghiệp vụ và tiêu chí hoàn thành bằng Phát triển dựa trên đặc tả (SDD) và Spec Kit, sau đó truyền cùng một đặc tả cho Claude Code và Codex để giảm việc chỉnh sửa lặp đi lặp lại.
Có thể chuyển yêu cầu mơ hồ thành một đặc tả bao gồm Goal, Context, Constraints và Done when.
Bạn có thể phân biệt vai trò của Spec, Plan, Tasks và Implement, đồng thời kiểm chứng kết quả triển khai của AI.
Bước tiếp theo của vibe coding · Giai đoạn 1
[Next Vibe Coding] Bước 1: Giảm việc làm lại bằng SDD
Mã được tạo ra nhanh chóng, nhưng tại sao cứ phải quay lại từ đầu?
Khi thử vibe coding, tốc độ thực sự rất nhanh. Thế nhưng chỉ cần tính năng hơi phức tạp một chút là sẽ có lúc bạn nghĩ: “Đây không phải là luồng mà mình đã hình dung mà?” Càng bổ sung thêm mô tả, sửa lại rồi kiểm tra thêm lần nữa, thời gian tiết kiệm được lúc đầu nhanh chóng biến mất.
Khóa học này không phải là lớp học về cách viết prompt thật hay ho. Đây là khóa nhập môn SDD, giúp bạn đưa ra những quyết định cần thiết trước khi bắt tay xây dựng, đồng thời biến những quyết định đó thành cơ sở xuyên suốt quá trình triển khai và kiểm chứng.
Thay vì học mẹo giao việc hiệu quả, chúng ta cùng luyện tập xem cần quyết định điều gì trước để ít chao đảo hơn.
01 · Nhìn lại vấn đề
Vấn đề không nằm ở độ dài của prompt.
Nếu yêu cầu: “Hãy tạo chức năng đăng ký chi phí.” thì kết quả sẽ nhanh chóng được tạo ra. Nhưng nếu bỏ trống các thông tin như ai đăng ký, ai phê duyệt, có những trạng thái nào và xác nhận điều gì thì được xem là hoàn tất, việc triển khai có thể liên tục thay đổi.
Không phải vì trí tuệ nhân tạo (AI) làm việc qua loa. Mà là vì nó đã tự lấp đầy những phần chúng ta chưa xác định theo cách riêng của nó. SDD là phương pháp tìm ra những chỗ trống như vậy trước khi viết mã.
Mục tiêu
Bạn đang cố gắng giải quyết vấn đề gì?
Bối cảnh
Hiện tại bạn đang ở tình huống nào?
Ràng buộc
Những quy tắc nào nhất định phải tuân thủ?
Hoàn thành khi
Cần xác nhận điều gì thì mới xem là hoàn tất?
Nếu có thể trả lời được bốn câu hỏi này thì đặc tả dù ngắn cũng không sao. Ngược lại, nếu thiếu câu trả lời thì ngay cả những yêu cầu dài cũng dễ dàng lung lay. SDD gần với phương pháp không bỏ sót các quyết định quan trọng hơn là cách tạo ra thật nhiều tài liệu.
02 · Từ quyết định đến triển khai
Cùng theo sát một tính năng từ đầu đến cuối
Trước tiên, hãy tìm những quyết định còn bỏ sót.
Theo sát trình tự người dùng thực sự thao tác, lần lượt làm rõ phạm vi, trạng thái, quyền hạn và các trường hợp ngoại lệ. Không cần phải viết một tài liệu hoàn hảo ngay từ đầu. Hãy trả lời các câu hỏi và phát triển bản đặc tả đến mức cần thiết.
Sau đó, hãy đảm bảo các quyết định không bị thất lạc giữa các tài liệu.
Hãy cùng xem vì sao Constitution, Spec, Plan và Tasks lại được chia thành các phần riêng biệt. Thay vì ghi nhớ những tên tài liệu khó hiểu, hãy tập trung tìm hiểu cách các mục tiêu và tiêu chí hoàn thành được xác định trong đặc tả tính năng được kết nối xuyên suốt đến kế hoạch và các công việc.
Giao việc triển khai, nhưng tự mình đánh giá xem đã hoàn tất hay chưa.
Hãy để AI Agent khảo sát kho mã và đề xuất cách triển khai. Con người xem xét ưu, nhược điểm cùng các rủi ro rồi chọn một phương án. Sau khi triển khai xong, đừng chỉ tin vào câu “Đã hoàn tất” mà hãy kiểm tra kết quả của các bài kiểm thử, kiểm tra kiểu, lint và build.
03 · Một ví dụ xuyên suốt
Đây không phải là bài giảng dạy cách đăng ký chi phí.
Phải theo dõi một tính năng xuyên suốt từ đầu đến cuối mới có thể hiểu được các quyết định được quy định trong Spec chuyển sang Plan và Tasks, quá trình triển khai cũng như kiểm chứng như thế nào. Vì vậy, từ bài 1 đến bài 29, chúng tôi sử dụng hệ thống phê duyệt chi phí làm một ví dụ xuyên suốt duy nhất.
Không phải nhằm giải thích bản thân nghiệp vụ thanh toán chi phí. Đây là một ví dụ để cho thấy luồng người dùng và trạng thái, quyền hạn, các trường hợp ngoại lệ, dữ liệu và giao diện được liên kết với nhau như thế nào trong tài liệu SDD.
Cuối cùng, chúng ta sẽ thay đổi hoàn toàn ví dụ.
Trong bài 30, chúng ta sẽ chuyển sang chức năng hủy đặt chỗ và hoàn tiền. Bằng cách áp dụng lại các câu hỏi và trình tự công việc đã học ở phần trước vào một bài toán mới, chúng ta sẽ kiểm tra xem liệu có thể áp dụng cùng phương pháp này cho các chức năng khác hay không.
Trong 30 bài học, chúng ta sẽ tiến hành theo trình tự này.
Bắt đầu từ việc vì sao cần SDD. Viết đặc tả ở mức cần thiết và xác định phạm vi cùng luồng người dùng. Sau khi làm rõ trạng thái, quyền hạn và các ngoại lệ, kết nối dữ liệu với giao diện. Chọn phương pháp triển khai, chia nhỏ công việc, rồi giao cho agent để tiếp tục triển khai, kiểm chứng và xử lý các thay đổi.
04 · Xác nhận trước khi học
Phù hợp với những người như sau
Những người thường xuyên phải sửa lại kết quả do AI tạo ra
Dành cho những ai muốn giảm bớt các quyết định bị bỏ sót giữa khâu lập kế hoạch và phát triển.
Những người muốn xây dựng quy trình lập trình AI có thể tái sử dụng trong nhóm.
Dành cho những ai từng bối rối không biết cần kiểm tra điều gì sau khi giao phó một tính năng.
Đây không phải là khóa học hướng dẫn làm theo y hệt một ứng dụng hoàn chỉnh.
Đây không phải là khóa học hướng dẫn sao chép một ứng dụng bằng một ngôn ngữ hay framework cụ thể. Bạn sẽ học xoay quanh quy trình của GitHub Spec Kit, nhưng không dừng lại ở việc ghi nhớ các câu lệnh. Khóa học tập trung vào quy trình xây dựng đặc tả, lập kế hoạch và kiểm chứng mà bạn có thể tiếp tục áp dụng cho những tính năng tiếp theo.
Tôi sẽ trả lời trước những điều bạn có thể đang thắc mắc.
Dù không có nhiều kinh nghiệm phát triển thì có sao không?
Không sao cả. Bạn không cần có kiến thức về ngôn ngữ hay framework cụ thể. Nếu đã từng chạy một lệnh cơ bản trong tác nhân lập trình dù chỉ một lần, bạn sẽ dễ dàng theo dõi hơn.
Tôi đang dùng claude, có nhất thiết phải cài codex không?
Không đâu. Trong khóa học, chúng ta sẽ thử truyền cùng một đặc tả cho Claude Code và Codex, nhưng bạn chỉ cần theo học với công cụ mình quen thuộc là được. Điều quan trọng không phải là công cụ, mà là cách truyền đạt mục tiêu và tiêu chí hoàn thành một cách nhất quán.
Nghe ở tốc độ cao có ổn không?
Tôi đã dùng AI để xử lý bản thu âm của giảng viên, loại bỏ tạp âm và chỉnh sửa phát âm. Tôi đã cải thiện chất lượng âm thanh và phát âm để phần giải thích vẫn rõ ràng ngay cả khi nghe ở tốc độ 2x.
Khuyến nghị cho những người này
Khóa học này dành cho ai?
Lập trình viên trình độ sơ cấp đến trung cấp phải liên tục làm lại vì kết quả do AI tạo ra khác với ý định của mình
Nhà hoạch định và PM muốn truyền đạt rõ ràng mục tiêu sản phẩm và các quy tắc công việc cho Claude Code·Codex
Cần biết trước khi bắt đầu?
Không cần có kiến thức nền tảng về ngôn ngữ hay framework cụ thể.
Sẽ tốt nếu bạn có thể cài đặt Claude Code hoặc Codex và chạy các lệnh cơ bản.
Tôi là Haeyeo, người luôn muốn khám phá những khả năng vô tận của AI và kỹ thuật máy tính, đồng thời chia sẻ hành trình đó cùng các bạn.
Thời đại học, với niềm đam mê chuyên ngành lớn đến mức được gọi là "kẻ nghiện khoa học máy tính", tôi đã tốt nghiệp thủ khoa với điểm chuyên ngành trên 4.4. Sau đó, tôi đã nhận bằng Thạc sĩ chuyên ngành AI tại Đại học S và tiếp tục đào sâu chuyên môn thông qua chương trình Tiến sĩ.
Tuy nhiên, vì cảm thấy việc giải quyết các vấn đề thực tế bằng AI cũng đầy sức hút như việc nghiên cứu lý thuyết, tôi đã tạm dừng chương trình tiến sĩ để tích lũy những kinh nghiệm thực chiến quý báu thông qua các dự án về LLM và phân tích video dựa trên AI tại một startup.
Hiện tại, tôi đang làm việc với tư cách là nhà phát triển dự án LLM và PM tại một trong ba tập đoàn hàng đầu Hàn Quốc, góp phần tạo ra những thay đổi tích cực mà công nghệ AI mang lại cho cuộc sống của chúng ta. Tôi sẽ chia sẻ tận tình với các bạn quá trình trăn trở, giải quyết vấn đề cũng như những bí quyết thực tế sống động mà tôi đã tích lũy được tại hiện trường. Tôi sẽ là người dẫn đường tin cậy cho bạn trong hành trình khám phá thế giới AI đầy thú vị này.