"হাই, অ্যামিগো!"

"হাই, বিলাবো!"

"আপনি ইতিমধ্যে একজন দৃঢ় প্রোগ্রামার। তাই, আজ আমরা MVC এর উপর একটি পাঠ করতে যাচ্ছি।"

"MVC মানে মডেলভিউকন্ট্রোলার । এটি বড় অ্যাপ্লিকেশনের জন্য একটি আর্কিটেকচারাল ডিজাইন প্যাটার্ন, যেখানে অ্যাপ্লিকেশনটিকে তিনটি ভাগে বিভক্ত করা হয়েছে।"

"প্রথম অংশটিতে অ্যাপ্লিকেশনটির সমস্ত ব্যবসায়িক যুক্তি রয়েছে। এই অংশটিকে মডেল বলা হয় । এটিতে এমন কোড রয়েছে যা অ্যাপ্লিকেশনটি যা করার জন্য তৈরি করা হয়েছিল তা করে। এই অংশটি অন্যের উপর সবচেয়ে কম নির্ভরশীল।"

"দ্বিতীয় অংশে ব্যবহারকারীর কাছে ডেটা প্রদর্শনের সাথে সম্পর্কিত সবকিছু রয়েছে। এই অংশটিকে ভিউ বলা হয় । এতে এমন কোড রয়েছে যা উইন্ডো, পৃষ্ঠা, বার্তা ইত্যাদি প্রদর্শন নিয়ন্ত্রণ করে।"

"তৃতীয় অংশে এমন কোড রয়েছে যা ব্যবহারকারীর ক্রিয়াকলাপ প্রক্রিয়া করে । মডেল পরিবর্তন করার উদ্দেশ্যে যে কোনো ব্যবহারকারীর ক্রিয়াকলাপ এখানে পরিচালনা করা উচিত। এই অংশটিকে   কন্ট্রোলার বলা হয় ।"

"এই পদ্ধতিটি আপনাকে তিনটি জিনিস স্বাধীনভাবে তৈরি করতে দেয়:  প্রোগ্রামের যুক্তি (মডেল) , ব্যবহারকারীর কাছে প্রোগ্রামের ডেটা প্রদর্শনের প্রক্রিয়া (ভিউ) এবং ব্যবহারকারীর ইনপুট/ক্রিয়াগুলির জন্য একটি হ্যান্ডলার (নিয়ন্ত্রক) ।"

"অ্যাপ্লিকেশানগুলিতে প্রায়শই বেশ কয়েকটি ভিউ থাকে। এটি স্বাভাবিক। আপনি এক্সেলে সংখ্যা এবং ডায়াগ্রাম উভয়ের মতোই একই ডেটা দেখতে পারেন। গেমগুলিতে, আপনি প্রথম-ব্যক্তি, তৃতীয়-ব্যক্তি বা মানচিত্র দৃশ্য, এবং আরও অনেকের ইভেন্টগুলি দেখতে পারেন এই সবগুলোই একক মডেলের জন্য ভিন্ন ভিন্ন দৃষ্টিভঙ্গি ।"

"ব্যবহারকারীর ক্রিয়াকলাপের প্রতিক্রিয়ায় মডেলটিতে কী পরিবর্তন করতে হবে তা নির্ধারণ করে এমন সমস্ত কোড কন্ট্রোলারে একত্রিত হয় উদাহরণস্বরূপ, যদি ব্যবহারকারী প্রোগ্রামটি বন্ধ করার সিদ্ধান্ত নেন, তাহলে আপনাকে ডিস্কের একটি ফাইলে মডেলের ডেটা সংরক্ষণ করতে হবে৷ অথবা যদি ব্যবহারকারী নতুন ডেটা প্রবেশ করে, তাহলে আপনাকে এটি মডেলে যুক্ত করতে হবে৷ মডেলটি তখন ডেটা পরিবর্তন সম্পর্কে সমস্ত মতামতকে অবহিত করবে, তাই তারা শুধুমাত্র ডেটার বর্তমান অবস্থা প্রদর্শন করবে৷"

"আবার বলো."

"একজন জাভা ডেভেলপারের দৃষ্টিকোণ থেকে, আমরা বলতে পারি যে মডেল, ভিউ এবং কন্ট্রোলার হল ক্লাসের তিনটি গ্রুপ যেখানে:"

" ক)  প্রতিটি অংশের নিজস্ব উদ্দেশ্য আছে;"

" খ)  একটি একক গোষ্ঠীর শ্রেণীগুলির মধ্যে সম্পর্কগুলি খুব শক্তিশালী;"

" গ)  দলগুলোর মধ্যে সম্পর্ক খুবই দুর্বল;"

