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คุณจะได้รับผลลัพธ์ต่อไปนี้