আপনি ডিআরওয়াই করবেন না কারণ এটি কোনও বইতে লিখেছেন যে এটি করা ভাল, আপনি DRY করেন কারণ এটি আসলে রয়েছে do সুস্পষ্ট সুবিধা রয়েছে।
বিশেষতঃ প্রশ্ন থেকে:
যদি আপনি নিজেকে পুনরাবৃত্তি করেন তবে আপনি রক্ষণাবেক্ষণের সমস্যা তৈরি করতে পারেন। যদি doStuff1-3 সকলেরই একইভাবে কাঠামোগত কোড থাকে এবং আপনি একটিতে সমস্যা সমাধান করেন তবে আপনি সহজেই অন্য জায়গায় সমস্যাটি সমাধান করতে ভুলে যেতে পারেন। এছাড়াও, যদি হ্যান্ডেল করতে আপনাকে একটি নতুন কেস যুক্ত করতে হয় তবে আপনি পুরো জায়গা জুড়ে অনুলিপি-পেস্ট না করে কেবল কোনও ফাংশনে বিভিন্ন প্যারামিটারগুলি পাস করতে পারেন।
যাইহোক, ডিআরওয়াই প্রায়শই চতুর প্রোগ্রামারদের দ্বারা চরম গ্রহণ করা হয়। কখনও কখনও নিজেকে পুনরাবৃত্তি না করতে আপনাকে এমন বিমূর্ততা তৈরি করতে হবে যাতে আপনার সতীর্থরা সেগুলি অনুসরণ করতে পারে না। কখনও কখনও দুটি জিনিসের কাঠামো কেবল অস্পষ্টভাবে একই রকম তবে যথেষ্ট আলাদা। যদি doStuff1-4 এগুলি আলাদা আলাদা হয় যে সেগুলি পুনরায় না করে তাদের পুনর্বিবেচিত করার কারণে আপনাকে অপ্রাকৃত কোড লিখতে হবে বা চতুর কোডিং ব্যাকফ্লিপগুলি সহ্য করতে হবে যা আপনার দলটি আপনার দিকে ঝকঝকে করবে, তারপরে নিজেকে পুনরাবৃত্তি করা ঠিক হবে। অপ্রাকৃত উপায়ে নিজেকে কয়েকবার পুনরাবৃত্তি না করার জন্য আমি পিছনের দিকে ঝুঁকছি এবং শেষের পণ্যটির জন্য অনুশোচনা করেছি।
সুতরাং, মূলত, "ওহ মানুষ, এই কোডটি বেশ অনুরূপ বলে মনে করবেন না, সম্ভবত আমার পুনরাবৃত্তি না করার জন্য আমার চুল্লি হওয়া উচিত"। "কি এই কোড বেসটিকে পুনরায় ব্যবহার করার জন্য সাধারণ উপাদানগুলি কোডটিকে আরও রক্ষণাবেক্ষণযোগ্য বা কম রক্ষণাবেক্ষণযোগ্য করে তুলতে রিফ্যাক্টরিং করে ?" তারপরে, এমনটিকে বেছে নিন যা এটি আরও রক্ষণাবেক্ষণযোগ্য করে তোলে।
বলা হচ্ছে, এসআরপি দেওয়া এবং সাধারণত ছোট, নমনীয় শ্রেণিগুলি সাধারনত করার চেষ্টা করা, সেই কারণেই আপনার কোডটি বিশ্লেষণ করা বুদ্ধিমান হতে পারে , জেনেরিক ধরণের ব্যবহারের আচরণের বিটগুলি বিভক্ত করে (আপনি বলেছিলেন যে এগুলি টাইপ ব্যতীত অভিন্ন) ছোট ক্লাস। তারপরে আপনি জানতে পারবেন যে এই শ্রেণীর কয়েকটি আসলে সম্পূর্ণ অভিন্ন (কেবল বেশিরভাগই অভিন্ন) নয় এবং তারপরে আপনি যুক্ত করতে চাইলে আপনি একটি সরঞ্জামকিট তৈরি করতে পারেন Microsoft.CodeAnalysis.CPlusPlus.Syntax.AttributeSyntax
।