ক্লোজুরে আপনি কীভাবে একটি ওয়েব অ্যাপ্লিকেশন তৈরি করবেন? [বন্ধ]


216

আমি মনে করি জাভা নিয়ে প্রতিদিন কাজ করা বিশাল সংখ্যক প্রোগ্রামারদের কাছে এটি একটি আশ্চর্যজনক প্রশ্ন। আমি না। আমি জাভা-ভাষাটি জানি, কারণ আমি জাভা প্রকল্পগুলিতে কাজ করেছি, তবে জাভা-দ্য ওয়ার্ল্ড নয়। আমি জাভা স্ক্র্যাচ থেকে কোনও ওয়েব অ্যাপ তৈরি করি নি। পাইথন, রুবি দিয়ে যদি এটি করতে হয় তবে আমি জানি কোথায় যেতে হবে (জাঙ্গো বা রেইলস), তবে আমি যদি ক্লোজারে একটি ওয়েব অ্যাপ্লিকেশন করতে চাই, তবে এটি জাভা বিশ্বে বাস করতে বাধ্য নয়, কারণ আমি ভাষার মতো এবং আমি এটি ব্যবহার করে দেখতে চাই, আমার কোন লাইব্রেরি এবং ফ্রেমওয়ার্ক ব্যবহার করা উচিত?


1
আমি ভাবছিলাম যে আপনি জাভা নেটিভ এপিআই বা ক্লোজার নেটিভ ব্যবহার করতে চান?
অ্যান্ডি টার্নার

অ্যান্ডি: আমি সত্যিই নিশ্চিত নই, যেহেতু আমি জাভা বিশ্ব সম্পর্কে এই বিষয়ে খুব কম জানি (তবে আমি জাভা, ভাষাটি ব্যবহার করেছি কিছুক্ষণ আগে থেকেই কাজের ক্ষেত্রে)।
pupeno

আমি মনে করি এই প্রশ্নটি ক্লোজার ওয়েব ফ্রেমওয়ার্কের একটি তালিকা দিয়ে শেষ হয়েছে, যার একটি একটি উত্তর এবং যে কেউ তাদের পছন্দের ভোট দিতে পারে it আমি মনে করি মেরিডেডস অবশ্যই কমপোজারের উত্তর। আমি ওয়েবজুরের জন্য একটি যুক্ত করব এবং একটি তুলনা করা ভাল লাগবে।
pupeno

Pupeno! আমি "ক্লোজার দিয়ে ওয়েব অ্যাপ্লিকেশনগুলি" অনুসন্ধান করতে এখানে পৌঁছেছি। এই পৃষ্ঠাটি গুগলে প্রথম ফলাফল ছিল।
সেবাস্তিয়ান গ্রিগনলি

2
সংশ্লিষ্ট প্রশ্ন মুখে পড়তে দেখ stackoverflow.com/questions/3325033/...
পেত্র Gladkikh

উত্তর:


104

এখনও অবধি সর্বোত্তম ক্লোজার ওয়েব ফ্রেমওয়ার্কটি আমার মুখোমুখি হয়েছে তা হ'ল সংমিশ্রণ: http://github.com/weavejester/compojure/tree/master

এটি ছোট তবে শক্তিশালী এবং সুন্দর মার্জিত সিনট্যাক্স রয়েছে। (এটি জেটি হুডের নীচে ব্যবহার করে, তবে এটি না চাইলে সার্ভলেট এপিআই আপনার কাছ থেকে লুকিয়ে রাখে, যা প্রায়শই হবে না)। সেই URL এ README দেখুন, তারপরে একটি স্ন্যাপশট ডাউনলোড করুন এবং খেলতে শুরু করুন।


16
রিচার্ডের মন্তব্য কি এই উত্তরের জন্য ছিল? আমি এটা বুঝতে পারি না।
জন ক্রোমারটি

