แอปพลิเคชันตัวอย่าง Clojure ขนาดกลาง?


96

มีแอปพลิเคชันตัวอย่าง Clojure ขนาดกลางที่สามารถใช้เป็นตัวอย่าง "แนวทางปฏิบัติที่ดีที่สุด" และเป็นวิธีที่ดีในการดูว่าแอปพลิเคชันดังกล่าวมีลักษณะอย่างไรในแง่ของรหัสและการจัดระเบียบรหัส เว็บแอปพลิเคชันน่าสนใจเป็นพิเศษสำหรับฉัน แต่ที่สำคัญที่สุดคือโปรแกรมทำสิ่งที่มีประโยชน์โดยทั่วไป (เช่นบล็อกการติดตามข้อผิดพลาด CMS เป็นต้น) ไม่ใช่สิ่งทางคณิตศาสตร์ที่ฉันไม่เคยต้องนำไปใช้จริง โลก (การแก้ปัญหา N-queens, การจำลองชีวิต, สร้างลำดับ Fibonacci และค่าโดยสารตามปกติของภาษาโปรแกรมฟังก์ชัน)

ขอบคุณ!


ฉันจะถามคำถามเดียวกันนี้ มันทำให้ฉันสงสัยว่ามันใช้งานได้จริงแค่ไหนใน "โลกแห่งความจริง"
ScArcher2

5
ผู้คนขาดอากาศหายใจใน "โลกแห่งความจริง" นี้มากเกินไป
Rayne

ฉันสร้าง IRC Bot ด้วยมันเป็นภาษาที่สมบูรณ์แบบสำหรับมัน (ประสิทธิภาพไม่ใช่ปัญหาปลั๊กอิน hot-swapping เอาต์พุตเกี่ยวข้องกับฟังก์ชันอินพุตเล็กน้อย) สำหรับการใช้งานอื่น ๆ ส่วนใหญ่จะไม่ค่อยดีนัก การสูญเสีย CPU มากเกินไปและโดยเฉพาะอย่างยิ่งการใช้หน่วยความจำมากเกินไปการปั่นหน่วยความจำแคชพลาด
RokL

คำตอบ:


42

ฉันแนะนำบล็อกวัวโดย Brian Carper ตามที่ผู้เขียนเขียนขึ้นโดยคำนึงถึงจุดประสงค์ของคุณ


ในปี 2018 cow-blog ไม่ได้รวบรวมตามคำแนะนำ lein depsล้มเหลวด้วยข้อความนี้: `` กำลังดึง gaka / gaka / 0.1.0 / gaka-0.1.0.pom จาก clojars พยายามใช้ที่เก็บ HTTP ที่ไม่ปลอดภัยโดยไม่มี TLS นี่เกือบจะเป็นความผิดพลาดอย่างแน่นอน อย่างไรก็ตามในบางกรณีที่เกิดขึ้นได้ยากโปรดดูlein help faqรายละเอียดพยายามใช้ที่เก็บ HTTP ที่ไม่ปลอดภัยโดยไม่มี TLS นี่เกือบจะเป็นความผิดพลาดอย่างแน่นอน อย่างไรก็ตามในบางกรณีที่เกิดขึ้นได้ยากโปรดดูlein help faqรายละเอียด ``
Teodor

19

หากคุณเรียกดูซอร์สโค้ดclojure-Contribคุณจะเห็นว่าไลบรารีถูกนำไปใช้อย่างไรใน clojure

คุณยังสามารถชำระเงิน " ClojureScript " ภายใต้แผนผังแหล่งเดียวกัน

อนุญาตให้โค้ดที่เขียนด้วย Clojure ชุดย่อยขนาดเล็กมากถูกแปลเป็น JavaScript โดยอัตโนมัติ

ตัวแปล ClojureScript เป็นแอป Clojure เต็มรูปแบบ

ฉันขอแนะนำให้ตรวจสอบตัวอย่างเสียงกระเพื่อมธรรมดาของสจ๊วตฮอลโลเวย์สำหรับ Clojureหากคุณยังไม่ได้ทำ


ไลบรารี Clojure Contrib ที่เป็นเสาหินได้ถูกเลิกใช้เพื่อสนับสนุนชุดของไลบรารีการมีส่วนร่วมแบบแยกส่วนใหม่ที่สามารถพบได้ที่นี่: dev.clojure.org/display/doc/Clojure+Contrib (โปรดทราบว่า Clojure ได้ย้ายจากที่เก็บ richhickey บน Github ไปยัง ที่เก็บ clojure อย่างเป็นทางการ)
Sean Corfield

15

ลองดูที่Compojure Compojureเป็นเว็บเฟรมเวิร์กที่เขียนด้วย Clojure ดังนั้นจึงช่วยให้คุณสามารถเขียนและเรียกใช้ (บน Jetty ในตัว) เว็บแอปที่มีประโยชน์ใน Clojure และยังทำหน้าที่เป็นตัวอย่างที่ดีของโค้ด Clojure ในโลกแห่งความเป็นจริงที่มีขนาดใหญ่

มันอยู่ภายใต้การพัฒนางานและมีประโยชน์กลุ่ม Google


1
เนื่องจากตอนนี้รหัสส่วนใหญ่หายไปจาก Compojure Ring จึงอาจเป็นที่ที่คุณต้องมอง
mac

