লাইন অফ বিজনেস অ্যাপ্লিকেশনে এমভিভিএমের মান (এবং বর্তমান বিকাশের অনুশীলনের একটি ভাড়া)


9

2 বছর পরে, আমি এখনও এমভিভিএমের সাথে ওয়ার্কিং সফ্টওয়্যার তৈরির ব্যবহারিক পদ্ধতি হিসাবে লড়াই করছি। কিছু ক্ষেত্রে এটি দুর্দান্ত। আমি একটি মাল্টিথ্রেডেড অ্যাপ্লিকেশন করেছি যা একটি ছোট অ্যাসেমব্লি লাইন নিয়ন্ত্রণ করে যা এমভিভিএম ধারণা ছাড়া দুঃস্বপ্ন হতে পারে। শারীরিক সমাবেশ লাইন থেকে একটি বিমূর্ততা প্রায় একটি বুদ্ধিমান ছিল।

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

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

স্বীকার করা, আমি সত্যিই ডাব্লুপিএফের ডেটাবাইন্ডিং পছন্দ করি। এর সদ্ব্যবহার করতে, আমি উইন্ডোতে ডেটা প্রসঙ্গটি সেট করেছিলাম, যেখানে এটিতে ব্যবসায় শ্রেণীর পাশাপাশি অন্য কোনও পর্যবেক্ষণযোগ্য বৈশিষ্ট্য অ্যাক্সেস রয়েছে। হ্যাঁ আমি প্রায় প্রতিটি এমভিভিএম "নিয়ম" এটি করে ভঙ্গ করি। তবে কমপক্ষে আমার কাছে সহজ ইভেন্ট চালিত কোড রয়েছে যা পড়তে সহজ এবং আমি নতুন ডেটাবাইন্ডিং এবং বৈধকরণের সুবিধা নিতে পারি। সমস্যাটি ডিজাইনারদের মধ্যে রয়েছে - যা আমি এত বেশি ব্যবহার করি না তবে এখন আশা করি এটি ২০১২ সালে আরও ভালভাবে সংহত হয়েছে - ডিজাইনার একটি উইন্ডো এবং এর বেস ক্লাসগুলির শত শত সম্পত্তি দেখায়।

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

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


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

"লোকেরা যখন 'উইন্ডো'র জন্য' নির্ভরতা ইনজেকশন 'এবং' মেসেজিং সরবরাহকারী'দের দীর্ঘ বিস্তৃতিতে যায়, তখন অন্য কারও কি অদ্ভুত লাগছে না? শো ডায়ালগ কলটি প্রায় কয়েক দশক ধরে রয়েছে?" আমি এটিকে বিরক্তিকর বলে মনে করি, তবে এই ধরণের লোকটির মধ্যে getsুকে পড়ার লোকটি (আসলে কিছু করার ক্ষতির দিকে) বরাবরই মাঠের একটি অংশ ছিল, এবং দুর্ভাগ্যবশত, সম্ভবত সর্বদা থাকবে। সর্বোত্তম কৌশল হ'ল তাদের যথাসম্ভব উপেক্ষা / বিভ্রান্ত করা।
ব্যবহারকারী 1172763

উত্তর:


10

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

ওয়েবফর্মগুলি হ'ল এক মাত্র, ব্যতিরেকে এটি একটি রাষ্ট্র বিহীন সিস্টেমের (ওয়েব) উপর রাষ্ট্রীয় বিমূর্ততা হওয়ার অতিরিক্ত জটিলতায় ফেলে। রব কনারি যেমন লিখেছেন:

ওয়েব ফোরাম একটি মিথ্যা। এটি বিমূর্ততা ছদ্মবেশে মোড়ানো মিথ্যা সসের সাথে আবৃত sle আপনি ওয়েবফর্মগুলির সাথে কিছুই করবেন না ওয়েবের সাথে কোনও সম্পর্ক নেই - আপনি এটি আপনার জন্য কাজটি করতে দিন।

