2012-12-16 11 views
10

Clojure tabanlı bir web uygulaması oluştururken biraz uğraş veriyorum. Clojure web ekosistemini keşfetmeye başladığım basit bir CRUD uygulaması. Ben Hiccup, Enlive, Compojure ve Noir gibi farklı kütüphanelerle denemeler yapıyorum (ancak Noir, kullanım dışı kalmanın eşiğinde gibi görünüyor).Clojure ile zengin içerikli web uygulamaları

Benim sorum aslında iki soru. Birincisi, clojure web uygulamaları oluşturmak için yapılan sözleşmelerden yoksun. Ve ikincisi, 'zengin' html bileşenleri oluşturma konusunda bazı ipuçlarına ihtiyacım var.

Clojure yolunu sevdiğim şey, farklı kütüphanelerin birlikte oynamasının kolaylığıdır. Hıçkırık ve diğer yollarla dolarak değiştirmek büyük bir sorun değil. Her şey onun tek ve basit rolünü oynar. JSF gibi karmaşık bir çerçeveden çok farklı.

Ama önemli olan nokta şu: Bu büyük özgürlük beni biraz kaybolan hissettiriyor. JSF'de her şeyin yerini bildiğini biliyorum. Tüm bileşenleri, Spring-Security bütün oturumları işlemek için entegre etmek için kullanıyorum. Bileşen kütüphaneleri beni html, javascript ve ajax sorunları ile uğraşmanın stresinden kurtarıyor. Özellikle yukarıda bahsedilen bileşen kütüphaneleri Clojure ile özlediğim şeydir. Kendimi alternatif satır renkleri, sayfalama, sütun sıralaması, artan filtre ve benzeri gibi özelliklere sahip bir datatable gibi şeyleri uygularken buldum. Ve özellikle ajax dahil edildiğinde, bu tür bileşenlerin tarayıcı ve sunucu durumunun nasıl senkronize edileceğiyle ilgili sorularım bana bırakır. İnternette olgun bir cevap bulamadım.

Çerçevelerin avantajı: kuralları ve kısıtlamaları anladıktan sonra uygulamanızı oluşturabilir ve iş kurallarına konsantre olabilirsiniz. Teknik altyapı ele alınmış ve dikkat dağıtıcı olmamalıdır.

Clojure dünyası için ne gibi öneriler var? ClojureScript One bir çözüm mü? Henüz bakmadım. Herkes RichFaces datatable gibi benzer özellikler sunan herhangi bir bileşen kitaplığını biliyor mu? Ajax ile uğraşmanın tercih edilen bir yolu var mı?


+0

Bu forum tartışma için değildir. Belirli bir problemi çözmek için. Clojurescript tarayıcı tarafı için Javascript çıktı. Arka uç için Noir sadece Compojure lehine reddedildi. – octopusgrabbus

+0

Bu forumun tartışılmaması için farkındayım. Ama ben bir 'doğru' cevabı beklemiyorum. Ama bu son cümleyi kaldıracağım. Dediğim gibi, gerçekten 'clojurescript One' içine bakmadım. Clojurescript'in ne olduğunu biliyorum. 'Clojurescript One' bana her şeyi sarmak için bir başlangıç ​​noktası gibi görünüyordu. Ama belki yanlış ve clojurescript ile başlamak için sadece bir öğretici bir uygulama. – nansen

cevap

3

Tüm Sana verebilir bazı yönergeler: istemci üzerinde devlet yönetimi kodundan GUI'nizin kodunu ayırmak JSON veya EDF

  • yılında istemci ve sunucu arasında

    • değişim mesajları
    • Durum yönetim kodunuzu crossover'a yerleştirin, böylece tarayıcının dışında test edebilirsiniz.
    • Müşteri GUI kodunuzun mümkün olduğunca belirli bir kitaplıktan bağımsız olmasını sağlayın. veya etkin topluluklar içeren kütüphaneler ve en az bağımlılıklar
  • +0

    Çaprazlama nedir? (point 3) – Bill

    +0

    crossover, Clojure kaynağından cljsbuild (lein eklentisi) tarafından kopyalanacak kodunuzun bir yolunu Clojurescript kaynağınıza bildirdiğinizde, bu proje.clj'nizdeki bir satır ile yapılır.Normal Clojure ortamınızı kullanarak sınamanızı mümkün kılan, kesinlikle Clojurescript bağımlılıkları olmadan kodunuzun saf Clojure kısmının bir kısmını yapma anlamında kullanmıştım. – Hendekagon

    +1

    Kesinlikle [GitHub] (http://github.com) içindeki kaynaklarla tam bir örneğe bakmayı çok isterim. Olabilir Mi? –