মতামতযুক্ত সফ্টওয়্যার কী?


200

আমি প্রায়শই লোককে দেখি যে নির্দিষ্ট সফ্টওয়্যারটি "অত্যন্ত মন্ত্রযুক্ত" বা মাইক্রোসফ্ট "অ-মতামতযুক্ত" কাঠামো লেখার প্রবণতা রাখে। এর আসলে কী অর্থ?


উত্তর:


206

যদি কোনও কাঠামোর মতামত দেওয়া হয় তবে এটি তাদের লক করতে বা তাদের কাজ করার পথে আপনাকে গাইড করে।

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

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

অ্যাপল যখন তার পণ্যগুলি ডিজাইন করে তখন দৃ strong় মতামত রয়েছে।

অ-মতামতযুক্ত সফ্টওয়্যার ডিজাইনটি আরও বেশি পার্ল / পিএইচপি এর মতো। এটি বিকাশকারীকে সহায়তা দেয় এবং বিকাশকারীকে সঠিক সিদ্ধান্ত নিতে এবং তাদের হাতে আরও নিয়ন্ত্রণ আরোপ করে us

আমি মাইক্রোসফ্টকে অ-মতামতযুক্ত কলামে রাখব। একটি Microsoft ফ্রেমওয়ার্ক যা একটি ভাল উদাহরণ আন-opininated: .NET। সিএলআর এবং চশমাগুলি খোলার মাধ্যমে, এটি এটিকে বিভিন্ন ধরণের ভাষা এবং বাস্তবায়নের শৈলীতে খোলে।


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

5
আমি স্বীকার করি লকগুলি কিছুটা শক্তিশালী তবে আমি অনেক নেতিবাচক পণ্যগুলি সফল হয়ে তা উল্লেখ করে সেই নেতিবাচক অভিব্যক্তিটি সরিয়ে ফেলব।
সিজিপি

32
ঠিক আছে, এটি সুস্পষ্ট যে এই উত্তরটি
মতামতযুক্ত

6
একটি মতামতযুক্ত কাঠামোটি হ'ল এটি এমনভাবে ডিজাইন করা হয়েছে যে যখন ফ্রেমওয়ার্কটি এমনভাবে ব্যবহার করা হয় যা ফ্রেমওয়ার্ক ডিজাইনারের দ্বারা অনুমানগুলি লঙ্ঘন করে না।
ক্রিপ্লেডস্মার্ফ

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

62

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

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

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


22

এটি মূলত এটিই সফ্টওয়্যার যা তার লেখকরা মনে করে যেভাবে কাজ করা উচিত সেভাবে কাজ করে, সবাইকে খুশি করার চেষ্টা না করে। তার মানে অনেক লোক এটি পছন্দ করবে না, তবে যাঁরা এটি পছন্দ করে।

কড়াগুলি সম্ভবত একটি মতামত কাঠামোর স্বীকৃত উদাহরণ: আপনি জিনিসগুলি তাদের উপায়ে করেন এবং সবকিছু মসৃণ হয়। যদি আপনি না করেন তবে আপনি কিছু ব্যথার জন্য রয়েছেন। তবে এটি ঠিক আছে - যদি আপনি জিনিসগুলি তাদের মতো করতে না চান তবে আপনি রেলগুলি ব্যবহার করতে চান না।


1
আমি এটির সাথে একমত .... আমার কাছে একটি প্রস্তাবিত সফ্টওয়্যার রয়েছে ... এবং এটি সমালোচিত কারণ এটি আমার ছোট পোষা প্রাণী প্রকল্প ... এটির ব্যাপকভাবে গৃহীত হবে আমার ধারণা ছিল না ... কেউ কেউ এটি ভালবাসে, অন্যরা অভিযোগ করেন .. .কিন্তু তারা সকলেই বুঝতে পারে যে এটি আমার পোষা প্রাণী
টিমোথিপ

8

ভারসাম্যের স্বার্থে আমি একটি (বরং মতামতযুক্ত) বিবরণ সরবরাহ করব যা মতামত পদ্ধতির পক্ষে আরও অনুকূল (অন্যান্য উত্তরগুলির বিপরীতে)।