এটি, সেই লোকটির কাছ থেকে যা dynamicসি # তে কীওয়ার্ড এবং কেবলমাত্র চারশো কোডের কোড ব্যবহার করে একটি সম্পূর্ণ কার্যকরী অবজেক্ট-রিলেশনাল ম্যাপার লিখেছিল । তিনি যখন কোনও বিষয়ে কর্তৃত্বের সাথে কথা বলেন, আমি শুনি।

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

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

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

এর কোন কিছু কি চেনাজানা মনে হচ্ছে? এটা করা উচিত; এটি মূলত ডেটা বাঁধাইয়ের একটি দরিদ্র-মানুষের ফর্ম।

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

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

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

বিবেচনা করুন জন Resig এর jQuery গ্রন্থাগারের: এটা একটি সুসঙ্গত নকশা খুব সারাংশ, এবং এটা সম্পর্কে অদ্ভুত বিস্তারিত অনেকটা লুকিয়ে রাখে করে DOM উপায় ব্রাউজার এটি পরিচালনা মধ্যে বৈচিত্র, এবং। জাভাস্ক্রিপ্টের কয়েকটি লাইন লিখতে কি সহজ? কখনও কখনও। তবে সুসংগত, ইউনিফর্ম এপিআইতে jQuery কোড লেখার সুবিধাটি পরবর্তী ব্যক্তির পক্ষে আপনার কাজটি বোঝার পক্ষে সহজ করে তোলে এবং প্রয়োজনে সেই কোডটি বজায় রাখে।

"বিগ অ্যাপ্লিকেশন" মডেলগুলির সাথে আমার আসল অভিজ্ঞতাটি এএসপি.নেট এমভিসি ব্যবহারের ক্ষেত্রে। উইনফর্মগুলি ডাব্লুপিএফের মতো এএসপি.এনইটি এএসপি.নেট এমভিসি-তে। আমি যখন এএসপি.এনইটি-তে কাজ করেছি, আমি সর্বদা এটি আমার ইচ্ছার দিকে বাঁকানোর জন্য সংগ্রাম করেছি। এএসপি.নেট এমভিসি আপনার কাছে বাঁকায়। এটি ব্যবহার করার জন্য একটি আনন্দ; এটি এমন একটি সিস্টেম কাঠামো তৈরি করে যা পরিষ্কার এবং সুসংহত এবং আপনার প্রয়োগ এবং মার্কআপের উপরে আপনাকে সম্পূর্ণ নিয়ন্ত্রণ দেয় full আপনি জাভাস্ক্রিপ্ট, jQuery এবং CSS উদারভাবে ব্যবহার করতে পারেন এবং ASP.NET এমভিসি আপনার উপায় থেকে দূরে থাকে।

আমার একমাত্র প্রতিবন্ধকতা এটির অভ্যস্ত হয়ে উঠছিল, এবং এটি তার নিজের শর্তে জানতে পেরেছিল।

আরও পড়ার
আপনার রব কনারি দ্বারা এমভিসি শিখতে হবে


সত্যিকারের চিন্তাভাবনার জবাবের জন্য আপনাকে কাদা বড় বল - ধন্যবাদ ক্লাসিক এসপ এবং স্প্যাগেটি কোডের দিনগুলিতে আমি অবশ্যই সেভাবে অনুভব করেছি। ভিবি 6 / এমটিএস সহ 3 টি টায়ার্ড ডিজাইন এটির একটি দুর্দান্ত চুক্তি স্থির করে এবং তারপরে। নেট এর প্রকাশের সাথে এটি সমস্ত একত্রিত হয়। তবে এখন যদি মনে হয় অতিরিক্ত প্যাটার্নগুলির রিটার্নগুলি দ্রুত নির্মূল হচ্ছে - আপনার কোয়ার্টারের মাইল সময় থেকে 1 সেকেন্ড সময় নিতে 1M ডলার ব্যয় করার মতো। "আমি আক্রমণাত্মকভাবে কোডের প্রতিটি বিটকে আলাদা আলাদা সমাবেশে ঠেলে দিয়েছিলাম" - আপনি কি খুঁজে পান না যে এটি একটি অবিশ্বাস্যভাবে ভাঙ্গা বিকাশের অভিজ্ঞতা দেয় - দুটি লাইন পড়ার জন্য অবিচ্ছিন্নভাবে ফাইল থেকে ফাইলের মধ্যে ঝাঁপিয়ে পড়ে?
b_levitt

