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

রেল 8-এ রুবি অন্বেষণ করুন:নতুন বৈশিষ্ট্য এবং বর্ধন

প্রথম Rails 8 বিটা আনুষ্ঠানিকভাবে প্রকাশ করা হয়েছে, যা একটি আকর্ষণীয় বৈশিষ্ট্য, বাগ ফিক্স এবং উন্নতি নিয়ে এসেছে। এই সংস্করণটি Rails 7.2 এর ভিত্তির উপর ভিত্তি করে তৈরি করা হয়েছে, যেখানে রেলের উন্নয়নকে আরও বেশি উত্পাদনশীল এবং আনন্দদায়ক করার জন্য নতুন বৈশিষ্ট্য এবং অপ্টিমাইজেশন প্রবর্তন করা হয়েছে৷

মূল হাইলাইটগুলির মধ্যে রয়েছে ঝামেলা-মুক্ত স্থাপনার জন্য কামাল 2-এর সাথে একীকরণ, নতুন ডিফল্ট সম্পদ পাইপলাইন হিসাবে প্রপশ্যাফ্টের প্রবর্তন, এবং বিস্তৃত অ্যাক্টিভ রেকর্ড বর্ধন। Rails 8 এছাড়াও বেশ কিছু SQLite ইন্টিগ্রেশন আপগ্রেড নিয়ে আসে যা এটিকে উৎপাদন ব্যবহারের জন্য একটি কার্যকর বিকল্প করে তোলে।

চলুন ডুবে যাই এবং রেল 8 এর অফার করা সমস্ত কিছু অন্বেষণ করি!

কমল 2 এবং থ্রাস্টারের সাথে অনায়াসে স্থাপনা

Rails 8 কমল 2 এবং থ্রাস্টারের সাথে আপনার অ্যাপ্লিকেশনগুলি স্থাপন করা সহজ করে তোলে।

কমল 2 ক্লাউড ভিএম, বেয়ার মেটাল সার্ভার বা ভিপিএস পরিবেশে মাত্র কয়েক মিনিটের মধ্যে দ্রুত এবং সহজ স্থাপনা সক্ষম করে একটি পরিষেবা (PaaS) প্ল্যাটফর্ম হিসাবে পরিচালিত ক্লাউড পরিষেবা এবং প্ল্যাটফর্মের উপর নির্ভরতার প্রয়োজনীয়তা হ্রাস করে৷

একটি একক কমান্ড সহ (kamal setup ), আপনি একটি প্রমিত লিনাক্স বক্সে একটি উৎপাদন-প্রস্তুত রেলসেনভায়রনমেন্ট সেট আপ করতে পারেন, যার ফলে স্থাপনা সহজ এবং খরচ-কার্যকর উভয়ই হয়৷

কামাল 2 থ্রাস্টারের সাথেও সংহত করে, বিশেষভাবে রেলের জন্য তৈরি একটি কাস্টম প্রক্সি যা শূন্য-ডাউনটাইম স্থাপনা, HTTP/2 সমর্থন, স্বয়ংক্রিয় SSL উইথ লেট'স এনক্রিপ্ট, জিজিপ কম্প্রেশন এবং একটি একক সার্ভারে একাধিক অ্যাপের সহজ হোস্টিং সক্ষম করে - সবই জটিল সেটআপ ছাড়াই৷

কামাল 2 এবং থ্রাস্টারের সাথে, Rails 8 অ্যাপগুলি স্থাপন করা আগের চেয়ে সহজ করে তোলে। এবং যদি আপনি একটি ভিন্ন স্থাপনার সেটআপ পছন্দ করেন, আপনি --skip-kamal ব্যবহার করে অপ্ট আউট করতে পারেন আপনার বিদ্যমান কর্মপ্রবাহ বজায় রাখতে পতাকা।

সলিড অ্যাডাপ্টারের সাথে লীনার রেল স্থাপনা

