- ORM (object-relational mapper) thường bị chỉ trích là một phản mẫu trong phát triển phần mềm.
- Tuy nhiên, những chỉ trích này bị phóng đại, và ORM cũng như các công cụ phần mềm khác không hề xấu về bản chất.
- Vấn đề thực sự của ORM thường nằm ở việc bị dùng sai hoặc bị hiểu sai.
- ORM và cơ sở dữ liệu quan hệ vận hành theo các mô hình khác nhau, nên có thể phát sinh những thách thức trong việc mô hình hóa dữ liệu và các mối quan hệ.
- ORM vi phạm nguyên tắc trách nhiệm đơn lẻ (SRP) và nguyên tắc phân tách mối quan tâm (SOC), nhưng những chỉ trích này không hẳn là vấn đề mang tính quyết định.
- Vấn đề thực sự của ORM nằm ở hiệu quả và khả năng quan sát.
- Nếu không được sử dụng đúng cách, ORM có thể kém hiệu quả, nhưng nó cũng có các tính năng giúp tối ưu hóa truy vấn và cải thiện hiệu năng.
- Vấn đề N+1, khi ORM phải qua lại với cơ sở dữ liệu nhiều lần, có thể được giảm nhẹ bằng cách dùng data loader.
- Vấn đề lớn nhất của ORM là khả năng quan sát và gỡ lỗi. Nó có thể không đưa ra thông báo lỗi rõ ràng hoặc khiến việc hiểu và khắc phục vấn đề trở nên khó khăn.
- Khi được sử dụng đúng cách, ORM có thể hiệu quả tương đương SQL thuần, nhưng nhà phát triển cần tận dụng các tính năng và các cơ chế tương ứng với SQL gốc.
- Với một số truy vấn phức tạp hoặc có vấn đề, có thể cần chuyển sang truy vấn SQL thuần.
- Nhìn chung, ORM không xấu về bản chất, nhưng cần được sử dụng cẩn trọng và có hiểu biết để tránh các vấn đề tiềm ẩn.
1 bình luận
Ý kiến trên Hacker News