javascript - Node.js ব্যবহার করার সময় কিভাবে সিদ্ধান্ত নিতে হবে?



web-applications (12)

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

গত কয়েক দিনের মধ্যে আমি হোমওয়ার্ক করেছি, আমি নিম্নলিখিত তথ্য পেয়েছি। node.js

  • একটি কমান্ড-লাইন সরঞ্জাম যা নিয়মিত ওয়েব সার্ভার হিসাবে চালানো যেতে পারে এবং একটি চালিত JavaScript প্রোগ্রামগুলি চালাতে দেয়
  • মহান V8 জাভাস্ক্রিপ্ট ইঞ্জিন ব্যবহার করে
  • আপনি একই সময়ে বিভিন্ন জিনিস করতে হবে যখন খুব ভাল
  • ইভেন্ট ভিত্তিক তাই সার্ভার পাশে সব বিস্ময়কর Ajax অনুরূপ স্টাফ করা যাবে
  • আমাদের ব্রাউজার এবং ব্যাকএন্ডের মধ্যে কোড শেয়ার করতে দেয়
  • আমাদের MySQL সঙ্গে কথা বলতে দেয়

আমি যে উত্সগুলি জুড়েছি তা হলো:

মনে রাখবেন যে Node.js Amazon এর EC2 দৃষ্টান্তগুলির প্রায় বাইরের বাক্সটি চালানো যেতে পারে, আমি বুঝি চেষ্টা করছি কোন ধরণের সমস্যার জন্য Node.js প্রয়োজন, PHP , Python এবং Ruby মত কোনও শক্তিশালী রাজাদের বিরোধিতা করে। । আমি বুঝতে পারি যে এটি সত্যিই একজন ভাষার উপর দক্ষতার উপর নির্ভর করে, তবে আমার প্রশ্নটি সাধারণ বিভাগে আরো পড়ে: কখন কোন নির্দিষ্ট কাঠামো ব্যবহার করবেন এবং এটি কোন ধরণের সমস্যার জন্য বিশেষভাবে উপযুক্ত?


Answer #1
  1. নোডটি দ্রুত প্রোটোটাইপগুলির জন্য দুর্দান্ত তবে আমি কোনও জটিলতার জন্য এটি আবার ব্যবহার করব না। আমি ২0 বছর ধরে একটি কম্পাইলারের সাথে সম্পর্ক গড়ে তুলতে পেরেছি এবং আমি নিশ্চিত নই।

  2. নোড কোডটি বজায় রাখার জন্য বিশেষ করে বেদনাদায়ক যা আপনি কিছুক্ষণের জন্য পরিদর্শন করেননি। টাইপ তথ্য এবং কম্পাইল সময় ত্রুটি সনাক্তকরণ ভাল জিনিস। কেন যে সব নিক্ষেপ? কি জন্য? এবং dang, যখন কিছু দক্ষিণে যায় স্ট্যাক বেশ প্রায়ই নিরর্থক ট্রেস।


Answer #2

NodeJS ব্যবহার করার কারণগুলি:

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

  • ঐতিহ্যগত মাল্টি-থ্রেডেড Java বা ROR ফ্রেমওয়ার্কের তুলনায় একাধিক অনুরোধগুলি পরিচালনা করার সময়ও single-threaded ইভেন্ট-চালিত সিস্টেম fast এবং fast

  • ক্লায়েন্ট এবং সার্ভার-সাইড লাইব্রেরি / মডিউল সহ ওয়েব ডেভেলপমেন্টের জন্য কমান্ড-লাইন সরঞ্জাম সহ NPM এর মাধ্যমে অ্যাক্সেসযোগ্য packages সর্বদা ক্রমবর্ধমান পুল। এর মধ্যে বেশিরভাগই সুবিধাজনকভাবে জিথবুব হোস্ট করা হয়, যেখানে কখনও কখনও আপনি কোনও সমস্যা প্রতিবেদন করতে পারেন এবং এটি ঘন্টার মধ্যে স্থির করতে পারেন! মানসম্মত ইস্যু রিপোর্টিং এবং সহজ দফতরের সাথে এক ছাদের নীচে সবকিছু থাকা ভালো।

  • এটি ডিফ্যাক্টো স্ট্যান্ডার্ড পরিবেশে পরিণত হয়েছে যা জাভাস্ক্রিপ্ট-সম্পর্কিত সরঞ্জাম এবং অন্যান্য ওয়েব-সম্পর্কিত সরঞ্জামগুলি চালানোর জন্য, টাস্ক রানার্স, মিনিফায়ার, beautifiers, linters, preprocessors, bundlers এবং বিশ্লেষণ প্রসেসর সহ।

  • এটি প্রোটোটাইপিং, চটপটে বিকাশ এবং দ্রুত পণ্য পুনরাবৃত্তি জন্য বেশ উপযুক্ত মনে হয়।