Rails 8-এর বড় উন্নতিগুলির মধ্যে একটি হল সাধারণ ওয়েব অ্যাপ্লিকেশনের প্রয়োজনীয়তা বাস্তবায়নের জন্য প্রয়োজনীয় অতিরিক্ত পরিষেবার সংখ্যা হ্রাস করে সহজ স্থাপনা৷

ঐতিহ্যগতভাবে, আপনার যদি কাজের সারি, ক্যাশিং এবং পাব/সাবমেসেজিংয়ের মতো বৈশিষ্ট্যগুলির প্রয়োজন হয়, তাহলে আপনি Redis-এর জন্য সহায়ক ফাংশনগুলির সাথে PostgreSQL-এর মতো একটি ডাটাবেসের সংমিশ্রণ ব্যবহার করবেন৷

Rails 8-এর সাহায্যে, আপনি শুধুমাত্র SQLite-এর সাহায্যে এগুলি পরিচালনা করতে পারেন, তিনটি নতুন ডেটাবেস-ব্যাকড অ্যাডাপ্টারের জন্য ধন্যবাদ:সলিড কেবল, সলিড ক্যাশে এবং সলিড কিউ৷

  1. সলিড কেবল উৎপাদনে রেলের নতুন ডিফল্ট অ্যাকশন কেবল অ্যাডাপ্টার এবং এর মানে হল আপনি রেডিসের উপর সাধারণ নির্ভরতা বাদ দিতে পারেন। এটি পাব/সাব সার্ভার হিসেবে কাজ করে, SQLite-এর মাধ্যমে দ্রুত ভোটদান ব্যবহার করে অ্যাপ এবং সংযুক্ত ক্লায়েন্টদের মধ্যে বার্তা রিলে করে। পোলিং সত্ত্বেও, সলিড কেবলের পারফরম্যান্স বেশিরভাগ পরিস্থিতিতে রেডিসের সাথে তুলনীয়৷

  2. সলিড ক্যাশে৷ ক্যাশিংয়ের জন্য RAM এর পরিবর্তে ডিস্ক স্টোরেজ ব্যবহার করে Redis-এর প্রয়োজনীয়তা প্রতিস্থাপন করে। এই পদ্ধতিটি অনেক বড়, আরও সাশ্রয়ী-কার্যকর ক্যাচের জন্য অনুমতি দেয় যা দীর্ঘ সময় ধরে থাকে এবং কর্মক্ষমতা ত্যাগ না করেই আরও অনুরোধগুলি পরিচালনা করে। এটি গোপনীয়তার প্রয়োজনীয়তা পূরণের জন্য এনক্রিপ্ট করা স্টোরেজ এবং ধরে রাখার নীতিগুলিকেও সমর্থন করে৷

  3. সলিড সারি FOR UPDATE SKIP LOCKED ব্যবহার করে সক্রিয় কাজের পটভূমি প্রক্রিয়াকরণের জন্য Redis প্রতিস্থাপন করে মেকানিজম এফিশিয়েন্ট জব হ্যান্ডলিং (PostgreSQL, MySQL, বা SQLite এর সাথে সামঞ্জস্যপূর্ণ)। এতে সঙ্গতি নিয়ন্ত্রণ, পুনঃপ্রচার এবং পুনরাবৃত্ত কাজের মতো প্রয়োজনীয় বৈশিষ্ট্যগুলি অন্তর্ভুক্ত রয়েছে এবং HEY-তে নিজেকে প্রমাণ করেছে, যেখানে এটি এখন প্রতিদিন 20 মিলিয়ন চাকরি পরিচালনা করে।

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

SQLite উৎপাদনের জন্য প্রস্তুত

Rails 8 একটি লাইটওয়েট ডেভেলপমেন্ট টুল থেকে SQLite কে উৎপাদন ব্যবহারের জন্য একটি নির্ভরযোগ্য পছন্দে নিয়ে যায়, SQLite অ্যাডাপ্টার এবং রুবিড্রাইভারে ব্যাপক কাজের জন্য ধন্যবাদ।

