ইউনিট পরীক্ষা করা কি এমভিসি প্যাটার্নের প্রাথমিক উদ্দেশ্য?


14

সম্প্রতি একটি সাক্ষাত্কারে একটি প্রশ্ন ছিল 'আমরা এমভিসি কেন ব্যবহার করি?' আমি কেবল উত্তর দিয়েছি যে এটি কতটা কাছাকাছি, বাস্তব বিশ্বের সিস্টেমগুলি কতগুলি! রক্ষণাবেক্ষণ, স্কেলিবিলিটি ইত্যাদির ক্ষেত্রে এটি কী কী সুবিধা রয়েছে তা ব্যাখ্যা করে তবে তারা নিশ্চিত হন না এবং অবশেষে আমাকে বলেছিলেন যে এমভিসি মূলত 'সহজ ইউনিট পরীক্ষার সক্ষম করে' কারণ এটি ব্যবহৃত হয়।

যদিও আমি জানি যে এটিগুলির একটি বৈধ পয়েন্ট, তবে আমি এখনও সন্দেহ করি যে এটির প্রধান কারণ কারণ (i) আমি ইউনিট টেস্টকেসগুলি না লেখার সিদ্ধান্ত নিলেও, এমভিসি সম্ভাব্য পছন্দ (ii) অনেক জিইআইআই সিস্টেম যেখানে ইউনিট টেস্টকেসগুলি নেই সেখানে এমভিসি অনুসরণ করুন

সুতরাং প্রশ্নটি হচ্ছে 'ইউনিট কি এমভিসি প্যাটার্নের প্রাথমিক উদ্দেশ্য পরীক্ষা করছে?'

সম্পাদনা: আমি ধরে নিচ্ছি যে তারা টেস্ট চালিত বিকাশ / নুনিট টেস্টক্যাসগুলি লেখার স্বাচ্ছন্দ্যের কথা উল্লেখ করেছে। এটি কারণ আমরা মডেলটির জন্য পরীক্ষাগুলি লিখতে পারি (প্রদত্ত দর্শনটি মডেলের রাজ্যের পরিবর্তনের প্রতিফলন ঘটায়) - দয়া করে আমি ভুল হলে আমাকে সংশোধন করুন।


11
আপনি সাক্ষাত্কারটি পাস করেননি, আপনি কি? যদি না হয়, আপনি ভাগ্যবান। আমি এমন কোনও সংস্থায় যোগদান করব না যার শুরু থেকেই খুব ভুল ধারণা রয়েছে have :) ইউনিট টেস্টিং অবশ্যই প্রাথমিক উদ্দেশ্য নয়। এটি ইউনিট পরীক্ষায় সহায়তা করতে পারে কারণ উদ্বেগটি সমস্ত পৃথক হয়ে গেছে, তবে অবশ্যই প্রাথমিক উদ্দেশ্য নয়।
রুডি

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

@ রুডি নো আমি পাস করিনি: পি, এটি একটি শীর্ষস্থানীয় বিনিয়োগ ব্যাংকের দেব কেন্দ্র ছিল। এছাড়াও ছেলেরা অন্যান্য প্রশ্নের সাথে খুব ভাল এবং খুব খাঁটি লাগছিল এবং সে কারণেই আমি এই নিয়ে বিভ্রান্ত হয়েছি।
উইনডাব্লু

@ ডেডালনিক্স, হ্যাঁ সত্য..এই উত্তরগুলি আমি এখানে উত্তরগুলি দেখার পরে দেখি। তবে এখানে পোস্ট করার আগে আমি নিশ্চিত ছিলাম না।
উইনডাব্লু

আমি ডেডালনিক্সের সাথে পুরোপুরি একমত এই সংস্থায় যেতে হবে না।
রুডি

উত্তর:


33

মডেল, দৃষ্টিভঙ্গি এবং নিয়ামক হিসাবে পৃথক পৃথক দায়িত্ব রয়েছে বলে প্রাথমিক উদ্দেশ্য হবে "উদ্বেগের বিচ্ছেদ"।

মূল জেরক্স PARC কাগজ লেখক বলেন যে:

এমভিসির অপরিহার্য উদ্দেশ্য হ'ল মানব ব্যবহারকারীর মানসিক মডেল এবং কম্পিউটারে যে ডিজিটাল মডেল বিদ্যমান তা দূর করতে।

ইউনিট-টেস্টিং যদি প্রাথমিক উদ্দেশ্য হয় তবে এক সহজেই ইউনিট-পরীক্ষা দর্শন করতে সক্ষম হবে। ইউনিট-টেস্টিং প্রকল্পগুলি / ফ্রেমওয়ার্কগুলির আড়াআড়ি এক নজরে প্রকাশ পাবে যে এটি করা দাবির সম্পূর্ণ বিপরীত। কেউ সাধারণত ভিউটি পরীক্ষা করার জন্য সংহতকরণ এবং কার্যকরী পরীক্ষা ব্যবহার করে।


