Clojure - การใช้งาน
Clojure มีไลบรารีที่สนับสนุนซึ่งมีการเปิดใช้งานสำหรับการสร้าง Desktop และ Web-based applications. เรามาพูดคุยกัน
ซีเนียร์ | การใช้งานและคำอธิบาย |
---|---|
1 | เดสก์ท็อป - เห็นเลื่อย See-saw เป็นไลบรารีที่สามารถใช้สำหรับสร้างแอปพลิเคชันบนเดสก์ท็อป |
2 | เดสก์ท็อป - การเปลี่ยนค่าของข้อความ ค่าของเนื้อหาในหน้าต่างสามารถเปลี่ยนแปลงได้โดยใช้ ‘config!’ตัวเลือก ในตัวอย่างต่อไปนี้ config! ตัวเลือกนี้ใช้เพื่อเปลี่ยนเนื้อหาหน้าต่างเป็นค่าใหม่ของ“ Good Bye” |
3 | เดสก์ท็อป - กำลังแสดงกล่องโต้ตอบโมดอล กล่องโต้ตอบโมดอลสามารถแสดงได้โดยใช้วิธีการแจ้งเตือนของคลาส see-saw เมธอดรับค่าข้อความซึ่งจะต้องแสดงในกล่องโต้ตอบโมดอล |
4 | เดสก์ท็อป - กำลังแสดงปุ่ม ปุ่มสามารถแสดงได้ด้วยความช่วยเหลือของคลาสปุ่ม |
5 | เดสก์ท็อป - การแสดงฉลาก ป้ายกำกับสามารถแสดงได้ด้วยความช่วยเหลือของคลาสเลเบล |
6 | เดสก์ท็อป - การแสดงฟิลด์ข้อความ ช่องข้อความสามารถแสดงได้ด้วยความช่วยเหลือของคลาสข้อความ |
แอปพลิเคชันบนเว็บ - บทนำ
ในการสร้างเว็บแอปพลิเคชันใน Clojure คุณต้องใช้ไลบรารีแอปพลิเคชัน Ring ซึ่งมีอยู่ที่ลิงค์ต่อไปนี้ https://github.com/ring-clojure/ring
คุณต้องแน่ใจว่าคุณดาวน์โหลดขวดโหลที่จำเป็นจากไซต์และตรวจสอบให้แน่ใจว่าได้เพิ่มเป็นข้อมูลอ้างอิงสำหรับแอปพลิเคชัน Clojure
Ring framework มีความสามารถดังต่อไปนี้ -
ตั้งค่าสิ่งต่างๆเพื่อให้คำขอ http เข้ามาในเว็บแอปพลิเคชันของคุณเป็น Clojure HashMap ปกติและยังทำให้คุณสามารถตอบกลับเป็น HashMap ได้
ระบุข้อกำหนดที่อธิบายว่าคำขอและแผนที่ตอบกลับควรมีลักษณะอย่างไร
นำไปตามเว็บเซิร์ฟเวอร์ (ท่าเทียบเรือ) และเชื่อมต่อเว็บแอปพลิเคชันของคุณกับมัน
เฟรมเวิร์ก Ring สามารถเริ่มต้นเว็บเซิร์ฟเวอร์โดยอัตโนมัติและทำให้มั่นใจว่าแอปพลิเคชัน Clojure ทำงานบนเซิร์ฟเวอร์นี้ จากนั้นคุณสามารถใช้กรอบงาน Compojure สิ่งนี้ช่วยให้สามารถสร้างเส้นทางซึ่งปัจจุบันเป็นวิธีการพัฒนาเว็บแอปพลิเคชันที่ทันสมัยที่สุด
Creating your first Clojure application - ตัวอย่างต่อไปนี้แสดงวิธีสร้างเว็บแอปพลิเคชันแรกของคุณใน Clojure
(ns my-webapp.handler
(:require [compojure.core :refer :all]
[compojure.route :as route]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
(GET "/" [] "Hello World")
(route/not-found "Not Found"))
(def app
(wrap-defaults app-routes site-defaults))
มาดูด้านต่อไปนี้ของโปรแกรม -
‘defroutes’ ใช้เพื่อสร้างเส้นทางเพื่อให้คำขอที่ส่งไปยังเว็บแอปพลิเคชันไปยังเส้นทางต่างๆสามารถนำไปยังฟังก์ชันต่างๆในแอปพลิเคชัน Clojure ของคุณได้
ในตัวอย่างข้างต้น“ /” เรียกว่าเส้นทางเริ่มต้นดังนั้นเมื่อคุณเรียกดูฐานของเว็บแอปพลิเคชันของคุณสตริง“ Hello World” จะถูกส่งไปยังเว็บเบราว์เซอร์
หากผู้ใช้พบ url ใด ๆ ที่แอปพลิเคชัน Clojure ไม่สามารถประมวลผลได้ผู้ใช้จะแสดงสตริง "Not Found"
เมื่อคุณเรียกใช้แอปพลิเคชัน Clojure โดยค่าเริ่มต้นแอปพลิเคชันของคุณจะโหลดเป็น localhost: 3000 ดังนั้นหากคุณเรียกดูตำแหน่งนี้คุณจะได้รับผลลัพธ์ต่อไปนี้
แอปพลิเคชันเว็บ - การเพิ่มเส้นทางเพิ่มเติมให้กับแอปพลิเคชันเว็บ
คุณยังสามารถเพิ่มเส้นทางในเว็บแอปพลิเคชันของคุณได้อีกด้วย ตัวอย่างต่อไปนี้แสดงวิธีการบรรลุเป้าหมายนี้
(ns my-webapp.handler
(:require [compojure.core :refer :all]
[compojure.route :as route]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
(GET "/" [] "Hello World")
(GET "/Tutorial" [] "This is a tutorial on Clojure")
(route/not-found "Not Found"))
(def app
(wrap-defaults app-routes site-defaults))
คุณจะเห็นได้ว่าการเพิ่มเส้นทางในแอปพลิเคชันนั้นง่ายดายเพียงแค่เพิ่มฟังก์ชัน GET อื่นด้วยเส้นทาง url (GET "/ บทช่วยสอน" [] "นี่คือบทช่วยสอนเกี่ยวกับ Clojure")
หากคุณเรียกดูสถานที่ http://localhost:3000/Tutorialคุณจะได้รับผลลัพธ์ต่อไปนี้