আমার ছোট সফ্টওয়্যার লাইব্রেরির অন্যান্য লাইব্রেরি ব্যবহার করা এড়ানো উচিত?


13

আমি সবেমাত্র একটি ছোট জাভা গ্রন্থাগার প্রকাশ করেছি যা কেবলমাত্র কয়েকটি ক্লাস এবং পদ্ধতি সরবরাহ করে। যেহেতু আমি মাভেনের সাথে প্রকল্পটি তৈরি করেছি, আমি তত্ক্ষণাত আমার লক্ষ্য অর্জনের জন্য কয়েকটি তৃতীয় পক্ষের লাইব্রেরি ব্যবহার করেছি, বিশেষত:

  • Commons-lang3 (কিছু সাধারণ জাভা সামগ্রীর জন্য)
  • slf4j-api (লগিংয়ের জন্য)
  • কমন্স-আইও (একটি ছোট্ট ফাইল স্টাফের জন্য - আক্ষরিক অর্থে কোনও ফাইল একবার পড়ুন, আমি মনে করি)

আমি চাই না যে আমার গ্রন্থাগারটি অন্যের চোখে ফুলে উঠুক। আমার পায়ের ছাপ কমাতে এই লাইব্রেরিতে আমার নির্ভরতা সরিয়ে দেওয়ার চেষ্টা করা উচিত? ভবিষ্যতে আরও বেশি ব্যবহারের বিষয়ে বিবেচনা করার সময় কোন ধরণের গ্রন্থাগারগুলি এড়ানো ভাল?


1
আপনার প্রশ্নের কংক্রিট অংশটি উত্তরযোগ্য বলে মনে হচ্ছে: আপনার প্রকল্পের সাথে সাথে কংক্রিটের libs ঠিক আছে কিনা। সমস্যাটি হ'ল, আপনি এটিকে সাধারণ অংশের সাথে বানানটি "উচিত ... ছোট ... এড়ানো উচিত"। যেমনটি বর্তমানে দাঁড়িয়ে আছে, এই প্রশ্নটি আমাদের প্রশ্নোত্তর বিন্যাসের জন্য উপযুক্ত নয়। আমরা উত্তরগুলি তথ্য, তথ্যসূত্র বা নির্দিষ্ট দক্ষতার দ্বারা সমর্থিত হওয়ার প্রত্যাশা করি তবে এই প্রশ্নটি সম্ভবত বিতর্ক, যুক্তি, পোলিং বা বর্ধিত আলোচনার জন্য অনুরোধ করবে। আপনি যদি মনে করেন যে এই প্রশ্নটি উন্নত হতে পারে তবে গাইডেন্সের জন্য FAQ দেখুন ।
জান্নাত

1
@ আমার ক্ষমা প্রার্থনা। একজন নিয়মিত স্ট্যাক ওভারফ্লো ব্যবহারকারী হিসাবে, আমি প্রোগ্রামারগুলিতে কিছুটা সাবজেক্টিভ প্রশ্নগুলি গ্রহণযোগ্য বলে ধরে নিয়েছিলাম। এমন কোনও স্ট্যাক এক্সচেঞ্জ সাইট রয়েছে যেখানে এই জাতীয় সমস্যাগুলি ঠিক আছে? এর মধ্যে, আমি আমার প্রশ্ন থেকে কোনও অস্পষ্টতা সরিয়ে ফেলব।
ডানকান জোন্স

2
@ প্রশ্নটি মূল প্রশ্নে এমনকি এই প্রশ্নটি ঠিক আছে।
থমাস ওয়ানস

@ থমাস সমস্ত সম্মান সহ, আমি মনে করি না; জন্য মূল সংস্করণ স্বাগত পোলিং গেম: আমি তাড়াতাড়ি বিপরীত সুপারিশগুলি দুটি উত্তর মূর্ত, উভয় যুক্তিসঙ্গতভাবে সমর্থনযোগ্য
মশা

1
@ দু'জনকেই জাগানো? সেটা ঠিক আছে. তাদের পোস্ট এবং ভোট দেওয়া যাক। ন্যায়সঙ্গততা এবং যুক্তির বিপরীত সহ দুটি সম্ভাব্য সঠিক উত্তর প্রশ্নটিকে খারাপ করে না। 3 বা 4 বা এমনকি 5ও হয় না It's এটি একটি সুগঠিত প্রশ্ন যা সমস্যার গ্রন্থাগার বিকাশকারীদের অবশ্যই মোকাবেলা করা উচিত এবং তারপরে বোঝাটি উত্তরের উত্তর হওয়াতে দেওয়া হবে
থমাস ওয়ানস

উত্তর:


8

আপনার নির্দিষ্ট পরিস্থিতি বিবেচনা করে আমি এর উত্তর দিচ্ছি। আমি বলব যে এই লাইব্রেরিগুলি ব্যবহার করা ভাল। কেবলমাত্র নিশ্চিত হয়ে নিন যে আপনার এসএলএফ 4 জে-এপি এটির সাথে বাস্তবায়নটি নিয়ে আসে না। এর মাধ্যমে, আমি বাস্তবায়ন নির্ভরতাটিকে "পরীক্ষা" হিসাবে চিহ্নিত করব। উদাহরণ:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.2</version>
    <scope>test</scope>
</dependency>

এটি এসএলএফ 4 জে এফ এ কিউ-তে বিস্তারিত বর্ণনা করা হয়েছে।