3
don't you find that this gives an incredibly fractured development experience - constantly jumping from file to file to read two lines?- না, এটা বিপরীত। এর মতো অন্য কোনও সমাবেশে রাখার ফলে আপনার মনকে তার নিজের ছোট্ট কালো বাক্স হিসাবে প্রতিটি শ্রেণি এবং পদ্ধতিতে নিজস্ব শর্তাদির উপর মনোনিবেশ করতে মুক্ত করে। এটি কাদা একটি বড় বল সঙ্গে খুব কঠিন। এমভিসি একই নীতিতে কাজ করে: পাতলা নিয়ামক, ফ্যাট মডেল, একেবারে প্রয়োজনীয় না হলে ভিউতে কোনও কোড নয়।
রবার্ট হার্ভে

3
ইয়াগনি কেবল তখনই প্রয়োগ হয় যখন আপনি নিজেরাই কোড লিখছেন। আপনি যদি একটি সাধারণ লাইব্রেরি লিখছেন যা অবশ্যই বিভিন্ন প্রয়োজনের সাথে বিস্তৃত দর্শকদের সন্তুষ্ট করতে পারে তবে আপনার এটির প্রয়োজন হবে।
রবার্ট হার্ভে

1
আমার কাছে এএসপি.এনইটি লাইফ চক্রের বিপরীতে কিছুই নেই; আমি এটি দেখতে পেয়েছি যে লোকেরা এটি কার্যকরভাবে ব্যবহার করতে পারে। আমি কেবল এটিকে পাল্টা স্বজ্ঞাত মনে করি, এটিই যথেষ্ট। আপনি যদি না চান তবে এএসপি.নেট এমভিসি আপনাকে কোনও ক্লায়েন্ট-পাশ বিকাশ করতে বাধ্য করে না; আপনি "বোবা" মতামত ব্যবহার করতে পারেন এবং এটি পুরোপুরি সূক্ষ্মভাবে কাজ করে। লক্ষণীয় মূল্য: এই উপাদানগুলির অনেকগুলি কোড তৈরি করা যেতে পারে (যেমন একটি উইন্ডোজ ফর্মের মতো), তাই আপনি নিজের কোডটি সমস্ত লেখেন এমন নয়। আমি বুঝতে পারি যে এটি ডাব্লুপিএফ-এর সাথে কম সত্য, যেখানে আপনাকে এক্সএএমএল-এর সাথে ডিল করতে হবে, এবং আমি মনে করি সেখানে উন্নতির কোনও জায়গা নেই।
রবার্ট হার্ভে

2
dozens of lines of plumbing to replace Window.Show- এটি একটি ওভারসিম্প্লিফিকেশন কিছুটা। উইন্ডোর তথ্য প্রয়োজন হয়, তাহলে সবসময় হতে যাচ্ছে কিছু নদীর গভীরতানির্ণয় ধরনের উইন্ডোর নিয়ন্ত্রণগুলি মধ্যে যে ডেটা পেতে, এবং তদ্বিপরীত। আপনি হয় প্রতিবার তৈরি কোডটি আপনার তৈরি প্রতিটি ফর্মের জন্য বারবার লিখতে পারেন বা ডেটা বাইন্ডিং এর মতো সাধারণ সমাধানের কোনও ফর্ম নিয়োগ করতে পারেন।
রবার্ট হার্ভে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.