কম্পিউটার টিউটোরিয়াল

রুবি অন রেল বনাম হানামি:আপনার প্রকল্পের জন্য সঠিক ওয়েব ফ্রেমওয়ার্ক নির্বাচন করা

এই পোস্টটি 23 মে 2024-এ রেল এবং হানামির মধ্যে মডেল এবং ডেটা স্থিরতার পার্থক্য স্পষ্ট করতে আপডেট করা হয়েছিল।

Ruby on Rails হল রুবি ইকোসিস্টেমের সবচেয়ে জনপ্রিয় ওয়েব ফ্রেমওয়ার্ক এবং ফ্রিল্যান্সার থেকে শুরু করে বৃহৎ প্রতিষ্ঠিত কোম্পানি পর্যন্ত এর একটি বৃহৎ ব্যবহারকারী বেস রয়েছে। একটি সক্রিয় ব্যবহারকারী সম্প্রদায় এবং বিস্তৃত ডকুমেন্টেশন সহ, এটি সাধারণ অ্যাপ্লিকেশন থেকে জটিল ওয়েব প্ল্যাটফর্মে সবকিছু তৈরি করতে ব্যবহার করা যেতে পারে৷

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

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

আসুন প্রতিটি কাঠামোর একটি সংক্ষিপ্ত ভূমিকা দিয়ে শুরু করা যাক।

রুবি অন রেলের সাথে পরিচয় করিয়ে দেওয়া হচ্ছে

Ruby on Rails হল সবচেয়ে সুপরিচিত রুবি ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্ট ফ্রেমওয়ার্ক যার একটি মিশন ডেভেলপারের উত্পাদনশীলতা বাড়ানোর জন্য (কীভাবে অ্যাপগুলি তৈরি করা উচিত সে সম্পর্কে একগুচ্ছ অনুমান তৈরি করে, প্রায়শই "রেল পথ" হিসাবে উল্লেখ করা হয়)।

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

প্রবর্তন করা হচ্ছে হানামি

যদিও রুবি সম্প্রদায়ের মধ্যে রেলগুলি খুব পরিচিত, হানামি কম। এটি একটি মোটামুটি নতুন আধুনিক রুবি ফ্রেমওয়ার্ক যা সম্পূর্ণ-স্ট্যাক ওয়েব ফ্রেমওয়ার্ক স্পেসে রেলের আধিপত্য গ্রহণ করার চেষ্টা করছে৷

হানামি একটি ছোট মেমরির ফুটপ্রিন্ট এবং মডুলারিটির উপর ফোকাস রাখার জন্য গ্রাউন্ড আপ থেকে তৈরি করা হয়েছে, যা ফলস্বরূপ, একটি খুব দ্রুত এবং চটকদার ফ্রেমওয়ার্ক তৈরি করে৷

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

রেল এবং হানামির কাঠামো এবং স্থাপত্য

রেল এবং হানামি কিছুটা একই রকম যে উভয়ই রুবি ফ্রেমওয়ার্ক। যাইহোক, প্রতিটি কীভাবে তৈরি করা হয় এবং তাদের অ্যাপ্লিকেশন আর্কিটেকচার যেখানে আপনি বেশিরভাগ পার্থক্য খুঁজে পাবেন৷

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

নীচের চিত্রগুলি বিন্দুটিকে আরও স্পষ্টভাবে চিত্রিত করে। চলুন শুরু করি রেল দিয়ে।

রুবি অন রেল বনাম হানামি:আপনার প্রকল্পের জন্য সঠিক ওয়েব ফ্রেমওয়ার্ক নির্বাচন করা

এখন নীচের হানামির সাথে রেল বিমূর্তকরণ চিত্রের তুলনা করুন।

রুবি অন রেল বনাম হানামি:আপনার প্রকল্পের জন্য সঠিক ওয়েব ফ্রেমওয়ার্ক নির্বাচন করা

আপনি দেখতে পাচ্ছেন, প্রতিটি ফ্রেমওয়ার্ক সাধারণত মডেল-ভিউ-কন্ট্রোলারকে অনুসরণ করে (MVC) কাঠামো। যাইহোক, হানামি বিমূর্ততাকে পরবর্তী স্তরে নিয়ে যায়।

