(Hampir) semua aplikasi mendapat manfaat dari ORM.
Pertama, saya tidak setuju dengan kelebihan yang Anda daftarkan untuk ORM .
- Menggunakan ORM tidak selalu berarti Anda tidak perlu tahu SQL. Pengetahuan tentang SQL akan membantu memahami apa yang sebenarnya dilakukan alat ORM, yang sangat berguna selama debugging. Selain itu, SQL sebenarnya mungkin diperlukan untuk mengembangkan kueri kompleks yang berada di luar kemampuan ORM pilihan Anda.
- Dan seperti yang Anda katakan, portabilitas jarang menjadi perhatian dalam kehidupan nyata.
Sebaliknya, manfaat nyata dari ORM adalah:
- ORM menghemat waktu programmer karena menghemat banyak penulisan logika CRUD dalam SQL
- banyak ORM termasuk logika caching yang kompleks dll. yang sulit untuk ditulis dan didebug. Selain menghemat waktu, ini dapat meningkatkan keandalan dan pemeliharaan aplikasi Anda (atau setidaknya menghemat waktu yang Anda perlukan untuk mencapai hasil yang sama)
- ORM terbaik memiliki komunitas pengguna yang secara aktif mengembangkan, memelihara, dan mendukung produk. Komunitas di sekitar SQL kustom, paling banter, agak kurang fokus pada masalah yang perlu kita selesaikan.
Saat Anda berkomentar, satu sisi ORM adalah hilangnya kinerja. Namun, ini biasanya dapat diimbangi dengan menghabiskan lebih banyak perangkat keras.
Biasanya, waktu programmer lebih mahal daripada perangkat kerasnya, jadi ORM secara umum merupakan pilihan yang baik alih-alih mengkode tangan SQL.
ORM adalah yang terbaik untuk aplikasi dengan banyak logika database CRUD yang cukup sederhana. ORM kurang efektif untuk :
- Aplikasi yang membutuhkan sedikit / tanpa akses basis data.
- Aplikasi yang sebagian besar tergantung pada permintaan kompleks dan logika CRUD sangat sedikit sederhana
- Situasi di mana kinerja sangat penting, tetapi di mana tidak ada kemungkinan menggunakan perangkat keras yang lebih cepat
Dalam pengalaman saya, situasi ini jarang terjadi. Karena itu jawabanku.