MVC এর পূর্ণরূপ হচ্ছে Model View Controller. যা ইতিমধ্যে আপনি জেনে থাকবেন। MVC হচ্ছে সফটওয়ার ডিজাইন প্যাটার্ণ বা সফটওয়ার আর্কিটেকচার প্যাটার্ন বা সফটওয়ার ডেভেলপমেন্ট মেথডলজি। MVC এর উদ্যেশ্য হচ্ছে কোডের সঠিক ব্যবহার এবং লজিক্যাল কোড এবং ইন্টারফেস কোড আলাদা করা।
সফটওয়ার ডেভেলপমেন্ট, ওয়েব সাইট/অ্যাপ ডেভেলপমেন্ট বা যে কোন মোবাইল অ্যাপ ডেভেলপমেন্ট করার আগে MVC বা এরকম সফটওয়ার আর্কিটেকচার প্যাটার্ন সম্পর্কে জানা দরকার।
MVC একটি সফটওয়ারকে তিনটি প্রধান ভাগে ভাগ করেঃ
- Model
- View
- Controla
মডেলের মধ্যে থাকে আমাদের সফটওয়ারটা কি ধরনের কাজ করবে, কি ভাবে কাজ করবে ইত্যাদি। তা ছাড়া আমাদের সফটওয়ারে যদি ডেটাবেজ ব্যবহার করতে হয়, তাহলে এই ডেটাবেজ এর সাথে যোগাযোগের কাজ ও করে থাকে এই মডেল পার্ট।
ভিউ হচ্ছে সফটওয়ার এর প্রেজেন্টেশন লেয়ার। একটি সফটওয়ার স্কিনে কি দেখাবে, সফটওয়ারের কালার কেমন হবে, ইত্যাদি থাকে এই পার্টে। যাকে ইউজার ইন্টারফেস পার্ট বলা হয়।
কন্ট্রোলারের কাজ হচ্ছে মডেল এবং ভিউ এর মধ্যে যোগাযোগ সম্পাদন করা । ইউজার সফটওয়ারটি ব্যবহার করবে ভিউ কন্ট্রোলার ব্যবহার করে, যখন সফটওয়ারে কোন কাজ সম্পাদন করবে / সফটওয়ারের সাথে ইন্টারেক্ট করবে, তা হেন্ডেল করবে কন্ট্রোলার। কন্ট্রোলার ইন্টারেকশনটা গ্রহণ করবে এবং তা মডেলে পাস করে দিবে। মডেল লজিক অনুযায়ী কাজ সম্পাদন করবে এবং রেসপন্স পাঠাবে কন্ট্রোলারে। রেসপন্স অনুযায়ী আবার তা ভিউতে দেখাবে।
MVC এর সুবিধে হচ্ছে এই তিন রকম পার্টের কোড গুলোকে আলাদা করা। ফলে যখন আমাদের ইউজার ইন্টারফেসে কিছু পরিবর্তন করব, তখন শুধু View পার্টের কোড পরিবর্তন করলেই কাজ হবে। আবার যখন আমাদের সফটওয়ারের মূল লজিকের কোন অংশে পরিবর্তন করব, তখন পুরো সফটওয়ারের কোড পরিবর্তন না করে শুধু লজিক্যাল কোড গুলো পরিবর্তন করলেই কাজ হবে।
আরেকটা প্রধান সুবিধে হচ্ছে বড় প্রজেক্টে কাজ করা। বড় প্রজেক্টের এই তিন অংশের জন্য তিন রকম প্রোগ্রামার / কোডার কাজ করে। একজন আরেকজনের উপর নির্ভর না করেই কাজ করতে পারে।
MVC এর মত এমন আরো অনেক গুলো সফটওয়ার ডিজাইন প্যাটার্ন রয়েছে। আমরা যখন কোন ফ্রেমওয়ার্ক এর নাম শুনি, সে গুলতে এরকম MVC বা অন্য কোন সফটওয়ার ডিজাইন প্যাটার্ন ব্যবহার করে কোড লেখা থাকে। লেখা থাকে অনেক গুলো লাইব্রেরী। তখন ঐ ফ্রেমওয়ার্ক ব্যবহার করে আমাদের কাজ অনুযায়ী সফটওয়ার ডেভেলপ করে নিতে পারি। প্রত্যকটি প্রোগ্রামিং ল্যাঙ্গুয়েজে ভিন্ন ভিন্ন রকম সফটওয়ার, অ্যাপ, ওয়েব অ্যাপ ইত্যাদি তৈরি করার জন্য অনেক গুলো ফ্রেমওয়ার্ক রয়েছে। আপনি যে প্রোগ্রামিং এ কোড করবেন, তার জন্য নিজের পছন্দেরটি খুঁজে নিতে গুগলের সাহায্য নিতে পারেন। ইচ্ছে করলে আমরা নিজেরাও নিজেদের মত একটা ফ্রেমওয়ার্ক তৈরি করে নিতে পারি। কিন্তু তা Reinventing the wheel এর মত হয়ে যাবে। কি দরকার যেটা অলরেডি তৈরি করা আছে, তা ব্যবহার না করে নিজে নতুন করে তৈরি করার?
বেশ ভালো হয়েছে।
onek sundor kore bujhiye bolcen bhai ,,love u bhai , god bless u 🙂