- ORM (Object-Relational Mapper) มักถูกวิจารณ์ว่าเป็นแอนตีแพตเทิร์นในการพัฒนาซอฟต์แวร์
- อย่างไรก็ตาม คำวิจารณ์นี้ค่อนข้างเกินจริง และ ORM ก็ไม่ได้แย่โดยเนื้อแท้ เช่นเดียวกับเครื่องมือซอฟต์แวร์อื่นๆ
- ปัญหาที่แท้จริงของ ORM มักเกิดจากการใช้งานผิดวิธีหรือความเข้าใจที่คลาดเคลื่อน
- ORM และฐานข้อมูลเชิงสัมพันธ์ทำงานอยู่บนคนละกระบวนทัศน์ จึงอาจก่อให้เกิดความท้าทายด้านการทำ data modeling และความสัมพันธ์
- ORM ละเมิดหลัก Single Responsibility Principle (SRP) และ Separation of Concerns (SOC) แต่คำวิจารณ์เหล่านี้ก็ไม่ใช่ปัญหาชี้ขาดเสมอไป
- ปัญหาจริงของ ORM อยู่ที่ประสิทธิภาพและการมองเห็นภายในระบบ
- หากใช้อย่างไม่ถูกต้อง ORM อาจไม่มีประสิทธิภาพ แต่ก็มีความสามารถในการปรับแต่งคิวรีและเพิ่มประสิทธิภาพได้
- ปัญหา N+1 ที่ ORM ต้องไป-กลับกับฐานข้อมูลหลายครั้งสามารถบรรเทาได้ด้วยการใช้ data loader
- ปัญหาใหญ่ที่สุดของ ORM คือเรื่องการมองเห็นและการดีบัก เพราะอาจไม่ให้ข้อความผิดพลาดที่ชัดเจน หรือทำให้เข้าใจและแก้ปัญหาได้ยาก
- หากใช้อย่างถูกต้อง ORM ก็อาจมีประสิทธิภาพได้เทียบเท่า raw SQL แต่ผู้พัฒนาต้องใช้ฟีเจอร์ต่างๆ และแนวทางที่ใกล้เคียงกับ native SQL ให้เป็น
- สำหรับคิวรีที่ซับซ้อนหรือมีปัญหาบางประเภท อาจจำเป็นต้องเปลี่ยนไปใช้คิวรีแบบ raw SQL
- โดยรวมแล้ว ORM ไม่ได้แย่โดยเนื้อแท้ แต่จำเป็นต้องใช้อย่างระมัดระวังและมีความรู้เพื่อหลีกเลี่ยงปัญหาที่อาจเกิดขึ้น
1 ความคิดเห็น
ความเห็นจาก Hacker News