Aplikasi sampel Clojure ukuran sedang?


96

Apakah ada aplikasi contoh Clojure berukuran sedang yang dapat digunakan sebagai contoh "praktik terbaik", dan cara yang baik untuk melihat seperti apa aplikasi tersebut dalam hal penyusunan kode dan kode? Aplikasi web akan sangat menarik bagi saya, tetapi yang paling penting adalah program tersebut melakukan sesuatu yang secara umum berguna (blog, pelacakan bug, CMS, misalnya), dan bukan sesuatu yang matematis yang belum pernah saya terapkan secara nyata. dunia (memecahkan masalah N-queens, mensimulasikan Life, menghasilkan deret Fibonacci, dan tarif bahasa pemrograman fungsi yang biasa).

Terima kasih!


Saya akan menanyakan pertanyaan yang sama persis. Itu membuat saya bertanya-tanya seberapa praktisnya di "dunia nyata"
ScArcher2

5
Orang-orang terlalu sesak di "Dunia Nyata" ini
Rayne

Saya membuat Bot IRC dengannya, itu adalah bahasa yang sempurna untuk itu (kinerja bukan masalah, plug-in hot-swapping, output secara sepele terkait dengan input - fungsi). Untuk sebagian besar kegunaan lain itu tidak terlalu baik. Terlalu banyak pemborosan CPU dan terutama penggunaan memori yang terlalu banyak, memori yang berputar, cache hilang.
RokL

Jawaban:


42

Saya merekomendasikan cow-blog oleh Brian Carper. Menurut penulisnya, itu ditulis dengan tujuan Anda dalam pikiran.


Pada 2018, cow-blog tidak dapat dikompilasi dengan mengikuti instruksi. lein depsgagal dengan pesan ini: `` Mengambil gaka / gaka / 0.1.0 / gaka-0.1.0.pom dari clojars Mencoba menggunakan repositori HTTP yang tidak aman tanpa TLS. Ini hampir pasti merupakan kesalahan; Namun dalam kasus yang jarang terjadi di mana itu disengaja, silakan lihat lein help faqdetailnya. Mencoba menggunakan repositori HTTP yang tidak aman tanpa TLS. Ini hampir pasti merupakan kesalahan; Namun dalam kasus yang jarang terjadi di mana itu disengaja, silakan lihat lein help faqdetailnya. ``
Teodor

19

Jika Anda menjelajahi kode sumber clojure-contrib, Anda dapat melihat bagaimana pustaka diimplementasikan di clojure.

Anda juga dapat melakukan pembayaran " ClojureScript " di bawah pohon sumber yang sama.

Mengizinkan kode yang ditulis dalam subset yang sangat kecil dari Clojure untuk diterjemahkan secara otomatis ke JavaScript.

Penerjemah ClojureScript adalah aplikasi Clojure lengkap.

Saya juga akan merekomendasikan untuk memeriksa sampel Port of Practical Common Lisp Stewart Halloway ke Clojure jika Anda belum melakukannya.


Pustaka Contrib Clojure monolitik tidak digunakan lagi karena satu set pustaka contrib modular baru yang dapat ditemukan di sini: dev.clojure.org/display/doc/Clojure+Contrib (perhatikan bahwa Clojure telah dipindahkan dari repositori richhickey di Github ke gudang resmi clojure)
Sean Corfield

15

Lihat Compojure . Ini adalah kerangka kerja web yang ditulis dalam Clojure, sehingga memungkinkan Anda untuk menulis dan menjalankan (pada Jetty yang disematkan) aplikasi web yang berguna di Clojure, dan juga berfungsi sebagai contoh yang baik dari sebagian besar kode Clojure dunia nyata.

Ini sedang dalam pengembangan aktif dan memiliki Grup Google yang membantu .


1
Karena sebagian besar kode sekarang hilang dari Compojure Ring, mungkin tempat yang tepat untuk melihatnya sekarang.
mac

Banyak kode penghasil HTML Compojure sekarang menjadi bagian dari Hiccup. Saya percaya ( github.com/weavejester/hiccup )
mikera

10

Lihat demo semut yang ditulis oleh penulis Clojure, Rich Hickey:

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

Berikut beberapa instruksi bagus untuk menyiapkannya bersama dengan lingkungan pengembangan emacs:

http://riddell.us/clojure

Lihat juga presentasi Rich yang sesuai dengan kode ini:

http://blip.tv/file/812787


1
Saya terus dialihkan saat mencoba melihat sumbernya. Anehnya, saya juga tidak dapat menemukannya melalui Google.
AnnanFay

Sepertinya tautan blip.tv sekarang ada di youtube.com/watch?v=dGVqrGmwOAw dan menurut saya deskripsi kode dimulai sekitar 1 jam 24 menit setelah presentasi.
Roger Allen

7

Clojure sendiri adalah contoh yang bagus dari praktik terbaik Clojure. Baca bagian bawah Core.clj, hal bagus.



5

Saya pikir Compojure mungkin adalah cara terbaik untuk memberi contoh. Saya ragu ini adalah contoh "berukuran sedang", tetapi mungkin ada subbagian kecil yang bisa berfungsi. Setidaknya, itulah pendekatan saya. tersenyum

Juga, periksa

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

yang merupakan prototipe klien lumpur kecil yang dibangun di jubah, keuntungannya adalah bahwa itu benar-benar mandiri, dan mungkin cukup sederhana, termasuk konsep yang terlibat. Dokumentasi, eh, tidak apa-apa, tetapi konsep dalam kode terkait sangat erat dengan elemen tindakan MUD yang berjalan dengan mudah.


5

Kami dua tahun berlalu dari pertanyaan ini dan, sementara itu masih di awal siklus untuk suatu bahasa, Clojure pasti digunakan untuk pekerjaan produksi yang serius. Di Jomblo Dunia, kami memiliki beberapa ribu lini produksi Clojure yang menangani semua jenis tugas tujuan umum di platform web kami - Saya membuat blog tentang ini di seri Jubah Dunia Nyata saya .

Untuk beberapa proyek open source yang cukup besar - bukan aplikasi, tetapi infrastruktur profil tinggi - Anda dapat melihat Storm dari Twitter dan Cascalog dari BackType (sekarang bagian dari Twitter). 4clojure.com telah disebutkan sebagai aplikasi web open source, itu juga layak untuk dilihat, tetapi perhatikan repo github baru untuk 4clojure .


3

Tanda positif: ada artikel di InfoQ tentang "salah satu laporan pertama yang diterbitkan tentang Clojure yang digunakan dalam penerapan produksi skala besar." Tampaknya tidak terbuka, tapi setidaknya itu adalah tanda Clojure digunakan dalam aplikasi misi kritis di dunia produksi nyata. Sebuah langkah besar bagi komunitas Clojure.




1

Saya hanya dapat merekomendasikan Anda untuk memeriksa Pedestal , kerangka kerja web yang sangat menjanjikan, baik sisi server maupun sisi klien (yang memfasilitasi ClojureScript). Hal-hal gui agak sulit dipahami, tetapi cukup banyak cara yang harus dilakukan agar tetap waras di aplikasi besar.


1

edge adalah aplikasi berukuran sedang yang menampilkan penataan aplikasi dengan Clojure, ClojureScript, Component, Yada, Aero, dan Boot.


0

Clojure masih terlalu muda dan target bergerak untuk memiliki aplikasi berukuran sedang dengan kode sumber yang tersedia.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.