NodeJS ব্যবহার না করার কারণ:

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

  • এতে যোগ করা হয়েছে, এনপিএমের বেশিরভাগ প্যাকেজগুলি সামান্য কাঁচা এবং এখনও দ্রুত বিকাশের অধীনে রয়েছে। পুরানো কাঠামোগুলির জন্য কিছু লাইব্রেরি পরীক্ষার এবং বাগফিক্সিংয়ের এক দশক ধরে চলে গেছে, এবং এখন পর্যন্ত এটি খুব স্থিতিশীলNpmjs.org এর প্যাকেজ রেট করার কোন পদ্ধতি নেই , যা একই জিনিসকে কম বা কম পরিমাণে প্যাকেজগুলির বিস্তারের দিকে পরিচালিত করে, যার মধ্যে একটি বৃহত্তর শতাংশ আর রক্ষণাবেক্ষণ করা হয় না।

  • নেস্টেড কলব্যাক জাহান্নাম। (অবশ্যই এই 20 টি সমাধান রয়েছে ...)

  • প্যাকেজগুলির সর্বকালের ক্রমবর্ধমান পুলটি একটি নোডেজ প্রকল্পটি পরবর্তীতে থেকে ভিন্নভাবে দৃশ্যমান হতে পারে। বিপুল সংখ্যক বিকল্প উপলব্ধ (যেমন এক্সপ্রেস / Sails.js / Meteor / Derby ) কারণে বাস্তবায়নের মধ্যে একটি বৃহত বৈচিত্র্য রয়েছে। এটি কখনও কখনও একটি নতুন বিকাশকারীর জন্য একটি নোড প্রকল্পে ঢোকাতে এটি কঠিন করে তুলতে পারে। একটি বিদ্যমান প্রকল্পে যোগদানকারী একটি রেলের বিকাশকারীর সাথে তুলনা করুন: সেটি দ্রুত অ্যাপটির সাথে পরিচিত হতে সক্ষম হওয়া উচিত কারণ সমস্ত রেল অ্যাপ্লিকেশানগুলি একই কাঠামো ব্যবহার করার জন্য উত্সাহিত হয়।

  • ফাইল সঙ্গে ডিলিং একটি ব্যথা একটি বিট হতে পারে। অন্যান্য ভাষার মধ্যে তুচ্ছ, যেগুলি কোনও পাঠ্য ফাইলে একটি লাইন পড়ার মতো, Node.js এর সাথে যথেষ্ট অদ্ভুত , 80+ আপভোটগুলির সাথে স্ট্যাকঅভারফ্লো প্রশ্ন আছে। একটি CSV ফাইল থেকে একটি সময়ে একটি রেকর্ড পড়ার কোন সহজ উপায় নেই । প্রভৃতি

আমি নোডজেএসকে ভালোবাসি, এটি দ্রুত এবং বন্য এবং মজাদার, কিন্তু আমি উদ্বিগ্ন যে এটি প্রমাণযোগ্য-সঠিকতাতে সামান্য আগ্রহ রাখে। আসুন আমরা আশা করি আমরা অবশেষে উভয় বিশ্বের সেরা একত্রিত করতে পারেন। আমি ভবিষ্যতে নোড প্রতিস্থাপন করবে কি দেখতে আগ্রহী ... :)


Answer #3

আমি একটি বাস্তব বিশ্বের উদাহরণ যেখানে আমি Node.js. ব্যবহার করেছেন আমি যেখানে কাজ করি সেই কোম্পানীটি একটি ক্লায়েন্ট পেয়েছেন যিনি সহজ স্ট্যাটিক HTML ওয়েবসাইটটি চেয়েছিলেন। এই ওয়েবসাইট PayPal ব্যবহার করে এক আইটেম বিক্রি করার জন্য এবং ক্লায়েন্ট এছাড়াও একটি আইটেম আছে যা বিক্রি আইটেম পরিমাণ দেখায় চেয়েছিলেন। ক্লায়েন্ট এই ওয়েবসাইটে দর্শক বিপুল পরিমাণ আছে বলে আশা করা হচ্ছে। আমি Node.js এবং Express.js ফ্রেমওয়ার্ক ব্যবহার করে কাউন্টার তৈরি করার সিদ্ধান্ত নিলাম।

Node.js অ্যাপ্লিকেশন সহজ ছিল। একটি Redis ডাটাবেস থেকে বিক্রি আইটেম পরিমাণ পেতে, আইটেম বিক্রি যখন কাউন্টার বৃদ্ধি এবং API মাধ্যমে ব্যবহারকারীদের পাল্টা মান প্রদান।

আমি এই ক্ষেত্রে Node.js ব্যবহার করতে বেছে নেওয়া কিছু কারণ

  1. এটা খুব হালকা এবং দ্রুত। তিন সপ্তাহের মধ্যে এই ওয়েবসাইটে 200,000 ভিজিট হয়েছে এবং সর্বনিম্ন সার্ভার সংস্থান এটি পরিচালনা করতে সক্ষম হয়েছে।
  2. পাল্টা বাস্তব সময় হতে সত্যিই সহজ।
  3. Node.js কনফিগার করা সহজ ছিল।
  4. বিনামূল্যে জন্য উপলব্ধ মডিউল প্রচুর আছে। উদাহরণস্বরূপ, আমি PayPal এর জন্য একটি Node.js মডিউল খুঁজে পেয়েছি।

