Orta ölçekli Clojure örnek uygulaması?


96

"En iyi uygulamalar" örneği olarak kullanılabilecek orta ölçekli bir Clojure örnek uygulaması var mı ve böyle bir uygulamanın kod ve kod organizasyonu açısından nasıl görüneceğini görmenin iyi bir yolu var mı? Bir web uygulaması benim için özellikle ilginç olurdu, ancak en önemlisi, programın yaygın olarak yararlı bir şey yapması (örneğin, blog, hata izleme, CMS) ve hiçbir zaman gerçek uygulamada uygulamak zorunda olmadığım matematiksel bir şey olmamasıdır. dünya (N-queens problemini çözme, Yaşamı simüle etme, Fibonacci dizileri oluşturma ve fonksiyon programlama dillerinin bu gibi olağan ücretleri).

Teşekkürler!


Ben de aynı soruyu soracaktım. "Gerçek dünyada" ne kadar pratik olduğunu merak
etmeme neden oluyor

5
İnsanlar bu "Gerçek dünyada"
boğuluyor

Onunla bir IRC Bot yaptım, bunun için mükemmel bir dil (performans bir sorun değil, eklenti çalışırken değiştirilebiliyor, çıktı özellikle girdi - işlevle ilgili). Diğer çoğu kullanım için çok iyi değil. Çok fazla CPU israfı ve özellikle çok fazla bellek kullanımı, bellek karmaşası, önbellek kayıpları.
RokL

Yanıtlar:


42

Brian Carper'ın inek blogunu tavsiye ederim . Yazara göre, amacınız düşünülerek yazılmıştır.


2018 itibariyle cow-blog talimatlara göre derlenmemektedir. lein depsşu mesajla başarısız oluyor: `` gaka / gaka / 0.1.0 / gaka-0.1.0.pom clojars'dan alınıyor Güvenli olmayan HTTP deposunu TLS olmadan kullanmaya çalıştım. Bu neredeyse kesinlikle bir hatadır; ancak kasıtlı olduğu nadir durumlarda lütfen lein help faqayrıntılar için bakın . TLS olmadan güvenli olmayan HTTP deposunu kullanmaya çalıştım. Bu neredeyse kesinlikle bir hatadır; ancak kasıtlı olduğu nadir durumlarda lein help faqayrıntılar için lütfen bakın . `` `
Teodor

19

Clojure-katkı kaynak koduna göz atarsanız, kitaplıkların clojure'da nasıl uygulandığını görebilirsiniz.

Aynı kaynak ağacının altındaki " ClojureScript " i de kontrol edebilirsiniz .

Çok küçük bir Clojure alt kümesinde yazılan kodun otomatik olarak JavaScript'e çevrilmesine izin verir.

ClojureScript tercümanı tam bir Clojure uygulamasıdır.

Henüz yapmadıysanız, Stewart Halloway Port of Practical Common Lisp örneklerini Clojure'a incelemenizi de tavsiye ederim .


Monolitik Clojure Contrib kitaplığı, şu adreste bulunabilen bir dizi yeni modüler katkı kitaplığı lehine kullanımdan kaldırıldı: dev.clojure.org/display/doc/Clojure+Contrib (Clojure'un Github'daki richhickey deposundan şu adrese taşındığını unutmayın : resmi clojure deposu)
Sean Corfield

15

Compojure'a bir göz atın . Clojure'da yazılmış bir web çerçevesidir, bu nedenle Clojure'da yararlı web uygulamaları yazmanıza ve çalıştırmanıza (gömülü bir Jetty'de) izin verir ve aynı zamanda büyük miktarda gerçek dünya Clojure kodunun iyi bir örneğini oluşturur.

Aktif geliştirme aşamasındadır ve yararlı bir Google Grubuna sahiptir .


1
Kodun çoğu artık Compojure Ring'den gittiği için şimdi bakılması gereken yer olabilir.
mac

