কেন অ্যাপাচে বিল্ডিং এবং নির্ভরতা পরিচালনার জন্য দুটি পৃথক সরঞ্জাম রয়েছে?


9

অ্যাপাচি দুটি পৃথক সরঞ্জাম আছে:

তারা উভয় একই কুলুঙ্গি পূরণ বলে মনে হচ্ছে। আমার দুটি প্রশ্ন আছে:

  1. দুটি সরঞ্জামের মধ্যে প্রধান পার্থক্যগুলির হাইলাইটগুলি কী কী ?
    • আমি নিশ্চিত যে দুজনের মধ্যে পার্থক্যের উপর একটি সত্যই দীর্ঘ নিবন্ধ লেখা যেতে পারে, আমি এত বেশি বিশদ খুঁজছি না, বা অন্যটির থেকে একটি বেছে নেওয়ার জন্য বিষয়গত যুক্তিও খুঁজছি না।
  2. প্রোগ্রামিংয়ের ইতিহাস - এটি কীভাবে ঘটেছিল যে অ্যাপাচি দুটি সম্পূর্ণ পৃথক পৃথক সেট তৈরি করতে বিকশিত হয়েছিল যা শেষ পর্যন্ত উদ্দেশ্য হিসাবে এতটা অনুরূপ?

উত্তর:


7

দুটি সরঞ্জামের মধ্যে প্রধান পার্থক্যগুলির হাইলাইটগুলি কী কী ?

  • প্রকল্প কাঠামো

    • ম্যাভেন একটি নির্দিষ্ট প্রকল্প কাঠামো পছন্দ করে: একটিকে অবশ্যই মাভেন ওয়ে করার জন্য প্রতিশ্রুতিবদ্ধ করতে হবে। মাভেন ইতিমধ্যে pom.xmlঅন্য সমস্ত প্রকল্পের দ্বারা উত্তরাধিকার সূত্রে একটি রুটে কনফিগার করা সাধারণ বিল্ড পদক্ষেপ নিয়ে আসে pom.xml

    • পিপীলিকা + আইভী আরও মুক্ত-সমাপ্ত: যদিও এটি অনেক কিছু করতে পারে, প্রকল্প কাঠামো বা স্ক্রিপ্ট ব্যবহারের ক্ষেত্রে কেবল কয়েকটি প্রাথমিক প্রয়োজনীয়তা রয়েছে। কোনও পূর্বনির্ধারিত বিল্ড কার্য, লক্ষ্য বা প্রক্রিয়া নেই। প্রত্যেকটি build.xmlএকটি পরিষ্কার স্লেট (অবশ্যই অন্য স্ক্রিপ্ট সহ))

  • ঝোঁক

    • ম্যাভেন হয় লক্ষ্য ভিত্তিক। আপনি "এই বিল্ড টার্গেটটি কার্যকর করুন" বলবেন না আপনি এটি "বিল্ড" বা "মোতায়েন" করতে বলেছেন এবং মাভেন সেখানে যাওয়ার জন্য যা যা করা দরকার তা করেন: আপনি যা করতে চান তা আপনি বলেন ।

    • পিঁপড়া + আইভী টাস্ক ওরিয়েন্টেড। প্রতিটি কাজ বাস্তবায়ন সংজ্ঞায়িত এবং কাস্টম হয়। আপনি যা চান তা কীভাবে করবেন তা আপনি এটি বলুন ।

  • নির্ভরতা ব্যবস্থাপনা

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

    • "জাভা ক্লাসপাথ" ব্যতীত পিঁপড়ার কোনও নির্ভরতা পরিচালনা নেই। আইভী নির্ভরতা পরিচালন যোগ করে যা মাভেনের চেয়ে কিছুটা বেশি ক্লান্তিকর তবে এখনও স্বয়ংক্রিয়। এখানে মূল কীটি হ'ল আপনি কোনও নির্ভরতা পরিচালনা চয়ন করতে পারবেন না (যেমন "আমার ডিসট্রোর মধ্যে অন্তর্ভুক্ত জারগুলি বা সোর্স কন্ট্রোলের মধ্যে চেক করা হয়েছে") বা আপনি আইভির মাধ্যমে এটি আউটসোর্স করতে পারেন। এই পছন্দটির অর্থ প্রকল্পের চাহিদা মেটাতে আরও নমনীয়তা।

  • ব্যবহারে সহজ

    • ম্যাভেন (তাত্ত্বিকভাবে) ব্যবহার করা সহজ। যে কোনও বিকাশকারী একটি মাভেন প্রকল্প নিতে পারেন এবং তাত্ক্ষণিকভাবে জানতে পারবেন যে প্রকল্পের সমস্ত সংস্থান কোথায় এবং তারা কীসের জন্য রয়েছে: এটি মাভেনের নির্দিষ্ট কিছু করার একটি নির্দিষ্ট উপায় থাকার বিষয়ে প্রথম পয়েন্টের কারণে এটি ঘটে।

    • পিঁপড়া + আইভির স্টিপার লার্নিং কার্ভ থাকতে পারে কারণ প্রতিটি প্রকল্প আলাদা হতে পারে। বিভিন্ন প্রকল্পে একই লক্ষ্য অর্জনের বিভিন্ন উপায় থাকতে পারে।

  • extensibility

    • মাভেন প্লাগইনগুলি লেখার এবং এর বিল্ড প্রক্রিয়াটি পরিবর্তনের অনুমতি দেয়। যাইহোক, এটি একটি শিকড় সহ বাক্সের বাইরে আসে pom.xmlযা বিকাশকারীদেরকে তার পূর্বনির্ধারিত বিল্ড প্রক্রিয়াগুলির দিকে ঠেলে দেয়। নতুন লক্ষ্য বা নির্মাণের পদক্ষেপগুলির জন্য বিল্ড প্রসেসটি ইনজেক্ট করার জন্য সতর্ক চিন্তাভাবনা এবং অতিরিক্ত প্রচেষ্টা প্রয়োজন।

    • পিঁপড়া + আইভী প্লাগইন এবং নতুন কার্যগুলি লেখার অনুমতি দেয়: এটি করা বেশ সহজ এবং ন্যূনতম প্রচেষ্টা সহ একটি নতুন কার্যকে সংহত করতে পারে। এলোমেলোভাবে বা কারও নতুন কার্যকে একীভূত করার জন্য পূর্ব নির্ধারিত লক্ষ্য বা লক্ষ্যমাত্রা নেই।

