Việc viết đi viết lại các hàm như createTask
, getTask
, updateTask
, deleteTask
thật sự nhàm chán; hàng chục tutorial đều trình bày cùng một mẫu và chúng ta đã tốn vô số giờ cho những đoạn logic lặp đi lặp lại.
Nhiều nền tảng no-code, các dự án mã nguồn mở và thư viện đã giúp lập trình viên sinh ra mã mẫu (boilerplate), chứng minh rằng các kỹ sư backend đều mong muốn có cách đơn giản hơn để xây dựng API.
Nhưng với sự phát triển của các công cụ AI như Line0, Cursor và Windsurf, giờ đây bạn có thể xây dựng dịch vụ backend sẵn sàng chạy production chỉ từ một lời nhắc đơn giản (prompt):
Checklist khởi động nhanh
-
Mô tả mô hình dữ liệu của bạn (Ví dụ: Task { id:int, title:string, completed:bool })
-
Đưa prompt cho AI: “Tạo một dịch vụ backend cho Task với validation và xử lý lỗi”
-
Xem xét và chỉnh sửa – tránh “code theo cảm tính”; hãy hiểu từng dòng mã được tạo ra. Nếu chấp nhận mã một cách mù quáng, bạn có thể tạo ra lỗ hổng bảo mật hoặc gánh nợ kỹ thuật.
-
Viết test tích hợp hoặc để AI tự tạo test
-
Commit lên GitHub
Ví dụ Prompt & kết quả
Prompt: Tạo dịch vụ backend Express.js cho Task, dùng zod để xác thực, lưu trữ qua PostgreSQL.
Kết quả AI sinh ra có thể như sau:
// src/routes/tasks.ts import express from "express"; import { taskValidator } from "@/schemas/task.js";
import { validate } from "@/middleware/validate.js"; import { notFoundError } from "@/utils/errors/common.js";
import { response } from "@/utils/response.js"; const router = express.Router(); router .route("/") .post(validate(taskValidator().createtaskSchema, "body"), async (req, res, next) => { const payload = req.body; await taskController .createTask(payload) .then((result) => res.status(201).json(response(result))) .catch(next); }) .get(async (_req, res, next) => { await taskController .getAllTasks() .then((result) => res.json(response(result))) .catch(next); }); /* ...other endpoints... */ export { router as taskRouter };
Các công cụ như Line0 cũng sẽ tự sinh ra toàn bộ logic nghiệp vụ cần thiết (controller taskController
, schema validator taskValidator
và hàm xử lý phản hồi response
) từ lời nhắc ban đầu, mang đến cho bạn một API hoạt động đầy đủ mà không cần viết thêm gì.
Mẹo Prompt Engineering
Lợi ích năng suất
- 78% lập trình viên báo cáo hiệu suất cao hơn khi để AI hỗ trợ sinh phần lớn mã
- 97% lập trình viên đã thử dùng AI để viết mã ít nhất một lần (theo khảo sát GitHub 2024)
Best Practices
- Giữ unit test gần source code – nếu bạn dùng Line0, nó có thể viết luôn test cho bạn
- Duy trì linting và formatting để đảm bảo mã nhất quán
- Xem xét kỹ dependencies – công cụ AI có thể thêm package không cần thiết