26
@ রিচার্ড আপনার যুক্তি বেশ নির্বোধ। হ্যাঁ, আপনি যদি জাভা লাইব্রেরিগুলি ব্যবহার করার সিদ্ধান্ত নেন, আপনি অনেক ক্ষেত্রে কার্যকরী হয়ে যাচ্ছেন। তবে এই লাইব্রেরির মূল বিষয়টি যাতে আপনাকে আর কখনও এটি করতে না হয় । উদাহরণস্বরূপ, রিংটি সার্লেটগুলির চারপাশে একটি ক্লোজুরি মোড়ক যাতে আপনাকে সরাসরি সার্লেটগুলি ব্যবহার করতে হবে না। আপনি কি প্রস্তাব দিতে পারেন যে ক্লোজুরে থেকে পুরোপুরি ভাল জাভা সরঞ্জামগুলি ব্যবহার করার জন্য সুন্দর করার পরিবর্তে আমরা স্ক্র্যাচ থেকে ওয়েব ডেভলপমেন্ট হুইলটিকে পুনরায় উদ্ভাবন করব? তাতে যুক্তি কোথায়। তদুপরি, এই লাইব্রেরিগুলি কীভাবে খারাপ জিনিস ব্যবহারের বিকল্প রয়েছে? ...
রায়্ন

15
@ রিচার্ড আপনার সম্পূর্ণ যুক্তি থেকেই বোঝা যাচ্ছে যে অ-কার্যকরী নন-ক্লোজার কোডটি অন্তর্নিহিতভাবে এতটাই খারাপ যে এমনকি এটি একটি লাইব্রেরির নীচে লুকিয়ে থাকা উপস্থিতিও একটি দূষন। আমি এই যুক্তি বুঝতে পারি না। প্রচুর জাভা লাইব্রেরিগুলি কোডের কার্যকর এবং শক্তিশালী টুকরো। যখন আমরা কেবল আমাদের নিজস্ব মোড়ক লাইব্রেরি সরবরাহ করতে পারি যা ক্লোজিউর থেকে তাদের মার্জিত এবং কার্যকরীভাবে ব্যবহার করা সম্ভব করে তোলে কেন কেন তাদের গ্রাউন্ড থেকে পুনর্লিখন করবেন?
রায়নে

10
@ রিচার্ড, খাঁটি ক্লোজার HTTP সার্ভার বানাতে নির্দ্বিধায়
gtrak

5
লিস্প / ক্লোজার শর্তে, কোনও ফাংশনের কোনও পার্শ্ব প্রতিক্রিয়া নেই। ( gigamonkeys.com/book/… দেখুন )। তবে জলের কলকল শব্দ (ভূমি মধ্যে সরু আউট হিসাবে landoflisp.com/trade_func.png ), একটি বিশুদ্ধরূপে কার্মিক প্রোগ্রাম সাধারণত খুব দরকারী কারণ পার্শ্ব প্রতিক্রিয়া প্রয়োজনীয় আসলে লেখার ডাটাবেসের রেকর্ড, ফাইল ডাউনলোড, একটি পোস্ট মত, কিছু করার আছে REST সার্ভার, চিত্রগুলি তৈরি করুন ... ইত্যাদি
lfalin

179

কম্পিউটার অ্যাপ্লিকেশন বিকাশের জন্য কমপেজ আর সম্পূর্ণ কাঠামো নয়। 0.4 প্রকাশের পর থেকে, কম্পোজারটি কয়েকটি প্রকল্পে বিভক্ত হয়ে গেছে।

রিং এইচটিটিপি অনুরোধ এবং প্রতিক্রিয়া প্রক্রিয়া দূরে রেখে ফাউন্ডেশন সরবরাহ করে। রিং আগত অনুরোধটিকে বিশ্লেষণ করবে এবং অনুরোধের সমস্ত অংশ যেমন ইউরি, সার্ভার-নাম এবং অনুরোধ-পদ্ধতি সম্বলিত একটি মানচিত্র তৈরি করবে। অ্যাপ্লিকেশন তারপরে অনুরোধটি পরিচালনা করবে এবং অনুরোধের ভিত্তিতে একটি প্রতিক্রিয়া উত্পন্ন করবে। প্রতিক্রিয়াটিকে নিম্নোক্ত কীগুলি সহ একটি মানচিত্র হিসাবে উপস্থাপিত করা হয়: স্থিতি, শিরোনাম এবং বডি। সুতরাং একটি সাধারণ অ্যাপ্লিকেশন এর মত দেখতে হবে:

(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)}))

এক্ষেত্রে {ইউরি: ইউরি} অংশটি অনুরোধের মানচিত্রে ইউরি কীটি অ্যাক্সেস করে এবং ইউরিটিকে সেই মানটিতে সেট করে।