কীভাবে ঘটেছিল যে আপাচি দুটি সম্পূর্ণ পৃথক পৃথক সেট তৈরি করতে বিকশিত হয়েছিল যা শেষ পর্যন্ত উদ্দেশ্য হিসাবে এতটা অনুরূপ?

প্রথমটি বুঝতে হবে অ্যাপাচি প্রকল্পটি একটি ছাতা ছাড়া কিছুই নয় যার অধীনে পৃথক, স্বতন্ত্র প্রকল্পগুলি কাজ করে। বিভিন্ন দল বিভিন্ন প্রকল্পে কাজ করে। যদিও পৃথক বিকাশকারীরা একাধিক প্রকল্পে কাজ করতে পারে, সেখানে কিছু সামগ্রিক রোডম্যাপ নেই যা পিঁপড়া, আইভী এবং মাভেনকে অন্তর্ভুক্ত করে।

পিঁপড়ে প্রথম এসেছিল। এটি মেকের জাভা সমতুল্য হিসাবে ডিজাইন করা হয়েছিল। মেক জাভা প্রকল্পগুলি তৈরি করতে পারে এমন সময় এটি ক্লান্তিকর: একটি সংকলন ইউনিটগুলির আলাদা আলাদা আলাদা আলাদাভাবে সংকলন করার জন্য তাদের তৈরি করুন then জাভা javacউপায়টি একসাথে সবগুলি সংকলিত করে এবং আমরা "লিঙ্কিং" বলি যা রানটাইমের সময় জেভিএমের সাহসিকতার মধ্যে ঘটে। কাজের জন্য মেক সঠিক সরঞ্জাম ছিল না: জাভার জন্য একটি মেকফিল মূলত এক বা দুটি লক্ষ্য ( javac, jar)।

পিঁপড়া মেকের শীর্ষে কিছুটা কাঠামো যুক্ত করেছিলেন, তবে মৌলিকভাবে প্রক্রিয়াটি পরিবর্তন করেন নি।

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

তবে, পিঁপড়া এখনও সত্যই কার্যকর ছিল। কিছু প্রকল্প কেবল অ্যান্টের প্রক্রিয়াগুলির স্বতঃস্ফূর্ততার জন্য নিজেকে আরও ndণ দেয়। কিছু প্রকল্প কোড সংকলন করছে না। কিছু প্রকল্প পুরানো ছিল এবং কেউই তাদের মাভেনের "আপগ্রেড" করবে এমন সম্ভাবনা ছিল না।

আইভির সাথে আসে: এটি পিঁপড়ায় নির্ভরতা পরিচালনা যুক্ত করে, উভয় বিশ্বের সেরা প্রকল্প দেয়। আপনি আপনার উত্তরাধিকারের স্ক্রিপ্টগুলি রাখতে পারেন, বা আপনি অত্যন্ত অনুকূল পরিবেশ তৈরি করতে পারেন তবে ম্যাভেনের সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্যটি অর্জন করতে পারেন: নির্ভরতা পরিচালনা।

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