উপরে আলোচিত সলিড অ্যাডাপ্টারের প্রবর্তনের সাথে, SQLite-এর এখন কার্যক্ষমভাবে অ্যাকশন ক্যাবল, Rails.cache এবং সক্রিয় কাজ করার ক্ষমতা রয়েছে, শুধুমাত্র প্রোটোটাইপিং বা পরীক্ষার পরিবেশের বাইরেও এর ভূমিকা প্রসারিত করে৷

এখানে রেল 8:

-এ SQLite ইন্টিগ্রেশনের কিছু মূল উন্নতি রয়েছে
  • সম্পূর্ণ পাঠ্য অনুসন্ধান এবং ভার্চুয়াল টেবিলগুলি এখন create_virtual_table ব্যবহার করে সমর্থিত .
  • এডাপ্টারটি এখন উন্নত ডেটা সিডিং পারফরম্যান্সের জন্য বাল্ক ইনসার্ট ফিক্সচারের অনুমতি দেয়৷
  • লেনদেন ডিফল্ট IMMEDIATE সঙ্গতি উন্নত করার মোড।
  • SQLite3::BusyException অনুবাদ করে বর্ধিত ত্রুটি পরিচালনা ActiveRecord::StatementTimeout এ .

প্রপশ্যাফট সহ সম্পদ পাইপলাইনের জন্য একটি নতুন যুগ

Rails 8 এছাড়াও প্রপশ্যাফ্টকে নতুন সম্পদ পাইপলাইন ডিফল্ট হিসাবে প্রবর্তন করে, দীর্ঘস্থায়ী স্প্রোকেট সিস্টেমকে প্রতিস্থাপন করে। Sprockets এক দশকেরও বেশি সময় ধরে রেল ডেভেলপারদের ভালোভাবে পরিবেশন করেছে, কিন্তু এটি একটি ভিন্ন যুগে ডিজাইন করা হয়েছিল — জাভাস্ক্রিপ্ট বিল্ড টুল এবং আধুনিক ব্রাউজার উন্নতির আগে।

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

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

বিল্ট-ইন প্রমাণীকরণ সহজ করা হয়েছে

has_secure_password থেকে Rails বছরের পর বছর ধরে প্রমাণীকরণের মূল উপাদান তৈরি করছে রেল 5 থেকে normalizes-এ , generates_token_for এবংauthenticate_by inRails 7.1.

Rails 8 এর সাথে, এই সমস্ত উপাদান একত্রিত হয়ে আপনাকে একটি নিরাপদ, সেশন-ভিত্তিক প্রমাণীকরণ সিস্টেম তৈরি করার জন্য একটি সহজ সূচনা পয়েন্ট দেয়৷

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

 

এই কমান্ডটি মডেল, কন্ট্রোলার, মেইলার এবং ভিউ সহ কী ফাইল তৈরি করে:

 

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

নতুন স্ক্রিপ্ট ফোল্ডার এবং জেনারেটর

Rails 8 একটি নতুন script প্রবর্তন করেছে এক-অফ সাধারণ-উদ্দেশ্য স্ক্রিপ্ট ধারণ করার জন্য উত্সর্গীকৃত ফোল্ডার, যেমন ডেটা মাইগ্রেশন, ক্লিনআপ কাজ, বা অন্য ইউটিলিটি অপারেশন। এই সংযোজনটি এই স্ক্রিপ্টগুলিকে সুন্দরভাবে সংগঠিত করতে সাহায্য করে, এগুলিকে আপনার প্রধান অ্যাপ্লিকেশন লজিক থেকে আলাদা করে৷

স্ক্রিপ্ট তৈরিকে সহজ করতে, একটি নতুন স্ক্রিপ্ট জেনারেটর উপলব্ধ। আপনি একটি সাধারণ কমান্ড দিয়ে স্ক্রিপ্ট তৈরি করতে পারেন:

 

এই কমান্ডগুলি সংশ্লিষ্ট স্ক্রিপ্ট ফাইলগুলি তৈরি করে, যা আপনি এর সাথে কার্যকর করতে পারেন:

 

