Khi nhờ AI làm một ứng dụng, bạn sẽ nghe các từ frontend, backend, database liên tục. Bài này vẽ bản đồ để bạn biết mỗi phần lo việc gì, và vì sao đôi khi AI chọn ngôn ngữ này mà không chọn ngôn ngữ kia.
Ba tầng của một ứng dụng
Hãy nghĩ đến một quán ăn. Phòng khách với bàn ghế, thực đơn là frontend: phần khách nhìn thấy và chạm vào. Nhà bếp là backend: nhận đơn, nấu, tính tiền. Kho nguyên liệu và cuốn sổ ghi chép là database (cơ sở dữ liệu): nơi cất mọi thứ cần nhớ lâu.
| Tầng | Việc chính | Công nghệ hay gặp |
|---|---|---|
| Frontend | Hiển thị, nhận thao tác của người dùng | HTML, CSS, JavaScript, React, Vue |
| Backend | Xử lý logic, kiểm tra quyền, nói chuyện với database | Node.js, Python, PHP, Java, Go |
| Database | Lưu và tìm dữ liệu | MySQL, PostgreSQL, MongoDB |
Ví dụ: đặt món trên web quán trà sữa
Khách bấm “Thêm vào giỏ” (frontend). Trình duyệt gửi yêu cầu lên máy chủ (backend), máy chủ kiểm tra món còn hàng không rồi ghi đơn vào database. Cuối cùng backend báo lại, frontend hiện “Đã thêm”.
Ngôn ngữ lập trình: cách ra lệnh cho máy
Máy tính chỉ hiểu dãy 0 và 1. Ngôn ngữ lập trình là cầu nối: người viết bằng chữ gần tiếng Anh, rồi một công cụ dịch sang dạng máy hiểu. Có hai kiểu dịch. Biên dịch dịch cả chương trình một lần trước khi chạy, giống như in sách xong mới phát hành. Thông dịch dịch từng dòng lúc chạy, giống người phiên dịch đứng cạnh. Kiểu thứ hai viết nhanh, thử nhanh, kiểu thứ nhất thường chạy khoẻ hơn.
Hợp để bắt đầu
- JavaScript: chạy được ngay trong trình duyệt
- Python: cú pháp gọn, hay dùng cho dữ liệu và AI
Hay gặp ở hệ thống lớn
- Java, Go, C#: biên dịch, chặt chẽ
- PHP: nền của rất nhiều website WordPress
Không có ngôn ngữ nào vượt trội mọi mặt. Điều quan trọng là bạn mô tả rõ nhu cầu, cho phép AI chọn ngôn ngữ phổ biến và dễ tìm tài liệu, rồi hỏi lại lý do nếu thấy lạ.
Cấu trúc dữ liệu: cách xếp đồ cho dễ tìm
Cùng một đống dữ liệu, xếp khác nhau thì tìm nhanh chậm khác nhau. Mảng (danh sách) giống hàng ghế đánh số. Bảng băm (dictionary) giống danh bạ tra theo tên: có tên là ra số ngay. Cây giống sơ đồ thư mục, mỗi nhánh có nhánh con. Bạn chưa cần tự cài đặt, chỉ cần nghe tên và hiểu mục đích khi AI nhắc tới.
Thử ngay
Gửi cho Claude hoặc ChatGPT:
Tôi muốn làm web đặt đồ ăn cho quán nhỏ. Hãy chỉ ra phần nào là frontend, backend, database, và giải thích bằng ngôn ngữ cho người chưa biết lập trình.
Đọc câu trả lời và thử vẽ lại ba tầng ra giấy.
Gắn bản đồ vào dự án thật
Lần tới nhìn một sản phẩm nào đó, ví dụ app đặt xe hoặc trang bán vé máy bay, bạn thử đoán: phần nào chạy trên điện thoại của mình, phần nào trên máy chủ, thông tin chuyến đi được cất ở đâu. Thói quen phân tách ba tầng này sẽ giúp bạn mô tả yêu cầu cho AI gọn hơn, chẳng hạn “thêm ô lọc giá ở frontend, thêm câu truy vấn lọc ở backend, thêm cột giá ở database”.
Ghi nhớ
- Frontend là phần nhìn thấy, backend là phần xử lý, database là phần lưu trữ.
- Ngôn ngữ lập trình chỉ là công cụ, chọn theo nhu cầu và hệ sinh thái.
- Biên dịch dịch trước khi chạy, thông dịch dịch trong lúc chạy.
- Cấu trúc dữ liệu quyết định dữ liệu được tìm nhanh hay chậm.