মতামতযুক্ত ফ্রেমওয়ার্কগুলি একটি "সোনার পথ" সরবরাহ করে, যা বেশিরভাগ লোক এবং বেশিরভাগ পরিস্থিতিতে (লেখকের চোখে) সবচেয়ে ভাল অনুশীলন বলে মনে করা হয়।

এটি অবশ্য অগত্যা লক-ইন মানে না। এর অর্থ হল যে জিনিসগুলি আলাদাভাবে করতে কিছু অতিরিক্ত প্রচেষ্টা প্রয়োজন হতে পারে।

কম মতামতযুক্ত ফ্রেমওয়ার্কগুলি বিভিন্ন ধরণের বিভিন্ন বিকল্প সরবরাহ করে এবং সিদ্ধান্ত নেওয়ার জন্য আপনার উপর ছেড়ে দেয়।

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

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


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

5

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

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


5

tl; dr :

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

3

প্রচুর লোকেরা এএসপি.এনইট এমভিসিকে একটি "বিনা সংশোধিত" কাঠামো হিসাবে উল্লেখ করছেন এবং আমি এটি নিয়ে বেশ কয়েকটি চিন্তাভাবনা করতে চাইছিলাম।

এটি সত্য যে এএসপি ডট এমভিসি খুব বেশি আদেশ দেয় না; আপনি যতটুকু দৃistence়তার সমাধান চান তা ব্যবহার করতে পারেন, এটি লিনাক-টু-এসকিউএল, অ্যাডো.নেট সংস্থাগুলি, এনহাইবারনেট ইত্যাদি be

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

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

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


2

এটি একটি ফ্রেমওয়ার্কে কতগুলি কনভেনশন বাস্তবায়িত হয়েছিল এবং সিদ্ধান্ত গ্রহণের সংখ্যা।

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

তবে, যদি কাঠামোটি (অন্যভাবে সরাসরি অন্য উপায়গুলি নিষ্ক্রিয় করার মাধ্যমে, বা দৃ strongly়ভাবে উত্সাহিত করে) সেই জিনিসটি করার একমাত্র উপায় (যা ফুবু এমভিসি-র ক্ষেত্রে হয়) সক্ষম করে তোলে, আপনি বলতে পারেন যে কাঠামোটি সিদ্ধান্ত নিয়েছে , এইভাবে কাঠামোর মতামত তৈরি।


1

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

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

এর অর্থ এই নয় যে আপনি যদি মতামতটি ভেঙে ফেলতে চান তবে আপনি ভ্যানিলা সংস্করণে কাজ করে যাচ্ছেন তার চেয়ে অনেক বেশি কাজ করার প্রয়োজন রয়েছে। যদিও এটি একটি 80/20 দৃশ্য। আপনি যদি আপনার মতামত কাঠামো সঠিকভাবে চয়ন করেন তবে আপনি কেবলমাত্র 20% মতামত থেকে বিরতিতে চাইবেন এবং আপনি অন্যান্য 80% সময়ের সাথে অত্যন্ত উত্পাদনশীল হবেন।


এএসপি.নেট এমভিসি স্বাভাবিকভাবেই এএসপি.নেট এজেএক্স কাঠামোর সাথে মানানসই বলে মনে হয় এবং এমনকি এই লাইব্রেরিতে এমভিসি-নির্দিষ্ট সংযোজন অন্তর্ভুক্ত করে, তাই আমি এ ব্যাপারে একমত নই যে অ্যাজাক্স বাস্তবায়নটি সম্পূর্ণ পক্ষপাতহীন is এছাড়াও, লাইব্রেরিটি জিকুয়েরির বিশেষভাবে আদেশ দেয় বা এমনকি প্রস্তাব দেয় না, তবে এটি এটিকে একত্রে বান্ডিল করে তোলে, "এইদিকে তাকাও" শোকের সময় সেই দিকের দিকে ইঙ্গিত করে।
রব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.