6 điểm bởi xguru 2024-11-07 | 4 bình luận | Chia sẻ qua WhatsApp
  • Một engine truy vấn dành cho Array và Object, lấy cảm hứng từ GraphQL và SQL
  • Thư viện giúp đưa các tính năng Array.select()Array.where() theo phong cách GraphQL vào Javascript để sử dụng
from(data)  
.where({  
	friends: 'John'  
})  
.select({  
	name: o => o.name+' '+o.lastName  
})  

4 bình luận

 
brain1401 2024-11-07

Nhìn đoạn mã trên làm tôi nhớ đến Drizzle ORM.

 
wogns3623 2024-11-08

Gần đây tôi mới biết đến Drizzle ORM, vậy đây có phải là một ORM theo hướng query builder giống như các ORM trong hệ sinh thái JS hiện có như knex hay typeorm không?

 
brain1401 2024-11-09

Drizzle có cách tiếp cận hơi khác so với các ORM hiện có. Có thể xem nó như một “lớp SQL mỏng” được tối ưu cho TypeScript.

Nếu so với Knex, cú pháp và cách định nghĩa schema trông có vẻ tương tự, nhưng có sự khác biệt lớn ở khía cạnh hỗ trợ TypeScript. Drizzle chú trọng hơn nhiều vào type safety. Trong khi Knex phải định nghĩa schema và type riêng biệt, thì với Drizzle chỉ cần định nghĩa một lần là cả schema lẫn type đều được tạo ra, nên tiện hơn và cũng ít phát sinh lỗi hơn.

So với TypeORM, TypeORM nặng hơn và gần với ORM truyền thống hơn. Drizzle nhẹ hơn và cho hiệu năng tốt hơn, nên đặc biệt có lợi thế trong môi trường serverless. Theo các benchmark thực tế, Drizzle được cho là nhanh hơn TypeORM hay Prisma vài lần.

Một điểm thú vị nữa là Drizzle cũng hỗ trợ quản lý migration rất tốt. Với công cụ CLI là Drizzle Kit, bạn có thể tự động tạo file migration, và ở giai đoạn phát triển có thể áp dụng thay đổi schema một cách đơn giản bằng lệnh push.

Tóm lại, có thể xem Drizzle là một query builder hiện đại, thân thiện với TypeScript, đồng thời nhẹ và có hiệu năng tốt. Đặc biệt phù hợp để khuyến nghị cho những ai coi trọng type safety và hiệu năng!

 
brain1401 2024-11-09

Đây là kết quả khi hỏi Perplexity.