অন্য দুটি আইএমই হিসাবে তারা সর্বদা পিছনের দিকে সামঞ্জস্যপূর্ণ। অতএব, যদি এখন থেকে 5 বছর পরে আপনার লাইব্রেরিটি ব্যবহার করা দরকার তবে আপনি সেগুলির একটি পুরানো সংস্করণ ব্যবহার করছেন তবে আমি কেবল আপনার নির্ভরতা বাদ দিতে পারি এবং আমাদের কোডটি এখনও কাজ করবে। অন্য কথায়, এই নির্দিষ্ট গ্রন্থাগারগুলি ব্যবহার করে আপনি অন্যের জন্য জার-হেল প্রবর্তন করবেন না।

আমি যদি আপনার লাইব্রেরিটি মভেনের মাধ্যমে ব্যবহার করি তবে আপনার গ্রন্থাগারটি ফুলে গেছে কিনা তা আমি লক্ষ্য করব না। আমি কেবল আপনার উপর নির্ভর করব এবং এটি ব্যবহার করব। আমি মনে করি এটি আরও গুরুত্বপূর্ণ যে আপনার কোডটি একটি ছোট পায়ের ছাপ পাওয়ার চেয়ে সঠিকভাবে কাজ করে। আমি চাকাটিকে একটি বাগ দিয়ে পুনরায় উদ্ভাবন করার পরিবর্তে কমন্স-আইও ব্যবহার পছন্দ করি।


প্রতিক্রিয়াটির জন্য আপনাকে ধন্যবাদ, আমি মনে করি আমি গ্রহণ করা উচিত যে পদ্ধতিতে আমরা ব্যাপকভাবে একমত। কেবল একটি বিট সংশোধন করার জন্য - একটি লাইব্রেরি প্রকল্পে যেভাবে slf4j অন্তর্ভুক্ত করা উচিত তা হ'ল সহজভাবে অন্তর্ভুক্ত করা slf4j-apiএবং কোনও অন্যান্য সম্পর্কিত শিল্পকর্ম সরবরাহ করা বা অন্যথায় or Slf4j.org/manual.html#projectDep দেখুন ।
ডানকান জোন্স

আমি কিছু মস্তিষ্ক-ক্ষতিকারক অনুশীলনগুলি স্মরণ করি (জিলিয়ন excludeএস আইরিক) যখন আমার নির্ভরতাগুলির মধ্যে বিশেষ মডিউলগুলি slf4j সংস্করণে "সম্মত" না করতে পারে তখন আমাকে করতে হয়েছিল। আপনার উত্তর থেকে দেখে মনে হচ্ছে মডিউল ডিজাইনাররা যদি এটি প্রকাশ করে তবে এর মতো providedসমস্যা নেই, সঠিক?
gnat

2
@ জাগ্রত করুন সাধারণত আপনার পিওএমে একটি পছন্দসই সংস্করণ ঘোষণা করে (কমপক্ষে ম্যাভেনে) সমাধান হয়ে যাবে। মাভেন একটি নিদর্শনটির জন্য সংজ্ঞায়িত "নিকটতম" সংস্করণ নেন এবং তাত্ক্ষণিক পিওএম ট্রানসিটিভ নির্ভরতা ছাড়িয়ে যায়। ম্যাভেন ২.x রিলিজের সময় সম্ভবত এটি একটি আচরণগত পরিবর্তন ছিল।
ডানকান জোন্স

1
Slf4j হিসাবে উল্লেখ করার জন্য +1 provided- খুব বিরক্তিহীন।
গ্যারি রোয়ে

@ ডানকান জোন্স ধন্যবাদ, আমি সম্ভবত এটির পরে ফিরে এসেছি। আমার ম্যাভেন সংস্করণ 2.2 বা 2.3, পারব না রিকল ছিল যা এক (যদিও আমি নিশ্চিত মনে করতে পারে কিভাবে mvn dependency:analyzeবাদ পর্যন্ত :) বিষ্ঠা সংস্করণ আনয়ন করেন
মশা

1

না।

"ব্লাট" একটি পৌরাণিক কাহিনী। আপনার লাইব্রেরিতে কতটা কোডই থাকুক না কেন, যদি কিছু কোডটি কখনও ব্যবহার না করা হয় তবে এটি পেজযুক্ত হবে না - এটি কোনও কার্যকারিতা বা মেমরির পদক্ষেপের উপর প্রভাব ফেলবে না

অন্যদিকে, আপনার যদি সেই অতিরিক্ত কার্যকারিতাটির প্রয়োজন হয় তবে আপনার দুটি পছন্দ আছে। আপনি নিজে এটি লিখতে পারেন এবং অন্যরা এর আগেও সমাধান করেছেন এমন সমস্যা সমাধানের জন্য প্রচুর সময় এবং প্রচেষ্টা ব্যয় করতে পারেন, বা আপনি ইতিমধ্যে বিদ্যমান সমাধানটি ব্যবহার করতে পারেন (এবং এটি পরীক্ষা / ডিবাগ / ইত্যাদি হয়েছে)।

এটি আমাদের ডাউনলোডের আকার এবং ডিস্ক স্পেসের পদচিহ্নগুলি সহ ছেড়ে দেয় এবং আপনি নির্বোধ সংখ্যার কথা না বললে 2013 এ তারা দুটি বিষয় যা আপনাকে চিন্তিত হওয়া উচিত তালিকার নীচে থাকা উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.