Điểm mạnh của ORM là nó cho phép bạn mô hình hóa hành vi ứng dụng bằng các kỹ thuật hướng đối tượng. Trong một thế giới được thiết kế cẩn thận, bạn có một lớp ứng dụng trong đó ngôn ngữ của doanh nghiệp đáp ứng gọn gàng ngôn ngữ của nhóm phát triển. ORM là một yếu tố hỗ trợ cho điều đó, nếu ORM được sử dụng hợp lý.
Điểm yếu là số người thực sự, thực sự có được lập trình hướng đối tượng là khá nhỏ. Rất nhiều người viết mì spaghetti và thịt viên, với các đối tượng được ghép nối cao, có ít hành vi của riêng họ và hành vi thực sự kết thúc trong các lớp "Dịch vụ" và "Người quản lý" đáng ghét, và mã đó thường bị gây rối khiến mọi người sợ hãi thay đổi nó bởi vì họ không thể tìm ra tác dụng phụ sẽ là gì.
Ngoài ra, rất nhiều người không thực sự có được mô hình quan hệ. Một ORM sẽ không giúp họ có được nó và nó sẽ không giúp họ bằng cách trừu tượng hóa mô hình quan hệ. Nó chỉ cho phép bạn tập trung vào lớp miền của bạn sớm và có được điều đó ngay trước khi bạn bắt đầu quá quan tâm đến thiết kế cơ sở dữ liệu. Nếu được áp dụng tốt, với sự trợ giúp của các công cụ di chuyển lược đồ hợp lý và ORM có thể giúp bạn ngăn ngừa nợ mã xây dựng.
Tôi đã xây dựng các ứng dụng trong đó ORM giữ mã ứng dụng đơn giản, dễ đọc và có thể kiểm tra và có hiệu suất hợp lý. Tôi cũng đã duy trì các ứng dụng trong đó mẫu bị sử dụng sai và mã bị sai lệch, không thể kiểm tra được, chậm và dễ vỡ; Hóa ra chính ORM đã làm rất ít với điều này, ngoại trừ việc thay vì viết mã xấu mô hình hóa miền ứng dụng kém, nhóm kỹ sư kế thừa đã viết mã xấu mô hình hóa miền ứng dụng kém và mã lớp dịch vụ tồi đã bỏ qua tất cả giá trị mà ORM của họ có thể cung cấp cho họ.
Các ORM sẽ không làm cho bạn thông minh hơn, nhưng trong tay của nhà phát triển phù hợp, có thể dẫn đến mã chất lượng cao hơn và dễ bảo trì hơn.