জ্যাঙ্গো বনাম মডেল ভিউ কন্ট্রোলার [বন্ধ]


110

জাঙ্গো এবং মডেল ভিউ কন্ট্রোলার প্যাটার্নের মধ্যে ডিফারেন্সগুলি কোথায় কেউ আমাকে ব্যাখ্যা করতে পারে?

কার্যকরীভাবে, আমরা এই পার্থক্যগুলি থেকে কী আশা করতে পারি - উদাহরণস্বরূপ, জেলাগুলির সাথে তুলনামূলকভাবে আলাদাভাবে কাজ করে কী?


2
আপনি যখন "দ্য" মডেল ভিউ কন্ট্রোলার বলছেন, আপনি কি সাধারণ প্যাটার্ন বা একটি নির্দিষ্ট প্রয়োগ (যেমন রেল অন রুবেল) এর অর্থ বোঝায়?
পল ডি ওয়েট

33
এই প্রশ্নটি 'গঠনমূলক নয়' হিসাবে যোগ্য নয় এবং "বিতর্ক, যুক্তি, পোলিং বা প্রসারিত আলোচনা" ছাড়াই এর সরাসরি উত্তর রয়েছে। তাহলে কেন এটি বন্ধ?
ব্যবহারকারী

6
গঠনমূলক না? আবারও সুপার মোডের ধর্মঘট।
অমিত ত্রিপাঠি

4
আজ অবধি প্রায় 24,000 মানুষ এই প্রশ্নটি গঠনমূলক বলে মনে করেছেন। আমাকে সহ.
হিমশীতল

3
2017 হিসাবে, এই প্রশ্নটি এখনও গঠনমূলক
লিওনার্দো পেসোসা

উত্তর:


140

জ্যাঙ্গো বুক অনুসারে , জাঙ্গো এমভিসি প্যাটার্নটিকে এমভিসি কাঠামো বলা যেতে পারে নিচের দিকে অনুসরণ করে।

জ্যাঙ্গোকে একটি এমটিভি কাঠামো হিসাবে উল্লেখ করা হয়েছে কারণ নিয়ামক নিজেই ফ্রেমওয়ার্কটি পরিচালনা করেন এবং বেশিরভাগ উত্তেজনা মডেল, টেম্পলেট এবং দৃশ্যে ঘটে।

আপনি এমটিভি / এমভিসি সম্পর্কে এখানে আরও পড়তে পারেন:

এমটিভি (বা এমভিসি) বিকাশ প্যাটার্ন

আপনি এই ধরনের পাগল নেভিগেশন রুবি হিসাবে অন্যান্য MVC ওয়েব উন্নয়ন পরিকাঠামোর সাথে পরিচিত হন, আপনি জ্যাঙ্গো মতামত বিবেচনা করা হতে পারে কন্ট্রোলার এবং জ্যাঙ্গো টেমপ্লেট হতে মতামত

এমভিসির বিভিন্ন ব্যাখ্যা দ্বারা এটি একটি দুর্ভাগ্যজনক বিভ্রান্তি।

এমভিসির জ্যাঙ্গোর ব্যাখ্যায়, ভিউটি সেই ডেটা বর্ণনা করে যা ব্যবহারকারীর কাছে উপস্থাপিত হয়; এটি কেবল ডেটা দেখতে কেমন তা নয়, তবে কোন ডেটা উপস্থাপন করা হয়েছে তা।

বিপরীতে, রুবেল অন রেলস এবং অনুরূপ ফ্রেমওয়ার্কগুলি পরামর্শ দেয় যে কন্ট্রোলারের কাজের মধ্যে সিদ্ধান্ত নেওয়া হয় যে কোন তথ্য ব্যবহারকারীর কাছে উপস্থাপিত হবে, যখন ভিউটি কঠোরভাবে ডেটা কীভাবে দেখায়, কোন তথ্য উপস্থাপন করা হয় তা নয়।


6
দুর্দান্ত উত্তরের জন্য ধন্যবাদ। কারাগার থেকে জ্যাঙ্গোতে আগত, এটি আমার কাছে সবচেয়ে হতাশাব্যঞ্জস্যিত বিষয়গুলির একটিটির জবাব দেয়: কেন জাঙ্গা ভিউ.পি নামে একটি ফাইলটিতে কন্ট্রোলার কোড রাখে ??
ডিজিএমদান

@ ডিজিএমদান এটি কেবল একটি ডিফল্ট কনভেনশন, আপনি নিজের পছন্দ মতো নামটি চয়ন করতে পারেন। তবে আমি একমত, এটি অদ্ভুত বলে মনে হচ্ছে :)
পাওলো মোরেটি

