2009-08-15 26 views
6

Erlang'ı araştırmaya devam ediyorum. Bir sonraki web projemi Erlang kullanarak başlatmayı düşünüyorum ve bu aşamada Ruby on Rails'den gerçekten özleyeceğim tek şey ActiveRecord.Erlang için ActiveRecord

Erlang için iyi bir alternatif teknoloji var mı?

Güncelleme: Bir çözüm gelmiş en yakın ErlyDB etmek, ErlyWeb bir bileşeni.

ErlyDB, Erlang için bir veritabanı soyutlama katmanı üreticisidir. ErlyDB sezgisel bir şekilde ortak veri erişim işlemleri gerçekleştirmek izin fonksiyonlarını oluşturmak için veritabanı meta verilerini ve kullanıcı tarafından sağlanan meta birleştirir. aynı zamanda farklı veritabanı motorları (her ne kadar sadece MySQL destekli olsa da) ile çalışmak için tek bir API sağlar, böylece taşınabilir veri erişim kodu yazmanıza izin verir. Gerçekten orada sanmıyorum

+0

Yakut kullanıcı olmadığından, ActiveRecord'daki özellikleri tanımlayabilir misiniz? SQL şemasından kod üreten bir şey mi? – Christian

cevap

4

Eh, ActiveRecord başlıca avantajları (Benim gördüğüm gibi) şunlardır: Neredeyse şeffaf bir ilişkisel veritabanındaki nesneleri kalıcı olabilir

  1. .
  2. Veritabanınızı, nesnelerinizin herhangi bir özelliğine göre arayabilirsiniz.
  3. Nesneleri ısrar ederken doğrulayabilirsiniz.
  4. Nesneleri silmek, güncellemek veya eklemek için geri arama yapabilirsiniz. Mnesia ile

: Kesinlikle şeffaf herhangi Erlang veri devam edebilir

  1. .
  2. Kalıp eşleştirmeyi kullanarak veritabanınızı verilerinizin herhangi bir özelliğine veya bunların birleşimlerine göre arayabilirsiniz.
  3. QLC, desen eşleştirmesinin yeterli olmadığı durumlarda güzel bir sorgu arabirimi sunar. Eğer Mnesia eksik olan ActiveRecord içinde var başka ne ise doğrulayarak ve geri aramalar için

yok çözümler ... Yani

?

+2

Sanırım problemin bir kısmı, RDBMS'imi bırakmaya hazır olmadığım. Araçları biliyorum, nasıl optimize edeceğimi ve ölçeklendireceğimi biliyorum. Belki de bu sadece bilinmeyenden korkuyor. –

+2

Ardından dalıp atın. Sadece sizin için farklı şeyler yaptığınızda tüm sorunları bilmek sizin için iyi olacaktır. Birden çok yaklaşımı tanıdığınızda iyi bir görüşme yapmak çok daha kolay. Daha büyük bir araç kutusu bazen kullanışlı olabilir. –

+1

Bazı konuların Erlang'ın şu anda web uygulamaları için uygun olmadığını merak ediyorum. –

4

bu yazının yazıldığı anda olduğunu. Bunun nedeni, erlang'a yazılan sistem türleri ve bunları yazan kişilerin türü, İlişkisel Veritabanlarını gerçekten aramaz. Mnesia, CouchDB, Tokyo Cabinet ve diğer benzer veritabanı teknolojilerini kullanarak çok daha fazla kod görüyorum. Birisi aktif bir plak gibi bir şey oluşturmak istemeyebilirsiniz gelmiyor

. Henüz bir ihtiyaç duyulmadı. Belki ilk sen olacaksın? :-)

1

Bazı googling CouchDB için libs/müşteri/sarmalayıcıları "ActiveRecord CouchFoo gibi kütüphaneler gibi" tarif ve sakınmak tavsiye bildirmektedir: Yorumunuza olarak

http://upstream-berlin.com/2009/03/31/the-case-of-activerecord-vs-couchdb/

http://debasishg.blogspot.com/2009/04/framework-inertia-couchdb-and-case-of.html#

değil" konulu henüz web uygulamaları için uygun ", sanırım orada parçaları var: mochiweb, kanepe, yaws, azot, erlyweb. Bazı güçlü araçlar var, kesinlikle farklı paradigmalar, kesinlikle raylardan, django'dan ve PHP'den.

+0

Bu gerçekten ilginç şeyler ve yakın zamanda yaşadığım düşünceyi yansıtıyor. ActiveRecord’u istiyorum çünkü bu yüzden bir yazılım düşüncesine ve akıl yürütme tarzına bağlıyım. CouchDB'de MySQL'e alternatif olarak çok daha ciddi görünüyorum. –

1

Sen Chicago Patronun "BossRecords" ilginizi çekebilir:

http://www.chicagoboss.org/api-record.html

Onlar oldukça açıkça Active kayıt desen örnek alınarak ve sözdizimi gıcırtılı temiz hale getirmek için derleyici sihirli bir çok kullanırım edilir. BossRecords, has_many/belongs_to derneklerinin yanı sıra kaydetmeyi/doğrulamayı destekler. Veri modelinizdeki özellikler, oluşturulan işlevler aracılığıyla kullanılabilir (ör. "Çalışan: first_name()").