এই ক্ষেত্রে, Node.js একটি দুর্দান্ত পছন্দ ছিল।


Answer #4

আমি বিশ্বাস করি Node.js রিয়েল-টাইম অ্যাপ্লিকেশনগুলির জন্য সর্বোত্তম উপযুক্ত: অনলাইন গেমস, সহযোগিতা সরঞ্জাম, চ্যাট রুম, অথবা কোনও ব্যবহারকারী (অথবা রোবট? বা সেন্সর?) কোন অ্যাপ্লিকেশনের সাথে অ্যাপ্লিকেশানটি ব্যবহার করে তা অন্য ব্যবহারকারীদের দ্বারা অবিলম্বে দেখা দরকার। একটি পৃষ্ঠা রিফ্রেশ ছাড়া।

আমারও উল্লেখ করা উচিত যে Socket.IO Node.js এর সাথে সংমিশ্রণে আপনার রিয়েল-টাইম বিলম্বিততাকে দীর্ঘ ভোটের সাথে যতটা সম্ভব তা থেকেও কমিয়ে দেবে। Socket.IO সবচেয়ে খারাপ কেস দৃশ্যকল্প হিসাবে দীর্ঘ ভোটে ফিরে আসবে এবং এটি উপলব্ধ থাকলে ওয়েব সকেট বা এমনকি ফ্ল্যাশ ব্যবহার করবে।

তবে আমারও উল্লেখ করা উচিত যে থ্রেডের কারণে কোডটি যে কোনও অবস্থার কারণে ঠিকঠাকভাবে নোড। অথবা আপনি ঘটনা চালিত হতে অ্যাপ্লিকেশন প্রয়োজন যেখানে কোনো পরিস্থিতি।

এছাড়াও, রায়ান ডাহল একটি বার্তায় বলেছিলেন যে আমি একবার উপস্থিত ছিলাম যে নিয়মিত পুরনো HTTP অনুরোধগুলির জন্য Node.js বেঞ্চমার্কগুলির নিকটবর্তী প্রতিদ্বন্দ্বী Nginx। সুতরাং যদি আমরা Node.js দিয়ে তৈরি করি, আমরা আমাদের স্বাভাবিক সংস্থানগুলি কার্যকরভাবে কার্যকর করতে পারি এবং যখন আমাদের ইভেন্ট-চালিত স্টাফ দরকার তখন এটি পরিচালনা করতে প্রস্তুত।

প্লাস এটা সব সময় জাভাস্ক্রিপ্ট সব সময়। পুরো স্ট্যাক Lingua Franca।


Answer #5

একাধিক জিনিস নোড প্রদান করে নোডের একাধিক v8 instanes নোডের শিশু প্রক্রিয়া ( childProcess.fork() প্রতিটি ডকসের জন্য 10 childProcess.fork() মেমরি ব্যবহার করে) তৈরি করে, যাতে সার্ভার চালানোর মূল প্রক্রিয়াটি প্রভাবিত হয় না। অতএব একটি ব্যাকগ্রাউন্ড কাজ অফলোড করা যার জন্য বিশাল সার্ভার লোড প্রয়োজন হয় শিশুটির খেলা হয়ে যায় এবং যখন প্রয়োজন হয় তখন আমরা সহজে তাদের মেরে ফেলতে পারি।

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


Answer #6

এটা কোথায় ব্যবহার করা যেতে পারে

  • অ্যাপ্লিকেশন যে অত্যন্ত ইভেন্ট চালিত হয় এবং ব্যাপকভাবে আমি / হে আবদ্ধ হয়
  • অ্যাপ্লিকেশনগুলি অন্যান্য সিস্টেমে সংযোগগুলির একটি বৃহৎ সংখ্যার পরিচালনা করে
  • বাস্তব সময় অ্যাপ্লিকেশন (Node.js রিয়েল টাইম জন্য স্থল থেকে ডিজাইন করা হয়েছে এবং ব্যবহার করা সহজ হতে।)
  • অন্যান্য উত্স থেকে এবং স্ট্রিমিং তথ্য scads juggle যে অ্যাপ্লিকেশন
  • উচ্চ ট্রাফিক, স্কেলেবল অ্যাপ্লিকেশন
  • প্ল্যাটফর্ম API এবং ডাটাবেসের সাথে কথা বলার জন্য মোবাইল অ্যাপ্লিকেশানগুলি অনেক বেশি ডাটা বিশ্লেষণ ছাড়াই
  • নেটওয়ার্ক অ্যাপ্লিকেশন তৈরি করুন
  • খুব প্রায়ই ফিরে শেষ কথা বলতে প্রয়োজন যে অ্যাপ্লিকেশন

মোবাইল ফ্রন্টে, প্রাইম-টাইম কোম্পানিগুলি তাদের মোবাইল সমাধানগুলির জন্য Node.js এ নির্ভর করেছে। কেন চেক আউট?

