आप क्लोजर में वेब एप्लिकेशन कैसे बनाते हैं? [बन्द है]


216

मुझे लगता है कि यह जावा के साथ दैनिक काम करने वाले अधिकांश प्रोग्रामर के लिए एक अजीब सवाल है। मैं नही। मुझे जावा-द-लैंग्वेज पता है, क्योंकि मैंने जावा प्रोजेक्ट्स पर काम किया था, लेकिन जावा-द-वर्ल्ड नहीं। मैंने कभी जावा में स्क्रैच से वेब ऐप नहीं बनाया। अगर मुझे इसे पायथन, रूबी के साथ करना है, तो मुझे पता है कि मुझे कहां जाना है (Django या रेल), लेकिन अगर मैं क्लोजर में एक वेब एप्लिकेशन बनाना चाहता हूं, तो इसलिए नहीं कि मैं जावा दुनिया में रहने के लिए मजबूर हूं, बल्कि इसलिए कि मैं भाषा की तरह और मैं इसे एक कोशिश देना चाहता हूं, मुझे किन पुस्तकालयों और रूपरेखाओं का उपयोग करना चाहिए?


1
मैं सोच रहा था कि क्या आप जावा नेटिव एपीआई या क्लोजर नेटिव का उपयोग करना चाहते हैं?
एंडी टर्नर

एंडी: मैं वास्तव में निश्चित नहीं हूं, क्योंकि मैं इस संबंध में जावा दुनिया के बारे में बहुत कम जानता हूं (लेकिन मैं पहले से ही काम पर कुछ समय के लिए जावा, भाषा का उपयोग कर रहा हूं)।
पुतीनो

मुझे लगता है कि यह अच्छा होगा यदि यह प्रश्न क्लोजर वेब फ्रेमवर्क की एक सूची के साथ समाप्त हो गया, प्रत्येक का जवाब है, और कोई भी अपने पसंदीदा को वोट कर सकता है। मुझे लगता है कि Meredydd का निश्चित रूप से Compojure का जवाब है। मैं Webjure के लिए एक जोड़ूंगा और तुलना करना अच्छा होगा।
पुतीनो

Pupeno! मैं यहां "क्लोजर के साथ वेब एप्लिकेशन" की खोज करने पहुंचा। यह पृष्ठ Google में पहला परिणाम था।
सेबेस्टियन ग्रिग्नोली

जवाबों:


104

अब तक मैंने जो सबसे अच्छा क्लूजुर वेब फ्रेमवर्क तैयार किया है वह कंपोज्योर है: http://github.com/weavejester/compojure/tree/master

यह छोटा लेकिन शक्तिशाली है, और इसमें सुंदर रूप से सुंदर वाक्य रचना है। (यह हुड के नीचे जेट्टी का उपयोग करता है, लेकिन यह सर्वलेट एपीआई को आपसे तब तक छुपाता है जब तक आप इसे नहीं चाहते हैं, जो अक्सर नहीं होगा)। उस URL पर README को देखें, फिर एक स्नैपशॉट डाउनलोड करें और खेलना शुरू करें।


16
क्या रिचर्ड की टिप्पणी इस जवाब के लिए थी? मैं इसे नहीं समझता।
जॉन क्रॉमार्टी

26
@ रिचर्ड आपका तर्क बहुत मूर्खतापूर्ण है। हां, यदि आप जावा पुस्तकालयों का उपयोग करने का निर्णय लेते हैं, तो आप बहुत सारे मामलों में कार्यात्मक होने का त्याग कर रहे हैं। लेकिन इन पुस्तकालयों की बात यह है कि आपको इसे फिर कभी नहीं करना है । उदाहरण के लिए, रिंग एक क्लोजर रैपर है जो सर्वलेट्स के आसपास है, इसलिए आपको सीधे सर्वलेट्स का उपयोग नहीं करना है। क्या आप प्रस्तावित करेंगे कि हम वेब डेवलपमेंट व्हील को स्क्रैच से ठीक करने के बजाय पूरी तरह से अच्छे जावा टूल्स का इस्तेमाल करने से रोकते हैं? उनमें तर्क कहां है। इसके अलावा, इन पुस्तकालयों का उपयोग करने का विकल्प कैसे खराब है? ...
रेने