এই সুবিন্যস্ত পদ্ধতি আপনার অ্যাপ্লিকেশনকে সংগঠিত রাখে এবং কাস্টম স্ক্রিপ্টগুলিকে আরও সুবিধাজনক এবং রক্ষণাবেক্ষণযোগ্য করে তোলে৷

অনেক সক্রিয় রেকর্ড উন্নতি

অ্যাক্টিভ রেকর্ডও Rails 8-এ কর্মক্ষমতা উন্নত করতে, স্থানান্তরকে সহজ করতে, সমস্যা সমাধানের উন্নতি করতে এবং জটিল ডাটাবেস ব্যবহারের ক্ষেত্রে আরও ভাল সহায়তা প্রদানের জন্য বড় ধরনের উন্নতি দেখেছে।

নীচে এই সর্বশেষ সংস্করণে প্রবর্তিত কিছু মূল পরিবর্তন রয়েছে:

  • Rails 8 এখন float4 এর মধ্যে পার্থক্য করে এবং float8 PostgreSQL এ।
  • drop_table এখন একসাথে একাধিক টেবিল ড্রপ সমর্থন করে।
  • উত্তরাধিকার এবং পার্টিশন সহ PostgreSQL এর সাথে একটি টেবিল তৈরি করার সময় উন্নত বিকল্পগুলির জন্য সমর্থন৷
  • ফিক্সচারের বাল্ক সন্নিবেশ এখন ডেটা সিডিং কর্মক্ষমতা উন্নত করতে সমর্থিত৷
  • একটি নতুন ডাটাবেস স্থানান্তর করা শুরু হয় এখন মাইগ্রেশন চালানোর আগে ডাটাবেস স্কিমা লোড করার মাধ্যমে।
  • create_schema এবং drop_schema ক্রিয়াকলাপগুলি এখন বিপরীতমুখী৷
  • Rails 8-এর জন্য এখন MySQL 5.6.4 বা তার পরে প্রয়োজন তারিখের মতো অগ্রগতির কারণে যথার্থতার সাথে।
  • কোয়েরি লগ ট্যাগগুলি বিকাশের পরিবেশে ডিফল্টরূপে সক্রিয় থাকে SQL স্টেটমেন্টগুলিকে অ্যাপ্লিকেশান কোডে ট্রেস করতে এবং কোন ডাটাবেস ব্যবহার করা হচ্ছে তা সনাক্ত করতে৷

র্যাপিং আপ

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

এই অগ্রগতিগুলি শুধুমাত্র বিকাশকারীর উত্পাদনশীলতাই বাড়ায় না বরং আধুনিক সর্বোত্তম অনুশীলনগুলির সাথে সারিবদ্ধ করে, যা আপনাকে অবকাঠামোগত জটিলতাগুলি মোকাবেলা করার পরিবর্তে আপনার অ্যাপ্লিকেশন তৈরিতে ফোকাস করতে দেয়৷

সমস্ত নতুন বৈশিষ্ট্য, অপ্টিমাইজেশান এবং পরিবর্তনের বিস্তারিত তালিকার জন্য, অফিসিয়াল রেল 8 রিলিজ নোট চেকআউট করুন৷

আপনি যদি Rails-এ অবদানের সাথে জড়িত হতে চান, ওপেন ইস্যুগুলি অন্বেষণ করতে এবং অবদানের নির্দেশিকা পর্যালোচনা করতে Rails GitHub সংগ্রহস্থলে যান৷

পড়ার জন্য ধন্যবাদ!

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

রেল 8-এ রুবি অন্বেষণ করুন:নতুন বৈশিষ্ট্য এবং বর্ধন

দামিলোলা ওলাতুনজি

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

দামিলোলা ওলাতুঞ্জির সমস্ত নিবন্ধ


  1. C-তে একটি বিন্যাসে রেঞ্জের পণ্য

  2. HTML DOM অফসেট উচ্চতা সম্পত্তি

  3. এইচটিএমএল ডম স্টাইল বর্ডার স্টাইল প্রপার্টি

  4. Redis ZINTERSTORE - কিভাবে সাজানো সেট মান ছেদ সঞ্চালন