SORU
5 Mayıs 2010, ÇARŞAMBA


Tam olarak Raylar Öncesinde 3.0 nedir?

ActiveRecord için bir yedek olduğunu ve sorgu yerine nesneleri kullanır anlıyorum.

Ama...

neden bu daha mı iyi?

nesneleri/sorgu olacak "daha kolay oluşturmak için"?

daha verimli SQL sorguları yol açacak mı?

tüm büyük DBs ile uyumlu olacak mı? - Öyle olacak sanırım.

saklı prosedürleri kullanmak daha kolay/daha mı zor olacak?

CEVAP
5 Mayıs 2010, ÇARŞAMBA


Tam olarak Raylar Öncesinde 3.0 nedir?

İlişkisel sorgu operatörleri bir Cebir için bir nesne modeli.

ActiveRecord için bir yedek olduğunu anlıyorum

Hayır, öyle değil. El işçiliği dizeleri SQL sorguları yerine geçti. Ortak bir sorgu katmanıyatmaktadırActiveRecord, ama aynı zamanda DataMapper için bir destek olarak kullanılır, örneğin olabilir.

Eğer bir şey için bir yedek ise, Hırs yerine geçti. Ya da, SERİ standart sorgu işleçler veya Python SQLAlchemy Ruby versiyonu olarak düşünebilirsiniz. (Aslında, yazar ilham olarak her iki SERİ ve SQLAlchemy bildiriliyor.)

Ya da, named_scopeler için bir yedek olarak görebilirsiniz. Aslında, Öncesinde çok fazla fikir şu oluyor: "her sorgu named_scope". Ve, whaddayaknow: ikisi de aynı kişi tarafından yazılmış.

ve sorgu yerine nesneleri kullanır.

Hayır, nesneleri kullanırgibisorgular.

neden bu daha mı iyi?

Ruby nesne yönelimli bir dil, dize yönelimli bir dil değildir. Bu nedenleyalnızmantıklı dize yerine nesne gibi sorgular temsil ediyor. Sorgular için uygun bir nesne modeli inşa etmek yerine her şey için dizeleri kullanarak bir muhasebe sistemi için uygun bir nesne modeli inşa etmek yerine her şey için dizeleri kullanarak verir hemen hemen aynı faydaları verir.

Başka bir büyük avantajı Haricinde bir fiili uygulayanCebirsorgu operatörleri. Diğer bir deyişle, Öncesinde ve sorgular oluşturmak oluşturmak için matematiksel kuralları bilir. Eğer her geçerli bir SQL sorgusu içeren iki dizeleri, bir arada olursa, sonuç muhtemelen geçerli bir SQL sorgu olmayacak. Ya da daha kötüsügeçerli bir SQL sorgu, ama mantıklı olmayan biri ya da bir şey öyle düşündüğün gibi tamamen farklı yapar. Bu olabiliraslaÖncesinde olur. (Bu aşağıda yazdığım yazı ile ne demek "kompozisyon altında kapalı".)

nesneleri/sorgu olacak "daha kolay oluşturmak için"?

Evet. Yukarıda bahsettiğim gibi, örneğin, çok daha kolay, daha basit parçalar daha karmaşık sorgular oluşturmak için.

daha verimli SQL sorguları yol açacak mı?

Evet. Öncesinde sorguları için uygun bir nesne modeli olan gerçeği kadar hiç gerçek bir SQL sorgu oluşturur önce bu sorguları en iyi duruma getirme gerçekleştirmek anlamına gelir.

tüm büyük DBs ile uyumlu olacak mı? - Öyle olacak sanırım.

Evet. Aslında, ben her zaman SQL hakkında yukarıda konuştuk, ama aslında ilişkisel sorgu Cebir hemen hemen her şey için sorgular oluşturabilirsiniz. Yine, örnek olarak SERİ ya da Hırs bkz: SQL, LDAP, ActiveResource, CouchDB,,, &üssün Amazon Google sorgulayabilir; aynı sözdizimi ile.

Ve neden Nick Kallen yazdı ismi ile müsemma Madde Why Arel? by Nick Kallen kendisi Öncesinde ne olduğu belki de en iyi tartışma. Not: madde içeren bazı hafif matematik ve bilgisayar bilimleri jargon, ama bunun tam olarak anlamı: Öncesinde bazı sağlam temeller matematik ve bilgisayar bilimleri, bu temellerin ne vermek onun güçlü özellikleri.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CMTelly

    CMTelly

    2 Mayıs 2007
  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006
  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008