15
@ रीचर्ड आपके पूरे तर्क का तात्पर्य है कि गैर-कार्यात्मक गैर-क्लोजर कोड स्वाभाविक रूप से इतना बुरा है कि यहां तक ​​कि एक पुस्तकालय के नीचे छिपी हुई उपस्थिति भी संदूषण है। मैं इस तर्क को नहीं समझता। बहुत सारे जावा लाइब्रेरी कोड के उपयोगी और शक्तिशाली टुकड़े हैं। जब हम बस अपने स्वयं के रैपर पुस्तकालयों को प्रदान कर सकते हैं जो जमीन से उन लोगों को फिर से लिखते हैं जो उन्हें क्लीजुर से सुरुचिपूर्ण और कार्यात्मक रूप से उपयोग करना संभव बनाते हैं?
Rayne

10
@ रिचर्ड, शुद्ध-क्लोजर http सर्वर बनाने के लिए स्वतंत्र महसूस करें।
gtrak

5
लिस्प / क्लोजर शब्दों में, एक फ़ंक्शन का कोई साइड इफेक्ट नहीं है। ( गीगामोनकीस /बुक /… देखें )। हालांकि जैसा कि लिस्प की भूमि में बताया गया है ( landoflisp.com/trade_func.png ), एक विशुद्ध रूप से कार्यात्मक कार्यक्रम आमतौर पर बहुत उपयोगी नहीं है क्योंकि साइड इफेक्ट वास्तव में चीजें करने के लिए आवश्यक हैं, जैसे डेटाबेस रिकॉर्ड्स, डाउनलोड फाइलें, पोस्ट को एक तरह से लिखना REST सर्वर, इमेजेज आदि उत्पन्न करता है ...
lfalin

179

वेब अनुप्रयोगों के विकास के लिए कम्पोजिट अब एक पूर्ण ढांचा नहीं है। 0.4 रिलीज के बाद से, कई परियोजनाओं में कंपोजर को तोड़ दिया गया है।

रिंग HTTP अनुरोध और प्रतिक्रिया प्रक्रिया को दूर करके नींव प्रदान करता है। रिंग आने वाले अनुरोध को पार्स कर देगा और सभी मानचित्रों जैसे उरी, सर्वर-नाम और अनुरोध-विधि से युक्त एक मैप उत्पन्न करेगा। तब आवेदन अनुरोध को संभाल लेगा और अनुरोध के आधार पर प्रतिक्रिया उत्पन्न करेगा। एक प्रतिक्रिया को निम्न कुंजियों वाले नक्शे के रूप में दर्शाया जाता है: स्थिति, शीर्षलेख, और निकाय। तो एक साधारण आवेदन की तरह दिखेगा:

(def app [req]
  (if (= "/home" (:uri req))
    {:status 200
     :body "<h3>Welcome Home</h3>"}
    {:status 200 
     :body "<a href='/home'>Go Home!</a>"}))

रिंग का एक अन्य हिस्सा मध्य-बर्तन की अवधारणा है। यह कोड है जो हैंडलर और आने वाले अनुरोध और / या आउटगोइंग प्रतिक्रिया के बीच बैठता है। मध्य-वेयर में निर्मित कुछ में सत्र और स्टैकट्रेस शामिल हैं। सत्र मध्य-वेयर: अनुरोध मानचित्र में एक सत्र कुंजी जोड़ेगा, जिसमें अनुरोध करने वाले उपयोगकर्ता के लिए सत्र जानकारी शामिल है। यदि: सत्र कुंजी प्रतिक्रिया मानचित्र में मौजूद है, तो इसे वर्तमान उपयोगकर्ता द्वारा किए गए अगले अनुरोध के लिए संग्रहीत किया जाएगा। यद्यपि स्टैक ट्रेस मध्य-वेयर अनुरोध को संसाधित करते समय होने वाले किसी भी अपवाद को कैप्चर करेगा और स्टैक ट्रेस उत्पन्न करता है जिसे प्रतिक्रिया के रूप में भेजा जाता है यदि कोई अपवाद होता है।

