Phương pháp Socratic AI: Học ngữ pháp hình thức và xây dựng trình biên dịch với quyền kiểm soát tuyệt đối

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

Bài viết chia sẻ cách một nhà phát triển sử dụng AI theo phương pháp Socratic để xây dựng một trình biên dịch cho ngôn ngữ markup tùy chỉnh, hiểu sâu từng quyết định thiết kế thay vì chỉ nhận mã nguồn AI tạo sẵn. Phương pháp này giúp duy trì quyền sở hữu và đảm bảo sự minh bạch trong quá trình phát triển.

Phương pháp Socratic AI: Học ngữ pháp hình thức và xây dựng trình biên dịch với quyền kiểm soát tuyệt đối

Phương pháp Socratic AI: Học ngữ pháp hình thức và xây dựng trình biên dịch với quyền kiểm soát tuyệt đối

Bài viết giới thiệu quá trình tác giả sử dụng một phương pháp đối thoại với AI dựa trên phương pháp Socratic để xây dựng trình biên dịch cho một ngôn ngữ markup tùy chỉnh, với mục tiêu thấu hiểu sâu sắc từng quyết định kỹ thuật thay vì chỉ nhận mã nguồn do AI sinh ra. Qua đó tác giả chia sẻ trải nghiệm và lợi ích khi lấy quyền sở hữu thực sự trong công việc phát triển phần mềm.

Bối cảnh

Khoảng một tháng trước, tác giả bắt đầu phát triển Clutter, một trình biên dịch viết bằng Rust cho ngôn ngữ markup tùy chỉnh xuất ra Vue Single File Components (SFC). Mục tiêu chính là áp dụng kiểm tra tuân thủ hệ thống thiết kế ngay tại thời điểm biên dịch – nếu một giá trị không có trong từ điển token, quá trình build sẽ thất bại.

Tác giả không có nhiều kinh nghiệm về ngữ pháp hình thức ngoài một khóa học đại học cách đây hơn 20 năm, và muốn xây dựng một trình biên dịch thật sự hiểu được từng quyết định kỹ thuật phía sau, để có thể kiểm soát và phát triển dài hạn.

Vấn đề đặt ra: Sử dụng AI như thế nào?

Có hai cách phổ biến để sử dụng AI trong phát triển phần mềm:

  • Ủy quyền (delegate): Mô tả chính xác yêu cầu và để AI tạo ra giải pháp. Cách này nhanh nhưng dễ mất quyền kiểm soát, khó debug và mở rộng.
  • Tự làm (do it yourself): Viết mã thủ công, đảm bảo quyền sở hữu và hiểu rõ, nhưng tốn thời gian, đặc biệt khi kiến thức còn thiếu.

Tác giả đề xuất một cách thứ ba, lấy cảm hứng từ phương pháp Socratic.

Phương pháp Socratic trong phát triển phần mềm

Phương pháp Socratic là kỹ thuật đặt câu hỏi để người đối thoại tự khám phá và làm sáng tỏ kiến thức vốn có.

Trong phát triển phần mềm, thay vì hỏi AI “viết lexer cho tôi”, bạn hỏi AI “hãy hỏi tôi để tôi hiểu lexer là gì trong ngữ cảnh trình biên dịch của tôi”. Từng câu hỏi một giúp bạn tự làm rõ kiến thức, tìm ra những khoảng trống trước khi viết mã.

Tác giả áp dụng phương pháp này khi bắt đầu viết lại trình biên dịch từ đầu, tập trung vào việc xây dựng ngữ pháp hình thức – nền tảng quyết định cấu trúc và phạm vi ngôn ngữ.

Triển khai thực tế

Trong quá trình xây dựng lại trình biên dịch mới mang tên Origami, tác giả hợp tác với AI (được đặt tên là Claude) và chỉ cho phép AI hỏi câu hỏi, không trả lời trực tiếp.

Ví dụ về câu hỏi AI:

“Trong template có ba loại thẻ, hãy mô tả bằng ngôn ngữ tự nhiên một câu để hoàn thiện: ‘Một thẻ tự đóng được tạo thành từ…’”

Quá trình này giúp tác giả định nghĩa lại ngữ pháp từ bên trong, dựa trên cách hiểu của chính mình thay vì chỉ áp theo tài liệu tham khảo.

Trong các ví dụ phân tích tag đóng mở, kiểm tra cú pháp, hay quyết định có bắt buộc thẻ else hay không, AI không đưa ra đáp án mà hỗ trợ tác giả cân nhắc thiết kế một cách có ý thức.

Đến khi chuyển sang viết mã Rust để map token vào enum, tác giả nhận ra lỗi trong thiết kế ban đầu (chỉ định token chung chung) và nhờ AI hỏi để hiểu sâu hơn, từ đó tự mình đưa ra cách tổ chức token rõ ràng và an toàn hơn trong Rust.

Khi nào phương pháp này không cần thiết?

Không phải toàn bộ dự án đều áp dụng Socratic AI. Với các phần việc chuẩn mực như cấu hình CLI, cấu hình workspace, CI/CD, AI được phép tự tạo mã vì đó là công việc mang tính kỹ thuật thuần túy không liên quan đến quyết định thiết kế.

Phương pháp Socratic phù hợp với những điểm then chốt cần đưa ra quyết định chủ động, làm chủ ý tưởng. Còn các phần việc cơ học, AI hoàn toàn có thể tự xử lý hiệu quả.

Giới hạn của phương pháp

Phương pháp này đòi hỏi người sử dụng đã có một ý tưởng rõ ràng về cái mình muốn xây dựng. AI không phải là thầy bói hay nguồn ý tưởng vạn năng, nó chỉ giúp làm rõ và kiểm chứng ý tưởng của bạn.

Nếu cả kiến thức nền tảng lẫn ý tưởng đều mơ hồ, đối thoại Socratic sẽ trở thành vô nghĩa và nguy cơ sai lệch cao.

Một cách tiếp cận trong nhiều cách

Tác giả thừa nhận sự băn khoăn của nhiều người trước sự thay đổi của công nghệ: liệu kinh nghiệm hay thời gian đầu tư có còn ý nghĩa khi AI trợ giúp?

Quan điểm tác giả: Sử dụng AI như một công cụ hỗ trợ, tăng tốc nhưng không làm mất đi quyền sở hữu và khả năng kiểm soát dự án. Phương pháp Socratic là một trong những cách để đạt được điều đó.

Đối với tác giả, nó giúp xây dựng được một dự án có nền tảng chắc chắn, minh bạch và dễ dàng mở rộng về sau.

Liên kết tham khảo


Bài viết này mở ra một góc nhìn thú vị về việc hợp tác cùng AI không để trao quyền hay thay thế mà để làm rõ suy nghĩ, giúp lập trình viên nắm thực quyền và phát triển phần mềm một cách có trách nhiệm và bền vững hơ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 ↗