প্রতিটি ফ্রেমওয়ার্ক কীভাবে সংগঠিত হয় তার একটি সরলীকৃত রূপরেখা এখানে রয়েছে:

  • রুট - প্রতিটি ফ্রেমওয়ার্কের আপনার অ্যাপের শেষ পয়েন্টের সাথে একটি রুট সংজ্ঞা রয়েছে।
  • কন্ট্রোলার বনাম অ্যাকশন - রেলে, আপনি তাদের মধ্যে এক বা কয়েকটি অ্যাকশন সহ কন্ট্রোলার পান। কন্ট্রোলাররা প্রাসঙ্গিক ক্রিয়াকলাপের নির্দেশ দিয়ে রুট অনুরোধগুলি গ্রহণ করে এবং সাড়া দেয়। হানামিতে, কোন নিয়ন্ত্রক নেই। পরিবর্তে, আপনি সরাসরি স্ব-অন্তর্ভুক্ত ক্রিয়াগুলিতে যান (প্রতিটি কর্মের নিজস্ব স্বয়ংসম্পূর্ণ শ্রেণী রয়েছে)।
  • মডেল এবং অধ্যবসায় - Rails মডেল স্তরটি আপনার অ্যাপের যেকোনো প্রশ্ন সহ ডেটা যাচাইকরণ এবং ডেটাবেস যোগাযোগের যত্ন নেয়। দৃঢ়তা রুবি অবজেক্ট ম্যাপার (ROM) দ্বারা পরিচালিত হয়। হানামিতে, মডেল স্তরটি আরও বিমূর্ত, সত্তা এবং সংগ্রহস্থলে বিভক্ত। সত্ত্বাগুলি ডোমেন লজিক পরিচালনা করে এবং ডাটাবেস-অজ্ঞেয়বাদী হয়, যেখানে ভান্ডার (repos) ডাটাবেসের সাথে যোগাযোগ করতে ব্যবহৃত হয়। হানামি 2.0 পরবর্তীতে একটি পূর্ব-কনফিগার করা অধ্যবসায় স্তর ছাড়াই জাহাজে পাঠানো হয়, যা আপনাকে একটি অবজেক্ট রিলেশনাল ম্যাপার (ORM) বেছে নিতে দেয় যা আপনার প্রয়োজন অনুসারে বা ORM বিনামূল্যে প্রোগ্রাম করে৷
  • রেন্ডারিং দেখুন - পারসিসটেন্স লেয়ারের মত, রুবি অন রেল ভিউতে বহির্বিশ্বে ডাটা রেন্ডার করার জন্য আপনার প্রয়োজনীয় সবকিছু এক জায়গায় থাকে। এর মধ্যে সমস্ত HTML গঠন, ভিউ হেল্পার এবং ভিউ লজিক রয়েছে। যখন হানামিতে রেন্ডারিং দেখার কথা আসে, তখন জিনিসগুলি আরও বিমূর্ত হয়। প্রারম্ভিকদের জন্য, আপনার দর্শন আছে যেটি অ্যাপটির যেকোন ভিউ হেল্পার ব্যবহার করে এবং টেমপ্লেট রেন্ডারও করে . টেমপ্লেট প্রকৃত HTML গঠন পরিচালনা করে, যখন অংশগুলি যেকোনো উপস্থাপনা যুক্তির যত্ন নিন।

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

এর পরে, আসুন প্রতিটি ফ্রেমওয়ার্কের ইকোসিস্টেমের দিকে নজর দেওয়া যাক।

ইকোসিস্টেম এবং সম্প্রদায়

যেমনটি আমরা আগে উল্লেখ করেছি, রেলের হানামির চেয়ে আরও প্রতিষ্ঠিত কাঠামো রয়েছে। রেলগুলি দীর্ঘকাল ধরে রয়েছে এবং যেমন, একটি বড় এবং আরও পরিপক্ক সম্প্রদায় রয়েছে৷

ইকোসিস্টেম এবং সম্প্রদায়ের পার্থক্যগুলি নীচে সংক্ষিপ্ত করা হয়েছে:

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

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

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

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

এগিয়ে চলুন, আসুন প্রতিটি কাঠামোর শেখার বক্ররেখা এবং গ্রহণের তুলনা করি।

ব্যবহারের সহজতা, দত্তক নেওয়া, শাসন, এবং শেখার বক্ররেখা

পূর্ববর্তী বিভাগে উল্লিখিত কারণগুলির জন্য, রুবি অন রেল সহজেই ব্যবহারে সহজ, শিল্প গ্রহণ এবং শেখার বক্ররেখার ক্ষেত্রে হানামিকে পরাজিত করে, বিশেষ করে:

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

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

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

চলুন এখন গিয়ার স্যুইচ করুন এবং আরও কিছু প্রযুক্তিগত, অ্যাপ্লিকেশন কার্যকারিতা দেখুন।

পারফরম্যান্স:রুবি অন রেল বনাম হানামি