শেষ উপাদান হিচাপ যা এইচটিএমএল উত্পাদন সহজ করে তোলে। বিভিন্ন এইচটিএমএল ট্যাগগুলি প্রথম উপাদানটির সাথে ট্যাগের নাম উপস্থাপন করে এবং বাকিগুলি ট্যাগের মূল অংশ হিসাবে ভেক্টর হিসাবে উপস্থাপিত হয়। "<h2>A header</h2>"হয়ে [:h2 "A Header"]। একটি ট্যাগের বৈশিষ্ট্যগুলি একটি alচ্ছিক মানচিত্রে রয়েছে। "<a href='/login'>Log In Page</a>"হয়ে [:a {:href "/login"} "Log In Page"]। এইচটিএমএল উত্পন্ন করতে একটি টেম্পলেট ব্যবহার করে এখানে একটি ছোট উদাহরণ।

(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/ ) রয়েছে, যা একটি নতুন ক্লোজার ওয়েব ফ্রেমওয়ার্ক (এত নতুন ডক্স এখনও নেই)। জ্যাঙ্গো / রেলগুলি থেকে এসে আমি সরল, সোজাসুজি বাক্য গঠনটি খনন করি এবং এটি বেশ পাতলা।


ওয়েবনোয়ার আসলেই দরকারী! এটি দিয়ে শুরু করা খুব সহজ - আপনি এটি পিএইচপি বিকাশের মতো দেখতে কিছুটা বিকাশ করতে পারেন - কেবল একটি সার্ভার শুরু করুন (এবার লিনেঞ্জেন দিয়ে) আপনার ফাইলগুলি সম্পাদনা করুন এবং আপনার ব্রাউজারটি পুনরায় লোড করুন যা আপনি পেয়েছেন তা দেখতে।
ক্লজ

যেহেতু @ এলিথার উত্তর দিয়েছেন, নোয়ারের এখন ডকগুলি
অ্যালিস্টায়ার কলিন্স

18
শুধু রেকর্ডের জন্য, মনে হচ্ছে
নোয়ারকে অবহেলা করা


20

আমার বর্তমান যান থেকে ওয়েব গ্রন্থাগার এখন জানা কথা

আপনি যদি এখনই শুরু করছেন, সূচনা সার্ভারটি Compojure। আমি এটিকে apacheক্লোজুরে বিশ্বে ওয়েব সার্ভার হিসাবে দেখছি (যার ক্ষেত্রে ইয়াদা / আলেফ এনগিনেক্স হবে)। আপনি Luminusএকটি টেম্পলেট হিসাবে ব্যবহার করতে পারেন । এর বিভিন্ন রূপ রয়েছে compojure-api

আমি চেষ্টা করেছিলাম Pedestalএবং এটিতে বিশ্বব্যাপী সন্তুষ্ট। আমি এটিকে আয়ত্ত করার দাবি করি না, তবে এটির মনোরম বাক্য গঠন রয়েছে, খুব সংগত মনে হয় এবং মনে হয় এটির দুর্দান্ত অভিনয় রয়েছে। এটির Cognitectসমর্থনও রয়েছে (ক্লজিউর / ডেটামিক সংস্থা যেখানে রিচ হিকি কাজ করে)।

আমি Alephএকটি আকর্ষণীয় বিমূর্ততা উপস্থাপন করতে পেরেছি , এবং অন্তর্নির্মিত ব্যাকপ্রেসারটি আকর্ষণীয় বলে মনে হচ্ছে। আমার এখনও এটি নিয়ে খেলতে হবে, তবে এটি অবশ্যই আমার তালিকায় রয়েছে।

বিভিন্ন ওয়েব সার্ভারের সাথে কিছুটা খেলার পরে, এখানে আমার দ্রুত প্রো / কনস তালিকা রয়েছে:

সংক্ষিপ্ত উত্তর: দ্রুত শুরু করার জন্য লুমিনাসের দিকে একবার নজর দিন , আপনার প্রয়োজনগুলি বিকশিত হওয়ার সাথে সাথে অন্য কোনও দিকে যেতে পারেন (সম্ভবত ইয়াডা)।

Compojure

  • পেশাদাররা (1):

    • সহজ, প্রচুর টেমপ্লেট / উদাহরণ (উদাঃ আলোকিত)
  • কনস (2):

    • পারফরম্যান্ট নয় (অনুরোধ অনুযায়ী একটি থ্রেড), রেলের চেয়ে কিছুটা ভাল পারফরম্যান্স আশা করুন
    • সহজ নয়, মিডলওয়্যার মডেলের অসুবিধাগুলি রয়েছে

