Câu 1Trong bốn thành phần của ứng dụng web, cái nào bạn đi dùng chứ không tự xây dựng?
Các thành phần của hệ thống — Phần bạn tự xây dựng và phần giao cho dịch vụ bên ngoài
Bài viết này nằm trong khóa Kiến thức nền tảng về CNTT, xây dựng từ đầu những kiến thức CNTT thực tế tối thiểu mà bạn cần để lập trình và vibe coding.
Ứng dụng web chia thành bốn phần: frontend, backend, cơ sở dữ liệu và dịch vụ bên ngoài. Các sơ đồ cho bạn thấy bạn tự làm tới đâu và từ đâu thì đi dùng dịch vụ bên ngoài.
Bài viết này bàn về bốn thành phần tạo nên một ứng dụng web.
Ba trong số đó bạn tự xây dựng (tự phát triển và chuẩn bị ở phía mình), còn thành phần còn lại thì bạn dùng dưới dạng dịch vụ bên ngoài.
- Màn hình nhập ngày đặt chỗ và họ tên
- Chạy trên thiết bị của người dùng
- Xử lý nội dung đặt chỗ nhận được
- Việc xác minh danh tính cũng làm ở đây
- Lưu dữ liệu đặt chỗ và hội viên
- Về sau tìm kiếm và cập nhật được
- Gửi email xác nhận, thanh toán, hiển thị bản đồ
- Gọi những chức năng do công ty khác vận hành
Ranh giới giữa tự xây dựng và đi dùng nằm ở chỗ tiếp giáp của hai khung này.
Ứng dụng web chia thành bốn thành phần
Bốn thành phần là frontend (frontend), backend (backend), cơ sở dữ liệu (database) và dịch vụ bên ngoài (external service).
Bên nối tới cơ sở dữ liệu và dịch vụ bên ngoài là backend, còn từ màn hình thì không nối thẳng.
Server (server: máy tính luôn bật nguồn và lúc nào cũng tiếp nhận được yêu cầu từ những máy tính khác) mà hai thứ này chạy trên đó là một máy tính khác với thiết bị của người dùng.
Chỉ thành phần thứ tư, dịch vụ bên ngoài, là không tự xây dựng; bạn dùng thứ do công ty khác vận hành.
Ba thứ ở nhánh trên có phần hiện thực nằm ở phía bạn, nên người sửa cũng là bạn.
Riêng cơ sở dữ liệu thì bạn chọn một sản phẩm rồi vận hành, nhưng khi nó ngừng chạy, bên ra tay vẫn là phía bạn.
Chỉ dịch vụ bên ngoài là thứ bạn không tự sửa được khi nó hỏng, và bạn phải chờ công ty khác khôi phục.
Quyết định giao đi thứ gì cũng là quyết định phạm vi mà bạn không tự sửa được.
Bốn thành phần, một ranh giới
Ứng dụng web chia thành bốn phần: frontend, backend, cơ sở dữ liệu và dịch vụ bên ngoài.
Ba phần đầu bạn tự xây dựng, riêng dịch vụ bên ngoài thì bạn dùng chức năng do công ty khác vận hành, nên bên lo phần hiện thực và bên xử lý sự cố đều đổi tại ranh giới này.
Dịch vụ bên ngoài thì không tự xây dựng, mà dùng qua API
Những chức năng tốn nhiều công sức nếu tự lo, như gửi email xác nhận hay nhận thanh toán, thì giao cho dịch vụ bên ngoài.
Bộ quy tắc bạn tuân theo khi gọi một dịch vụ bên ngoài là API (Application Programming Interface: quy ước để các chương trình trao đổi dữ liệu với nhau).
Chỉ phần giữa chuyển sang dịch vụ bên ngoài, còn việc nhờ và việc kiểm tra thì vẫn ở phía bạn.
Thứ còn lại ở phía bạn chỉ là chỗ gửi yêu cầu đi và chỗ kiểm tra kết quả nhận lại.
Nếu tự xây dựng thì ngoài bản thân chức năng, việc duy trì nó cũng thành việc của bạn.
Ngay cả khi đã giao đi, việc gửi yêu cầu và việc kiểm tra kết quả vẫn ở lại với bạn.
Thứ chuyển sang dịch vụ bên ngoài chỉ là phần hiện thực.
Dịch vụ bên ngoài và API bên ngoài
Đôi khi bạn thấy hai từ được viết tách nhau: dịch vụ bên ngoài cho thứ bạn gọi, và API bên ngoài cho cửa gọi vào nó.
Cả hai chỉ cùng một thứ, khác nhau ở chỗ bạn nhìn nó như một dịch vụ hay như một cửa gọi.
Thành công hay thất bại được quyết riêng cho từng thành phần
Một thao tác có thể trải qua nhiều thành phần.
Đơn đặt chỗ có được xác nhận hay không thì do lần ghi vào cơ sở dữ liệu quyết định, còn email xác nhận có đi hay không thì do yêu cầu gửi tới dịch vụ bên ngoài quyết định.
Đơn đặt chỗ được xác nhận ngay tại thời điểm ghi được vào cơ sở dữ liệu.
Việc gửi email xác nhận diễn ra sau đó, như một xử lý riêng nhờ tới dịch vụ bên ngoài.
Dù email không tới nơi, đơn đặt chỗ đã xác nhận vẫn còn.
Cách chia này dùng được ngay khi bạn điều tra sự cố.
"Không thấy đơn đặt chỗ" và "Email xác nhận không tới" đưa bạn tới những thành phần khác nhau.
Với cái đầu, bạn kiểm tra backend và cơ sở dữ liệu; với cái sau, bạn kiểm tra yêu cầu gửi tới dịch vụ bên ngoài.
Nhánh trên là việc xác nhận, nhánh dưới là việc thông báo, và một bên hỏng thì bên kia vẫn giữ nguyên.
Thành bại được quyết theo từng thành phần
Khi một thao tác trải qua nhiều thành phần, thành công hay thất bại không được quyết chung một lượt.
Đơn đặt chỗ được xác nhận bởi lần ghi vào cơ sở dữ liệu, còn email xác nhận thì do yêu cầu gửi tới dịch vụ bên ngoài quyết định, nên khi nhận được báo cáo sự cố, trước hết bạn hãy tách ra xem xử lý nào trong hai cái đã hỏng.
Kiểm tra kiến thức
Hãy trả lời từng câu hỏi một.
Câu 2Sau khi đơn đặt chỗ đã ghi vào cơ sở dữ liệu mà email xác nhận không tới thì sao?
Câu 3Khi bạn giao việc gửi email xác nhận cho dịch vụ bên ngoài, thứ gì ở lại phía bạn?