একজন বিকাশকারী হিসাবে, আপনি আপনার অ্যাপের নির্ভরযোগ্যতা, প্রতিক্রিয়াশীলতা এবং একবার উৎপাদনে নিয়োজিত হলে এটি কীভাবে সার্ভারের সংস্থানগুলি ব্যবহার করবে সে সম্পর্কে উদ্বিগ্ন হবেন। এগুলি মৌলিক উদ্বেগ যা আপনার ফ্রেমওয়ার্কের পছন্দকে ব্যাপকভাবে প্রভাবিত করতে পারে৷

আপনি আপনার অ্যাপে পারফরম্যান্স পরীক্ষা চালানোর জন্য অনেক পদ্ধতি ব্যবহার করতে পারেন, যার মধ্যে সবচেয়ে জনপ্রিয় Apache JMeter। আসুন হানামি এবং রেলের তুলনা করার জন্য বেঞ্চমার্ক নম্বর ব্যবহার করি।

প্রতিটি ফ্রেমওয়ার্ক প্রতি সেকেন্ডে কতগুলি অনুরোধ পরিচালনা করতে পারে তা এখানে একটি দ্রুত বেঞ্চমার্ক পরীক্ষা রয়েছে:

রুবি অন রেল বনাম হানামি:আপনার প্রকল্পের জন্য সঠিক ওয়েব ফ্রেমওয়ার্ক নির্বাচন করা

হানামি রেইলসকে হ্যান্ডেল করার ক্ষমতার চেয়ে 3 গুণ বেশি অনুরোধ হ্যান্ডেল করার ক্ষমতা সহ রেইলসকে হ্যান্ডেল করে।

এই পরবর্তী স্ক্রিনশটটি প্রতিটি ফ্রেমওয়ার্কের গড় বিলম্বের মান দেখায়:

রুবি অন রেল বনাম হানামি:আপনার প্রকল্পের জন্য সঠিক ওয়েব ফ্রেমওয়ার্ক নির্বাচন করা

আবার, হানামি গড়ে লেটেন্সি সময়ের সাথে রেলকে হারায় যা প্রায় 3 গুণ কম।

আপনি যদি একটি রুবি ফ্রেমওয়ার্ক খুঁজছেন যা অত্যন্ত দ্রুত (আসুন, আপনাকে একটি দ্রুত এবং বিশাল আকারের এপিআই-এ কাজ করতে হবে), তাহলে আপনি রুবি ল্যান্ডস্কেপে হানামির থেকে ভালো কিছু খুঁজে পেতে কষ্ট পাবেন৷

পরীক্ষা

কোড টেস্টিং করার ক্ষেত্রে, উভয় ফ্রেমওয়ার্কই তুলনামূলক অনেক বেশি কারণ আপনি বহুমুখী RSpec লাইব্রেরি ব্যবহার করে পরীক্ষা করতে পারেন।

RSpec hanami-rspec এর মাধ্যমে অন্তর্ভুক্ত করা হয়েছে হানামি অ্যাপের জন্য মণি, যেখানে আপনাকে rspec-rails ইনস্টল করতে হবে আপনার Rails অ্যাপে এটি ব্যবহার করার জন্য মণি। নীচের উদাহরণটি আপনার নতুন হানামি অ্যাপের সাথে অন্তর্ভুক্ত একটি খুব প্রাথমিক পরীক্ষার বৈশিষ্ট্য দেখায়:

 

$ bundle exec rspec spec/requests/root_spec.rb দিয়ে এটি চালানো হচ্ছে একটি পরীক্ষায় উত্তীর্ণ হওয়া উচিত (অনুমান করে আপনি ডিফল্ট ভিউ টেমপ্লেটটি সম্পাদনা করেননি):

 

রেলের দিকে, আপনাকে নিজের দ্বারা কিছু জিনিস পরিচালনা করতে হবে। প্রথমত, আপনাকে Gemfile-এর বিকাশ/পরীক্ষা ব্লকে RSpec রত্ন যোগ করতে হবে নীচে দেখানো হিসাবে, তারপর bundle চালান :

 

পরবর্তী ধাপ হল bundle exec rails generate rspec:install কমান্ড দিয়ে RSpec ইনস্টল চালানো আপনার রেল প্রকল্পের জন্য এটি প্রস্তুত করতে।

পরিশেষে, কোনো পরীক্ষা লেখার এবং চালানোর আগে, আপনার রেল অ্যাপের জন্য পরীক্ষার ডেটা সংজ্ঞায়িত করার জন্য আপনাকে সম্ভবত অন্য একটি রত্ন ইনস্টল করতে হবে:FactoryBot৷