LinkedIn একটি বিশিষ্ট ব্যবহারকারী। তাদের পুরো মোবাইল স্ট্যাক নড.জেসে নির্মিত হয়। তারা 15 টি সার্ভারের প্রতিটি শারীরিক মেশিনে 15 টি ইনস্ট্যান্সের মাধ্যমে চলছে, মাত্র 4 টি উদাহরণস্বরূপ - যা ট্র্যাফিক দ্বিগুণ করতে পারে!

eBay লিংকটি চালু করেছেন, HTTP APIs এর জন্য একটি ওয়েব ক্যোয়ারী ভাষা, যা নোট.জেএস রানটাইম স্ট্যাক হিসাবে ব্যবহার করে। তারা প্রতিটি নিয়মিত 2KB মেমরি ধারণ করে প্রতিটি সংযোগের সাথে node.js প্রক্রিয়ায় 120,000 সক্রিয় সংযোগ পরিচালনা করতে নিয়মিত ডেভেলপার-মানের উবুন্টু ওয়ার্কস্টেশনটি সুরক্ষিত করতে সক্ষম হয়েছিল!

Walmart Node.js ব্যবহার করার জন্য তার মোবাইল অ্যাপ্লিকেশনটি পুনরায়-প্রকৌশলী করে এবং তার জাভাস্ক্রিপ্ট প্রসেসিং সার্ভারে ধাক্কা দেয়।

আরও পড়ুন: http://www.pixelatingbits.com/a-closer-look-at-mobile-app-development-with-node-js/


Answer #7

নতুন প্রকল্পের জন্য Node.js বেছে নেওয়ার আমার আরও একটি কারণ হল:

বিশুদ্ধ মেঘ ভিত্তিক উন্নয়ন করতে সক্ষম হবেন

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

অবশ্যই, সম্ভবত অন্যান্য ভাষা বা প্ল্যাটফর্মগুলির জন্য ক্লাউড ভিত্তিক আইডিই (ক্লাউড 9 আইডিই অন্যান্য ভাষার জন্য সমর্থন যুক্ত করে), তবে নড.জেস ডেভেলমেন্ট করতে ক্লাউড 9 ব্যবহার করে সত্যিই আমার জন্য একটি দুর্দান্ত অভিজ্ঞতা।


Answer #8

নোড ব্যবহার করে আপনার পরবর্তী প্রকল্প শুরু করার সবচেয়ে গুরুত্বপূর্ণ কারণ ...

  • সব শীতল dudes এটি মধ্যে হয় ... তাই এটা মজা করা আবশ্যক
  • আপনি শীতল সময়ে Hangout করতে পারেন এবং প্রচুর নোডের ইভেন্টগুলি সম্পর্কে বিব্রত বোধ করতে পারেন।
  • মেঘ হোস্টিং খরচ আসে যখন আপনি একটি পেনি pincher করছি।
  • Rails সঙ্গে যে সম্পন্ন হয়েছে
  • আপনি আইআইএস স্থাপনার ঘৃণা
  • আপনার পুরানো আইটি কাজ বরং নিস্তেজ হচ্ছে এবং আপনি একটি চকচকে নতুন স্টার্ট আপ ছিল ইচ্ছুক।

কি আশা করছ ...

  • আপনি কখনও প্রয়োজন নেই সব সার্ভার bloatware ছাড়া এক্সপ্রেস সঙ্গে নিরাপদ এবং নিরাপদ বোধ করব।
  • একটি রকেট এবং ভাল scales মত রান।
  • আপনি এটা স্বপ্ন। আপনি এটি ইনস্টল। নোড প্যাকেজ repo packages বিশ্বের মুক্ত উত্স লাইব্রেরিগুলির বৃহত্তম ইকোসিস্টেম।
  • আপনার মস্তিষ্ক নেস্টেড কলব্যাকের ভূমি থেকে সময় বাঁধা সময় পেতে হবে ...
  • ... যতক্ষণ না আপনি আপনার Promises রাখা শিখতে।
  • Sequelize এবং Passport আপনার নতুন API বন্ধু।
  • বেশিরভাগ ASINC কোড ডিবাগিং umm ... আকর্ষণীয় হবে
  • টাইপস্ক্রিপ্ট মাস্টার করতে সব Noders জন্য সময়।

কে এটা ব্যবহার করে?

  • পেপ্যাল, নেটফিক্স, ওয়ালমার্ট, লিঙ্কডইন, গ্রুপন, উবার, গোডডি, ডো জোন্স
  • এখানে কেন তারা নোড সুইচ

Answer #9

একযোগে অনুরোধ হ্যান্ডলিং জন্য নোড সেরা -

