আমি সাধারণ ফিক্সড পাবলিক এপিআই সরবরাহের সাথে নির্ভরতা ইনজেকশন ব্যবহার করে টেস্টেবল ডিজাইনের ভারসাম্য বজায় রাখার বিষয়ে চিন্তাভাবনা করছি। আমার দ্বিধাটি হ'ল: লোকেরা এমন কিছু করতে চায় var server = new Server(){ ... }
এবং নির্ভরতাগুলির অনেক নির্ভরতা এবং গ্রাফ তৈরি করার বিষয়ে চিন্তা করতে হবে না Server(,,,,,,)
। বিকাশের সময়, আমি খুব বেশি চিন্তা করি না, যেহেতু আমি সমস্তগুলি পরিচালনা করতে আইওসি / ডিআই ফ্রেমওয়ার্ক ব্যবহার করি (আমি কোনও ধারকটির জীবনচক্র পরিচালনার দিকগুলি ব্যবহার করছি না, যা বিষয়গুলিকে আরও জটিল করে তুলবে)।
এখন, নির্ভরতাগুলি পুনরায় বাস্তবায়িত হওয়ার সম্ভাবনা কম। এক্ষেত্রে অংশীকরণ প্রায় সম্পূর্ণরূপে টেস্টিবিলিটির জন্য (এবং শালীন নকশা!) এক্সটেনশনের জন্য সিম তৈরির চেয়ে বেশি People ইত্যাদি People৯.৯৯৯% মানুষ ডিফল্ট কনফিগারেশন ব্যবহার করতে চাইবে। So. আমি নির্ভরতা হার্ডকোড করতে পারে। এটি করতে চাই না, আমরা আমাদের পরীক্ষাটি হারাতে চাই! আমি হার্ড-কোডেড নির্ভরতা এবং নির্ভরতা লাগে এমন একটি দিয়ে একটি ডিফল্ট নির্মাতা সরবরাহ করতে পারি। এটি ... অগোছালো, এবং সম্ভবত বিভ্রান্তিকর, তবে সম্ভব্য। আমি কনস্ট্রাক্টর কনস্ট্রাক্টরকে অভ্যন্তরীণভাবে গ্রহণ করতে পারি এবং আমার ইউনিটটিকে একটি বন্ধু সমাবেশ পরীক্ষা করে তুলতে পারি (সি # ধরে), যা পাবলিক এপিআইকে সজ্জিত করে তবে রক্ষণাবেক্ষণের জন্য কোনও বাজে লুকানো ফাঁদে ফেলে। দু'টি কনস্ট্রাক্টর যা স্পষ্টভাবে পরিবর্তে সুস্পষ্টভাবে সংযুক্ত রয়েছে তা আমার বইয়ের সাধারণভাবে নকশাকোষ হবে।
এই মুহুর্তে আমি সবচেয়ে কম খারাপের কথা ভাবতে পারি। মতামত? উইজডম?