रिंग के साथ सीधे काम करना थकाऊ हो सकता है, इसलिए कॉम्पोज्योर रिंग एब्सट्रैक्टिंग के विवरण के ऊपर बनाया गया है। आवेदन अब रूटिंग के संदर्भ में व्यक्त किया जा सकता है ताकि आप इस तरह से कुछ कर सकें:

(defroutes my-routes
  (GET "/" [] "<h1>Hello all!</h1>")
  (GET "/user/:id" [id] (str "<h1>Hello " id "</h1>")))

कंपोजर अभी भी अनुरोध / प्रतिक्रिया मानचित्रों के साथ काम कर रहा है ताकि आप हमेशा जरूरत पड़ने पर उन तक पहुंच सकें:

(defroutes my-routes
  (GET "*" {uri :uri} 
           {:staus 200 :body (str "The uri of the current page is: " uri)}))

इस स्थिति में {uri: uri} भाग पहुंचता है: अनुरोध मानचित्र में uri कुंजी और उस मूल्य पर uri सेट करता है।

अंतिम घटक हिचकी है जो html को आसान बनाता है। विभिन्न HTML टैग्स को वैक्टर के रूप में दर्शाया जाता है जिसमें पहला तत्व टैग नाम का प्रतिनिधित्व करता है और बाकी टैग का शरीर होता है। "<h2>A header</h2>"बन जाता है [:h2 "A Header"]। एक टैग के गुण एक वैकल्पिक मानचित्र में हैं। "<a href='/login'>Log In Page</a>"बन जाता है [:a {:href "/login"} "Log In Page"]। Html उत्पन्न करने के लिए टेम्पलेट का उपयोग करके एक छोटा सा उदाहरण दिया गया है।

(defn layout [title & body]
  (html
    [:head [:title title]]
    [:body [:h1.header title] body])) 

(defn say-hello [name]
  (layout "Welcome Page" [:h3 (str "Hello " name)]))

(defn hiccup-routes
  (GET "/user/:name" [name] (say-hello name)))

यहाँ कुछ दस्तावेज के किसी न किसी मसौदे का लिंक दिया गया है जो वर्तमान में कंपोजर के लेखक द्वारा लिखा जा रहा है जो आपको उपयोगी लग सकता है: कम्पोज्योर डॉक्टर


48

