আমি অন্য প্রশ্নের উত্তরে যেমনটি বলেছি, আমার পদ্ধতিটি নিম্নলিখিত:
- প্রথমবার যখন আমি কোনও নির্দিষ্ট সমস্যার সমাধান করি, আমি কেবল এটি সম্পন্ন করি।
- দ্বিতীয়বার (অর্থাত্ আমি যখন একই ধরণের সমস্যার সমাধান করি) আমার মনে হয়: এইচএম, সম্ভবত আমি নিজেকে পুনরাবৃত্তি করছি তবে আমি আপাতত দ্রুত অনুলিপি-অনুলিপিটি যাব।
- তৃতীয়বারের মতো আমি মনে করি: এইচএম, আমি নিজেকে পুনরাবৃত্তি করছি -> এটিকে সাধারণ করুন!
অর্থাৎ 2 অবধি, ডিআরওয়ির উপরে আরেকটি নীতি (YAGNI) জিতেছে। তবে 3 (বা 4 থেকে শুরু করে যদি আমি সত্যিই অলস হই!) মনে হয় আমার এটির দরকার আছে এবং তাই আমি DRY অনুসরণ করি।
হালনাগাদ
আমার সাম্প্রতিক অভিজ্ঞতা থেকে আরও কিছু ধারণা। আমাকে আমাদের দলের সাথে অন্য একটি দল দ্বারা বিকাশিত দুটি উপাদান এ এবং বি মিশিয়ে নিতে / সংহত করতে হয়েছিল। প্রথম: এ এবং বি বি দুটি উপাদান একে অপরের সাথে খুব সমান, তাই আমি ইতিমধ্যে এই বিষয়টি দেখে বিরক্ত হয়েছি যে তাদের কিছু আলাদা স্থাপত্য রয়েছে। দ্বিতীয়: আমাকে সেগুলি খাপ খাইয়ে নিতে হয়েছিল তাই আমি সাবক্লাসগুলি ব্যবহার করে খুশি হতে পারতাম এবং কেবল আমার সত্যিকারের প্রয়োজনের উপর নজর রাখতাম।
সুতরাং আমি এই দুটি উপাদানকে রিফ্যাক্ট করা শুরু করেছি (যার মধ্যে প্রায় 8 টি সি ++ ক্লাস রয়েছে): আমি এ এবং বি উভয়ের জন্য একটি সাধারণ আর্কিটেকচার রাখতে চাই এবং তারপরে সাবক্ল্যাসগুলি সংজ্ঞায়িত করে আমাদের প্রয়োজনীয় বৈশিষ্ট্যগুলি যুক্ত করতে চাই। এইভাবে, আমাদের দুটি নতুন উপাদান 'এ' এবং 'বি' বিদ্যমান থেকে উদ্ভূত হত।
দু'সপ্তাহের পরে বিদ্যমান কোডটি থেকে একটি সাধারণ এবং সু-সংজ্ঞায়িত কাঠামো বের করার চেষ্টা করার পরে এবং আমাদের প্রতিদিনের সভাগুলির সময় ব্যাখ্যা করে বললাম যে আসল কোডটি খুব অগোছালো বলে আমি খুব কম অগ্রগতি করছি, আমি আমার সাহেবের সাথে কথা বলেছি। আমরা লক্ষ্য করেছি যে এ দুটি নতুন উপাদান 'এ' এবং 'বি' এর চেয়ে বেশি আমাদের আর প্রয়োজন হবে না (কেবল তাদের দুটি বা চার বা ছয় হবে না)।
ঠিক আছে, তাই তা হও: আমি এ এবং বি থেকে ক্লাসগুলির একটি বিশাল অনুলিপি এবং নতুন নামকরণ করেছি এবং কোডটির অনুলিপিটি মানিয়ে নেওয়া শুরু করেছি। আমি এটি আরও দুই সপ্তাহের মধ্যে কাজ করতে পেলাম (এখনও কিছু বাগ-ফিক্সিং করছি)।
সুবিধা: আমাদের কার্যকারিতা এখন প্রায় শেষ এবং যখন আমরা সমস্ত বাগগুলি স্থির করে ফেলি। আমরা এ এবং বি এর সমস্ত রিফ্যাক্টরিং এবং পরীক্ষা সংরক্ষণ করেছি
অসুবিধাগুলি: দু'সপ্তাহ আগে অন্য দলটি আরেকটি উপাদান সি পরিবর্তন করেছিল, যা এ এবং বি ব্যবহার করে তারা এ এবং বি অভিযোজিত কিন্তু এ 'এবং বি' ভেঙে গেছে এবং আমাদের সেগুলি নিজেরাই পরিবর্তন করতে হয়েছিল। এটি একটি নতুন বাগ প্রবর্তন করেছে যা আমাদের ঠিক করতে হয়েছিল। এই অতিরিক্ত কাজটি সম্ভবত অপ্রয়োজনীয় হত যদি এ 'এবং বি' তাদের কোডের বেশিরভাগ অংশ এ এবং বি এর সাথে ভাগ করে নিয়েছিল unnecessary
সুতরাং: কোড সদৃশ সর্বদা বিপজ্জনক। আমি মনে করি এটি সর্বদা বাণিজ্য-সন্ধানের বিষয় এবং প্রায়শই এটি সহজ নয়।