Ruby on Rails (RoR) 6.x এবং 7.x ভার্সন দুটি প্রচুর নতুন ফিচার এবং আপডেট নিয়ে এসেছে, যা ডেভেলপারদের কাজকে আরও সহজ এবং শক্তিশালী করে তোলে। এই ভার্সনগুলোতে নতুন টুলস, ফিচার, এবং পারফরম্যান্স উন্নয়ন সংক্রান্ত অনেক গুরুত্বপূর্ণ পরিবর্তন এসেছে। চলুন, দেখে নেয়া যাক Rails 6.x এবং 7.x এর কিছু গুরুত্বপূর্ণ নতুন ফিচার।
Rails 6.x এর নতুন ফিচার
১. Action Text (নতুন Text Editor)
Rails 6.x এ Action Text নামক একটি নতুন ফিচার অন্তর্ভুক্ত করা হয়েছে, যা রিচ টেক্সট (rich text) সম্পাদনা এবং সংরক্ষণ করার সুবিধা দেয়। এটি Trix editor এর সাথে অন্তর্ভুক্ত, যা ইউজারদের ফরম্যাটেড টেক্সট, ইমেজ, ভিডিও, এবং আরও অনেক কিছু সহজেই ইন্টারঅ্যাক্টিভভাবে অ্যাড/এডিট করার সুযোগ দেয়।
class Article < ApplicationRecord
has_rich_text :content
end
এটি ইউজারদের রিচ কন্টেন্ট তৈরি এবং সংরক্ষণ করতে সহায়তা করে, যেমন উইকিপিডিয়া বা ব্লগ পোস্টের মতো ফরম্যাটেড কন্টেন্ট।
২. Action Mailbox (ইমেইল রিসিভ করা)
Action Mailbox Rails 6.x-এ একটি নতুন ফিচার যা ইনবক্সের মাধ্যমে ইমেইল প্রসেস করতে ব্যবহৃত হয়। এটি ইমেইল অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে, যেখানে ইমেইল রিসিভ করা এবং প্রসেস করা সহজ হয়ে যায়।
class ApplicationMailbox < ActionMailbox::Base
routing /example@myapp.com/i => :example
end
এটি অ্যাপ্লিকেশনের মধ্যে ইমেইল ফিচার ইন্টিগ্রেট করতে এবং ইমেইল প্রসেস করতে সহায়তা করে।
৩. Multiple Database Support
Rails 6.x-এ Multiple Database সমর্থন যোগ করা হয়েছে, যা বড় এবং স্কেলেবল অ্যাপ্লিকেশনে ডাটাবেস রেপ্লিকা ব্যবহারের সুবিধা দেয়। আপনি মূল ডাটাবেস এবং একাধিক রেপ্লিকা ব্যবহার করে রিড-ওনলি অপারেশন পরিচালনা করতে পারবেন।
class ApplicationRecord < ActiveRecord::Base
connects_to database: { writing: :primary, reading: :replica }
end
এটি বড় অ্যাপ্লিকেশনগুলির জন্য কার্যকরী যেখানে ডেটাবেসের রিড এবং রাইট অপারেশন আলাদা করা হয়।
৪. Webpacker by Default
Rails 6.x থেকে Webpacker ডিফল্ট JavaScript bundler হিসেবে ব্যবহৃত হচ্ছে, যা JavaScript, CSS, এবং অন্যান্য ফ্রন্ট-এন্ড রিসোর্সগুলিকে আরও ভালোভাবে ম্যানেজ করতে সাহায্য করে। Webpacker, যেমন React, Vue.js, বা Angular ইত্যাদি ফ্রেমওয়ার্কগুলোকে Rails অ্যাপ্লিকেশনের সাথে ইন্টিগ্রেট করতে সহজতর করে তোলে।
৫. Action Cable (WebSockets Support)
Rails 6.x-এ Action Cable এর মাধ্যমে WebSocket সাপোর্ট উন্নত করা হয়েছে, যার ফলে রিয়েল-টাইম ফিচার সহজে অ্যাপ্লিকেশনে ইন্টিগ্রেট করা সম্ভব হয়। এখন আপনি চ্যাট, লাইভ নোটিফিকেশন, এবং অন্যান্য রিয়েল-টাইম ফিচার তৈরি করতে পারেন।
Rails 7.x এর নতুন ফিচার
১. Hotwire (Live Updates)
Rails 7.x-এ Hotwire নামক একটি নতুন ফিচার অন্তর্ভুক্ত করা হয়েছে, যা রিয়েল-টাইম ফিচারের জন্য আরও উন্নত এবং কার্যকরী। Hotwire Turbo এবং Stimulus এর সংমিশ্রণ, যা ক্লায়েন্ট-সাইড রেন্ডারিংকে সহজ করে তোলে এবং JavaScript কোডের প্রয়োজন কমিয়ে দেয়।
- Turbo: এটি পেজ লোডিং এবং পেজ নেভিগেশনের গতিকে বৃদ্ধি করে, যেখানে পুরো পেজ রিলোড না করে কেবলমাত্র প্রয়োজনীয় অংশ লোড করা হয়।
- Stimulus: এটি UI উপাদানগুলোর ইন্টারঅ্যাকশন এবং রিয়েল-টাইম রেসপন্স প্রদান করে।
২. Async Query Loading
Rails 7.x-এ Async Query Loading এর মাধ্যমে ডেটাবেস কোয়েরি একসাথে লোড করার পরিবর্তে অ্যাসিঙ্ক্রোনাসভাবে লোড করা সম্ভব। এতে অ্যাপ্লিকেশনের পারফরম্যান্স উল্লেখযোগ্যভাবে বৃদ্ধি পায়, কারণ একাধিক কোয়েরি সমান্তরালে প্রক্রিয়া করা যায়।
User.find_by_sql("SELECT * FROM users WHERE email LIKE 'a%'").async
৩. Encrypting Credentials by Default
Rails 7.x এ Credentials Encryption ডিফল্টভাবে সক্রিয় করা হয়েছে। এর মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের সিক্রেট কীগুলিকে আরও নিরাপদে স্টোর করতে পারবেন। এই ফিচারের মাধ্যমে, ডিফল্টভাবে সমস্ত সিক্রেট ডেটা (যেমন API কীগুলি) এনক্রিপ্টেড ফাইলে সংরক্ষিত হবে।
rails credentials:edit
এটি config/credentials.yml.enc ফাইলে এনক্রিপ্টেডভাবে সংরক্ষিত থাকবে এবং শুধুমাত্র পাসফ্রেজের মাধ্যমে এক্সেস করা যাবে।
৪. Improved Query Interface
Rails 7.x-এ ActiveRecord Query Interface অনেক উন্নত হয়েছে। এখন নতুন অ্যাপ্লিকেশন ডেভেলপ করার সময় কোড আরও ছোট, পরিষ্কার এবং সহজ হয়ে উঠেছে। বিশেষ করে ActiveRecord::Relation ব্যবহার করা আরও শক্তিশালী এবং ফ্লেক্সিবল হয়েছে।
Post.where(title: "My title").order(:created_at).limit(10)
৫. Importmaps
Rails 7.x-এ Importmaps ফিচারটি এসেছে, যা JavaScript কোডের সিম্পল লোডিং সমাধান সরবরাহ করে। Webpack ব্যবহার না করে JavaScript ফাইলগুলো সরাসরি অ্যাপ্লিকেশনের HTML ফাইলে লোড করা সম্ভব।
<%= javascript_importmap_tags %>
এই ফিচারের মাধ্যমে JavaScript মডিউলগুলো খুব সহজেই রেন্ডার করা যায়।
৬. Turbo Drive Improvements
Turbo Drive এর মাধ্যমে অ্যাপ্লিকেশনের পেজ রেন্ডারিং দ্রুত করা হয়েছে। যখন আপনি একটি পেজ নেভিগেট করেন, তখন পুরো পেজ লোড করার পরিবর্তে শুধুমাত্র পরিবর্তিত অংশটি রেন্ডার করা হয়। Rails 7.x-এ এটি আরও শক্তিশালী এবং কাস্টমাইজযোগ্য হয়েছে।
সারমর্ম
Rails 6.x এবং 7.x-এ অনেক গুরুত্বপূর্ণ ফিচার এবং উন্নয়ন এসেছে যা ডেভেলপারদের কাজকে সহজ এবং দ্রুততর করে তুলেছে। Rails 6.x এ Action Text, Action Mailbox, Multiple Database Support, এবং Webpacker এর মতো ফিচার যোগ করা হয়েছে, যা অ্যাপ্লিকেশন তৈরির গতিকে আরও উন্নত করেছে। অন্যদিকে, Rails 7.x এ Hotwire, Async Query Loading, Encrypting Credentials, এবং Turbo Improvements এর মতো নতুন ফিচারসমূহ প্রবর্তিত হয়েছে, যা রিয়েল-টাইম ফিচার এবং পারফরম্যান্স উন্নত করতে সহায়তা করে। Rails 7.x-এর উন্নত ফিচারসমূহ ডেভেলপারদের আরও ভালো এবং সুরক্ষিত অ্যাপ্লিকেশন তৈরিতে সহায়তা করবে।
Read more