এবং ধরে নিই যে আপনি আপনার টেস্ট স্যুটটি সঠিকভাবে সেট আপ করেছেন এবং কয়েকটি পরীক্ষাকে সংজ্ঞায়িত করেছেন, আপনি হানামিতে bundle exec rspec spec/models/user_spec.rb দিয়ে একটি পরীক্ষা চালাতে পারেন। . আপনি হানামি অ্যাপের মাধ্যমে আপনার পরীক্ষার ফলাফল ঠিক যেমন পেতে পারেন:

 

পরিশেষে, দেখা যাক কিভাবে স্থাপনার ক্ষেত্রে ফ্রেমওয়ার্কের তুলনা হয়।

ডিপ্লয়মেন্ট

আজকাল, প্রোডাকশনে রুবি অ্যাপ্লিকেশানগুলি স্থাপনের জন্য প্রচুর বিকল্প রয়েছে৷

শুরুতে, আপনি Heroku-এর মতো একটি প্ল্যাটফর্ম-এ-সার্ভিস (PaaS) প্রদানকারীর সাথে যেতে পারেন, অথবা আরও নির্বিঘ্ন অভিজ্ঞতার জন্য ফ্লাই করতে পারেন। আপনি কিছুটা DevOpsও করতে পারেন:একটি VPS-এ একটি ডকার ইনস্টলেশন সেট আপ করুন এবং সেখানে আপনার অ্যাপ স্থাপন করুন৷

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

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

র্যাপিং আপ

এই নিবন্ধে, আমরা দুটি রুবি ফ্রেমওয়ার্ক দেখেছি — রুবি অন রেল এবং হানামি — বৈশিষ্ট্য, স্থাপত্য, কর্মক্ষমতা এবং আরও অনেক কিছুর ক্ষেত্রে তাদের তুলনা করে। পরিশেষে, আমাদের এই প্রশ্নের উত্তর দিতে হবে:"আমি কোন কাঠামো ব্যবহার করব এবং কেন?"। আমরা নিম্নরূপ সংক্ষিপ্ত করতে পারি:

  • আপনি যদি একজন শিক্ষানবিস রুবি ডেভেলপার হন, তাহলে Rails দিয়ে শুরু করুন:এটি তোলা এবং শেখা সহজ৷ আপনি যদি আরও উন্নত রুবি ডেভেলপার হন, তাহলে হানামি স্কিলসেট তৈরি করুন, কারণ এটি আপনাকে আরও শক্তিশালী রুবি অ্যাপ্লিকেশন তৈরি করতে সাহায্য করবে।
  • আপনি যদি দ্রুত হতে হবে এমন একটি অ্যাপ তৈরি করতে চান, বলুন একটি API যা বেশ কয়েকটি ক্লায়েন্টকে পরিবেশন করে, হানামির ছোট মেমরি ফুটপ্রিন্ট, জ্বলন্ত দ্রুত প্রতিক্রিয়া এবং কম লেটেন্সি আপনাকে ভালভাবে পরিবেশন করবে। যাইহোক, যদি আপনি শুধুমাত্র একটি SaaS ধারণা যাচাই করার জন্য একটি মনোলিথিক ফুল-স্ট্যাক অ্যাপ তৈরি করতে চান, তাহলে রেল অবশ্যই আপনাকে দ্রুত সেখানে পৌঁছে দেবে।

শেষ পর্যন্ত, আপনি যা বেছে নেবেন তা সত্যিই আপনার উপর নির্ভর করে। উভয় কাঠামোতে দক্ষতা অর্জন করা খারাপ ধারণা নয়। এইভাবে, আপনি আপনার প্রজেক্টের প্রয়োজনের উপর নির্ভর করে সর্বোত্তম ফ্রেমওয়ার্কের জন্য সিদ্ধান্ত নিতে পারেন।

শুভ কোডিং!

পি.এস. আপনি যদি রুবি ম্যাজিক পোস্টগুলি প্রেস থেকে বের হওয়ার সাথে সাথে পড়তে চান তবে আমাদের রুবি ম্যাজিক নিউজলেটারে সাবস্ক্রাইব করুন এবং একটি পোস্ট মিস করবেন না!

পি.পি.এস. আপনি কি জানেন AppSignal এর রেল এবং হানামির জন্য একীকরণ আছে?


  1. জ্যাঙ্গো - বাছাই এবং পৃষ্ঠা নম্বর সহ সরাসরি টেবিলে মডেল ডেটা দেখানো হচ্ছে

  2. পাইথন - কিভাবে একটি বার গ্রাফে একটি পান্ডাস ডেটাফ্রেম প্লট করা যায়

  3. Tkinter এর OptionMenu উইজেটের মেনু ব্যাকগ্রাউন্ডের রঙ কিভাবে পরিবর্তন করবেন?

  4. এইচটিএমএল পেজে href এট্রিবিউট কিভাবে ব্যবহার করবেন?