Ruby on Rails (কখনো কখনো RoR) সবচেয়ে জনপ্রিয় ওপেন-সোর্স ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক।
এটি রুবি প্রোগ্রামিং ভাষায় তৈরি।
আপনি রেলস ব্যবহার করতে পারেন অ্যাপ্লিকেশন বানাতে, সহজ থেকে জটিল, রেলস দিয়ে আপনি যা করতে পারেন তার কোনো সীমা নেই!
ফ্রেমওয়ার্ক কী?
একটি ফ্রেমওয়ার্ক হলো কোড, টুল ও ইউটিলিটির একটি সংগ্রহ যা আপনাকে সফটওয়্যার লিখার সময় একটি নির্দিষ্ট স্ট্রাকচার দেয়।
এই স্ট্রাকচার আপনার কোডকে আরও অর্গানাইজড করে।
আপনি যখন সঠিকভাবে ব্যবহার শিখবেন তখন আপনার কাজ সহজ হয়ে যাবে।
রেলস আসলে কী করে?
রেলস আপনাকে ওয়েবসাইট বানাতে সাহায্য করে।
যে ধরনের ওয়েবসাইট আপনি প্রতিদিন ব্যবহার করেন।
সাইটগুলো যা আপনাকে লগইন, কমেন্ট ও রিভিউ লিখতে, কেনাকাটা করতে দেয়…
রেলস এরকম কয়েকটি কম্পোনেন্টে বানানো হয়েছে যা এইসব সুবিধা দেয়।
উদাহরণস্বরূপ:
Active Record আপনাকে ডেটাবেসে রেকর্ড পড়তে, তৈরি ও আপডেট করতে সাহায্য করে ডেটাবেস জিনিয়াস হোনা ছাড়া।
রাউটিং মেকানিজম আপনাকে সহজে URL (যেমন /login) কে নির্দিষ্ট অ্যাকশনের সাথে ম্যাপ করতে দেয়।
আপনি যদি ফ্রেমওয়ার্ক ছাড়া সবকিছু স্ক্র্যাচ থেকে লিখতে চান, তবে এটি একটি বড় পরিমাণ কাজ হবে।
কিন্তু রেলস এই সব ডিটেইল আপনার জন্য হ্যান্ডেল করে…
তাই আপনি আপনার নিজস্ব অ্যাপ্লিকেশন বানাতে ফোকাস করতে পারেন!
Ruby on Rails অ্যাপ্লিকেশনের উদাহরণ
কারা রেলস ব্যবহার করছে?
Ruby on Rails সাইটের কিছু উদাহরণ কী?
এখানে কিছু:
- Github
- Shopify
- Ask.fm
- Kickstarter
- Scribd
- ConvertKit
- Twitch
- Instacart
- Zendesk
- SoundCloud
এই কোম্পানিগুলো ছোট নয়!
এবং সকলে রুবি অন রেলস ব্যবহার করে তাদের কাস্টমারদের সার্ভ করতে পারছে।
আপনি কি রেলস শিখবেন?
আপনি যদি একটি চ্যালেঞ্জিং, মজাদার এবং ক্রিয়েটিভ ক্যারিয়ার খুঁজছেন অ্যাসামাজিক ওয়েবসাইট বানাতে যা মানুষকে সাহায্য করে, তবে রুবি অন রেলস আপনার জন্য হতে পারে।
কারোই রেলস শিখতে পারে, এমনকি আপনার প্রোগ্রামিং অভিজ্ঞতা না থাকলেও।
এতে বেশি বা কম সময় লাগতে পারে আপনি কোথায় আছেন তার ওপর নির্ভর করে।
কিন্তু প্রতিটি স্কিল শিখা ও মাস্টার করা সম্ভব।
রেলস ব্যবহারের সুবিধা:
- এটি একটি ইন্টিগ্রেটেড সমাধান। রেলস আপনাকে ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য সবকিছু দেয়।
- রেলস কনভেনশন ও ডিফল্ট কনফিগারেশন আপনাকে অনেক কাজ বাঁচায়!
- রেলসের একটি চমৎকার ইকোসিস্টেম আছে তাই আপনি সব টুল ও সাপোর্ট পাবেন যা আপনার দরকার হতে পারে
- এটি সক্রিয় ডেভেলপমেন্টের অধীন, তাই আপনি নিয়মিত ফিক্স ও নতুন ফিচার পাবেন!
এবং সবচেয়ে ভালো কারণ:
“আপনি রুবি পাবেন যা আমি এখন পর্যন্ত সাক্ষাত করেছি সবচেয়ে অসাধারণভাবে সুন্দর এবং লক্সুরিয়াস ল্যাঙ্গুয়েজ” – DHH, Ruby on Rails-এর স্রষ্টা
রেলস ফিলোসফি
Ruby on Rails একটি অপিনিয়েটেড ফ্রেমওয়ার্ক।
এই মতামতগুলোতে একটি হলো কনভেনশন কনফিগারেশনের চেয়ে বেশি গুরুত্বপূর্ণ।
এটি কী মানে?
এর মানে আপনাকে কম ডিসিশন নিতে হয় কারণ রেলসের স্রষ্টারা আপনার জন্য সেগুলো ইতিমধ্যে নিয়েছে।
কারণ আপনাকে কম ডিসিশন নিতে হয় আপনি আরও প্রোডাক্টিভ হবেন এবং দ্রুত কাজ শেষ করবেন।
কিন্তু আপনি যদি চান তবে এগুলোর কিছু পরিবর্তন করতে পারেন।
কনভেনশন ওভার কনফিগারেশনের কিছু উদাহরণ কী?
রেলস আপনার কোড খুঁজার সময় নির্দিষ্ট ফাইল নাম খুঁজে।
উদাহরণস্বরূপ, আপনার একটি Book মডেল থাকলে, রেলস app/models/book.rb নামে ফাইল খুঁজবে।
এই হলো কনভেনশন।
বলতে হবে না:
“হে রেলস, এই ফাইলটি কোথায় আছে”
রেলস আপনাকে বলে দেয় সেটি কোথায় থাকা উচিত।
রেলসের টেন থাউজেন্ড ফুট ওভারভিউ
রেলস একটি সম্পূর্ণ ওয়েব অ্যাপ্লিকেশনের বড় চিত্রে কীভাবে ফিট হয়?
আমি আপনার জন্য কিছু ড্র করেছি:

রেলস রিকোয়েস্ট রিসিভ করে, সেগুলো উপযুক্ত অ্যাকশনে রাউট করে, যা ডেটাবেসের সাথে (ActiveRecord দিয়ে) ইন্টারঅ্যাক্ট করে রিকোয়েস্ট পূরণ করতে। তারপর ফলাফল (HTML বা JSON) ইউজারের কাছে ফেরত পাঠায়।
আপনি যদি রেলস পার্টে জুম ইন করতে চান তবে কিছু টেকনিক্যাল হতে হবে।
রেলস MVC আর্কিটেকচার ব্যবহার করে।
MVC মানে Model, View, Controller।
এখানে ছবিটি:

অ্যাকশনগুলো কন্ট্রোলারে অর্গানাইজড থাকে, কন্ট্রোলার রিকোয়েস্ট প্রসেস কীভাবে করবে সেটি ডিসাইড করে এবং ডেটাবেস থেকে প্রয়োজনীয় ডেটা চায়।
তারপর কন্ট্রোলার ভিউ রেন্ডার করে।
একটি ভিউ হলো পেজের ডিজাইন এবং কন্টেন্ট।
এই হলো চূড়ান্ত প্রোডাক্ট যা ইউজারের কাছে ফেরত যাবে।
Ruby on Rails কে আবিষ্কার করেন?
David Heinemeier Hansson (DHH) ডিসেম্বর ২০০৫-এ Ruby on Rails 1.0 রিলিজ করেন।
প্রায় ১৪ বছর পর, ডেভিড এখনও বড় অপেন-সোর্স কন্ট্রিবিউটর গোষ্ঠীর সাথে রেলসে কাজ করছেন इसे ভালো ও দ্রুত করার জন্য।
তিনি কেন রেলস তৈরি করলেন?
“আমি রেলস তৈরি করলাম কারণ আমি আমার কাজের সাথে উপভোগ করতে চাই” – DHH
লাগে একটি ভালো কারণ 🙂
Ruby বনাম Ruby on Rails
Ruby একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ।
Ruby on Rails রুবির উপরে বিল্ট একটি ফ্রেমওয়ার্ক।
পার্থক্য কী?
Ruby সোর্স কোড (রেলস সহ) কে এমন কিছুতে কনভার্ট করে যা আপনার কম্পিউটার বুঝতে পারে।
রেলস রুবির উপরে একটি লেয়ার।
একটি লেয়ার যা আপনাকে ওয়েব অ্যাপ্লিকেশন বানাতে সাহায্য করে।
কিন্তু রুবি নিজে এতে অনেক বেশি করতে পারে, এটি একটি পাওয়ারফুল প্রোগ্রামিং ল্যাঙ্গুয়েজ।
এখানে কিছু জিনিস যা আপনি করতে পারেন:
- আপনি ওয়েবসাইট ক্রল ও স্ক্র্যাপ করতে পারেন ইনফরমেশন এক্সট্র্যাক্ট করতে
- আপনি ব্যাকআপ, অ্যালার্ট ও নোটিফিকেশনের মত টাস্ক অটোমেট করতে পারেন
- আপনি সব ধরনের টুল ও ইউটিলিটি বানাতে পারেন, যেন লগ পার্সার, সিকিউরিটি স্ক্যানার, ফাইল কন্টেন্ট অ্যানালিসিস…
মূল কথা হলো:
রেলস রুবিকে ওয়েব অ্যাপ্লিকেশন বানাতে একটি চমৎকার প্ল্যাটফর্ম বানিয়ে দেয়, কিন্তু রুবি দিয়ে বিল্ট একটি শক্তিশালী নন-রেলস প্রোগ্রামের ইকোসিস্টেমও আছে।
রেলস শিখতে কীভাবে শুরু করবেন
এখন:
এখানে সবচেয়ে বড় ভুল যা অনেক মানুষ করে।
আপনি এড়াতে পারেন যদি আপনি এই বুঝতে পারেন:
সাধারণ প্রোগ্রামিং কনসেপ্ট এবং রুবি প্রোগ্রামিং ল্যাঙ্গুয়েজ প্রথমে শিখুন।
রেলসে যাওয়ার আগে!
কারণ সহজ।
আপনি ছাদের দিয়ে বাড়ি বানাতে শুরু করতে পারবেন না…
আপনি যদি রেলস কীভাবে কাজ করে সেটি বুঝতে না পারেন, আপনি বিভ্রান্ত হবেন।
আপনি যখন এরর মেসেজ দেখবেন সেটি একটি বিদেশী ভাষার মত লাগবে।
এবং এটি আপনার জন্য খুব বিস্ময়কর হবে।
সমাধান?
রুবি শিখতে শুরু করুন।
ধৈর্য ধারণ করুন, নিশ্চিত করুন আপনি ভালোভাবে শিখছেন।
আপনি যদি একটি ফ্রি বেগিনার-ফ্রেন্ডলি রুবি টিউটোরিয়াল খুঁজছেন, এখানে আমার লেখা একটি আছে।
এটি সব বেসিক কভার করে।
এবং এটি কিছু यুনিক করে যা অধিকাংশ টিউটোরিয়াল করে না:
- এটি আপনাকে চলতে থাকতে মোটিভেট করে।
- এটি জিনিসগুলো সহজ রাখে।
- এটি আপনাকে সম্ভাব্য পিটফল এবং যেসব জিনিসে বিশেষ মনোযোগ দরকার সেগুলো সম্পর্কে সতর্ক করে।
আপনার রুবি ডেভেলপার যাত্রা শুরু করার জন্য প্রস্তুত?
এখন রুবি শিখতে শুরু করুন।