"नोयर" ( http://www.webnoir.org/ ) भी है, जो कि एक नया क्लोजर वेब फ्रेमवर्क है (इसलिए नए डॉक्स अभी तक नहीं हैं)। Django / रेल से आ रहा है, मैं सरल, सीधा वाक्यविन्यास खोदना और यह बहुत दुबला है।


Webnoir वास्तव में वास्तव में उपयोगी है! इसके साथ आरंभ करना बहुत आसान है - आप इसे वास्तव में थोड़ा विकसित कर सकते हैं जैसे कि एक php को विकसित करने के लिए लगता है - बस एक सर्वर शुरू करें (इस समय लेनिंगन के साथ), अपनी फ़ाइलों को संपादित करें और अपने ब्राउज़र को पुनः लोड करके देखें कि आपको क्या मिला।
claj

चूंकि @elithrar ने उत्तर दिया है, नोयर के पास अब डॉक्स उपलब्ध हैं: webnoir.org/docs
Alistair Collins

18
सिर्फ रिकॉर्ड के लिए, ऐसा लगता है कि नोइर को पदावनत कर दिया गया है और अब इसे बनाए नहीं रखा गया है ...
SolarBear


20

मेरी वर्तमान वेब-लाइब्रेरी अब यादा है

यदि आप अभी शुरू कर रहे हैं, तो परिचयात्मक सर्वर है Compojure। मैं इसे apacheक्लोजर दुनिया में वेब सर्वर के रूप में देखता हूं (जिस स्थिति में येड / एलेफ नगनेक्स होगा)। आप Luminusएक टेम्पलेट के रूप में उपयोग कर सकते हैं । इसके वेरिएंट हैं, जैसेcompojure-api

मैंने कहां की कोशिश की Pedestalऔर इससे विश्व स्तर पर संतुष्ट था। मैं इसे मास्टर करने का दावा नहीं करता हूं, लेकिन इसमें एक सुखद वाक्यविन्यास है, बहुत सामंजस्यपूर्ण लगता है, और ऐसा लगता है कि इसमें बहुत अच्छा प्रदर्शन है। इसके द्वारा भी समर्थित हैCognitect (क्लीजुर / डाटोमिक कंपनी जहां रिच हिकी काम करती है) ।

मैं Alephएक दिलचस्प अमूर्तता को प्रस्तुत करने के लिए पाया गया, और अंतर्निहित बैकप्रेशर दिलचस्प लगता है। मुझे अभी इसके साथ खेलना है, लेकिन यह निश्चित रूप से मेरी सूची में है।

विभिन्न वेब सर्वरों के साथ थोड़ा खेलने के बाद, यहाँ मेरी त्वरित प्रो / विपक्ष सूची है:

संक्षिप्त उत्तर: जल्दी से शुरू करने के लिए ल्यूमिनस पर एक नज़र डालें , हो सकता है कि कुछ और आगे बढ़ें क्योंकि आपकी ज़रूरतें विकसित होती हैं (यादा शायद)।

Compojure

  • पेशेवरों (1):

    • आसान, बहुत सारे टेम्प्लेट / उदाहरण (उदा। चमकदार)
  • विपक्ष (2):

    • प्रदर्शन नहीं (अनुरोध के अनुसार एक धागा), उम्मीद है कि प्रदर्शन रेल की तुलना में थोड़ा बेहतर होगा
    • सरल नहीं है, मिडलवेयर मॉडल में असुविधाएं हैं

कुरसी

  • पेशेवरों (3):

    • इंटरसेप्टर मॉडल, मार्गों के सबसेट पर इंटरसेप्टर्स जोड़ने के लिए सुखद सिंटैक्स
    • परफ़ॉर्मर राउटर
    • कुछ भी पूछे बिना, बॉक्स से बाहर पारदर्शी रूप से json / transit / मल्टीपर्ट रूपों का समर्थन करता है। बहुत ही शांत !
  • विपक्ष (4):

    • कोई websocket समर्थन (अभी तक), core.async चैनल लौटाना अच्छा नहीं होगा
    • अगर स्टुअर्ट सिएरा के घटक में डाल दिया जाए तो थोड़ा धीमा हो जाता है (मुझे लगता है कि आपको रीलोड इंटरसेप्टर का उपयोग करना चाहिए)
    • Async इंटरसेप्टर के लिए कोई परीक्षण सुविधा नहीं
    • खरीदने (में) की आवश्यकता है

Aleph

प्रो (3):

  • performant
  • ऊपर का दवाब
  • वेबसोकेट / SSE समर्थन जब कई गुना धारा लौटाता है

विपक्ष (1):

  • निम्न स्तर, इसे स्वयं शैली (यानी। यह सिर्फ आपको अपने हैंडलर को कुछ करने का एक तरीका देता है। कोई राउटर, कोई कुछ नहीं)। वास्तव में एक विपक्ष नहीं है, बस इसके बारे में पता होना चाहिए।

बेकार

प्रो (3):

  • अलेफ पर बनाया गया है
  • सामग्री नकारात्मकता
  • स्वैगर एकीकरण
  • बीड़ी काफी ठीक है (हालांकि मुझे पेडल राउटर सिंटैक्स बेहतर लगता है)

विपक्ष (1):

  • प्रलेखन (हालांकि नगनेक्स-क्लोजर जितना बुरा नहीं है, जल्दी से सुधार)।

HttpKit

प्रो (2):

  • क्लोजर में लिखा! (और जावा ...)
  • प्रदर्शन अच्छा लग रहा है (600K समवर्ती कनेक्शन पोस्ट देखें)

विपक्ष (2):

  • कोई कोर सपोर्ट नहीं
  • कीड़े? इसके अलावा, हाल ही में बहुत कुछ नहीं हुआ

Nginx-Clojure

नोट: मैं इसके साथ नहीं खेला, मुख्य रूप से प्रलेखन की कमी के कारण। हालांकि यह दिलचस्प लग रहा है, और बहुत अच्छा है।

पेशेवरों (2):

  • Nginx (प्रदर्शनकर्ता, ऑफलोड ssl, श्रमिकों को पुनः आरंभ करें ...)
  • क्या यह मॉडल शून्य-डाउनटाइम अपडेट की अनुमति दे सकता है? वह तो बहुत ही लाजवाब होगा !

विपक्ष (1):

  • प्रलेखन (सुधार)। इसके अलावा, मैं एक nginx config फ़ाइल में एम्बेडेड तार में प्रोग्राम नहीं करना चाहता अगर वह ऐसा करने का एकमात्र तरीका है।
  • शायद पहले की तैनाती को थोड़ा जटिल करता है (?)

Immutant

नोट: मैंने इसके साथ नहीं खेला है।

पेशेवरों:

  • एकीकृत (कैशिंग, मैसेजिंग, शेड्यूलिंग, वाइल्डफ़्लाई तैनाती)

विपक्ष:

  • कोई http क्लाइंट नहीं है

Catacumba

नोट: मैंने इसके साथ नहीं खेला है, हालांकि प्रलेखन उत्कृष्ट दिखता है। मैं शायद अगले प्रयास करने जा रहा हूँ। ऐसे उदाहरण चैट प्रोजेक्ट हैं जो दिलचस्प दिखते हैं, प्रोटोकॉल के उनके भारी उपयोग ने मुझे पहली बार नौसिखिए क्लोर्ज देव के रूप में बंद कर दिया।

पेशेवरों (6):

  • प्रलेखन! सभी फंकूल परियोजनाओं की तरह, डॉक पढ़ने के लिए बहुत सुखद है।
  • पेडस्टल-जैसे रूटिंग सिंटैक्स
  • परफॉर्मर होना चाहिए (रैटपैक के ऊपर)
  • ऊपर का दवाब
  • websockets, sse, cors, security, ssl ...
  • खुदाई करने के लिए अद्वितीय विशेषताएं: डाक

विपक्ष (2):

  • पूरी तरह से सुनिश्चित नहीं है कि ct / मार्गों सिंटैक्स कितना सुखद है, और रिंग की युक्ति को टटोलने के बारे में (async कहानी के लिए माना जाता है, लेकिन मुझे लगा कि पैदल चलने वालों ने तय किया है)
  • सुनिश्चित नहीं है कि कोई स्वैगर आदि को कैसे एकीकृत करेगा।
  • जब मैंने इसकी कोशिश की, तो मैं इसे सीधे काम करने में सक्षम नहीं था

नोट : अगर कच्चे प्रदर्शन में यह सब मायने रखता है, तो क्लीजुर वेब सर्वर का एक बेंचमार्क उपलब्ध है।


महान तुलना। यकीन नहीं है कि कैसे nginx रूपक हालांकि काम करता है :)
matanster