" d)  অংশগুলি একে অপরের সাথে যোগাযোগের উপায়গুলি ব্যাপকভাবে নিয়ন্ত্রিত হয়৷"

"এবং এখানে এটি চিত্রিত করার আরেকটি উপায় আছে:

MVC - 1

"মডেলটি সিস্টেমের সবচেয়ে স্বাধীন অংশ । এটি দৃশ্য বা কন্ট্রোলারের উপর নির্ভর করে না। মডেলটি ভিউ বা কন্ট্রোলার গ্রুপ(!) থেকে ক্লাস ব্যবহার করতে পারে না।"

"দর্শনের প্রাথমিক সীমাবদ্ধতা হল এটি মডেল পরিবর্তন করতে পারে না । দেখুন ক্লাসগুলি ডেটার জন্য বা ইভেন্টগুলিতে সদস্যতা নেওয়ার জন্য মডেলটি অ্যাক্সেস করতে পারে, কিন্তু দর্শন ক্লাসগুলি মডেল পরিবর্তন করতে পারে না।"

"নিয়ন্ত্রকের প্রাথমিক সীমাবদ্ধতা হল এটি ডেটা প্রদর্শন করে না । নিয়ামক ব্যবহারকারীর ক্রিয়াগুলি প্রক্রিয়া করে এবং সেই অনুযায়ী মডেলটিকে সংশোধন করে।"

"কিন্তু আমার কেন এটা দরকার?"

"আপনি যে এই মুহূর্তে এটি ব্যবহার করছেন না, তার মানে এই নয় যে আপনি অদূর ভবিষ্যতে এটি ব্যবহার করবেন না। আপনি এখানে একটি চাকরি পাওয়ার জন্য পড়াশোনা করছেন। এবং যদিও এই জ্ঞানটি কার্যকর না হলেও অধ্যয়ন, কাজ করার সময় এটি অবশ্যই কাজে আসবে।"

"সর্বোপরি, বাস্তব প্রকল্প এবং সাক্ষাত্কার এখনও আপনার জন্য অপেক্ষা করছে ..."

"আমরা এখানে এখন একসাথে কথা বলছি, তবে সম্ভবত এক মাসের মধ্যে আপনি ইতিমধ্যেই কাজ করবেন।"

"তুমি একদম ঠিক বলেছো বিলাবো। আমি তোমার কথা মনোযোগ দিয়ে শুনবো।"

"এমভিসি প্যাটার্নটি অ্যাপ্লিকেশন আর্কিটেকচারে খুব সাধারণ। আপনাকে এটি জানতে হবে, যাতে আপনি হঠাৎ মডেলটিতে ভিউ ক্লাস যোগ করা শুরু না করেন কারণ আপনি সেই উপায়টিকে আরও সুবিধাজনক মনে করেন।"

"যেকোনো প্রজেক্টের সবচেয়ে গুরুত্বপূর্ণ বিষয় হল এর স্থাপত্য।  এই পর্যায়ে আপনার কাজটি একটি ভাল স্থাপত্য তৈরি করতে সক্ষম হওয়া এত বেশি নয়, কারণ এটি অন্য কারোর বুঝতে শেখার জন্য। আপনাকে এখনও বড় হতে হবে আপনি নিজের তৈরি করার কয়েক বছর আগে। কিন্তু অন্যরা কী তৈরি করেছে তা আপনাকে বুঝতে হবে।

"যখন একটি অ্যাপ্লিকেশন একটি স্ট্যান্ডার্ড আর্কিটেকচার ব্যবহার করে, তখন সবকিছু অনেক পরিষ্কার হয়ে যায়। আর্কিটেকচার জানার মাধ্যমে, আপনি জানেন যে জিনিসগুলি কোথায় আছে, কীভাবে সবকিছু মিথস্ক্রিয়া করে, মোটামুটিভাবে কীভাবে প্রোগ্রাম কাজ করে, কোথায় একটি প্রয়োজনীয় শ্রেণী যোগ করতে হবে এবং কোথায় অনুসন্ধান করতে হবে। একটি বাগ."

"কিন্তু, আপনি যদি স্থাপত্যের আদর্শ পদ্ধতির সাথে পরিচিত না হন, তাহলে সেরা স্থাপত্যও আপনাকে কিছু বলবে না। আপনি মধ্যযুগের কৃষকের মতো হবেন যারা একটি নতুন গাড়ির দিকে তাকিয়ে থাকবেন। একটি আদর্শ গাড়ি।"

"আমি দেখছি। আকর্ষণীয় পাঠের জন্য ধন্যবাদ, বিলাবো।"

"অবশেষে, এখানে একটি ভাল লিঙ্ক যা আপনার অবশ্যই পরীক্ষা করা উচিত:"

অতিরিক্ত উপাদান লিঙ্ক