inflearn logo

Hướng dẫn thiết kế và vận hành thực tế Prisma ORM

Prisma ORM là một công cụ mang lại năng suất cao, nhưng trong thực tế, chúng ta cần phải cân nhắc nhiều hơn là chỉ CRUD đơn thuần, bao gồm thiết kế schema, cấu trúc quan hệ (relation), thiết kế giá trị trạng thái, transaction, vận hành migration và cả hiệu suất truy vấn. Khóa học này không phải là một cuốn sách nhập môn liệt kê các cú pháp của Prisma, mà là một hướng dẫn thực chiến đúc kết cách các nhà phát triển backend NestJS nên thiết kế và vận hành Prisma như thế nào trong thực tế. Đặc biệt, khóa học dành cho những ai đã đọc tài liệu chính thức và nắm được cách sử dụng cơ bản, nhưng vẫn còn lúng túng không biết nên chia model dựa trên tiêu chuẩn nào trong dự án thực tế, khi nào nên sử dụng transaction, và làm thế nào để phản ánh migration một cách an toàn. Thông qua khóa học này, học viên sẽ vượt qua mức độ chỉ sử dụng Prisma như một "ORM tiện lợi", để nắm vững các tiêu chuẩn thiết kế schema thuận tiện cho việc bảo trì và biết cách tránh trước các vấn đề thường gặp trong thực tế.

6 học viên đang tham gia khóa học này

Độ khó Cơ bản

Thời gian Không giới hạn

ORM
ORM
NestJS
NestJS
Prisma
Prisma
ORM
ORM
NestJS
NestJS
Prisma
Prisma

Bạn sẽ nhận được điều này sau khi học.

  • Bạn có thể thiết kế Prisma schema dưới góc nhìn thực tế và quyết định các tiêu chí để lựa chọn nullable / enum / unique / index.

  • Có thể tổng hợp các vấn đề thiết kế lặp đi lặp lại như mô hình hóa quan hệ (relation modeling), thiết kế giá trị trạng thái và xóa mềm (soft delete) dựa trên tiêu chuẩn thực tế.

  • Có thể hiểu và áp dụng transaction cùng vấn đề đồng thời không chỉ ở góc độ cú pháp đơn thuần, mà còn dưới góc độ yêu cầu trùng lặp, chuyển đổi trạng thái và tính lũy đẳng.

  • Bạn có thể học được các tiêu chuẩn để phản ánh migration một cách an toàn hơn, xem nó như một quy trình vận hành thay vì chỉ là sự tiện lợi trong phát triển.

Hướng dẫn thực hành Prisma

Những mô hình thiết kế thực tế mà bạn chưa biết trong các dự án nhỏ (toy project)


Dành cho những người sau đây

Những người đang sử dụng Prisma và có trải nghiệm như thế này

  • include ngày càng dài ra và phản hồi bắt đầu trở nên nặng nề hơn

  • Việc migration trở nên đáng sợ. Tôi đã từng thất bại một lần khi đang vận hành thực tế.

  • Khi các giá trị trạng thái tăng lên, các nhánh rẽ trong dịch vụ cũng trở nên quá nhiều.

  • Mặc dù đã sử dụng transaction nhưng vẫn xảy ra vấn đề trùng lặp yêu cầu (duplicate request)

  • Khi áp dụng soft delete, các vấn đề đã phát sinh ở những nơi không ngờ tới

Những người đang có cùng nỗi trăn trở này

  • Tôi không biết nên thiết lập cấu trúc dự án NestJS + Prisma như thế nào

  • Không có tiêu chuẩn rõ ràng về việc nên sử dụng Repository pattern hay gọi trực tiếp.

  • Cần phải soạn thảo tài liệu về tiêu chuẩn sử dụng Prisma trong nhóm

  • Trong dự án cá nhân thì mọi thứ đều ổn, nhưng khi áp dụng vào thực tế thì lại liên tục gặp vấn đề.


Khóa học này là khóa học như thế nào?

Đây không phải là bài giảng giải thích cách sử dụng Prisma API.

findMany, create, update chắc hẳn bạn đã đang sử dụng rất tốt rồi. Khóa học này đề cập đến bước tiếp theo, tức là các tiêu chí đánh giá về việc tại sao phải thiết kế như vậy.

  • Nhìn vào schema có thấy được chi phí thay đổi không

  • Phạm vi của transaction này có thực sự cần thiết không?

  • Bản migration này có an toàn trong vận hành không?

  • Truy vấn này bây giờ thì tiện lợi nhưng liệu sau này có bị sụp đổ không?

Mục tiêu là giúp bạn có thể tự mình trả lời được những câu hỏi này.


Mục lục

  1. Tại sao Prisma cần được tiếp cận khác đi trong thực tế?

  2. Những điều cần quyết định trước khi áp dụng Prisma

  3. Những sai lầm thường gặp nhất khi thiết kế schema

  4. Các mô hình thực tế về quan hệ (Relation modeling)

  5. Thiết kế trạng thái và vòng đời

  6. Cấu trúc Prisma trong NestJS

  7. Giao dịch và xử lý đồng thời

  8. Thực tế vận hành Migration

  9. Tối ưu hóa hiệu suất và chiến lược truy vấn

  10. Tổng hợp các mẫu phổ biến trong thực tế

  11. Danh sách kiểm tra thử nghiệm và vận hành

  12. Ý nghĩa của việc sử dụng Prisma một cách hiệu quả


Sau khi học xong khóa học này

  • Chỉ cần nhìn vào schema, bạn có thể thấy được mức chi phí thay đổi trong tương lai sẽ là bao nhiêu.

  • Có thể giải thích được nơi nào nên và không nên sử dụng transaction

  • Bạn sẽ bắt đầu suy nghĩ về việc migration dưới góc độ vận hành thay vì chỉ là sự tiện lợi khi phát triển.

  • Việc truy vấn danh sách/chi tiết/thống kê sẽ được phân tách một cách tự nhiên

  • Có được ngôn ngữ chung để thiết lập các tiêu chuẩn sử dụng Prisma trong nhóm.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Nhà phát triển backend đã đọc tài liệu chính thức của Prisma nhưng vẫn cảm thấy bối rối không biết nên thiết kế schema như thế nào trong thực tế.

  • Nhà phát triển muốn hệ thống hóa Prisma không chỉ ở mức cú pháp đơn thuần mà tập trung vào các tiêu chuẩn thực tế và danh sách kiểm tra (checklist).

Cần biết trước khi bắt đầu?

  • Cơ bản về Prisma ORM

  • Cơ bản về Backend Node.js

Xin chào
Đây là Rda1

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Ưu đãi có thời hạn

5.390 ₫

30%

179.042 ₫