1
@matanster मुझे बहुत सारे संगठनों के लिए डिफ़ॉल्ट गो-टू सर्वर के रूप में अपाचे दिखाई देता है। सरल, कई के लिए काम करता है। लेकिन यह नगनेक्स से भी पुराना है, और एक अलग आंतरिक मॉडल का उपयोग करता है। कॉम्पोज्योर सिंक्रोनस है (जो बदल सकता है) जबकि यादा एसिंक्रोनस है। याडा का एक अन्य लाभ जिसका मैंने उल्लेख नहीं किया है कि सब कुछ डेटा है, इसलिए मैक्रोज़ की तरह कंपोज़र में तुलना करना / बदलना / निरीक्षण करना / उत्पन्न करना बहुत आसान है।
nha

14

इन दिनों पेडस्टल देखने लायक एक ढांचा है। यह एक सर्वर-साइड फ्रेमवर्क है जो रिंग के शीर्ष पर बनता है , लेकिन उस विशेष अनुरोध को रोकने और फिर से शुरू करने में सक्षम होने से प्रारंभिक धागे से आने वाले अनुरोध को भी मुक्त करता है (अन्यथा एक धीमी गति से अनुरोध वास्तव में उस सर्वर को ब्लॉक कर देता है)। शायद एक जावाबीन की तरह।

