What backend should you choose for the React projects you are building?

Does My App Need a Backend?
Stage 1: No Backend
Nếu bạn đang xây dựng một ứng dụng mà dữ liệu của bạn thay đổi rất thường xuyên, bạn có thể không cần cơ sở dữ liệu hoặc API.
Ví dụ: nếu bạn đang xây dựng một blog cá nhân mà bạn cập nhật tốt nhất vài lần một tuần và được xây dựng dưới dạng một trang web tĩnh bằng Next.js hoặc Gatsby, bạn không cần chương trình phụ trợ.
Stage 2: Content Management Systems
Một số CMS đơn giản nhất bao gồm từ các trang tính giống Excel như Google Trang tính và Bảng điều khiển cho đến các ứng dụng ghi chú như Notion. Có những CMS khác cung cấp các tính năng thân thiện với nhà phát triển như quản lý hình ảnh và nội dung phương tiện cũng như các tính năng API mở rộng hơn.
Một số CMS thân thiện với nhà phát triển hơn bao gồm:
- Sanity
- GraphCMS
- Contentful
Và nếu bạn đang tìm kiếm hệ thống quản lý nội dung mạnh mẽ nhất, với các tính năng như xác thực tích hợp và cập nhật dữ liệu từ ứng dụng khách React của mình, hãy xem:
- Strapi
- KeystoneJS
Stage 3: Backend as a Service
Hạn chế của hệ thống quản lý nội dung là chúng rất tốt để quản lý và truy cập dữ liệu.
Tuy nhiên, khi bạn cần thêm các tính năng tùy chỉnh, phức tạp hơn như cập nhật dữ liệu từ ứng dụng khách React, xác thực người dùng, bảo vệ nội dung và dữ liệu thời gian thực, thì CMS tiêu chuẩn sẽ không còn nữa.
Quản lý cơ sở dữ liệu và xây dựng một API hoàn chỉnh để tương tác với cơ sở dữ liệu đó là một thách thức khó khăn, đặc biệt nếu bạn chỉ làm việc trên giao diện người dùng.
Nếu đây là trường hợp của bạn, có thể nên xem xét một chương trình phụ trợ như một dịch vụ (BaaS). Nó sẽ cung cấp cho bạn nhiều sức mạnh của chương trình phụ trợ được xây dựng tùy chỉnh mà không cần kiến thức về miền cụ thể.
BaaS phổ biến nhất là Firebase , và vì lý do chính đáng. Nó cung cấp cho bạn rất nhiều tính năng mà bạn không thể tự xây dựng, bao gồm hàng tá chiến lược xác thực, cơ sở dữ liệu NoSQL thời gian thực, lưu trữ đám mây, công cụ học máy, v.v.
Có nhiều BaaS khác cung cấp cho bạn năng suất của Firebase, với ít hoặc không cần mã:
- Supabase
- Hasura
- Appwrite
Lưu ý : Tốc độ phát triển của tất cả các dịch vụ có thể giúp bạn xây dựng và gửi các ứng dụng của mình nhanh hơn. Nhưng lưu ý rằng tất cả chúng đều có chi phí liên quan riêng, chẳng hạn như dung lượng lưu trữ đám mây bạn sử dụng và số lượng hoạt động cơ sở dữ liệu bạn thực hiện (đọc / ghi).
Stage 4: Build Your Own Backend
Tôi khuyên bạn nên sử dụng cơ sở dữ liệu SQL như Postgres hoặc MySQL. Các dịch vụ như Heroku, Render.com và PlanetScale cung cấp cơ sở dữ liệu được lưu trữ (thường có bản sao lưu hàng ngày miễn phí) với mức giá tuyệt vời. Trừ khi bạn rất thoải mái và tự tin khi viết các câu lệnh SQL thô và biết tất cả các biện pháp phòng ngừa bảo mật cần thực hiện để tránh những điều khó chịu như SQL injection, hãy sử dụng một trình ánh xạ quan hệ đối tượng (ORM) để tạo một lược đồ cơ sở dữ liệu và tương tác với nó.
Tôi thực sự khuyên bạn nên sử dụng Prisma làm ORM của bạn. Nó tạo ra tất cả các mã cần thiết để thực hiện mọi loại hoạt động đối với cơ sở dữ liệu của bạn cũng như các loại cho từng loại. Mặc dù bạn chắc chắn có thể xây dựng chương trình phụ trợ Node tùy chỉnh bằng cách sử dụng thư viện hoặc khung công tác Node yêu thích của mình (Express, Fastify, Nest.js), tôi khuyên bạn nên bắt đầu với quy mô nhỏ và sử dụng một tính năng như các tuyến API của Next.js.
Các công cụ như các tuyến API tiếp theo cho phép bạn xây dựng API của mình nhanh chóng mà không cần phải chạy và quản lý mã máy chủ của bạn trong một kho lưu trữ riêng biệt.
Source: freeCodeCamp.org

