উত্তর:
যদি কোনও কাঠামোর মতামত দেওয়া হয় তবে এটি তাদের লক করতে বা তাদের কাজ করার পথে আপনাকে গাইড করে।
উদাহরণস্বরূপ: কিছু লোক বিশ্বাস করে যে কোনও কাঁচা এইচটিএমএল ফিরিয়ে দেওয়ার জন্য সিস্টেমটি উন্মুক্ত করে দেওয়ায় কোনও টেম্পলেট সিস্টেম ব্যবহারকারীর সংজ্ঞায়িত পদ্ধতি এবং ফাংশনগুলিতে অ্যাক্সেস সরবরাহ করতে পারে না। সুতরাং একটি মতামত কাঠামো বিকাশকারী কেবল ডেটা স্ট্রাকচার অ্যাক্সেসের অনুমতি দেয়। ডিজাইনের মাধ্যমে, সফ্টওয়্যারটি ডিজাইনারকে তাদের জিনিসগুলি করতে সীমিত করে এবং উত্সাহ দেয়।
আরেকটি উদাহরণ ( সিগন্যাল লিঙ্ক থেকে নেওয়া ) হ'ল উইকির । উইকের ডিজাইনারদের প্রচুর মতামত ছিল। তারা ভেবেছিল এইচটিএমএল লোকেরা লেখার পক্ষে খুব জটিল, তাই তারা যা অনুভব করেছে তা নিয়ে এসেছিল বিষয়বস্তু আপডেট করার আরও প্রাকৃতিক উপায়। তারা এটিকে অভিনব নকশার বিষয়টিও ছিনিয়ে এনেছে কারণ তারা অনুভব করেছিল যে নকশার চেয়ে বিষয়বস্তুতে ফোকাস হওয়া উচিত।
অ্যাপল যখন তার পণ্যগুলি ডিজাইন করে তখন দৃ strong় মতামত রয়েছে।
অ-মতামতযুক্ত সফ্টওয়্যার ডিজাইনটি আরও বেশি পার্ল / পিএইচপি এর মতো। এটি বিকাশকারীকে সহায়তা দেয় এবং বিকাশকারীকে সঠিক সিদ্ধান্ত নিতে এবং তাদের হাতে আরও নিয়ন্ত্রণ আরোপ করে us
আমি মাইক্রোসফ্টকে অ-মতামতযুক্ত কলামে রাখব। একটি Microsoft ফ্রেমওয়ার্ক যা একটি ভাল উদাহরণ আন-opininated: .NET
। সিএলআর এবং চশমাগুলি খোলার মাধ্যমে, এটি এটিকে বিভিন্ন ধরণের ভাষা এবং বাস্তবায়নের শৈলীতে খোলে।
মতামতযুক্ত সফ্টওয়্যারটির অর্থ হল যে জিনিসগুলি করার জন্য মূলত একটি উপায় ( সঠিক উপায় things) রয়েছে এবং এটি অন্যরকমভাবে করার চেষ্টা করা কঠিন এবং হতাশার কারণ হবে। অন্যদিকে, জিনিসগুলি সঠিক উপায়ে করা decisions সফটওয়্যারটির সাথে বিকাশ করা খুব সহজ করে তুলতে পারে কারণ আপনার যে সিদ্ধান্ত নিতে হবে তা হ্রাস পেয়েছে এবং সফ্টওয়্যার ডিজাইনারদের সফ্টওয়্যারটির কাজ করার ক্ষেত্রে মনোনিবেশ করার ক্ষমতা বৃদ্ধি পেয়েছে। যদি আপনার সমস্যার সমাধানটি সুন্দরভাবে করা যায় তবে খুব ভালভাবে সম্পন্ন করা হলে, মতামতযুক্ত সফ্টওয়্যারটি ব্যবহার করা দুর্দান্ত হতে পারে। আপনার সমস্যার সেই অংশগুলি সমাধান করা সত্যিকারের ব্যথা হতে পারে যা সরবরাহিত সরঞ্জামগুলিতে ম্যাপ করে না। এখানে উদাহরণস্বরূপ রেল অন রেল।
অন্যদিকে, অ-মতামতযুক্ত সফ্টওয়্যার ব্যবহারকারীর (বিকাশকারী) প্রচুর নমনীয়তা ফেলে। এটি কোনও সমস্যা সমাধানের একটি পদ্ধতির প্রস্তাব দেয় না, তবে নমনীয় সরঞ্জাম সরবরাহ করে যা বিভিন্নভাবে সমস্যা সমাধানের জন্য ব্যবহার করা যেতে পারে। এর খারাপ দিকটি এটি হতে পারে যেহেতু সরঞ্জামগুলি এত নমনীয়, কোনও সমাধান বিকাশ করা তুলনামূলকভাবে কঠিন হতে পারে। সমাধানের আরও অনেক কিছুই ব্যবহারকারী (বিকাশকারী) দ্বারা হ্যান্ড-কোডড হতে পারে কারণ ফ্রেমওয়ার্কটি যথেষ্ট সহায়তা দেয় না। আপনি কীভাবে কোনও সমাধান সরবরাহ করতে পারেন এবং মধ্য বিকাশকারীরা যদি কিছু মতামতযুক্ত সফ্টওয়্যার কিনেছিলেন তবে তার চেয়ে দরিদ্র সমাধানগুলি শেষ হতে পারে সে সম্পর্কে আপনাকে আরও অনেক কিছু চিন্তা করতে হবে। PERL সম্ভবত অ-মতামতযুক্ত সফ্টওয়্যারটির সর্বোত্তম উদাহরণ।
আমার আদর্শটি একটি অ-মতামত কাঠামো, তবে দৃ .় সম্মেলনের একটি। আমি এএসপি.এনইটি এমভিসি এই বিভাগে রাখি। বাস্তবে সমস্ত সফ্টওয়্যার কিছুটা হলেও মতামত দেওয়া হয় (যদিও সম্ভবত PERL না)। মডেল নির্বাচনের ক্ষেত্রে এমভিসির দৃ strong় কনভেনশন রয়েছে তবে those সম্মেলনের মধ্যে সমস্যাগুলি সমাধান করার বিভিন্ন উপায় রয়েছে many সেই কয়েকটি উপায় এমনকি মডেলটিকে ভেঙে ফেলতে পারে। সঠিকভাবে ব্যবহার করা হলেও, এই জাতীয় কাঠামোয় বিকাশশীল কনভেনশন অনুসারে সত্যিকারের আনন্দ হতে পারে।
এটি মূলত এটিই সফ্টওয়্যার যা তার লেখকরা মনে করে যেভাবে কাজ করা উচিত সেভাবে কাজ করে, সবাইকে খুশি করার চেষ্টা না করে। তার মানে অনেক লোক এটি পছন্দ করবে না, তবে যাঁরা এটি পছন্দ করে।
কড়াগুলি সম্ভবত একটি মতামত কাঠামোর স্বীকৃত উদাহরণ: আপনি জিনিসগুলি তাদের উপায়ে করেন এবং সবকিছু মসৃণ হয়। যদি আপনি না করেন তবে আপনি কিছু ব্যথার জন্য রয়েছেন। তবে এটি ঠিক আছে - যদি আপনি জিনিসগুলি তাদের মতো করতে না চান তবে আপনি রেলগুলি ব্যবহার করতে চান না।
ভারসাম্যের স্বার্থে আমি একটি (বরং মতামতযুক্ত) বিবরণ সরবরাহ করব যা মতামত পদ্ধতির পক্ষে আরও অনুকূল (অন্যান্য উত্তরগুলির বিপরীতে)।
মতামতযুক্ত ফ্রেমওয়ার্কগুলি একটি "সোনার পথ" সরবরাহ করে, যা বেশিরভাগ লোক এবং বেশিরভাগ পরিস্থিতিতে (লেখকের চোখে) সবচেয়ে ভাল অনুশীলন বলে মনে করা হয়।
এটি অবশ্য অগত্যা লক-ইন মানে না। এর অর্থ হল যে জিনিসগুলি আলাদাভাবে করতে কিছু অতিরিক্ত প্রচেষ্টা প্রয়োজন হতে পারে।
কম মতামতযুক্ত ফ্রেমওয়ার্কগুলি বিভিন্ন ধরণের বিভিন্ন বিকল্প সরবরাহ করে এবং সিদ্ধান্ত নেওয়ার জন্য আপনার উপর ছেড়ে দেয়।
মতামতযুক্ত ফ্রেমওয়ার্কগুলি সাধারণত চাকাটিকে পুনরায় উদ্ভাবন করতে বা একই সমস্যাকে বারবার পুনর্বিবেচনা করতে বিকাশকারীর কাছ থেকে বোঝা সরিয়ে দেয় এবং এভাবেই আসল সমস্যার দিকে মনোনিবেশ করতে সহায়তা করে।
উন্মুক্ত উত্স বিশ্বে আপনি অনেক মতামতযুক্ত প্রতিযোগিতামূলক ফ্রেমওয়ার্ক খুঁজে পেতে পারেন, সুতরাং আপনার এখনও একটি পছন্দ আছে। আপনাকে কেবল নিজের স্বর্ণের পথ বেছে নিতে হবে।
মতামতযুক্ত সফ্টওয়্যারটি এমনভাবে তৈরি এবং ডিজাইন করা হয়েছে যাতে কোনও নির্দিষ্ট উপায়ে জিনিসগুলি করা সহজ হয়। এটি অন্যের তুলনায় নির্দিষ্ট নকশার ধরণগুলির পক্ষে। প্রক্রিয়াটিতে এটি সফ্টওয়্যার বিকাশের স্টাইল থেকে বিচ্যুত হওয়া কঠিন করে তোলে যার জন্য এটি বিকাশ করা হয়েছিল। এটি রাখার আরেকটি উপায় হ'ল এটি "কনফিগারেশন ওভার কনফিগারেশন" এর পক্ষে। যেমন কনফিগারেশন বিকল্পগুলি খুব সীমিত যেমন সফ্টওয়্যারটি কনফিগারেশনের অনেকগুলি দিক অনুমান করে। অনুমানগুলি বোঝা গেলে সাধারণত মতামতযুক্ত সফ্টওয়্যারটি মাস্টারে দ্রুত হয়।
অপরদিকে অপ্রকাশিত সফ্টওয়্যারটি কয়েকটি অনুমান করে। এবং ফলস্বরূপ, সফ্টওয়্যার / সফ্টওয়্যার বিকাশ ফ্রেমওয়ার্কগুলি যা অনির্বাণিত হয় প্রায়শই অনেকগুলি কনফিগারেশন বিকল্প থাকে। একজন বিকাশকারীকে সাধারণত সফ্টওয়্যারটির বিভিন্ন দিক নিয়ে প্রচুর সিদ্ধান্ত নিতে হয়। প্রায়শই, বিভিন্ন সরঞ্জামগুলি বিকাশ করা হয় যাতে এই বিশাল বিকল্পগুলির সাথে কাজ করা আরও সহজ হয়। যেমন। নেট এর জন্য ভিজ্যুয়াল স্টুডিও। নেট, জাভা এর জন্য গ্রহন আইডিই ইত্যাদি Un
tl; dr :
প্রচুর লোকেরা এএসপি.এনইট এমভিসিকে একটি "বিনা সংশোধিত" কাঠামো হিসাবে উল্লেখ করছেন এবং আমি এটি নিয়ে বেশ কয়েকটি চিন্তাভাবনা করতে চাইছিলাম।
এটি সত্য যে এএসপি ডট এমভিসি খুব বেশি আদেশ দেয় না; আপনি যতটুকু দৃistence়তার সমাধান চান তা ব্যবহার করতে পারেন, এটি লিনাক-টু-এসকিউএল, অ্যাডো.নেট সংস্থাগুলি, এনহাইবারনেট ইত্যাদি be
ফ্লিপ দিকে, এমভিসি কাঠামোটি ফিল হ্যাককে উদ্ধৃত করার জন্য "কনফিগারেশন ওভার কনফিগারেশন" এর পক্ষে থাকে, যা নিয়ামক, দৃষ্টিভঙ্গি, মডেল এবং অন্যান্য কোড সনাক্ত করার জন্য পূর্বনির্ধারিত প্যাটার্নটি ভারীভাবে প্রস্তাব দেয়। আপনি যদি এই আচরণটি পরিবর্তন করতে পারেন তবে বর্তমানের সাথে সাঁতার কাটা সহজ এবং বেশিরভাগ মানুষের পক্ষে এটি করার কোনও সমস্যা নেই।
এছাড়াও আশেপাশের এএসপি.এনইটি এমভিসি প্রচুর মতামতযুক্ত লোক, যা আমি অনেকটা পক্ষপাতদুষ্ট টিউটোরিয়ালের দিকে নিয়ে যাই যা আবরণে জোর দিয়ে থাকে, যেমন ইউনিট টেস্টিং এবং নির্ভরতা ইনজেকশন; আমি সমস্ত ভাল পরীক্ষার জন্য এবং উদ্বেগের পৃথকীকরণের জন্য আছি, তবে আমি বুঝতে পারি যে এই জাতীয় বিষয়গুলি কারও গলায় কিছুটা কমিয়ে দেওয়া হয়, প্রায়শই আরও দরকারী বেসিকগুলি coveringাকা দেওয়ার আগে।
সেখানে আবারও, আমি স্বীকার করতে হবে যে areas অঞ্চলগুলির মধ্যে, কাঠামো নিজেই আপনি যা চান ইউনিট টেস্টিং সমাধান গ্রহণ করতে পুরোপুরি উন্মুক্ত, পাশাপাশি আপনি যে কোনও নির্ভরতা ইনজেকশন এবং বিদ্রূপমূলক ফ্রেমওয়ার্কগুলি ব্যবহার করতে চান, তাই আমি অনুমান করি যা এর আরও একটি উদাহরণ সরবরাহ করে নমনীয়তা এমনকি ইউনিট পরীক্ষার "বাইবেল বাশিং" এর মধ্যেও যা চলছে বলে মনে হচ্ছে।
এটি একটি ফ্রেমওয়ার্কে কতগুলি কনভেনশন বাস্তবায়িত হয়েছিল এবং সিদ্ধান্ত গ্রহণের সংখ্যা।
উদাহরণস্বরূপ, যদি নিয়ামক পদক্ষেপের জন্য ফর্ম ডেটা জমা দেওয়ার জন্য 5 (বা আরও বেশি) বিভিন্ন উপায় থাকে (যা এএসপি.এনইটি এমভিসির ক্ষেত্রে), কাঠামোটি বেশ "অ-মতামতযুক্ত" বলে মনে হচ্ছে - সিদ্ধান্তটি শেষ হয়েছে তোমাকে!
তবে, যদি কাঠামোটি (অন্যভাবে সরাসরি অন্য উপায়গুলি নিষ্ক্রিয় করার মাধ্যমে, বা দৃ strongly়ভাবে উত্সাহিত করে) সেই জিনিসটি করার একমাত্র উপায় (যা ফুবু এমভিসি-র ক্ষেত্রে হয়) সক্ষম করে তোলে, আপনি বলতে পারেন যে কাঠামোটি সিদ্ধান্ত নিয়েছে , এইভাবে কাঠামোর মতামত তৈরি।
এই মুহুর্তে আপনি যে উদাহরণটি দেখতে পাবেন তা হ'ল এএসপি.নেট এমভিসি ফ্রেমওয়ার্ক। এটি আশ্চর্যরূপে এক্সটেনসিবল তবে এটি কিছুটা ক্ষেত্রে এর পতন, এটির কোনও মাংস নেই। ডেটা অ্যাক্সেস করতে চান? আপনার নিজের এটি লিখতে হবে। কিছু AJAX চলছে চান? পূর্বোক্ত।
তবে এটি অত্যন্ত এক্সটেনসিবল, আপনি যদি এটি তৈরি করেন তবে আপনি এটিকে একটি মতামত কাঠামোতে পরিণত করতে পারেন। এমভিসিসিণ্ট্রিবিদের পছন্দগুলি এটাই করে, তারা আপনাকে কিছু করার বিশেষ পদ্ধতি দেয় যা আপনাকে কম কোড লিখতে হবে।
এর অর্থ এই নয় যে আপনি যদি মতামতটি ভেঙে ফেলতে চান তবে আপনি ভ্যানিলা সংস্করণে কাজ করে যাচ্ছেন তার চেয়ে অনেক বেশি কাজ করার প্রয়োজন রয়েছে। যদিও এটি একটি 80/20 দৃশ্য। আপনি যদি আপনার মতামত কাঠামো সঠিকভাবে চয়ন করেন তবে আপনি কেবলমাত্র 20% মতামত থেকে বিরতিতে চাইবেন এবং আপনি অন্যান্য 80% সময়ের সাথে অত্যন্ত উত্পাদনশীল হবেন।