अन्य ठंडी रूपरेखा हॉप्लोन हैं। और डेविड नोलेन के ओम (प्रतिक्रिया पर आधारित)


11

Webjure , Clojure के लिए एक वेब प्रोग्रामिंग ढांचा।

विशेषताएं: डिस्पैच सर्वलेट क्लोजर फ़ंक्शन को कॉल करता है। गतिशील HTML पीढ़ी। SQL क्वेरी इंटरफ़ेस (JDBC के माध्यम से)।

यह जवाब Webjure जानकारी के लिए एक प्लेसहोल्डर के रूप में है।


3
मुझे यकीन नहीं है कि यह एक अच्छा उदाहरण है। जबकि कोडबेस उथला (अच्छा) लगता है, जावा में पर्याप्त लिखा गया है कि यह निशान से चूक जाता है। मुझे शुद्ध क्लोजर ढांचे की उम्मीद होगी।
रिचर्ड

8

एक छोटे से ब्लॉगिंग अनुप्रयोग का निर्माण करने के लिए मैं क्या करता है कॉम्पोज्योर। यह सिनात्रा पर आधारित है, जो रूबी के लिए एक न्यूनतम, हल्के वजन वाला वेब ढांचा है। मैंने ज्यादातर बस रूटिंग का इस्तेमाल किया, जो कि सिनात्रा की तरह है। ऐसा लग रहा है:

(GET "/post/:id/:slug"
  (some-function-that-returns-html :id :slug))

कोई ORM या टेम्प्लेटिंग लाइब्रेरी नहीं है, लेकिन इसमें फ़ंक्शन हैं जो वैक्टर को HTML में बदलते हैं।


5

आप इन रूपरेखाओं को भी देख सकते हैं ( डिस्क्लोजर / प्रोजेक्ट्स से लिया गया है ):

स्टैक ओवरफ्लो पर एक और भी संबंधित प्रश्न है: परिपक्व क्लोजर वेब फ्रेमवर्क?


1
ट्विस्टर को गो भाषा में लिखा गया है, क्लोजर को नहीं।
हिप्ट्रैकर

3

डिस्क्लेमर: मैं लेखक हूं।

मैंने एक लेनिंगन टेम्पलेट डाला, जो ल्यूमिनसवेब और चेस्टनट टेम्पलेट्स को जोड़ती है। तो आपको कुछ ऐसा मिलता है जिससे आप फ्रंट और बैकएंड के लिए क्लोजर कोड के साथ क्लोजर कोड बना सकते हैं।
इसके अतिरिक्त यह उपयोगकर्ता प्रबंधन और कुछ सरल CRUD पीढ़ी और कुछ और छोटे से छोटे अच्छे प्रदान करता है: https://github.com/sveri/closp


3

मैं डक्ट के लिए अपने दो सेंट में फेंक दूंगा , @weavejester से भी , Compojure और अंगूठी के मेंटेनर।