সুতরাং, একটি গল্প দিয়ে শুরু করা যাক। গত 2 বছর থেকে আমি জাভাস্ক্রিপ্টে কাজ করছি এবং ওয়েব ফ্রন্ট শেষ বিকাশ করছি এবং আমি এটি উপভোগ করছি। পিছনে শেষ ছেলেরা আমাদের কিছু জাভা, পাইথন (আমরা যত্ন নিচ্ছি না) এ লিখিত এবং আমরা কেবল একটি AJAX কল লিখতে, আমাদের তথ্য পেতে এবং অনুমান কি! আমরা করেছি. কিন্তু বাস্তবে এটি সহজ নয়, যদি আমরা যা তথ্য পাচ্ছি তা সঠিক না হয় অথবা কিছু সার্ভার ত্রুটি আছে তবে আমরা আটকে থাকি এবং আমাদের ব্যাক এন্ড ছেলের সাথে মেল বা চ্যাটের সাথে যোগাযোগ করতে হবে (কখনও কখনও whatsapp এও :)। এটি শান্ত না। আমরা কি জাভাস্ক্রিপ্টে আমাদের এপিআই লিখেছি এবং এপিআইগুলিকে আমাদের সামনে থেকে কল করবো? হ্যাঁ এটি বেশ শান্ত কারণ API এ কোনও সমস্যা হলে আমরা এটি দেখতে পারি। অনুমান করো কি! আপনি এখন এটা করতে পারেন, কিভাবে? - নোড আপনার জন্য আছে।

ঠিক আছে আপনি জাভাস্ক্রিপ্টে আপনার এপিআই লিখতে পারবেন কিন্তু উপরের সমস্যা নিয়ে যদি আমি ঠিক আছি। বিশ্রাম এপিআই জন্য নোড ব্যবহার করার জন্য আপনার অন্য কোন কারণ আছে?

তাই এখানে জাদু শুরু হয়। হ্যাঁ আমাদের কাছে আমাদের API এর জন্য নোড ব্যবহার করার অন্যান্য কারণ আছে।

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

1. ওয়েটিং ওয়ে: আমাদের সার্ভার r1 অনুরোধ পরিবেশন শুরু করে এবং কোয়েরি প্রতিক্রিয়ার জন্য অপেক্ষা করে। r1 সম্পন্ন করার পরে, সার্ভারটি r2 পরিসেবা শুরু করে এবং একইভাবে এটি করে। সুতরাং অপেক্ষা একটি ভাল ধারণা না, কারণ আমাদের কাছে বেশি সময় নেই।

2. থ্রেডিং ওয়ে: আমাদের সার্ভার উভয় অনুরোধ r1 এবং r2 উভয় অনুরোধের জন্য দুটি থ্রেড তৈরি করবে এবং ডেটাবেস অনুসন্ধানের পরে তাদের উদ্দেশ্যটি সরবরাহ করবে যাতে তার দ্রুত শীতল হয়। তবে এটি মেমরি খাওয়া হয় কারণ আপনি দেখতে পারেন যে আমরা দুটি থ্রেডও শুরু করেছি যখন সমস্যাটি উভয় অনুরোধ জিজ্ঞাসা করছে একই তথ্য তারপর আপনি ডিলlock ধরনের সমস্যা মোকাবেলা করতে হবে। তাই উপায় অপেক্ষা অপেক্ষা ভাল কিন্তু এখনও সমস্যা আছে।

এখন এখানে, কিভাবে নোড এটি করবে:

3. নোডওয়ে: যখন একই সমবায় অনুরোধ নোডের মধ্যে আসে তখন এটি একটি কলব্যাকের সাথে একটি ইভেন্ট নিবন্ধন করবে এবং এগিয়ে যেতে হবে এটি একটি বিশেষ অনুরোধের জন্য প্রশ্নের জবাবের জন্য অপেক্ষা করবে না। সুতরাং যখন r1 অনুরোধ আসে তখন নোডের ইভেন্ট লুপ (হ্যাঁ একটি ইভেন্ট থাকে নোডের লুপ যা এই উদ্দেশ্যে কাজ করে।) তার কলব্যাক ফাংশন সহ একটি ইভেন্ট নিবন্ধন করুন এবং r2 অনুরোধ r2 জন্য এগিয়ে যান এবং একইভাবে তার ইভেন্টটি কলব্যাকের সাথে নিবন্ধন করুন। যখনই কোনও প্রশ্ন শেষ হয় তখন এটি তার সংশ্লিষ্ট ইভেন্টটিকে ট্রিগার করে এবং কোনও বাধা ছাড়াই তার কলব্যাকটি সম্পন্ন করে।

সুতরাং কোন অপেক্ষা, কোন থ্রেডিং, কোন মেমরি খরচ - হ্যাঁ এই বিশ্রাম API পরিবেশন জন্য নোডওয়ে হয়।


Answer #10

ডাবলিং অ্যাসবেস্টস লংজোহন ...

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

আমি নোড.জেসের সাথে আমার অভিজ্ঞতার একটি খুব গোলাপী দৃশ্য দিতে পারতাম। পরিবর্তে আমি সম্মুখীন ভাল পয়েন্ট এবং খারাপ পয়েন্ট সম্পর্কে সৎ ছিল।

আমাকে এখানে প্রাসঙ্গিক কয়েকটি উদ্ধৃতি অন্তর্ভুক্ত করতে দিন:

সতর্কতা: Node.js এবং এর ইকোসিস্টেম আপনাকে খারাপভাবে পুড়িয়ে দেওয়ার জন্য যথেষ্ট গরম !