2
আমি বলব যে প্রাথমিক উদ্দেশ্যগুলি ডাইরেক্ট ম্যানিপুলেশন রূপককে সক্ষম করে তুলছে (এটি মূলত উদ্ধৃতিটি বলে) এবং ব্যবহারকারী ক্ষমতায়ন (এটি প্রাথমিকভাবে ধারণা করা হয়েছিল যে কেবলমাত্র মডেলগুলি প্রোগ্রামারদের দ্বারা রচিত হবে, ভিউস এবং কন্ট্রোলারগুলি শেষ ব্যবহারকারীদের দ্বারা লিখিত হবে)।
Jörg ডব্লু মিটাগ

14

আমার মতে, উত্তরটি দৃ firm় 'না'। এই নির্দিষ্ট সংস্থায় সম্ভবত এটিই ছিল প্রধান সুবিধা, তবে আমি এটিকে 'প্রাথমিক উদ্দেশ্য' বলব না।

আমার ধারণা, একরকম এমভিসি বাস্তবায়ন করা এতটা কঠিন হবে না, ইউনিট পরীক্ষা করা দারুণভাবে কঠিন (হেক - প্রথমবারের মতো আমি যেভাবে করেছিলাম তা খুব কম পরীক্ষামূলক ছিল)।

অন্যদিকে, কেউ বলতে পারেন যে কোনও প্যাটার্ন (সিঙ্গলটনের মতো জিনিসগুলি বাদ দিয়ে) ইউনিট টেস্টিংয়ে সহায়তা করে, যেহেতু তারা প্রায়শই ডিউপলিংকে প্রচার করে - তবে এটি কি তাদের 'প্রাথমিক উদ্দেশ্য'? কষ্টসহকারে।


12

ইউনিট টেস্টিংয়ের পরিচিতির আগে এমভিসি (ঠিক বেশিরভাগ জ্ঞাত নকশার ধরণগুলি) প্রায় ছিল। জিওএফ বইটি 1994 সালে প্রকাশিত হয়েছিল - এবং তারা কেবল বছরের আগে (কয়েক দশক না হলে) বছরের পর বছর ধরে ব্যবহৃত প্যাটার্নগুলি নথিভুক্ত করেছিল। (এবং এতে ইউনিট পরীক্ষার কোনও উল্লেখ নেই)) ইউনিট পরীক্ষার বিষয়ে, কখন এটি "সর্বজনীন" হয়েছে সে সম্পর্কে আমি সঠিক সময়টি সনাক্ত করতে পারি না - এক্সট্রিম প্রোগ্রামিং সম্পর্কিত নিবন্ধগুলিতে আমি ব্যক্তিগতভাবে এটি পড়েছিলাম এবং প্রথম এক্সপি বইটি 1999 সালে বেরিয়ে এসেছিল।

সুতরাং স্পষ্টতই ইউনিট টেস্টিং নিদর্শন উদ্ভাবন / ডকুমেন্টিংয়ের মূল উদ্দেশ্য হতে পারে না - যদিও কেবল এটিই বলা উচিত যে নিদর্শনগুলি যখন ভালভাবে প্রয়োগ করা হয় তখন ইউনিট পরীক্ষার ব্যাপকভাবে সুবিধার্থে করা যায়।


সময়রেখার উল্লেখটি একটি দুর্দান্ত উল্লেখ- যুক্তিযুক্তভাবে যুক্তি সমর্থন করে supports
উইনডাব্লু

তারিখটি সহ samll সমস্যা আছে বলে মনে হচ্ছে। heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html বলে "এমভিসি একটি নির্দিষ্ট সমস্যার নকশা সমাধান হিসাবে 1978 সালে ধারণ করা হয়েছিল"। কোনও উদ্বেগ নেই ... তবুও আপনার যুক্তি ভাল ধরে রেখেছে- ইউনিট পরীক্ষার সূচনা হওয়ার আগে এমভিসি সেখানে ছিল।
উইনডাব্লু

কমপক্ষে 1980 এর দশক থেকে ইউনিট টেস্টিং প্রায় হয়েছে। আমি তখন থেকেই আমার কেরিয়ার শুরু করছিলাম এবং আমি যে কয়েকটি প্রকল্পে কাজ করেছি তার ইউনিট পরীক্ষা ছিল (এবং এটি তখন কোনও নতুন ধারণার মতো মনে হয়নি)) আমাদের কাছে এখন আমাদের তৈরি প্রাক-নির্মিত ফ্রেমওয়ার্কগুলি ছিল না।
গ্রিনম্যাট