ตอนนี้โค้ดสร้าง HTML ของ Compojure จำนวนมากเป็นส่วนหนึ่งของ Hiccup ฉันเชื่อ ( github.com/weavejester/hiccup )
mikera

10

ตรวจสอบการสาธิตมดที่เขียนโดยผู้แต่ง Clojure, Rich Hickey:

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

นี่คือคำแนะนำที่ดีในการตั้งค่าพร้อมกับสภาพแวดล้อมการพัฒนา emacs:

http://riddell.us/clojure

ตรวจสอบการนำเสนอของ Rich ที่มาพร้อมกับรหัสนี้:

http://blip.tv/file/812787


1
ฉันเปลี่ยนเส้นทางไปเรื่อย ๆ เมื่อพยายามดูแหล่งที่มา น่าแปลกที่ฉันไม่สามารถค้นหาผ่าน Google ได้
AnnanFay

ดูเหมือนว่าลิงก์ blip.tv ตอนนี้อยู่ที่youtube.com/watch?v=dGVqrGmwOAwและฉันคิดว่าคำอธิบายของโค้ดจะเริ่มต้นในการนำเสนอประมาณ 1 ชั่วโมง 24 นาที
Roger Allen

7

Clojure เป็นตัวอย่างที่ดีของแนวทางปฏิบัติที่ดีที่สุดของ Clojure อ่านต่อด้านล่างของ Core.clj สิ่งดีๆ



5

ฉันคิดว่า Compojure น่าจะเป็นวิธีที่ดีที่สุดสำหรับตัวอย่าง ฉันสงสัยว่าเป็นตัวอย่าง "ขนาดกลาง" แต่อาจมีส่วนย่อยที่มีขนาดเล็กซึ่งจะได้ผล อย่างน้อยนั่นก็จะเป็นแนวทางของฉัน ยิ้ม

ตรวจสอบด้วย

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

ซึ่งเป็นเครื่องไคลเอนต์โคลนขนาดเล็กที่สร้างขึ้นใน clojure ข้อดีคือมันมีอยู่ในตัวเองทั้งหมดและอาจค่อนข้างง่ายรวมถึงแนวคิดที่เกี่ยวข้อง เอกสารใช่มันไม่เป็นไร แต่แนวคิดในการผูกรหัสนั้นใกล้เคียงกับองค์ประกอบการกระทำของ MUD ที่ทำงานได้อย่างง่ายดาย


5

เราสองปีต่อจากคำถามนี้และในขณะที่ยังอยู่ในช่วงต้นของวงจรภาษา Clojure ถูกนำมาใช้อย่างแน่นอนสำหรับงานการผลิตที่จริงจัง ที่ World Singles เรามี Clojure หลายพันบรรทัดในการผลิตที่จัดการงานเอนกประสงค์ทุกประเภทในแพลตฟอร์มเว็บของเรา - ฉันเขียนบล็อกเกี่ยวกับเรื่องนี้ในซีรีส์ Real World Clojureของฉันชุดโลกแห่งความจริง

สำหรับโครงการโอเพ่นซอร์สที่มีขนาดใหญ่พอสมควร - ไม่ใช่แอปพลิเคชัน แต่เป็นโครงสร้างพื้นฐานที่มีรายละเอียดสูง - คุณสามารถดูStorm จาก TwitterและCascalog จาก BackType (ปัจจุบันเป็นส่วนหนึ่งของ Twitter) 4clojure.com ได้รับการกล่าวถึงเป็นโปรแกรมเว็บเปิดแหล่งที่มาที่คุ้มค่าดูเกินไป แต่ทราบrepo GitHub ใหม่สำหรับ 4clojure


3

สัญญาณเชิงบวก: มีบทความใน InfoQเกี่ยวกับ "หนึ่งในรายงานที่เผยแพร่ครั้งแรกของ Clojure ที่ใช้ในการปรับใช้งานการผลิตขนาดใหญ่" ดูเหมือนว่าจะไม่เปิดกว้าง แต่อย่างน้อยก็เป็นสัญญาณของ Clojure ที่ถูกใช้ในแอปพลิเคชันภารกิจที่สำคัญในโลกแห่งการผลิตจริง ก้าวที่ยิ่งใหญ่สำหรับชุมชน Clojure



1

คุณสามารถดูได้ที่นี่: http://bitbucket.org/kumarshantanu/blogjure/overview/

เป็นแอปพลิเคชั่นบล็อกเล็ก ๆ ที่เขียนโดยใช้ Hibernate, Compojure และ StringTemplate ที่ใช้งานได้จริง!


นอกจากนี้ฉันกำลังดำเนินการเกี่ยวกับเรื่องนี้ - code.google.com/p/bitumenframework เน้นที่ Java และ Clojure
Shantanu Kumar

1

ฉันสามารถแนะนำให้คุณตรวจสอบPedestalซึ่งเป็นเว็บเฟรมเวิร์กที่มีแนวโน้มมากทั้งฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ (ซึ่งช่วยอำนวยความสะดวก ClojureScript) สิ่งที่ gui ยากที่จะเข้าใจ แต่ค่อนข้างมากวิธีที่ควรทำเพื่อให้มีสติในแอปขนาดใหญ่



0

Clojure ยังเด็กเกินไปและเป็นเป้าหมายที่กำลังจะมีแอปพลิเคชั่นขนาดกลางพร้อมซอร์สโค้ดที่พร้อมใช้งาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.