SORU
14 AĞUSTOS 2009, Cuma


Bir ORM nedir ve nerede hakkında daha fazla bilgi edinmek miyim?

Biri ama sorun ne olduğunu ya da nasıl çalıştığı hakkında bilgi bulmakta zorlanıyorum tasarlıyorum bir proje için bir ORM kullanmak önerdi. Biri bana kısa bir açıklama ya da bu konuda daha fazla bilgi nereden bulabilirim bir link verebilir misiniz?

CEVAP
14 AĞUSTOS 2009, Cuma


Hızlı giriş

Bir ORM (Object-Relational Mapping) ve bir veritabanı nesnesi bir paradigma kullanarak sorgu verileri işlemek sağlayan bir araçtır.

Kod verileri işlemek için gereken, SQL artık kullanmadığınız, ama doğrudan senin dilin bir nesnesi kapsüller tamamen sıradan bir kütüphane dilde yazılmış.

E. G., sözde bir dil ile: tamamen hayali bir durum

Kitap bir sınıf var, hangi yazar, tüm kitapları almak istediğiniz "Linus". El ile, böyle bir şey yapacağını :

book_list = new List();
sql = "SELECT book FROM library WHERE author = 'Linus'";
data = query(sql); // I over simplify ...
while (row = data.next())
{
     book = new Book();
     book.setAuthor(row.get('author');
     book_list.add(book);
}

Bir ORM ile, bu gibi görünecektir :

book_list = BookTable.query(author="Linus");

Mekanik kısmı otomatik olarak bakım ORM tarafından alınır.

Artıları ve eksileri

Bir ORM çünkü çok zaman tasarrufu kullanarak :

  • DRY : yalnızca bir veri modeli yaz, daha kolay güncelleme için değil, korumak ve kodun yeniden.
  • Bir sürü şey otomatik olarak, İ18N veritabanı işleme yapılır.
  • MVC kod yazmak için zorlar, ve son olarak app temizleyici.
  • Kötü oluşturulmuş SQL "alt" çok güçlü ve karmaşık bir dil ise) . bir gibi tedavi edilir (çünkü çoğu Web programcıları gerçekten emmek, yazmak zorunda değilsin
  • Hazır İfadeler veya hareketler dezenfektan kullanarak bir yöntemi çağırmak kadar kolaydır.

Bir ORM kullanarak çünkü daha esnek

  • Kodlama (dil !) doğal bir şekilde uyuyor
  • Bu DB sistemi özetler, istediğin zaman değiştirebilirsin.
  • Modeli zayıf uygulamayı geri kalanına bağlanmış, değiştirmesi veya başka bir yerde kullanabilirsiniz.
  • Baş ağrısı olmadan veri miras gibi OOP iyilik kullanmak izin.

Ama acı ORM

  • Bunu öğrenmek zorunda, ve hafif araçları değildir;
  • Bunu kurmak zorunda. Aynı sorun.
  • Performansları her zamanki sorguları için tamam ama SQL bir usta her zaman daha büyük kirli işler için küçük elleriyle yapacak.
  • Bu DB özetler. Eğer sahne arkasında neler olduğunu biliyorsan sorun yok ederken, çok açgözlü yazarız bu acemi için bir tuzak, bir ağır bir darbe gibiiçindöngü...

Nasıl onları öğrenmek için mi ?

İyi birini kullanın. Hiç seçtiğiniz, hepsi aynı prensipleri kullanır. Burada ORMs bir yeri vardır :

Eğer Web programlama bir ORM denemek istiyorsanız, bütün bir çerçeve gibi yığın kullanarak daha iyi olurdu :

  • Symfony (PHP, İtmek kullanarak veya Doktrini)
  • 12* *(dahili bir ORM kullanarak Python)

Bir şeyler öğrenmek için çalıştığınız sürece kendi ORM yazmak için çalışmayın. Bu iş büyük bir parçasıdır, ve eskileri güvenilir olmadan önce çok zaman aldı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • boburnham

    boburnham

    11 Temmuz 2006
  • Metheud

    Metheud

    9 EYLÜL 2006
  • Perihelion

    Perihelion

    23 NİSAN 2008