স্তম্ভমূল

  • পেশাদাররা (3):

    • ইন্টারসেপ্টর মডেল, রুটের একটি উপসেটে ইন্টারসেপ্টর যুক্ত করতে মনোরম সিনট্যাক্স
    • পারফরম্যান্ট রাউটার
    • কিছু জিজ্ঞাসা না করে, স্বচ্ছভাবে বাক্সের বাইরে জেসন / ট্রানজিট / মাল্টিপার্ট ফর্মগুলি সমর্থন করে। খুব ঠান্ডা !
  • কনস (4):

    • কোন ওয়েবসকেট সমর্থন নেই (এখনও), কোর.অনেক চ্যানেলগুলি ফিরানো ভাল হবে
    • স্টুয়ার্ট সিয়েরার উপাদানটিতে রাখলে পুনরায় লোড করতে কিছুটা ধীর (আমার মনে হয় আপনি পুনরায় লোড ইন্টারসেপ্টর ব্যবহার করার কথা ভাবেন)
    • অ্যাসিঙ্ক ইন্টারসেপ্টরগুলির জন্য কোনও পরীক্ষার সুবিধা নেই
    • কেনার প্রয়োজন (?)

aleph

প্রো (3):

  • Performant
  • ফিরতি চাপ
  • বহুবিধ স্ট্রিম ফিরিয়ে দেওয়ার সময় ওয়েবসাইটসকেট / এসএসই সমর্থন

কনস (1):

  • নিম্ন স্তরের, এটি নিজে স্টাইল করুন (যেমন এটি আপনাকে কেবল আপনার হ্যান্ডলারদের কিছু করার জন্য একটি উপায় দেয় No কোনও রাউটার নেই, কিছুই নেই)। আসলেই কোন কনস নয়, এটি সম্পর্কে সচেতন থাকুন।

পাঠ্য

প্রো (3):

  • আলেফের উপর নির্মিত
  • বিষয়বস্তু অবহেলা
  • swagger ইন্টিগ্রেশন
  • বিড়ি বেশ ঠিক আছে (যদিও আমি পেডেস্টাল রাউটার সিনট্যাক্স আরও ভাল পছন্দ করি)

কনস (1):

  • ডকুমেন্টেশন (যদিও এনগিনেক্স-ক্লোজারের মতো মন্দ নয়, দ্রুত উন্নতি হচ্ছে)

HttpKit

প্রো (2):

  • ক্লোজারে লেখা! (এবং জাভা ...)
  • পারফরম্যান্সটি দুর্দান্ত দেখাচ্ছে (600 কে সমবর্তী সংযোগ পোস্ট দেখুন)

কনস (2):

  • কোনও সিওআরএস সমর্থন নেই
  • বাগ? এছাড়াও, সাম্প্রতিক কমিটগুলি খুব বেশি নয়

Nginx-Clojure

দ্রষ্টব্য: আমি এটি নিয়ে খেলিনি, মূলত নথিপত্রের অভাবে। এটি আকর্ষণীয় যদিও এবং খুব অভিনয়।

পেশাদাররা (2):

  • এনগিনেক্স (পারফরম্যান্ট, অফলোড এসএসএল, কর্মীদের পুনরায় আরম্ভ করুন ...)
  • এই মডেলটি কি শূন্য-ডাউনটাইম আপডেটের অনুমতি দিতে পারে? এতো ভয়ঙ্কর হবে!

কনস (1):

  • ডকুমেন্টেশন (উন্নতি) এছাড়াও, আমি যদি কোনও এনজিঙ্ক্স কনফিগারেশন ফাইলে এম্বেড করা স্ট্রিংগুলিতে প্রোগ্রাম করতে চাই না তবে এটি করার একমাত্র উপায়।
  • সম্ভবত প্রথম স্থাপনার (?) কিছুটা জটিল করে তোলে

Immutant

দ্রষ্টব্য: আমি এটি নিয়ে খেলিনি।

পেশাদাররা:

  • ইন্টিগ্রেটেড (ক্যাচিং, মেসেজিং, শিডিয়ুলিং, ওয়াইল্ডফ্লাই মোতায়েন)

কনস:

  • কোনও HTTP ক্লায়েন্ট নেই

Catacumba

দ্রষ্টব্য: আমি এটি নিয়ে খেলিনি, যদিও ডকুমেন্টেশনটি দুর্দান্ত দেখায়। আমি সম্ভবত এটি পরবর্তী চেষ্টা করতে যাচ্ছি। চ্যাট প্রকল্পগুলির উদাহরণ রয়েছে যা আকর্ষণীয় দেখায়, তাদের প্রোটোকলগুলির প্রচুর ব্যবহার আমাকে প্রথমে একজন নবজাতক ক্লোজার দেব হিসাবে ফেলে দেয়।

পেশাদাররা (6):

  • ডকুমেন্টেশন! সমস্ত ফানকুল প্রকল্পগুলির মতো, ডকটি পড়ে খুব আনন্দিত।
  • প্যাডস্টাল-জাতীয় রাউটিং সিনট্যাক্স
  • পারফরম্যান্ট হওয়া উচিত (র‌্যাপপ্যাকের শীর্ষে)
  • ফিরতি চাপ
  • ওয়েবসকেটস, এসএসই, কর্স, সুরক্ষা, এসএসএল ...
  • খননের অনন্য বৈশিষ্ট্য: ডাক

কনস (2):

  • সিটি / রুটগুলির সিনট্যাক্সটি কতটা মনোরম, এবং রিং স্পিকটি ডাইচিং সম্পর্কে সম্পূর্ণভাবে নিশ্চিত নয় (ধারণা করা যায় অ্যাসিঙ্ক গল্পের জন্য, তবে আমি ভেবেছিলাম পাদদেশীয় ছেলেরা এটি স্থির করেছে)
  • কীভাবে কেউ সোয়াগার ইত্যাদি সংহত করবে তা নিশ্চিত নয় Not
  • যখন আমি এটি চেষ্টা করেছিলাম, আমি সরাসরি এটি কাজ করতে সক্ষম হয়ে উঠিনি

দ্রষ্টব্য : ক্লোজার ওয়েব সার্ভারগুলির একটি বেঞ্চমার্ক উপলব্ধ রয়েছে, যদি কাঁচা পারফরম্যান্সই গুরুত্বপূর্ণ।


দুর্দান্ত তুলনা।
এনগিনেক্স

1
@ ম্যান্টান্সার আমি অনেক সংস্থার জন্য অ্যাপাচি ডিফল্ট গো-টু সার্ভার হিসাবে দেখি। সহজ, অনেকের জন্য কাজ করে। তবে এটি এনজিনেক্সের চেয়েও পুরানো এবং একটি পৃথক অভ্যন্তরীণ মডেল ব্যবহার করে। ইয়াডা অবিচ্ছিন্ন অবস্থায় কমপোজারটি সিঙ্ক্রোনাস (এটি পরিবর্তিত হতে পারে)। ইয়াদার আর একটি সুবিধা আমি উল্লেখ করিনি যে হ'ল সবকিছুই ডেটা, তাই কমপোজোরের মতো ম্যাক্রোর তুলনায় কমপোজ / ট্রান্সফর্ম / ইন্সপেক্ট / জেনারেট করা অনেক সহজ।
এনএইচ

14

আজকাল পেডেস্টাল একটি চেহারা মূল্যবান ফ্রেমওয়ার্ক। এটি একটি সার্ভার-সাইড ফ্রেমওয়ার্ক যা রিংয়ের শীর্ষে তৈরি করে , তবে প্রাথমিক থ্রেড থেকে আগত অনুরোধটিকে সেই নির্দিষ্ট অনুরোধ বিরতি দিয়ে পুনরায় শুরু করতে সক্ষম করে (অন্যথায় একটি ধীর অনুরোধ আসলে সেই সার্ভারথ্রডকে অবরুদ্ধ করে)) জাভাবিনের মতো বাছাই হতে পারে।

অন্যান্য দুর্দান্ত ফ্রেমওয়ার্কগুলি হপলন.আইও এবং ডেভিড নোলেনের ওম (প্রতিক্রিয়া অনুসারে)


11

ওয়েবজুরি , ক্লোজারের জন্য একটি ওয়েব প্রোগ্রামিং ফ্রেমওয়ার্ক।

বৈশিষ্ট্য: প্রেরণ সার্লেটটি ক্লোজার ফাংশনকে কল করে। গতিশীল এইচটিএমএল জেনারেশন। এসকিউএল কোয়েরি ইন্টারফেস (জেডিবিসি মাধ্যমে)।

এই উত্তরটি ওয়েবজারের তথ্যের স্থানধারক হিসাবে বোঝানো হয়েছে।


3
আমি নিশ্চিত নই যে এটিও একটি ভাল উদাহরণ। যদিও কোডবেস অগভীর বলে মনে হয়েছে (ভাল) সেখানে জাভাতে যথেষ্ট লিখিত আছে যা মনে হচ্ছে এটি চিহ্নটি মিস করেছে। আমি একটি খাঁটি ক্লোজার ফ্রেমওয়ার্ক আশা করতাম।
রিচার্ড

8

একটি ক্ষুদ্র ব্লগিং অ্যাপ্লিকেশন তৈরি করতে আমি যা ব্যবহার করেছি তা কমপেজার। এটি সিন্রাটাকে মডেল করা হয়েছে, যা রুবির জন্য একটি সর্বনিম্ন, হালকা ওজনের ওয়েব কাঠামো। আমি বেশিরভাগই কেবল রাউটিংটি ব্যবহার করেছি, যা সিনট্রা'র মতো। এটা দেখতে অনেকটা:

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

এখানে কোনও ওআরএম বা টেম্প্লেটিং লাইব্রেরি নেই তবে এটিতে এমন ফাংশন রয়েছে যা ভেক্টরগুলিকে এইচটিএমএলে পরিণত করে।


5

আপনি এই ফ্রেমওয়ার্কগুলিও দেখতে পারেন ( প্রকাশ / প্রকল্পগুলি থেকে নেওয়া ):

স্ট্যাক ওভারফ্লোতে আরও একটি সম্পর্কিত প্রশ্ন রয়েছে: পরিপক্ক ক্লোজার ওয়েব ফ্রেমওয়ার্কগুলি?


1
টুইস্টার ক্লোজুরে নয়, গো ভাষায় লেখা।
hipertracker

3

দাবি অস্বীকার: আমি লেখক।

আমি একটি লিনিনজেন টেম্পলেট একসাথে রেখেছি যা লুমিনাসওয়েব এবং চেস্টনট টেম্পলেটগুলির সাথে একত্রিত। সুতরাং আপনি এমন কিছু পান যা আপনি ক্লোজার কোড এবং সামনের এবং ব্যাকএন্ডের জন্য ক্লোজার স্ক্রিপ্ট কোড তৈরি করতে পারেন।
অতিরিক্তভাবে এটি ব্যবহারকারীর পরিচালনার পাশাপাশি কিছু সাধারণ সিআরইউডি জেনারেশন এবং আরও কিছু ছোট ছোট মজাদার সরবরাহ করে: https://github.com/sveri/closp


3

আমি আমার দুই সেন্ট মধ্যে নিক্ষেপ করব ডাক্ট থেকেও, @weavejester , Compojure এবং রিং এর রক্ষণাবেক্ষণকারী।

এটা কোর এ, এটি বইয়ের নাম কম্পোনেন্ট এবং এক ছাদের নিচে রিং রাউটার। আমি নালী ব্যবহার করার কারণগুলি:

  • দুর্দান্ত দার্শনিক ভিত্তি: এটি আপনার অ্যাপ্লিকেশনটিকে ছোট ছোট সিরিজের একটি সিরিজ হিসাবে গড়ে তুলতে উত্সাহ দেয় এবং এটি বুদ্ধিমান ডিফল্ট সরবরাহ করার সময় কয়েকটি মতামত রাখার মধ্যে একটি দুর্দান্ত ভারসাম্য রোধ করে।
  • স্থিতিশীল পথ: আমি নিজের পক্ষে কথা বলি, কিন্তু বেশ কয়েক বছর ধরে আমি অনুভব করেছি যে ক্লোজুর সম্প্রদায় একের পর এক বিশ্বাসযোগ্য ওয়েব ফ্রেমওয়ার্ক উপস্থাপন করেছে। একটি দম্পতি খুব সহজেই "জিনিসগুলি সম্পন্ন করার জন্য" ওম এবং ক্লায়েন্ট-সাইড পেডেস্টেলের সাথে আমার অভিজ্ঞতা) অনুভব করেছেন (তারা এমন নয় যে তারা রাস্তায় উন্নততর প্রমাণিত করবেন না)। অন্যদিকে, আমার কাছে মনে হয় @ ওয়েভজেস্টার ডুটে একই স্থায়িত্ব নিয়েছে এবং অগ্রগতি পরিমাপ করেছে যা তিনি কমপোজার এবং রিংয়ের প্রতি করেছিলেন, যা এই সম্প্রদায়ের মধ্যে অত্যন্ত সুন্দরভাবে জন্মগ্রহণ করেছে।
  • এটি সুপার লাইটওয়েট এবং আমার উপাদানগুলির বাইরে।

প্রধান বৈশিষ্ট্য:

  • "এন্ডপয়েন্টস" দ্বারা রুটগুলি সংগঠিত করে, ছোট উপাদানগুলি যা আপনি মিনি ওয়েব সার্ভার হিসাবে ভাবতে পারেন (বা, আপনার HTTP রুটের ছোট ক্রস বিভাগগুলি) sections
  • রিলয়েড ওয়ার্কফ্লোয়ের জন্য বাইরের বাইরে সমর্থন ।
  • রিং এবং কমপোজারের সাথে নিখুঁত একীকরণ।
  • উন্নয়ন এবং উত্পাদন কনফিগারেশন (এমন কিছু যা আমি স্পষ্টভাবে অন্য কোথাও নিখোঁজ পেয়েছি)।
  • উদাহরণ সহ ভাল ডকুমেন্টেশন।

দ্রষ্টব্য: এটি বলার অপেক্ষা রাখে না, তবে ওয়েব বিকাশের আগতদের উপকারের জন্য, বেশিরভাগ ক্লোজুরি জিনিসের মতো ড্যাক্টের কাছে ক্লোজারের একটি গভীর উপলব্ধি প্রয়োজন। আমি প্রথমে কম্পোনেন্ট সম্পর্কে পড়ার পরামর্শ দিই।

অন্য একটি ব্যক্তিগত নোটে, আমি এক বছরেরও বেশি সময় ধরে বেশ কয়েকটি প্রোডাকশন অ্যাপ্লিকেশনগুলিতে ড্যাক্ট ব্যবহার করছি এবং এটিতে আমি অত্যন্ত খুশি।



2

আর একটি আকর্ষণীয় ওয়েবসারভার হ'ল এইচটিপি-কিট । এটির ভাল পারফরম্যান্স রয়েছে এবং এটি আনুগত্যজনক এবং এটি ওয়েবস্কোকেটের পক্ষেও সমর্থন করে। এটি বেশিরভাগ ক্লোজারে তৈরি করা হয় এবং জেটি / টমক্যাটের কিছু অদ্ভুত জিনিসের অভাব রয়েছে।

এর সাথে টিঙ্কার করা সহজ।


2

আপনি যা খুঁজছেন তা সম্ভবত রিফ্রেম এবং ওম।


1

আরাকনে একটি নতুন আগত ওয়েব কাঠামো। সাইটের বর্ণনা উদ্ধৃত:

অ্যারাচনে ক্লোজারের জন্য একটি সম্পূর্ণ, অত্যন্ত মডুলার ওয়েব বিকাশ কাঠামো। এটি স্বাচ্ছন্দ্য, সরলতা এবং একটি শক্ত, স্কেলেবল ডিজাইনের উপর জোর দেয়।

এটিতে একটি কিকস্টার্টার প্রচারাভিযান রয়েছে যা দাবি করেছে যে রেলগুলির মতো একটি "শুরু করা" অভিজ্ঞতা দেবে। এটি একটি কগনিটেক্ট দ্বারা বিকাশিত।

লুমিনাস (যোগথোস) এর লেখকের সাথে এটি সম্পর্কে একটি ভাল আলোচনা এখানে রয়েছে।


1

আমি কিছুক্ষণের জন্য উত্পাদনে সফলভাবে লিবারেটর ব্যবহার করছি । আপনি যদি কেবল খালি হাড়গুলি চান তবে এটি একটি দুর্দান্ত কাঠামো eg এটি মূলত রিং এবং কম্পোজারের জন্য একটি মোড়ক এবং আগত অনুরোধগুলি যাচাই করার সময় সিদ্ধান্ত গ্রাফ সরবরাহ করে। এটি অন্যান্য আরও বিশাল ওয়েব ফ্রেমওয়ার্কের তুলনায় অত্যন্ত দ্রুত। আপনি যদি কোথাও দ্রুত এবং আস্তে আস্তে নির্মাণ করতে চান তবে লিবারেটর একটি দুর্দান্ত পছন্দ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.