পুনরায় ব্যবহারযোগ্যতা ভাল সফ্টওয়্যার ডিজাইনের একটি বৈশিষ্ট্য ।
পুনরায় ব্যবহারযোগ্যতা কি ভাল সফ্টওয়্যার ডিজাইনের জন্য একটি গ্রহণযোগ্য গ্লস ("অর্থের সংক্ষিপ্ত স্বরলিপি")? কেন?
পুনরায় ব্যবহারযোগ্যতা ভাল সফ্টওয়্যার ডিজাইনের একটি বৈশিষ্ট্য ।
পুনরায় ব্যবহারযোগ্যতা কি ভাল সফ্টওয়্যার ডিজাইনের জন্য একটি গ্রহণযোগ্য গ্লস ("অর্থের সংক্ষিপ্ত স্বরলিপি")? কেন?
উত্তর:
পুনরায় ব্যবহার করা ভাল ডিজাইনের একটি সূচক । এটা তোলে ইঙ্গিত করে যে কাপলিং সিস্টেমের আলগা যথেষ্ট এবং সংযোগ একটি নির্দিষ্ট ইউনিট হয় যথেষ্ট উচ্চ নির্ভরতা সমস্যার সম্মুখিন হতে হচ্ছে.আপনি বা কোড অধিকাংশ পুনর্লিখন করেও পুনঃব্যবহারের সহজতর।
পুনরায় ব্যবহারযোগ্যতা হ'ল মায়া। কোথায় বা কীভাবে এটি ব্যবহার করা হচ্ছে তা আগেই না জেনে কোনও ইউনিটের "পুনরায় ব্যবহারযোগ্যতা" পরিমাপ করা যাচাইযোগ্যভাবে অসম্ভব। অনেক ডেভেলপার হবে চেষ্টা "পুনর্ব্যবহারযোগ্য" উপাদান ডিজাইন এবং প্রায়ই পরে জানতে যে নির্দিষ্ট দিকগুলিতে তাদের "নমনীয়" করার চেষ্টা ঠিক যার হয় না হতে হবে।
আমি একটি ভিন্ন "গ্লস" ব্যবহার করব: টেস্টিবিলিটি।
এখন আমি টিডিডি-র আইনজীবী নই, আমি কোনও কিছুর এবং সমস্ত কিছুর পরীক্ষা করার প্রয়োজনীয়তা অনুভব করি না। তবে কোনও উপাদানটির জন্য পরীক্ষাগুলি লিখতে এটির সংযুক্তকরণ / সংহিত বৈশিষ্ট্যগুলি এবং খুব দ্রুত আপনাকে খুব ভাল ধারণা দেবে। যদি এটি বিমূর্ততার উপর নির্ভর করে, তবে তা আলগা সংযোগ; নির্ভরতাগুলি উপহাস করা আপনার পক্ষে সহজ হবে এবং এটি একটি ভাল ডিজাইনের পরামর্শ দেয়। যদি এর একটি সুস্পষ্ট উদ্দেশ্য থাকে (এছাড়াও একক দায়িত্বের নীতিটি দেখুন ) তবে এর আচরণটি তুলনামূলক স্বজ্ঞাত হবে, কী পরীক্ষা করতে হবে তা নির্ধারণ করা আপনার পক্ষে সহজতর হবে , যা আবারও একটি ভাল নকশার পরামর্শ দেয়।
এটি অবশ্যই কোনও ভাল ডিজাইনের গ্যারান্টি দেয় না ; প্রকৃত বাস্তবায়ন বা এমনকি পুরো আর্কিটেকচার সম্পূর্ণরূপে তার বর্ণিত উদ্দেশ্যে অনুপযুক্ত হতে পারে। তবে কমপক্ষে এটি আপনাকে বলে যে আপনি স্প্যাগেটি কোড বা গড অবজেক্টসের সাথে কাজ করছেন না।
দয়া করে কোনও উপাদানটির "পুনরায় ব্যবহারযোগ্যতা" হিসাবে বন্য অনুমান করার চেষ্টা করবেন না, বিশেষত "ভাল ডিজাইনের" প্রমাণ হিসাবে ব্যবহার না করার জন্য। এটি এমন একটি বিষয় যা আপনি কেবলমাত্র অন্ধকারে প্রতিষ্ঠিত করতে পারেন, এটি একবারে বাস্তবে পুনরায় ব্যবহৃত হয়ে যায় এবং ততক্ষণে নকশাটি উল্লেখযোগ্যভাবে পরিবর্তিত হতে পারে।
না।
পুনরায় ব্যবহারযোগ্যতা হ'ল একটি ভাল বৈশিষ্ট্য কারণ এটি ভবিষ্যতের বিকাশের গতি বাড়িয়ে তুলতে পারে। (যদিও বাস্তবে খুব অল্প সংস্থায়ই ভবিষ্যতের বিকাশ প্রায় তত দ্রুত গতিতে দেখেছে যতটা তারা আশা করেছিল যেভাবে হবে।) তবে কোনও সফ্টওয়্যারের উল্লেখযোগ্য অংশে সেই অ্যাপ্লিকেশনটির সাথে নির্দিষ্ট অংশ রয়েছে। এবং তদুপরি, যখন ডোমেনের অভিজ্ঞতা না থাকলে লোকেরা পুনরায় ব্যবহারযোগ্য সফ্টওয়্যারটি লেখার চেষ্টা করে, তারা সাধারণত সেটিকে পুনরায় ব্যবহারযোগ্য করে তোলার ক্ষেত্রে সফলভাবে সফল না হয়েই এই টুকরোটিকে আপত্তি জানায় এবং কর্মক্ষমতা হ্রাস করে।
সুতরাং ভাল নকশাটি মডুলার এবং কেবল পুনরায় ব্যবহারযোগ্য যেখানে আপনি দেখতে পারবেন যে টুকরোটি পুনরায় ব্যবহার করা যেতে পারে এবং যেখানে আপনার পুনরায় ব্যবহারযোগ্যতা অর্জনের দক্ষতা রয়েছে। অন্য কোথাও আপনার জিনিসগুলি পরিষ্কার করার চেষ্টা করা উচিত তবে পুনরায় ব্যবহারযোগ্যতা নিয়ে চিন্তা করবেন না। (আপনার মাথার পিছনে যেখানে আপনি নোটগুলি তৈরি করছেন তা বাদ দিয়ে যাতে ভবিষ্যতের কোনও সিস্টেমে আপনার কীভাবে পুনরায় ব্যবহারযোগ্য করে তুলতে হবে তার একটি ধারণা পাবেন))
আমি বিশ্বাস করি (এবং এটি আমার ব্যক্তিগত বিশ্বাস) যে পুনরায় ব্যবহারযোগ্যতা এবং ভাল ডিজাইনের মধ্যে সম্পর্কটি রিফ্লেক্সিভ নয়, তাই এর মৌলিক এবং সাধারণ উত্তরটি হ'ল না । আপনি যদি কিছু ভাল ডিজাইনের গাইডগুলির প্রতি আগ্রহী হন তবে এই উইকিপিডিয়া নিবন্ধটি দেখুন।
একটি ভাল সফ্টওয়্যার ডিজাইন অবশ্যই পুনঃব্যবহারযোগ্য হতে হবে, কমপক্ষে কয়েকটি মূল অংশে, আমি মনে করি যে খুব কম লোকেরা সোর্স কোডটির প্রকৃত পুনঃব্যবহার করে, কারণ এটি একটি সিস্টেমের মূল নকশা করা বিভিন্ন জটিল ক্ষেত্রে পুনরায় ব্যবহারযোগ্য হওয়ার জন্য অত্যন্ত জটিল due (এবং আমি অভিজ্ঞতার বাইরে এই বলছি)
আপনার প্রয়োজনীয় সমস্ত কাজ সম্পাদন করার জন্য বিশাল অঙ্কের দায়বদ্ধতা (ওরফে একটি ব্লব) সহ একটি শ্রেণি বিবেচনা করুন তবে বিন্যাসের কোনও বিবেচনা ছাড়াই সম্ভবত আপনি কেসটি দেখেছেন। এর মতো শ্রেণীর বেশিরভাগ লোকেরা এটি বারবার ব্যবহার করবে এবং আমি মনে করি যে আমাদের এটির পুনরায় ব্যবহার, ডিজাইনেরহীন পুনরায় ব্যবহারের বিষয়ে একমত হতে হবে।
আশা করি আমি আমার ব্যাখ্যাগুলি খুব বেশি গণ্ডগোল করিনি
আমি মনে করি ভাল ডিজাইনের একটি আরও ভাল সূচক হ'ল একক দায়িত্বের নীতি এবং প্রতিটি উপাদানগুলির সংহতি বজায় রাখার মতো মৌলিক ধারণাগুলির অনুসরণ করা । একটি পরিষ্কার এবং সংক্ষিপ্ত ইন্টারফেসের সাথে বিমূর্ততা ব্যবহার করে এবং লিসকভ সাবস্টিটিউশন অধ্যক্ষের সাথে সম্মতি বজায় রেখে আমরা পুনরায় ব্যবহারকে উত্সাহিত করি এবং কী হবে এবং কী পুনরায় ব্যবহার হবে না তা পূর্বাভাস দেওয়ার চেষ্টা না করে।
এই মৌলিক নকশা নীতি স্টিকিং কোড পরীক্ষা সহজ করে তোলে এবং পুনরায় ব্যবহার করার জন্য সহজ।
ভাল ডিজাইন == ভাল ডিজাইন, পুনঃব্যবহারযোগ্যতা একটি উপ-পণ্য।
পুনরায় ব্যবহারযোগ্যতা প্রায়শই একটি অন্তর্নিহিত ডিজাইনের লক্ষ্য। আপনি যদি কোনও উপাদান বা একটি সম্পূর্ণ নকশা তৈরি করতে পারেন তবে এটিকে পরে পুনরায় ব্যবহার করা যেতে পারে, আপনার অবশ্যই এটি করা উচিত বলে মনে হয় । যা সর্বদা সুস্পষ্ট নয় তা হ'ল কিছু পুনরায় ব্যবহারযোগ্য করে তুলতে এটি অনেক সময় এবং প্রচেষ্টা (এবং অর্থ) নিতে পারে এবং পুনঃব্যবহারযোগ্যতার সুবিধাটি অবশ্যই এর ব্যয়ের তুলনায় ওজন করতে হবে।
পুনরায় ব্যবহারযোগ্য নকশা যার দ্বিগুণ খরচ হয় এবং / অথবা গ্রাহকের যা প্রয়োজন তার চেয়ে দ্বিগুণ সময় লাগে গ্রাহকের দৃষ্টিকোণ থেকে ভাল নকশা নয়, বিশেষ করে যদি গ্রাহকের পুনরায় ব্যবহারযোগ্যতার প্রয়োজন হয় না।
অনেকগুলি অনুরূপ বৈশিষ্ট্য রয়েছে যা প্রায়শই অন্তর্নিহিত নকশার লক্ষ্য হিসাবে বিবেচিত হয় কারণ এগুলি স্পষ্টতই ভাল বলে মনে হয়:
ব্যয় হ্রাস করা
উন্নয়নের সময় হ্রাস করা হচ্ছে
জটিলতা হ্রাস
নির্ভরযোগ্যতা সর্বাধিকতর
এই জিনিসগুলি সমস্ত বস্তুনিষ্ঠভাবে ভাল, তবে একটি নির্দিষ্ট সময়ে কোনও নির্দিষ্ট ক্লায়েন্টের কাছে সর্বদা গুরুত্বপূর্ণ নাও হতে পারে, তাই আপনার গ্রাহকের কী প্রয়োজন তা পুরোপুরি বুঝতে গুরুত্বপূর্ণ (এমনকি সেই গ্রাহকটি যদি কেবল আপনার বস তবেও)। এমন অনেকগুলি এফোরিজম রয়েছে যা আমাদের এই সত্যটি স্মরণ করিয়ে দিতে বোঝায় (উদাঃ "নিখুঁত চেয়ে ভাল হয়ে গেছে" এবং "ভাল, সস্তা, দ্রুত: কোনও দুটি বাছাই করুন"), তবে এখনও চেষ্টা করার ফাঁদে পা রাখা সহজ easy এমন সব সফ্টওয়্যার তৈরি করুন যা প্রতিটি ক্ষেত্রে দুর্দান্ত হয় যখন সত্যিকারের ক্ষেত্রে সর্বদা দুর্দান্ত হওয়া সর্বদা প্রয়োজন হয় না।
শিরোনাম প্রশ্নটি পেতে, তারপরে: না , পুনঃব্যবহারযোগ্যতা ভাল ডিজাইনের সমার্থক নয়। পুনরায় ব্যবহারযোগ্যতা কোনও নির্দিষ্ট ভাল ডিজাইনের একটি দরকারী উপাদান হতে পারে, তবে কেবল যখন এটির প্রয়োজন হয়।
অগত্যা। আপনি যদি এমন কোনও কিছু পুনরায় ব্যবহারযোগ্য করে তুলেন যা স্পষ্টভাবে কখনও পুনরায় ব্যবহারযোগ্য হবে না তবে এটি খারাপ নকশা।
উদাহরণস্বরূপ, আপনি যদি এমন কোনও ডেটা পূর্ণ ফাইল লিখছেন যা আপনার সংস্থার পক্ষে অনন্য এবং সেই ডেটা অন্য কোথাও একবার আমদানি করা হয়েছে তবে কেন এটি পুনরায় ব্যবহারযোগ্য করে তোলার বিরক্ত করবেন?
এটি বলেছে, আপনার কাঠামোর যদি ইতিমধ্যে একটি না থাকে তবে কোনও ফাইলে লেখার কোডটি পুনরায় ব্যবহারযোগ্য হতে পারে। এটি ভাল নকশা হবে।
আমি না বলব, বেশিরভাগ কারণ এটি কেবল কোডের একটি ছোট অংশকে বর্ণনা করে। আমি খুঁজে পেয়েছি যে ব্যবহারযোগ্যতা সবচেয়ে গুরুত্বপূর্ণ যেখানে খুব গুরুত্বপূর্ণ এবং ইউটিলিটি অঞ্চলের বাইরের প্রান্তে, এর মধ্যে এতটা নয়। আমি এমন কয়েকটি জিনিসের উদাহরণ দেব যেখানে আমি মনে করি পুনর্ব্যবহারযোগ্যতা মান ডিজাইনের একটি দরকারী মেট্রিক।
কোর স্টাফ
ইউটিলিটি স্টাফ
বেশিরভাগ অ্যাপের .০-৮০% গ্রহণকারী সিআরইউডি স্টাফের জন্য, আমি পুনরায় ব্যবহারযোগ্যতা মোটেই একটি মূল্যবান মেট্রিক বলে মনে করি না।