1
আমি জ্যাজোর বিভ্রান্তি এড়াতে ভিউস.পিকে বরং ভিউ লেয়ার হিসাবে রেখে কন্ট্রোলার ক্লাসগুলির একটি নিয়ামক প্যাকেজে তৈরি করতে চাই।
stanleyxu2005

5
@ ডিজিএমডিএ: "কন্ট্রোলার" ধারণাটি ওয়েব অ্যাপসটিতে একটি ভুল নাম হিসাবে বিবেচনা করুন। এমভিসি একটি ইভেন্ট চালিত ফ্রেমওয়ার্ক যা কেবলমাত্র HTTP- র স্টেটলেস রিকুয়েস্ট / রেসপন্স মডেলের সাথে খাপ খায় না। এটি প্রথম স্থানে এমভিসি বলা উচিত নয়। প্রায় সকল ওয়েব অ্যাপস এমভিসি নয়, তবে একটি মডেল এবং একটি ফাংশন বা শ্রেণি সাধারণত একটি ভিউ নামে পরিচিত। পরিবর্তে ভিউ এইচটিএমএলকে কোনও টেম্পলেটে রেন্ডারিং করতে পারে তবে এটির দরকার নেই। সুতরাং আসলে কোনও নিয়ামক নেই।
লেনার্ট রেজেব্রো

2
আমি Lennart Regebro এর ধারণা যে HTTP- র মত একটি আড়ম্বরহীন মডেল একটি নিয়ামক এবং webapps জন্য একটি MVC মডেল থাকা উচিত নয় ব্যাক শুধু প্রধান বিভ্রান্তির সম্পর্কে এনেছে
Hussam

23

জ্যাঙ্গো এফএকিউ নিজেই শুরু করার জন্য একটি শালীন জায়গা:

এমভিসির আমাদের ব্যাখ্যায়, "ভিউ" সেই ডেটাটি বর্ণনা করে যা ব্যবহারকারীর কাছে উপস্থাপিত হয়। এটি ডেটা দেখতে কেমন তা নয়, তবে কোন ডেটা উপস্থাপন করা হয়েছে তা। আপনি কোন ডেটা দেখছেন তা আপনি কীভাবে দেখবেন তা এই দর্শনটি বর্ণনা করে। এটি একটি সূক্ষ্ম পার্থক্য।

...

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

তাহলে "নিয়ামক" কোথায় ফিট? জ্যাঙ্গোর ক্ষেত্রে সম্ভবত এটি কাঠামোটি নিজেই রয়েছে: জাজানো ইউআরএল কনফিগারেশন অনুসারে যথাযথ দৃশ্যে একটি অনুরোধ প্রেরণকারী যন্ত্রপাতি।

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

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


3
এটি সম্ভবত সবচেয়ে সরাসরি উত্তর।
ব্যবহারকারী

11

যখন আপনি কোড করেন, ফ্রেমওয়ার্কের টুকরোগুলির নাম সম্পর্কে চিন্তা না করে, সেখানে কোনও সংবেদনশীল পার্থক্য নেই, উদাহরণস্বরূপ আরআর। তবে এটি আপনার দেওয়া ব্যবহারের উপর নির্ভর করে models, যেহেতু জাজানোতে এগুলিতে সহজেই কিছু যুক্তি থাকে যা অন্য কাঠামোর উপর নিয়ামক স্তরে থাকবে।

viewজ্যাঙ্গো উপর আনার ডেটার জন্য প্রশ্নের একটি সেট, তাদের টেমপ্লেটে পাস থাকে।


10
একজন viewsজ্যাঙ্গো একটি ভালো কিছু হয় controllerMVC এবং একটি templateজ্যাঙ্গো আরও সম্ভবত একটি হলviews
Roel

7

এমভিটি-তে, কোনও URL- তে একটি অনুরোধ একটি ভিউতে প্রেরণ করা হয়। এই ভিউটি মডেলটিতে কল করে, ম্যানিপুলেশনগুলি সম্পাদন করে এবং আউটপুট জন্য ডেটা প্রস্তুত করে। ডেটা এমন কোনও টেম্পলেটের কাছে প্রেরণ করা হয় যা প্রতিক্রিয়া হিসাবে নির্গত হয়। আদর্শভাবে ওয়েব ফ্রেমওয়ার্কগুলিতে, কন্ট্রোলারটি দৃশ্য থেকে লুকানো থাকে।

এখানেই পার্থক্যটি এমভিসি থেকে: এমভিসিতে ব্যবহারকারী গুইয়ের সাথে যোগাযোগ করে, নিয়ামক অনুরোধটি পরিচালনা করে এবং ফলাফলটি ব্যবহারকারীর কাছে প্রদর্শন প্রদর্শনের জন্য মডেলটি এবং ভিউয়ের প্রশ্নের সন্ধান করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.