যখন আমি গণিতের একজন শিক্ষকের সহকারী ছিলাম, তখন আমার অজ্ঞাত পরামর্শগুলির মধ্যে একটি ছিল যে কোন ছাত্রকে কিছুটা "সহজ" বলা হয় না। কারণটি অতীতের দৃষ্টিতে কিছুটা স্পষ্ট ছিল: যদি আপনি মানুষকে কিছু সহজ বলে জানান তবে কেউ একটি সমাধান দেখতে পারে না (আরও বেশি) বোকা, কারণ তারা কেবল সমস্যার সমাধান করতে পারে না, কিন্তু সমস্যাটি বোঝার পক্ষে তারা খুব বোকা, সহজ!

Gotchas আছে যা Python / Django থেকে আসছে শুধু বিরক্ত না, যা আপনি কিছু পরিবর্তন যদি অবিলম্বে উৎস পুনরায় লোড। Node.js এর সাথে, ডিফল্ট আচরণটি হল যে আপনি যদি একটি পরিবর্তন করেন তবে পুরানো সংস্করণটি সময় শেষ না হওয়া পর্যন্ত বা সার্ভারটি পুনরায় চালু না হওয়া পর্যন্ত সক্রিয় থাকবে। এই অনুপযুক্ত আচরণ শুধু Pythonistas বিরক্ত না; এটি বিভিন্ন workarounds প্রদান যারা স্থানীয় Node.js ব্যবহারকারী irritates। স্ট্যাকঅভারফ্লো প্রশ্ন "নড.জেজে ফাইলগুলির অটো পুনরায় লোড করা" এই লেখার সময় 200 টি আপভোট এবং 19 টি উত্তর আছে; একটি সম্পাদনাটি ব্যবহারকারীকে http://ninyurl.com/reactjs- নোড-সুপারভাইজারে হোমপৃষ্ঠায় একটি নানি স্ক্রিপ্ট, নোড-সুপারভাইজারে নির্দেশ করে। এই সমস্যাটি নতুন ব্যবহারকারীকে মূঢ় মনে করার সুযোগ দেয় কারণ তারা মনে করেছিল যে তারা সমস্যাটির সমাধান করেছে, কিন্তু পুরানো, বাগ আচরণটি পুরোপুরি অপরিবর্তিত। এবং সার্ভারটি বাউন্স করতে ভুলে যাওয়া সহজ; আমি তাই একাধিক বার করেছি। এবং বার্তাটি আমি দিতে চাই, "না, আপনি মূঢ় নন কারণ নোডের এই আচরণটি আপনার পিছনে বিট করে; এটা ঠিক যে Node.js এর ডিজাইনাররা এখানে উপযুক্ত আচরণ সরবরাহ করার কোন কারণ দেখেনি। এটি মোকাবেলা করার চেষ্টা করুন, সম্ভবত নোড-সুপারভাইজার বা অন্য সমাধান থেকে একটু সাহায্য গ্রহণ করুন, কিন্তু অনুগ্রহ করে অনুভব করবেন না যে আপনি বোকা। আপনি সমস্যা সঙ্গে এক না; সমস্যা Node.js এর ডিফল্ট আচরণ। "

কিছুটা বিতর্কের পর এই বিভাগটি চলে গিয়েছিল, ঠিক কারণ আমি "এটা সহজ।" এর ছাপ দিতে চাই না। আমি জিনিসগুলি কাজ করার সময় বার বার আমার হাত কাটলাম, এবং আমি সমস্যাগুলির উপর মসৃণতা করতে চাই না এবং Node.js এবং এটির ইকোসিস্টেমটি ভালভাবে কাজ করার বিষয়ে আপনি বিশ্বাস করতে সেট আপ করেছেন যে এটি সহজতর নয় এবং যদি এটি আপনার পক্ষে সহজ না হয় তবে আপনি কী করছেন তা আপনি জানেন না। আপনি Node.js ব্যবহার করে আপত্তিকর সমস্যা মধ্যে চালানো না, যে বিস্ময়কর। যদি আপনি করেন, আমি আশা করি আপনি অনুভূতিটি এড়িয়ে চলবেন না, "আমি বোকা-আমার সাথে কিছু ভুল হতে হবে।" আপনি যদি নোড। এটা আপনি না! এটা নোড.জেএস এবং এর ইকোসিস্টেম!

পরিশিষ্ট, যা আমি শেষ অধ্যায় এবং উপসংহারে ক্রমবর্ধমান ক্রসেন্ডেন্ডের পরে সত্যিই চাইনি, আমি বাস্তুতন্ত্রের মধ্যে যা খুঁজে পেতে সক্ষম হয়েছিল তার বিষয়ে আলোচনা করেছি, এবং নিরপেক্ষ আক্ষরিকতার জন্য একটি সমাধান প্রদান করেছি:

আরেকটি ডেটাবেস যা নিখুঁত ফিটের মতো মনে হচ্ছে, এবং এটি এখনও পুনরুদ্ধারযোগ্য, HTML5 কী-মান দোকানের সার্ভার-পার্শ্ব বাস্তবায়ন। এই পদ্ধতির একটি API এর মূল সুবিধা রয়েছে যা সর্বাধিক ভাল ফ্রন্ট-ডেভেলপারগুলি যথেষ্ট ভালভাবে বোঝে। সেই ক্ষেত্রে, এটি এমন একটি API যা বেশিরভাগ অসাধারণ ফ্রন্ট-ডেভেলপার ডেভেলপার যথেষ্ট পরিমাণে বোঝে না। তবে নোড-স্থানীয় স্টোরেজ প্যাকেজের সাথে, যখন অভিধান-সিনট্যাক্স অ্যাক্সেস দেওয়া হয় না (আপনি স্থানীয় স্টোরেজ.सेटআইটিম (কী, মান) বা স্থানীয় স্টোরেজ.getআইটিম (কী) ব্যবহার করতে চান না স্থানীয় স্টোরেজ [কী]), সম্পূর্ণ স্থানীয় স্টোরেজ শব্দকৌশল প্রয়োগ করা হয় ডিফল্ট 5 এমবি কোটা সহ কেন? সার্ভার-পার্শ্ব জাভাস্ক্রিপ্ট ডেভেলপারদের নিজেদের থেকে সুরক্ষিত করা প্রয়োজন?

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

তবে, এটি হালকাভাবে উল্লেখ করা যেতে পারে যে যখন আপনি আপনার সার্ভারের জন্য একটি লিখন কোড, তখন আপনার ডেটাবেসকে 5MB আকারের সহনীয় ডেটাবেস থেকে অতিরিক্ত সুরক্ষা প্রয়োজন হবে না। সর্বাধিক বিকাশকারীরা নানী হিসাবে কাজ করার সরঞ্জামগুলি এবং তাদের 5 এমবি সার্ভার-সাইড ডেটা সংরক্ষণ করা থেকে রক্ষা করার প্রয়োজন নেই। এবং 5 মেগাবাইট কোটা ক্লায়েন্ট-পার্শ্বের উপর একটি সুবর্ণ ভারসাম্যমূলক কাজ নয় বরং একটি Node.js সার্ভারে কিছুটা মূর্খ। (এবং, একাধিক ব্যবহারকারীর জন্য যেমন ডাটাবেসের জন্য এই পরিশিষ্টে আচ্ছাদিত রয়েছে, এটি সামান্য ব্যথাজনকভাবে উল্লেখ করা যেতে পারে যে, প্রতিটি ব্যবহারকারীর অ্যাকাউন্টের জন্য ডিস্কে আলাদা ডাটাবেস তৈরি না করা পর্যন্ত এটি ব্যবহারকারীর অ্যাকাউন্টের জন্য 5MB নয়; এটি 5MB এর মধ্যে ভাগ করা হয় সমস্ত ব্যবহারকারী একসঙ্গে অ্যাকাউন্ট তৈরি করে। যদি আপনি ভাইরাল যান তবে এটি বেদনাদায়ক হতে পারে!) ডকুমেন্টেশনটি বলে যে কোটাটি কাস্টমাইজযোগ্য, তবে সপ্তাহের আগে একটি বিকাশকারী ডেটাবেলারকে জিজ্ঞাসা করেছিল যে কীভাবে কোটা পরিবর্তন করতে হয় তা অনুপযুক্ত, যেমন স্ট্যাকঅভারফ্লো প্রশ্নটি একইভাবে জিজ্ঞাসা করা হয়েছে । একমাত্র উত্তর আমি খুঁজে পেতে সক্ষম হচ্ছি জিথুব কফিস্ক্রিপ্ট সোর্স, যেখানে এটি একটি কনস্ট্রাক্টরকে ঐচ্ছিক দ্বিতীয় পূর্ণসংখ্যা যুক্তি হিসাবে তালিকাভুক্ত করা হয়। সুতরাং এটি যথেষ্ট সহজ, এবং আপনি একটি ডিস্ক বা পার্টিশন আকার সমান একটি কোটা উল্লেখ করতে পারে। কিন্তু কোনও বৈশিষ্ট্যকে পোর্ট করার পাশাপাশি অর্থে অর্থোপার্জন না করে, টুলের লেখক 0 টি অনুবাদ করার একটি খুব সাধারণ কনভেনশন অনুসরণ করতে ব্যর্থ হয়েছে যার অর্থ একটি পরিবর্তনশীল বা ফাংশনের জন্য "সীমাহীন" যার অর্থ কোনও সংস্থার ব্যবহারের জন্য সর্বাধিক সীমা উল্লেখ করার জন্য একটি পূর্ণসংখ্যা নির্দিষ্ট করে। এই ক্ষতিকারকতার সাথে সবচেয়ে ভাল জিনিস সম্ভবত কোটা ইনফিনিটি উল্লেখ করতে পারে:

if (typeof localStorage === 'undefined' || localStorage === null)
  {      
  var LocalStorage = require('node-localstorage').LocalStorage;
  localStorage = new LocalStorage(__dirname + '/localStorage',
    Infinity);
  }

অর্ডার দুটি মন্তব্য Swapping:

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

সম্ভবত অন্য কেউ এই চ্যালেঞ্জগুলিকে চ্যালেঞ্জ হিসাবে গ্রহণ করতে পারে এবং ক্রোকফোর্ডের নেতৃত্বকে অনুসরণ করে এবং নোড.জেএস এবং এর বাস্তুতন্ত্রের জন্য "ভাল অংশ" এবং / অথবা "ভাল অংশ" লিখতে পারে। আমি একটি কপি কিনতে চাই!

