MVC (Model-View-Controller) হলো একটি আর্কিটেকচারাল প্যাটার্ন যা অ্যাপ্লিকেশনের লজিক, ইউজার ইন্টারফেস এবং ডেটাকে আলাদা করে সংগঠিত করার জন্য ব্যবহৃত হয়। Ruby on Rails সহ অনেক আধুনিক ফ্রেমওয়ার্ক এই প্যাটার্ন অনুসরণ করে। এটি অ্যাপ্লিকেশন ডেভেলপমেন্টকে কাঠামোবদ্ধ এবং মেইনটেনেবল করে তোলে।
MVC এর তিনটি উপাদান
Model
Model অ্যাপ্লিকেশনের ডেটা এবং তার লজিক পরিচালনা করে। এটি ডেটাবেসের সঙ্গে সরাসরি কাজ করে এবং ডেটা হ্যান্ডলিংয়ের দায়িত্বে থাকে।
Model এর ভূমিকা:
- ডেটা সংরক্ষণ, পুনরুদ্ধার, এবং ম্যানিপুলেশন।
- Active Record (Ruby on Rails এ ব্যবহৃত ORM) এর মাধ্যমে ডেটাবেস অপারেশন পরিচালনা।
- ডেটার লজিক এবং ব্যবসায়িক নিয়ম সংরক্ষণ।
উদাহরণ:
class Article < ApplicationRecord
validates :title, presence: true
end
উপরের কোডে Article মডেলটি ডেটাবেসে আর্টিকেল সংক্রান্ত ডেটা ম্যানেজ করে এবং ডেটার জন্য ভ্যালিডেশন নিয়ম নির্ধারণ করে।
View
View অ্যাপ্লিকেশনের ইউজার ইন্টারফেস। এটি ইউজারকে ডেটা প্রদর্শনের জন্য দায়ী।
View এর ভূমিকা:
- HTML, CSS, এবং JavaScript ব্যবহার করে UI তৈরি করা।
- কন্ট্রোলার থেকে প্রাপ্ত ডেটা ইউজারের সামনে উপস্থাপন করা।
- ডায়নামিক এবং ইন্টারেকটিভ উপস্থাপনার জন্য টেমপ্লেট ব্যবহার।
উদাহরণ:
<h1><%= @article.title %></h1>
<p><%= @article.content %></p>
উপরের কোডটি ভিউ ফাইল, যা একটি আর্টিকেলের শিরোনাম এবং কনটেন্ট দেখায়।
Controller
Controller হলো মডেল এবং ভিউয়ের মধ্যে সংযোগ স্থাপনকারী উপাদান। এটি ব্যবহারকারীর রিকোয়েস্ট প্রক্রিয়া করে এবং প্রাসঙ্গিক ডেটা প্রস্তুত করে ভিউতে পাঠায়।
Controller এর ভূমিকা:
- রাউটিং পরিচালনা এবং সঠিক রেসপন্স তৈরি।
- মডেল থেকে ডেটা সংগ্রহ করা এবং ভিউতে পাঠানো।
- ব্যবসায়িক লজিক প্রয়োগ করা।
উদাহরণ:
class ArticlesController < ApplicationController
def show
@article = Article.find(params[:id])
end
end
উপরের কোডে, show অ্যাকশনটি নির্দিষ্ট আর্টিকেলের ডেটা সংগ্রহ করে ভিউতে পাঠায়।
MVC এর কাজের ধারা
১. User Request:
ব্যবহারকারী একটি রিকোয়েস্ট পাঠায় (যেমন, একটি URL ক্লিক করা)।
২. Routing:
Rails রাউটিং এই রিকোয়েস্ট সঠিক কন্ট্রোলারের কাছে পাঠায়।
৩. Controller:
কন্ট্রোলার মডেল থেকে প্রয়োজনীয় ডেটা নিয়ে আসে এবং সেই ডেটা প্রক্রিয়া করে।
৪. View:
ডেটা প্রস্তুত হওয়ার পর ভিউ টেমপ্লেটের মাধ্যমে HTML ফরম্যাটে রেন্ডার করা হয়।
৫. Response:
ভিউ ব্যবহারকারীর কাছে পাঠানো হয়, যা তারা তাদের ব্রাউজারে দেখতে পায়।
MVC এর সুবিধা
- কোড অর্গানাইজেশন:
অ্যাপ্লিকেশনের বিভিন্ন কাজ স্পষ্টভাবে আলাদা থাকে। - সহজ মেইনটেনেন্স:
কোড আপডেট করা এবং নতুন ফিচার যোগ করা সহজ। - ডেভেলপমেন্ট টিম ওয়ার্ক:
টিমে ভিন্ন ভিন্ন ডেভেলপার মডেল, ভিউ, এবং কন্ট্রোলারের উপর কাজ করতে পারে। - পুনঃব্যবহারযোগ্য কোড:
মডেল এবং ভিউ আলাদা হওয়ায় কোড সহজেই পুনঃব্যবহার করা যায়।
Ruby on Rails এ MVC আর্কিটেকচার ব্যবহার করে একটি ওয়েব অ্যাপ্লিকেশনকে কার্যকরভাবে সংগঠিত করা যায়। এটি ডেভেলপমেন্টের প্রতিটি ধাপকে সহজ এবং কাঠামোবদ্ধ করে তোলে।