2
@ গ্রিনম্যাট, আমি জানি ইউনিট টেস্টিং কেন্ট বেক দ্বারা উদ্ভাবিত হয়নি, কেবল পুনরায় ব্যবহৃত হয়েছিল :-) তবে এক্সপি এবং অ্যাজিলে এটির ব্যাপক প্রচার শুরু করার আগে আফ্রিকের তুলনামূলকভাবে অজানা ছিল।
পিয়েটার তারেক

@ পেটার টার্ক: আমার মনে আছে 1) কলেজ থেকে ফেরার পথে ব্যক্তিগত ফাংশনগুলি পরীক্ষা করার জন্য আমার নিজের সহজ কোডটি লেখা (1980 এর দশকের মাঝামাঝি আমার জন্য) এবং আমি অন্য কারও কাছ থেকে ধারণা পেয়েছি; 2) "কোডিং এবং ইউনিট টেস্টিং" (বনাম কেবল "কোডিং") নামে একটি পর্বের সাথে 80 বা 90 এর দশকে জলপ্রপাতের মডেল সম্পর্কে কাগজপত্রগুলি পড়ার এবং পড়ার। (দুঃখিত, আমি মনে করি না কোথায়, তাই উদ্ধৃতি সরবরাহ করতে পারে না।) সুতরাং, ইউনিট পরীক্ষাটি প্রায় বেশিরভাগ সময় ধরে বিকশিত হয়েছিল
গ্রিনম্যাট

2

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


0

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

এএসপি.নেট এমভিসির কয়েকটি সক্ষমতা রয়েছে যা আপনাকে নিম্নলিখিতগুলির মধ্যে এক বা একাধিক প্রয়োজন হলে এটি চয়ন করতে সেরা বিকল্প হিসাবে তৈরি করে:

Generated উত্পন্ন এইচটিএমএলটির উপর একটি উচ্চ স্তরের নিয়ন্ত্রণ : ওয়েব ফর্মগুলির বিপরীতে, এএসপি.নেট এমভিসি-র ভিউগুলি আপনাকে যেমন বলবে ঠিক তেমনই HTML সরবরাহ করে। সম্প্রতি, ওয়েব ফর্মগুলি এই ক্ষেত্রে উন্নত করা হয়েছে তবে এখনও এমভিসির নিয়ন্ত্রণের স্তর নেই।

সহজ ইউনিট টেস্টিং : ASP.NET MVC সঙ্গে, এটা খুব সহজ ধরনের পরীক্ষা চালিত ডেভেলপমেন্ট (TDD- এ) হিসেবে নিদর্শন পরীক্ষা অনুসরণ করা হয়। ওয়েব-ফর্মগুলিতে জটিল ইভেন্ট লাইফাইসাইকেলের কারণে, একটি নিয়ন্ত্রণ-ভিত্তিক কাঠামোর শীর্ষে, এমডিসি সহ টিডিডি অনেক সহজ is

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

অন্যান্য কিছু সুবিধা হ'ল:

V নিজেই এমভিসি প্যাটার্নটি প্রয়োগের কার্যকারিতাটিকে তিনটি মূল অংশ, মডেল, দর্শন এবং নিয়ামককে স্পষ্ট করে আলাদা করে জটিলতা পরিচালনা করা সহজ করে তোলে।

• এএসপি.নেট এমভিসি ওয়েব অ্যাপ্লিকেশনগুলি দর্শন স্থিতি বা সার্ভার-ভিত্তিক ফর্মগুলি ব্যবহার করে না। এটি এমভিসি কাঠামোটিকে এমন বিকাশকারীদের জন্য আদর্শ করে তোলে যারা কোনও অ্যাপ্লিকেশনটির আচরণের উপরে সম্পূর্ণ নিয়ন্ত্রণ চায়। ভিউ স্টেটটি খুব বড় হয়ে উঠতে পারে, যা ধীর গতির নেটওয়ার্কগুলিতে স্মার্টফোনের মতো চলমান ডিভাইসের জন্য সমস্যা (সমস্ত তথ্য প্রেরণ করা খুব ধীর হতে পারে)। একটি ওয়েব ফর্মের পৃষ্ঠায়, আপনার প্রতি পৃষ্ঠায় কেবল একটি থাকতে পারে। এটি বেশ বড় বাধা। এমভিসিতে এ জাতীয় কোনও বিধিনিষেধ নেই is যা আপনার নিজের পছন্দ মতো উপাদান থাকতে পারে।

• এএসপি.নেট এমভিসি পরীক্ষা-চালিত বিকাশের (টিডিডি) উন্নত সহায়তা সরবরাহ করে।

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

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