এটি b()
আর ব্যবহার না করা হলে এটি অপসারণ করা বাঞ্ছনীয় , একই কারণে প্রথম স্থানে অব্যবহৃত ফাংশনগুলি না যুক্তিযুক্ত ble আপনি এটিকে "পাঠযোগ্যতা" বা অন্য কোনও কিছু বলুন না কেন, সমস্ত কিছু সমান হওয়াই কোডের উন্নতি যে এটির কোনও ব্যবহার নেই। কমপক্ষে একটি নির্দিষ্ট পদক্ষেপ রাখার জন্য যার দ্বারা এটি না রাখাই ভাল, এটি অপসারণ গ্যারান্টি দেয় যে পরিবর্তনের পরে এর ভবিষ্যতের রক্ষণাবেক্ষণ ব্যয় শূন্য!
এটির পরীক্ষাগুলি দিয়ে এটি অপসারণের জন্য প্রয়োজনীয় কোনও বিশেষ কৌশল আমি খুঁজে পাইনি, যেহেতু b()
অবশ্যই এখন নতুনভাবে কল করা সমস্ত কোডের বিবেচনার সাথে অবশ্যই কোনও নতুন কিছু প্রতিস্থাপনের চিন্তাভাবনা উপস্থিত থাকতে হবে b()
এবং পরীক্ষাগুলি "সমস্ত কোডের একটি উপসেট "।
সাধারণত আমার পক্ষে কাজ করার যুক্তিটির লাইনটি আমি যে বিন্দুতে লক্ষ্য করেছি যে f()
এটি b()
অপ্রচলিত হয়েছে, তাই b()
কমপক্ষে অবহেলিত হওয়া উচিত, এবং আমি কলগুলি b()
দিয়ে প্রতিস্থাপনের উদ্দেশ্যে সমস্ত কল সন্ধান করতে চাইছিf()
, আমি পরীক্ষা কোড বিবেচনা করুন । বিশেষত, যদি b()
আর প্রয়োজন না হয় তবে আমি এর ইউনিট পরীক্ষাগুলি অপসারণ করতে এবং করতে পারি।
আপনি বেশ সঠিক যে কোনও কিছুই আমাকে খেয়াল করতে বাধ্য করে না যে এর b()
আর প্রয়োজন নেই। এটি দক্ষতার বিষয় (এবং যেমন স্লিম বলেছেন, উচ্চ-স্তরের পরীক্ষাগুলিতে কোড কভারেজ রিপোর্ট)। যদি কেবল ইউনিট পরীক্ষা করে এবং কোনও কার্যকরী পরীক্ষা না করে থাকে b()
তবে আমি সতর্কতার সাথে আশাবাদী হতে পারি যে এটি কোনও প্রকাশিত ইন্টারফেসের অংশ নয় এবং তাই এটি সরানো আমার সরাসরি নিয়ন্ত্রণে নেই এমন কোনও কোডের জন্য একটি ব্রেকিং পরিবর্তন নয়।
লাল / সবুজ / রিফ্যাক্টর চক্র স্পষ্টভাবে অপসারণ পরীক্ষাগুলির উল্লেখ করে না। উপরন্তু, অপসারণ b()
খোলা / বন্ধ নীতি লঙ্ঘন করে যেহেতু পরিষ্কারভাবে আপনার উপাদান হল পরিবর্তনের খোলা। সুতরাং আপনি যদি এই টিপটিকে সাধারণ টিডিডির বাইরের কিছু হিসাবে ভাবতে চান তবে এগিয়ে যান। উদাহরণস্বরূপ, আপনার কাছে একটি পরীক্ষা "খারাপ" ঘোষণার জন্য কিছু প্রক্রিয়া থাকতে পারে, যা এই ক্ষেত্রে প্রয়োগ করা যেতে পারে সেই কারণেই পরীক্ষাটি অপসারণের জন্য পরীক্ষা করা উচিত যা এটি এমন কিছু না হওয়ার (যা অপ্রয়োজনীয় ফাংশন b()
) পরীক্ষা করে।
আমি মনে করি অনুশীলনে বেশিরভাগ মানুষ সম্ভবত একটি লাল / সবুজ / রিফ্যাক্টর চক্রের সাথে একটি নির্দিষ্ট পরিমাণ পুনরায় নকশা চালানোর অনুমতি দেয় বা তারা অনর্থক ইউনিট পরীক্ষা অপসারণকে "রিফ্যাক্টর" এর বৈধ অংশ হিসাবে বিবেচনা করে তবে কঠোরভাবে কথা বললেও এটি রিফ্যাক্টরিং নয়। আপনার সিদ্ধান্তটি সিদ্ধান্ত নিতে পারে যে কতটা নাটক এবং কাগজপত্র এই সিদ্ধান্তের ন্যায্যতার সাথে জড়িত থাকতে হবে।
যাইহোক, যদি b()
গুরুত্বপূর্ণ ছিল তবে এর জন্য কার্যকরী পরীক্ষা করানো হত এবং এগুলি হালকাভাবে সরানো হবে না, তবে আপনি ইতিমধ্যে বলেছেন যে কেবলমাত্র ইউনিট পরীক্ষা আছে। আপনি যদি ইউনিট পরীক্ষাগুলি (কোডটির বর্তমান অভ্যন্তরীণ নকশায় লিখিত, যা আপনি বদলে গেছেন) এবং কার্যকরী পরীক্ষার (প্রকাশিত ইন্টারফেসগুলিতে লিখিত, যা সম্ভবত আপনি পরিবর্তন করতে চান না) মধ্যে পার্থক্য না রাখেন তবে আপনাকে আরও সতর্ক হওয়া দরকার ইউনিট পরীক্ষা অপসারণ সম্পর্কে।