Devrim GÜNDÜZ yazmış:
> On Tue, 2010-09-21 at 23:28 +0300, Atif CEYLAN wrote:
>> "Eger framework kullanirsaniz, sql optimizasyon vs. olmayacagi icin 
>> DBA'ler issiz kalacaklar ve kendilerini skintidan ekmege verecekler" 
>> demek istedi sanirim :) 
> 
> Tam tersi. SQL optimizasyonu yeteri kadar olmayacağı için iş bize
> düşüyor.
> 
> ve hatta:
> 
> http://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.0#Join_Removal

O zaman ben biraz fazla takıntılı davranıp python sqlalchemy kütüphanesi 
kullanarak SQL yazmadan sorguları python ile oluşturuyorum ama aynı 
zamanda debug çıktılarından bakıp otomatik oluşan sql sorguları tam da 
sql sorgularını kendim yazsam olacağı şekle gelene kadar kodu 
değiştiriyorum. Biraz zaman kaybetmiş oluyorum ama direkt sql yazmaktan 
kolay geliyor bu bana.

Yaptığım projelerde veritabanı bağımsız olsun istiyorum teorik olarak 
ama pratikte çalışan uygulamanın veritabanının değiştiğini görmedim, 
geliştirme ortamında kendi makinamda daha hafif olduğu için sqlite 
kullanıyorum ama üretim ortamında postgresql kullanıyorum, genellikle 
sqlalchemy kütüphanesinin ürettiği sorgular eğer kod yazılırken debug 
çıktılarından bakıp otomatik üretilen sql sorguları düzgün halde kod 
yazılırsa yeterince optimize edilmiş oluyor.

Aslında konu dağıldı ama şimdilerde çok kullanılan bir sürü şeşit 
framework reklam edilirken sql kodu yazmamak hatta programcının sql 
bilmesine bile gerek olmaması matah birşeymiş gibi anlaşılıyor, ama 
nasıl olsa orm kütüphanesi otomatik sql oluşturuyor deyip veritabanını 
gereksiz yere yoran kodlara çok rastladım, projeyi veritabanı bilmeyen 
programcıya emanet etmemek lazım ya da programcı hangi dili tercih 
ederse etsin eğer veritabanı uygulamalarıyla uğraşacaksa çok iyi sql 
bilmek zorunda. Tamam elle sql yazmayınca da oluyor ama üretilen sql 
düzgün mü diye bakmadan çıkan uygulamalar sonradan baş ağrıtıyor.

Aslında her programcı ekibinde bir tane de eli sopalı dba bulunmalı, 
veritabanı kullanımını kontrol edip programcıların kafasına sopayla 
vurmalı. (sopa burada mecazi anlamdadır, şiddet yanlısı olduğum anlamı 
çıkmasın :)


_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap