অন্যান্য সার্ভার-সাইড ফ্রেমওয়ার্কগুলির থেকে নোড.জেএস কীভাবে আলাদা?


21

আমি লক্ষ্য করেছি যে নোড.জেএস খুব জনপ্রিয় হয়ে উঠেছে এবং আমি এর মধ্যে ছোট ছোট প্রকল্পগুলি করার লোকদের বেশ কয়েকটি উদাহরণ দেখেছি।

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

কী, বিশেষত, নোড.জেএসকে বর্তমান বিকল্পগুলির থেকে পৃথক করে এবং কেন?


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

এটি বাছাই করা ছোটখাটো স্তম্ভ, তবে উদ্ধৃত বাক্যাংশ "নোড.জেএস" গুগল করলে আপনি প্রায় 3 মিলিয়ন হিট পাবেন।
পিটার রোয়েল

@ পিটার, হ্যাঁ, আমি চেষ্টা করেছিলাম, এবং আপনি ঠিক বলেছেন। তবে 3 মিলিয়ন এখনও অনেক বেশি। আপনি এক বছর পরে ফিরে আসতে পারেন, এবং এই সংখ্যা সম্ভবত 10 মিলিয়নে গিয়েছে। :)
সা Saeedদ নেমতি

3
@ মার্ক, অসামান্য সম্পাদনার জন্য ধন্যবাদ এটা এখন আরও পরিষ্কার।
সা Saeedদ নেমতি

উত্তর:


18

দুটি গুরুত্বপূর্ণ বিষয় রয়েছে যা নোড.জেগুলি বিদ্যমান সার্ভার-সাইড ফ্রেমওয়ার্ক, অ্যাসিঙ্ক্রোনাস ইভেন্ট এবং প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসাবে জাভাস্ক্রিপ্টের ব্যবহারের থেকে আলাদা করে তোলে ।

অ্যাসিঙ্ক্রোনাস ইভেন্টস

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

আরও দেখুন ঘটনা চালিত আর্কিটেকচার

জাভাস্ক্রিপ্ট

জাভাস্ক্রিপ্ট হ'ল প্রোগ্রামিং ভাষা যা ওয়েব অ্যাপ্লিকেশনগুলি ক্লায়েন্টে ব্যবহার করে। সার্ভার-সাইডে একই ভাষা ব্যবহার করার অর্থ হ'ল বিকাশকারী তার জাভাস্ক্রিপ্ট জ্ঞানটি ক্লায়েন্ট এবং সার্ভার উভয় ক্ষেত্রেই প্রয়োগ করতে পারেন এবং প্রয়োজন হিসাবে একই ফাংশনগুলি ব্যবহার করতে পারেন।

রায়ান ডাহলের সাথে আমি নোড.জেএস- এর উপস্থাপনা সূচনা প্রস্তাব করব যেখানে তিনি নোড.জেস ইভেন্ট-চালিত আর্কিটেকচারকে আরও বিশদে ব্যাখ্যা করেছেন।


2
এটি এখন পর্যন্ত খুব সহজেই সেরা উত্তর, তবে আমি অ্যাসিনক্রোমাস ইভেন্টগুলিকে প্রথমে রেখেছি, কারণ নোড.জেসকে সার্ভার-সাইড কাঠামো হিসাবে এতটাই আকর্ষণীয় করে তুলেছে। তবুও ভাল কাজ, অ্যাসিঙ্ক্রোনাস আই / ও এবং স্কেলিবিলিটি উল্লেখ করা। এটি এর হৃদয়।
অ্যাডাম ক্রসল্যান্ড

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

3
@ সাeedদ: এএসপি.নেট থ্রেডেড এবং সিঙ্ক্রোনাস, উদাহরণস্বরূপ ডাটাবেস অ্যাক্সেস করার সময়, থ্রেডটি ব্লক করা হয়েছে এবং ডাটাবেস থেকে উত্তরের জন্য অপেক্ষা করছে। এবং অনেক থ্রেড ব্যবহার করার সময় (যেমন প্রতি অনুরোধ হিসাবে এক) প্রচুর মেমরি ব্যবহৃত হয় (প্রতিটি থ্রেডে যথেষ্ট পরিমাণে মেমোরি প্রয়োজন), এটি একটি বাধা হতে পারে। নোড.জেএস বার্তাগুলি প্রেরণ করে এবং ইভেন্টগুলিতে প্রতিক্রিয়া জানায়, তাই এটি থ্রেডটিকে কখনই আটকাবে না (আশা করি)। নোড.জেএস এর সাহায্যে আপনি ক্লায়েন্টের সাথে একইভাবে অজ্যাক্স ( অ্যাসিনক্রোনাস জাভাস্ক্রিপ্ট এবং এক্সএমএল) এবং একই ভাষার সাথে একই প্রোগ্রামিং মডেল ব্যবহার করছেন ।
জোনাস