Compojure'un HTML oluşturma kodlarının birçoğu artık Hiccup'ın bir parçası olduğuna inanıyorum ( github.com/weavejester/hiccup )
mikera

10

Clojure'un yazarı Rich Hickey tarafından yazılan karıncalar demosuna bir göz atın:

http://clojure.googlegroups.com/web/ants.clj

Bir emacs geliştirme ortamı ile birlikte kurulumunu yapmak için bazı güzel talimatlar:

http://riddell.us/clojure

Ayrıca Rich'in bu kodla birlikte gelen sunumuna bakın:

http://blip.tv/file/812787


1
Kaynağı görüntülemeye çalıştığımda sürekli yeniden yönlendiriliyorum. İşin garibi, Google aracılığıyla da bulamıyorum.
AnnanFay

Görünüşe göre blip.tv bağlantısı artık youtube.com/watch?v=dGVqrGmwOAw adresinde ve kodun açıklamasının sunumdan yaklaşık 1 saat 24 dakika sonra başladığını düşünüyorum.
Roger Allen

7

Clojure, Clojure'un en iyi uygulamalarına iyi bir örnektir. Core.clj'nin altına doğru okuyun, iyi şeyler.



5

Compojure'un muhtemelen bir örnek vermenin en iyi yolu olduğunu düşünüyorum. Bunun "orta ölçekli" bir örnek olduğunu sanmıyorum, ancak muhtemelen işe yarayacak küçük alt bölümleri var. En azından benim yaklaşımım bu olacak. gülümser

Ayrıca kontrol edin

http://github.com/technomancy/mire/tree/master

Bu, clojure'de oluşturulmuş küçük bir çamur istemci prototipidir, avantajı, tamamen kendi kendine yetmesi ve muhtemelen dahil olan kavramlar dahil oldukça basit olmasıdır. Belgeleme, eh, sorun değil, ancak koddaki kavramlar, MUD'un kolayca çalışan eylem unsurlarıyla çok yakından bağlantılı.


5

Bu sorudan iki yıl sonrayız ve bu bir dil döngüsünün henüz erken olmasına rağmen, Clojure kesinlikle ciddi üretim çalışmaları için kullanılıyor. World Singles'ta, web platformumuzda her türlü genel amaçlı görevi yerine getiren birkaç bin Clojure hattımız var - Bunu Real World Clojure serimde blog yazdım .

Oldukça büyük bazı açık kaynak projeleri için - tam olarak uygulamalar değil, ancak yüksek profilli altyapı - için Twitter'dan Storm ve BackType'tan Cascalog'a (şimdi Twitter'ın bir parçası) bakabilirsiniz . 4clojure.com bir açık kaynak web uygulaması olarak bahsedildi, bu da bir göz atmaya değer, ancak 4clojure için yeni github deposuna dikkat edin .


3

Olumlu bir işaret: InfoQ'da " Clojure'un büyük ölçekli bir üretim dağıtımında kullanıldığına dair yayınlanan ilk raporlardan biri" hakkında bir makale var . Açık görünmüyor, ancak en azından Clojure'un gerçek üretim dünyasında kritik bir uygulamada kullanıldığına dair bir işaret. Clojure topluluğu için büyük bir adım.




1

Size sadece , hem sunucu tarafında hem de istemci tarafında (ClojureScript'i kolaylaştırdığı yerde) çok umut verici bir web çerçevesi olan Pedestal'ı kontrol etmenizi tavsiye edebilirim . GUI şeylerini kavramak biraz zor, ancak büyük bir uygulamada mantıklı kalmak için yapılması gereken oldukça fazla.


1

edge , Clojure, ClojureScript, Component, Yada, Aero ve Boot ile bir uygulamayı yapılandıran orta büyüklükte bir uygulamadır.


0

Clojure hala çok genç ve mevcut kaynak kodlu orta büyüklükte uygulamalara sahip olmak için hareketli bir hedef.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.