এবং সমস্ত প্রকল্পে উত্সাহ এবং নিরলস কাজের ঘন্টা প্রদান করে, এই লেখার সময় তৈরি হওয়া অপরিচিত বাস্তুতন্ত্র সম্পর্কে যে কোনও মন্তব্যকে তীব্রভাবে বিব্রত করার জন্য এক বছরের, দুই বা তিন বছরের মধ্যে এটির জোর দেওয়া যেতে পারে। এটি সত্যিই পাঁচ বছরের মধ্যে বলতে পারে, "২015 সালের নোড.জেস ইকোসিস্টেমটিতে কয়েকটি খনি ক্ষেত্র রয়েছে। 2020 নোড.জেস ইকোসিস্টেমটিতে একাধিক প্যারাডাইজ রয়েছে। "


Answer #11

আমি কোথায় এবং কেন নোড জেএস ব্যবহার করতে পারেন কয়েক পয়েন্ট শেয়ার করতে পারেন।

  1. চ্যাটের মত রিয়েলটাইম অ্যাপ্লিকেশনগুলির জন্য, সহযোগী সম্পাদনা উন্নততর আমরা নোডজিসের সাথে যাচ্ছি কারণ এটি ইভেন্ট বেস যেখানে সার্ভার থেকে ক্লায়েন্টকে আগুন ইভেন্ট এবং ডেটা।
  2. সহজ এবং বোঝার জন্য এটি জাভাস্ক্রিপ্ট বেস যেখানে বেশিরভাগ লোকের ধারণা আছে।
  3. বর্তমানে বেশিরভাগ ওয়েব অ্যাপ্লিকেশনগুলি কৌণিক জেএস এবং ব্যাকবোন দিকে যাচ্ছে, নোডের সাথে ক্লায়েন্ট পার্শ্ব কোডের সাথে ইন্টারঅ্যাক্ট করা সহজ কারণ উভয় জসন ডেটা ব্যবহার করবে।
  4. অনেক প্লাগইন উপলব্ধ।

অপূর্ণতা: -

  1. নোড বেশিরভাগ ডেটাবেসকে সমর্থন করবে কিন্তু মংডব সেরা যা জটিল যোগদান এবং অন্যদের সমর্থন করবে না।
  2. সংকলন ত্রুটি ... বিকাশকারীকে প্রতিটি ব্যতিক্রমকে অন্যভাবে পরিচালনা করা উচিত যদি কোন ত্রুটির সমঝোতা অ্যাপ্লিকেশনটি কাজ বন্ধ করে দেয় যেখানে আবার আমাদের যেতে হবে এবং এটি নিজে শুরু করতে হবে বা কোনও অটোমেশন সরঞ্জাম ব্যবহার করতে হবে।

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


Answer #12

আপনার অ্যাপ্লিকেশনটি যদি ওয়েব অ্যাপিস বা অন্য আইও চ্যানেলগুলিকে টিথার করে তবে ব্যবহারকারী ইন্টারফেসটি দিন বা গ্রহণ করুন, node.js আপনার জন্য উপযুক্ত নির্বাচন হতে পারে, বিশেষত যদি আপনি সর্বাধিক মাপকাঠিটি সঙ্কুচিত করতে চান, অথবা যদি আপনার মূল ভাষাটি জাভাস্ক্রিপ্ট (বা প্রকারের জাভাস্ক্রিপ্ট transpilers) হয়। যদি আপনি মাইক্রোসফেস তৈরি করেন, node.js ঠিক আছে। Node.js ছোট বা সহজ যে কোন প্রকল্পের জন্য উপযুক্ত।

এটির প্রধান বিক্রয় বিন্দু এটি ফ্রন্ট-এন্ডারগুলিকে সাধারণত বিভাজনের পরিবর্তে ব্যাক-স্টাফ স্টাফগুলির দায়িত্ব নিতে দেয়। আরেকটি যুক্তিযুক্ত বিক্রয় বিন্দু যদি আপনার কর্মপ্রবাহ জাভাস্ক্রিপ্ট ভিত্তিক শুরু হয়।

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

বিশেষ করে, যখন আপনার অ্যাপ্লিকেশনটি সমলয় প্রবাহ সঞ্চালনের প্রয়োজন হয়, তখন আপনি অর্ধেক বেকড সমাধানগুলির উপর রক্তপাত শুরু করেন যা আপনার বিকাশ প্রক্রিয়ার পরিপ্রেক্ষিতে আপনাকে ধীর করে। আপনার যদি আপনার অ্যাপ্লিকেশনের গাণিতিক নিবিড় অংশ থাকে তবে সাবধানতার সাথে (শুধুমাত্র) node.js. সম্ভবত Koajs অথবা অন্যান্য উপন্যাসগুলি মূলত কদর্য দিকগুলি বাদ দিয়ে, যখন আমি মূলত node.js ব্যবহার করতাম বা এটি লিখেছিলাম।





web-applications