প্রোগ্রামার সহকর্মীর সাথে আমার বিতর্ক আছে কেবলমাত্র পরীক্ষার যোগ্য করার জন্য কোডের একটি কার্যকরী অংশটি সংশোধন করা ভাল বা খারাপ অনুশীলন (উদাহরণস্বরূপ ইউনিট পরীক্ষার মাধ্যমে)।
আমার মতামতটি হ'ল এটি ঠিক আছে, অবশ্যই ভাল অবজেক্ট ওরিয়েন্টেড এবং সফ্টওয়্যার ইঞ্জিনিয়ারিং অনুশীলনগুলি বজায় রাখার সীমাবদ্ধতার মধ্যে ("সমস্ত কিছু জনসমক্ষে তৈরি করা নয়" ইত্যাদি)।
আমার সহকর্মীর অভিমত যে শুধুমাত্র পরীক্ষার উদ্দেশ্যে সংশোধন কোড (যা কাজ করে) ভুল is
কেবলমাত্র একটি সাধারণ উদাহরণ, কোডটির এই অংশটি মনে করুন যা কোনও উপাদান দ্বারা ব্যবহৃত হয় (সি # তে লিখিত):
public void DoSomethingOnAllTypes()
{
var types = Assembly.GetExecutingAssembly().GetTypes();
foreach (var currentType in types)
{
// do something with this type (e.g: read it's attributes, process, etc).
}
}
আমি প্রস্তাব দিয়েছি যে এই কোডটি অন্য কোনও পদ্ধতিতে কল করার জন্য সংশোধন করা যেতে পারে যা আসল কাজ করবে:
public void DoSomething(Assembly asm)
{
// not relying on Assembly.GetExecutingAssembly() anymore...
}
এই পদ্ধতিটি কোনও অ্যাসেমব্লিক অবজেক্টে কাজ করার জন্য নেয়, যাতে পরীক্ষাটি করার জন্য আপনার নিজের অ্যাসেমব্লিকে পাশ করা সম্ভব হয়। আমার সহকর্মী ভাবেন নি যে এটি একটি ভাল অনুশীলন।
একটি ভাল এবং সাধারণ অনুশীলন হিসাবে বিবেচনা করা হয়?
Type
প্যারামিটার হিসাবে নেওয়া উচিত , একটি নয়Assembly
।