Daha iyi bir Türkiye mümkün! Türkiye'nin girişimcilik ve inovasyon topluluğu·2018'den beri

Yazılım Geliştirme

/yazilim

Fikirden çalışan ürüne yazılımın her hali: web, backend, veritabanı, mimari kararlar, kod kalitesi ve araçlar. Dil ve framework fark etmez; yazan herkesin ortak kanalı.

#yazılım geliştirme akışına dön
@endof · 8 gün önce

ORM mi ham SQL mi tartışmasını nasıl bitirdik

Ekipte yeni bir servis yazmaya başladık ve ilk iki haftanın büyük kısmı bu tartışmayla geçti. Bir taraf 'ORM'siz proje olmaz, migration, model, ilişkiler hazır' diyor. Diğer taraf 'ORM'nin ürettiği sorguyu kimse okumuyor, performans sorunu çıkınca kimse ne olduğunu bilmiyor' diyor. İkisi de haklı, o yüzden bitmiyordu.

Sonunda bir orta yol karar verdik, belki işinize yarar:

Basit okuma ve yazma işleri, yani tek tablodan id ile çekme, kayıt ekleme, güncelleme ORM ile yapılıyor. Bunlar kodun yüzde 80'i.

Raporlama ve birden fazla tabloyu birleştiren ağır sorgular ayrı bir klasörde ham SQL olarak duruyor. Her birinin yanına yorum olarak hangi indeksleri kullandığını yazıyoruz.

Geliştirme ortamında ORM'nin ürettiği sorgular loglanıyor, kod incelemesinde 'bu sayfa kaç sorgu atıyor' sorusu artık rutin. N+1 sorununu iki kere bu sayede yakaladık.

Migration için ORM'nin aracını kullanıyoruz ama üretilen dosyayı elle okuyup onaylamak zorunlu.

Tartışmanın bittiği an aslında teknik değildi. Ekipten biri 'altı ay sonra bu kodu okuyacak kişi kim, ona göre seçelim' dedi. Yeni gelecek biri ORM'yi daha hızlı okur, ağır sorgunun ise SQL olarak durması daha anlaşılır.

Sizde ne var? Tamamen ORM ya da tamamen SQL ile ilerleyip pişman olan var mı?
4 0 yorum
Yorumlar (0)

Henüz yorum yok — ilk yorumu sen yaz.

Tanıtım videosu · 1 dk

inovanadolu'yu 1 dakikada tanı

Kanallar, sözlük, İlham blogu, kişilik testleri ve 140'tan fazla ücretsiz araç. Üretenlerin buluşma noktasında neler olduğunu kısaca izle.