আপনি এর পিছনে দুর্দান্ত মুক্ত উত্স সম্প্রদায়টি ভুলে গেছেন।
রায়নোস

3
সি # 5 যখন নতুন স্টাফের সাথে ঘুরে বেড়ায় asyncতবে তা পরিবর্তন হতে পারে। সমস্যাটি এমন নয় যে আপনি অন্যান্য ভাষায় স্কেলেবল অ্যাসিঙ্ক্রোনাস কোডটি লিখতে পারবেন না , ভাল ভাষা স্তর সমর্থন ছাড়াই (সঠিকভাবে) করা আরও কঠিন।
ডেভি

6

এটির ভিন্ন কারণ এটি ইভেন্ট-চালিত । এটি সার্ভারকে অত্যন্ত স্কেলযোগ্য করে তোলে।

সংক্ষেপে;

থ্রেড মডেল

  1. ক্লায়েন্ট কিছু জিজ্ঞাসা
  2. সার্ভার বন্ধ হয়ে যায় এবং অনুরোধটি প্রক্রিয়া করে
  3. এটি ক্লায়েন্টকে ফিরিয়ে দেয়
  4. একটি নতুন অনুরোধ প্রক্রিয়া করার জন্য প্রস্তুত

ইভেন্ট মডেল

  1. ক্লায়েন্ট কিছু জিজ্ঞাসা
  2. সার্ভার প্রক্রিয়াজাতকরণের জন্য অনুরোধটি পাস করে। একটি নতুন অনুরোধ প্রক্রিয়া করার জন্য প্রস্তুত
  3. সার্ভার আরও অনুরোধগুলি আসার সাথে সাথে তাদের পরিচালনা করে
  4. অনুরোধটির প্রক্রিয়া শেষ হয়ে গেলে সার্ভার ক্লায়েন্টকে ডেটা ফেরত দেয়

@ টম, ইভেন্ট-চালিত বলতে কী বোঝ? এএসপি.নেট ওয়েব ফোরামগুলিও ইভেন্ট-চালিত এবং আপনি হ্যান্ডলারগুলি দেখতে পাচ্ছেন Session_Startedবা Context_Authenticatedবা Page_Load?
সা Saeedদ নেমতি

1
এটিকে ইভেন্ট-চালিত বলা প্রয়োজনের তুলনায় আরও দ্ব্যর্থক এবং এটি নোড.জেএস-এর হৃদয়ে সত্যই আসে না: অ্যাসিঙ্ক্রোনাস আই / ও।
অ্যাডাম ক্রসল্যান্ড

2

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

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

নোড.জেএস জনপ্রিয় কারণ এটি দ্রুত এবং স্কেলগুলি ভাল। এটি জাভাস্ক্রিপ্টে রয়েছে তা দুর্দান্ত তবে মূলত ঘটনাবহুল।
অ্যাডাম ক্রসল্যান্ড

2
এর চেয়ে বেশি মূল্যবান হ'ল সার্ভার-সাইড বিকাশকারীরা একই ভাষায় ক্লায়েন্ট-সাইড কোড লিখতে পারে এবং আপনি ক্লায়েন্টের সাথে সার্ভার-সাইড মডিউলগুলি ভাগ করতে পারেন। প্রায় অন্য উপায় না. আমি সার্ভারে হ্যাকড ক্লায়েন্ট-সাইড কোডটি পোর্ট করতে চাই না, এটি নিজের পায়ে শুটিং করছে।
রায়নোস

@ অ্যাডাম: নোড.জেজগুলি কেন জনপ্রিয় হয়ে উঠছে যখন ইতিমধ্যে "দ্রুত এবং স্কেলগুলি ভাল" বর্ণনার সাথে মাপসই প্রযুক্তি রয়েছে? - কারণ এটি জাভাস্ক্রিপ্ট।
জন ফিশার

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

@ ডেভি 8: আমি অনুমান করি যে সমস্তগুলি আপনার ব্যবহৃত অন্যান্য ফ্রেমওয়ার্ক / সিস্টেমগুলির উপর নির্ভর করে। আপনার বর্ণনাযোগ্য পরিমাণের স্বাচ্ছন্দ্যতা আমি যে সরঞ্জামগুলি ব্যবহার করি তা ইতিমধ্যে সহজ। নোড.জেস আমার দৃষ্টিকোণ থেকে কেবলমাত্র অফারটি হ'ল জাভাস্ক্রিপ্টের স্বাদ, যা বাধ্য নয়।
জন ফিশার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.