অভ্যন্তরীণ প্রকল্পগুলির একগুচ্ছ জন্য সি # /। নেট ব্যবহার করার কয়েক বছর ধরে, আমাদের একটি লাইব্রেরি জৈবিকভাবে এক বিশাল ওয়াডে পরিণত হয়েছে। এটিকে "উটিল" বলা হয় এবং আমি নিশ্চিত যে আপনারা অনেকেই আপনার ক্যারিয়ারে এই প্রাণীটির একটি দেখেছেন।
এই লাইব্রেরির অনেক অংশই একক, এবং আলাদা প্রকল্পে বিভক্ত হতে পারে (যা আমরা ওপেন-সোর্স করতে চাই)। তবে একটি বড় সমস্যা রয়েছে যা এগুলি পৃথক গ্রন্থাগার হিসাবে প্রকাশের আগে সমাধান করা দরকার। মূলত, এই লাইব্রেরির মধ্যে আমি "alচ্ছিক নির্ভরতা" বলতে পারি তার প্রচুর এবং প্রচুর মামলা রয়েছে ।
এটি আরও ভালভাবে ব্যাখ্যা করার জন্য, এমন কয়েকটি মডিউল বিবেচনা করুন যা একা একা লাইব্রেরি হওয়ার জন্য ভাল প্রার্থী। CommandLineParser
কমান্ড লাইন পার্সিংয়ের জন্য। XmlClassify
এক্সএমএল ক্লাসিক সিরিয়াল করার জন্য হয়। PostBuildCheck
সংকলিত সমাবেশে চেক সঞ্চালন করে এবং ব্যর্থ হলে সংকলনের ত্রুটিটি রিপোর্ট করে। ConsoleColoredString
রঙিন স্ট্রিং আক্ষরিক জন্য একটি গ্রন্থাগার। Lingo
ব্যবহারকারী ইন্টারফেস অনুবাদ করার জন্য।
এই লাইব্রেরির প্রত্যেকটি সম্পূর্ণ একা একা ব্যবহৃত হতে পারে তবে সেগুলি যদি একসাথে ব্যবহার করা হয় তবে দরকারী অতিরিক্ত বৈশিষ্ট্যগুলি থাকতে হবে। উদাহরণস্বরূপ, উভয় CommandLineParser
এবং XmlClassify
পোস্ট-বিল্ড চেকিং কার্যকারিতা প্রকাশ করে যা প্রয়োজন PostBuildCheck
। একইভাবে, CommandLineParser
প্রয়োজনীয় রঙিন স্ট্রিং আক্ষরিক ব্যবহার করে অপশন ডকুমেন্টেশন সরবরাহ করার অনুমতি দেয় ConsoleColoredString
এবং এটি অনুবাদযোগ্য ডকুমেন্টেশনগুলির মাধ্যমে সমর্থন করে Lingo
।
সুতরাং মূল পার্থক্য হ'ল এগুলি alচ্ছিক বৈশিষ্ট্য । ডকুমেন্টেশন অনুবাদ না করে বা পোস্ট-বিল্ড চেক সম্পাদন না করে প্লেইন, রঙিন স্ট্রিং সহ একটি কমান্ড লাইন পার্সার ব্যবহার করতে পারে। অথবা কেউ ডকুমেন্টেশনটি অনুবাদযোগ্য তবে এখনও রঙিন করতে পারে ol বা রঙিন এবং অনুবাদযোগ্য উভয়ই। প্রভৃতি
এই "ইউটিলি" লাইব্রেরির মধ্যে দিয়ে আমি দেখতে পাচ্ছি যে প্রায় সমস্ত সম্ভাব্য পৃথকযোগ্য লাইব্রেরিতে এমন suchচ্ছিক বৈশিষ্ট্য রয়েছে যা এগুলি অন্যান্য লাইব্রেরিতে বেঁধে রাখে। যদি আমি আসলে সেই লাইব্রেরিগুলিকে নির্ভরতা হিসাবে প্রয়োজন হয় তবে স্টাফের এই ওয়াডটি সত্যিকার অর্থেই শৃঙ্খলাবদ্ধ নয়: আপনি যদি কেবল একটি ব্যবহার করতে চান তবে আপনাকে মূলত সমস্ত লাইব্রেরি প্রয়োজন require
.NET- এ এই জাতীয় ?চ্ছিক নির্ভরতা পরিচালনার জন্য কি কোনও প্রতিষ্ঠিত পন্থা রয়েছে?