इसके मूल में, यह एक छत के नीचे घटक और रिंग राउटर लाता है। कारण मैं डक्ट का उपयोग क्यों करता हूं:

  • उत्कृष्ट दार्शनिक आधार: यह आपको अपने ऐप को छोटे घटकों की एक श्रृंखला के रूप में बनाने के लिए प्रोत्साहित करता है, और यह समझदार चूक प्रदान करते हुए कुछ राय रखने के बीच एक अच्छा संतुलन बनाता है।
  • स्थिर पथ: मैं खुद के लिए बोलता हूं, लेकिन पिछले कुछ वर्षों में मैंने महसूस किया है कि क्लजुरे समुदाय ने एक के बाद एक कम से कम विश्वसनीय वेब फ्रेमवर्क प्रस्तुत किए हैं। एक जोड़ी ने बहुत अधिक प्रयोगात्मक महसूस किया (ओम और क्लाइंट-साइड पेडस्टल के साथ मेरा अनुभव) "चीजों को प्राप्त करने" के लिए (ऐसा नहीं है कि वे सड़क से बेहतर साबित नहीं होंगे)। दूसरी ओर, मुझे ऐसा लग रहा है कि @weavejester ने डक्ट की उसी स्थिरता और माप को आगे लाया है जो उन्होंने कॉम्पोज्योर और रिंग में किया था, जो समुदाय में शानदार रूप से पैदा हुए हैं।
  • यह सुपर लाइटवेट है, और मेरे घटकों के रास्ते से बाहर है।

प्रमुख विशेषताएं:

  • "समापन बिंदु" द्वारा मार्गों को व्यवस्थित करता है, छोटे घटक जिन्हें आप मिनी वेब सर्वर के रूप में सोच सकते हैं (या, आपके HTTP मार्गों के छोटे क्रॉस सेक्शन)।
  • रीलोडेड वर्कफ़्लो के लिए आउट-ऑफ-द-बॉक्स समर्थन ।
  • रिंग और कॉम्पोज्योर के साथ पूर्ण एकीकरण।
  • विकास और उत्पादन विन्यास (कुछ मैंने स्पष्ट रूप से कहीं और गायब पाया है)।
  • उदाहरण के साथ अच्छा प्रलेखन।

नोट: यह बिना कहे चला जाता है, लेकिन वेब विकास के नवागंतुकों के लाभ के लिए, जैसे कि अधिकांश क्लॉजुरेई चीजों के लिए डक्ट को भाषा की एक ठोस समझ की आवश्यकता होती है। मैं भी पहले घटक के बारे में पढ़ने की सलाह देता हूं।

एक और व्यक्तिगत नोट पर, मैं पिछले एक साल से कई उत्पादन अनुप्रयोगों में डक्ट का उपयोग कर रहा हूं और इससे बहुत खुश हूं।



2

एक और दिलचस्प वेबसर्वर है Http-kit । इसका प्रदर्शन अच्छा है और यह रिंग कंप्लेंट है, और इसके साथ ही इसके लिए WebSockets का समर्थन है। यह ज्यादातर क्लोजर में बनाया जाता है, और जेट्टी / टॉम्कट में कुछ अजीब चीजों का अभाव है।

इसके साथ टिंकर करना आसान है।



1

Arachne एक नवागंतुक वेब फ्रेमवर्क है। साइट का विवरण उद्धृत करते हुए:

अरचन क्लोजर के लिए एक पूर्ण, अत्यधिक मॉड्यूलर वेब विकास ढांचा है। यह आसानी, सादगी और एक ठोस, स्केलेबल डिज़ाइन पर जोर देता है।

इसमें किकस्टार्टर अभियान है जो रेल के समान "आरंभ" अनुभव प्रदान करने का दावा करता है। यह एक कॉग्निजेट द्वारा विकसित किया गया है।

यहाँ इस बारे में लुमिनस (योगथोस) के लेखक के साथ एक अच्छी चर्चा है।


1

मैं थोड़ी देर के लिए उत्पादन में लिबरेटर का सफलतापूर्वक उपयोग कर रहा हूं । यदि आप केवल नंगे हड्डियों को चाहते हैं तो यह एक शानदार ढांचा है जैसे यदि आप एक RESTful वेब सेवा या कुछ इसी तरह का निर्माण कर रहे हैं। यह अनिवार्य रूप से रिंग और कंपोजर के लिए एक आवरण है और आने वाले अनुरोधों को मान्य करते समय एक निर्णय ग्राफ प्रदान करता है। यह अन्य अधिक भारी वेब फ्रेमवर्क की तुलना में बहुत तेज़ है। यदि आप कहीं तेजी से शुरू करना चाहते हैं और धीरे-धीरे निर्माण करना चाहते हैं तो लिबरेटर एक बढ़िया विकल्प है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.