Soru hakkında konuşmadan önce ilk önce küçük bir giriş yapın; ORM'leri severim. Ve SQL'den nefret ediyorum. ORM'leri severim çünkü SQL'in kullanıcı dostu olmayan karmaşasını gizliyorlar ve veritabanıyla başa çıkabilmek için dille bütünleşik güzel bir yol sağlıyorlar.
Ancak, SQL’in bir çok faydası olduğunu ve en büyüğünün hassas olduğunu kabul etmeliyim. Bir SQL sorgunun karmaşıklığı hakkında, altta yatan veritabanı şeması hakkında ayrıntılı bilgi olmadan, sadece sorguyu gözden geçirerek tartışabilirim. Bu nedenle, SQL kullandığımda her zaman uyanığım ve her zaman bir bileşenin karmaşıklığının nereye gittiği konusunda bir sezgim var.
Öte yandan, ORM'leri kullanırken, veritabanı entegrasyon kolaylığı beni çok etkiliyor, tam anlamıyla bir veritabanı olduğunu bile unutuyorum. Bu beni defalarca mahvetti. Geçmişte çoğu zaman, masum görünümlü ORM yöntemlerini kullandım, sahnelerin ardında masif ve korkutucu veritabanı birleşmeleri diyor, performansı yok ediyor.
Bu yüzden benim için gerçek, arada bir yerde. ORM'leri kullanmayı seviyorum ve yapmaya devam edeceğim, ancak daha dikkatli olmalı ve her zaman herhangi bir ORM yöntemi çağrısının sonuçlarını (SQL düzeyinde) incelemeliyim. Soyutlama katmanının etkilerini bilmek bu işte saf altındır ve soyutlamanın kullanımını haklı gösterir. Başka bir şey, kendini yaya olarak vurmak gibi.