বাজেল এবং গ্রেডলের মধ্যে পার্থক্য কী?


145

গুগল সবেমাত্র তার বিল্ড টুলটি বাজেলকে খোলা সন্ধান করেছে । এই সরঞ্জাম এবং গ্রেডল মধ্যে পার্থক্য কি ? গ্রেডল কীভাবে তা করতে পারে না, এটি আরও কী করে এবং গ্রেডল আরও ভাল কী করতে পারে?

উত্তর:


171

দাবি অস্বীকার: আমি বাজেল-এ কাজ করি এবং গ্র্যাডলের সাথে আমি ঘনিষ্ঠভাবে পরিচিত নই। তবে, আমার সহকর্মীদের মধ্যে একটি দুটি সিস্টেমের একটি তুলনা লিখেছিল, যা আমি এখানে প্যারাফ্রেস করব:

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

গ্রেডেল বাজেলের মতো একই নীতিগুলিকে মূল্য দেয় না, অর্থাত গ্র্যাডেল টিম পারফরম্যান্সের প্রতি খুব বেশি মনোযোগ দেয় (ইনক্রিমেন্টাল বিল্ডস, সমান্তরাল কনফিগারেশন এবং এক্সিকিউশন, গ্রেডল ডিমন), নির্ভুলতা (সামগ্রী-ভিত্তিক "আপ-টু-ডেট" চেকিং) এবং পুনরুত্পাদনযোগ্যতা (ঘোষণামূলক সিনট্যাক্স, নির্ভরতা সংস্করণ, সুস্পষ্টভাবে ঘোষিত নির্ভরতাগুলির জন্য সমৃদ্ধ সমর্থন)। এবং বাজেল নমনীয় প্রকল্প বিন্যাসের প্রয়োজনকে সম্মান করে।

বিষয়টি হ'ল গ্রেডল ভাল অভ্যাসের প্রচার করতে চায় যখন বাজেল এটির প্রয়োজন হয়। গ্রেডল এর ​​পিঁপড়ের অভিজ্ঞতা (অন্তর্নিহিত ফলাফলের সাথে আপনার নিজস্ব প্রকল্পের কাঠামো সংজ্ঞায়িত করার স্বাধীনতা) এবং মাভেনের অভিজ্ঞতার (প্রকল্পের প্রয়োজনগুলির ভিন্নতার জন্য কোনও জায়গা ছাড়াই সেরা অনুশীলনগুলি প্রয়োগ করা) মধ্যবর্তী মাঝের জন্য লক্ষ্য। বাজেল বিশ্বাস করেন যে শক্তিশালী গ্যারান্টিগুলি যে তার শক্তিশালী কর্মপ্রবাহকে সক্ষম করে ত্যাগ না করেই নমনীয় প্রকল্প সহায়তা সম্ভব।

উভয়ই দর্শনের চেয়ে বেশি "সঠিক" নয় - যে কোনও সরঞ্জাম কোনও প্রকল্পের পক্ষে সবচেয়ে ভাল স্যুট করে সেই নির্দিষ্ট প্রকল্পের মানগুলির উপর নির্ভর করে।

গ্রেডল ওভারভিউ

গ্রেডল একটি অত্যন্ত নমনীয় সিস্টেম যা ব্যবহারকারীরা তাদের প্রকল্পগুলি কীভাবে সংগঠিত করে তার উপর ন্যূনতম সীমাবদ্ধতার সাথে সম্পূর্ণ, নির্ভরযোগ্য বিল্ড প্রবাহ তৈরি করা সহজ করে তোলে। এটি জেনেরিক, টুরিং-সম্পূর্ণ, স্ক্রিপ্টিং ইন্টারফেস সহ শক্তিশালী বিল্ডিং ব্লক সরবরাহ করে (যেমন স্বয়ংক্রিয় নির্ভরতা ট্র্যাকিং এবং পুনরুদ্ধার, শক্তভাবে সংহত প্লাগইন সমর্থন) সরবরাহ করে যা ব্যবহারকারীরা চায় wants

গ্রেডল নিম্নলিখিত বৈশিষ্ট্যগুলিকে জোর দেয়:

  • অন্যান্য সিস্টেম থেকে সহজ স্থানান্তর। গ্রেডল সহজেই যেকোন প্রকল্পের সংস্থাকে সহজেই নির্বিচারে ওয়ার্কফ্লো কাঠামো বাস্তবায়নের জন্য সমন্বিত করে। এটি স্থানীয়ভাবে পিঁপড়ার কাজগুলি বোঝে এবং মাতেন এবং আইভী সংগ্রহস্থলের সাথে স্থানীয়ভাবে সংহত করে।
  • উচ্চ এক্সটেনসিবল স্ক্রিপ্টিং মডেল। গ্রোভী স্ক্রিপ্টগুলি লিখে ব্যবহারকারীরা সমস্ত বিল্ড লজিক প্রয়োগ করে। একটি "বিল্ড" হ'ল জেনেরিক কার্যগুলির একটি নির্ভরতা-সিকোয়েন্সড এক্সিকিউশন, যা মূলত ওপেন-এন্ডেড, ওভারডেজেবল, এক্সটেনসিবল মেথড ডেফিনেশন।
  • সমৃদ্ধ নির্ভরতা ব্যবস্থাপনা। বহিরাগত কোড সংগ্রহস্থল, স্থানীয় ফাইল সিস্টেম এবং অন্যান্য গ্রেডাল প্রকল্পগুলি থেকে সংস্করণ নির্ভরতা ঘোষণা করা এবং স্বয়ংক্রিয়ভাবে মঞ্চস্থ করা যেতে পারে। বিল্ড আউটপুটগুলি একইভাবে সংগ্রহশালা এবং অন্যান্য স্থানগুলিতে স্বয়ংক্রিয়ভাবে প্রকাশিত হতে পারে।
  • শক্তভাবে ইন্টিগ্রেটেড প্লাগইন সিস্টেম। প্লাগইনগুলি কেবল কোনও পছন্দসই কর্মপ্রবাহের সুবিধার্থে সংগঠিত কার্যগুলির বান্ডিল। গ্রেডলের অনেকগুলি "মূল" বৈশিষ্ট্য আসলে প্লাগইনগুলির মাধ্যমে প্রয়োগ করা হয় (যেমন জাভা, অ্যান্ড্রয়েড)। বিল্ড স্ক্রিপ্ট যুক্তি দিয়ে প্লাগইনগুলি দৃ interact়ভাবে ইন্টারঅ্যাক্ট করে (তাদের বিবেচনার ভিত্তিতে)। প্লাগইনগুলি গ্রেডলের মূল ডেটা স্ট্রাকচারটিতে গভীর অ্যাক্সেস উপভোগ করে।

বাজেল ওভারভিউ

বাজেল নির্ভরযোগ্য এবং দক্ষতার সাথে অভ্যন্তরীণ গুগল প্রকল্পগুলি তৈরির প্রয়োজন থেকে বিবর্তিত হয়েছে। গুগলের বিকাশের পরিবেশটি অস্বাভাবিকভাবে বড় এবং জটিল হওয়ায় বাজেল এর বিল্ডগুলির অখণ্ডতা এবং সেগুলি অর্জনে অস্বাভাবিকভাবে কম পারফরম্যান্সের ওভারহেড সম্পর্কে অস্বাভাবিক দৃ strong় গ্যারান্টি সরবরাহ করে।

এটি পুনরুত্পাদনযোগ্য বিল্ডগুলির চারপাশে নির্মিত শক্তিশালী বিকাশের ওয়ার্কফ্লোগুলির জন্য একটি ভিত্তি সরবরাহ করে, যেখানে একটি "বিল্ড" একটি বিমূর্ত সত্তা হয়ে যায় যা রেফারেন্স, পুনরাবৃত্তি, বিভিন্ন মেশিনের কাছাকাছি যেতে পারে এবং স্বেচ্ছাসেবী প্রোগ্রাম এবং পরিষেবাদিতে যেমন প্রতিটি উদাহরণ হিসাবে পরিচিত হিসাবে পরিচিত ঠিক একই.

বাজেল নিম্নলিখিত বৈশিষ্ট্যগুলিকে জোর দেয়:

  • শুদ্ধি। বাজেল বিল্ডগুলি সর্বদা সঠিক আউটপুট, পিরিয়ড উত্পাদন করতে ডিজাইন করা হয়। যদি দুটি ব্যবহারকারী একই মেশিনে একই মেশিনে একই মেশিনটিতে একই মেশিনে একই বাজেল পতাকা ব্যবহার করে তবে তারা অভিন্ন ফলাফল দেখতে পাবে। ক্রমবর্ধমান বিল্ডগুলি ক্লিন বিল্ডগুলির মতো নির্ভরযোগ্যভাবে সঠিক, পরেরটিগুলি অপ্রয়োজনীয়ভাবে রেন্ডার করে।
  • কর্মক্ষমতা. বিল্ডগুলি তাদের উপলব্ধ সংস্থানগুলি সরবরাহ করে যত তাড়াতাড়ি সম্ভব অভ্যন্তরীণভাবে কার্যকর করতে ডিজাইন করা হয়েছে। কার্যগুলি যেমন নির্ভরশীলতা চেইনের অনুমতি দেয় তেমনি সমান্তরাল। অপ্রয়োজনীয় কাজ কখনই সম্পাদিত হয় না (অর্থাত্ "সর্বশেষতম" কার্য সবসময় বাদ দেওয়া হয়)। স্থানীয় মেশিনের সীমা অতিক্রম করতে প্রাকৃতিকভাবে দূরবর্তী নির্বাহকদের কাছে কাজ করা যায়।
  • Reproducibility। কোনও বিল্ডের কোনও উদাহরণ বিশ্বস্ততার সাথে যে কোনও পরিবেশে পুনরুত্পাদন করা যেতে পারে। উদাহরণস্বরূপ, কোনও বাগ রিপোর্টে যদি বলা হয় যে X এর সফ্টওয়্যার ওয়াইয়ের X সংস্করণ উত্পাদন পরিবেশে Z ব্যর্থ হয় তবে কোনও বিকাশকারী আত্মবিশ্বাসের সাথে তাদের নিজের মেশিনে পুনরায় তৈরি করতে পারেন যে তারা একই জিনিসটি ডিবাগ করছে।

18
দুটি সিস্টেমের তুলনা কি প্রকাশ্যে পাওয়া যায়? যদি হ্যাঁ, আপনি এটি ভাগ করতে পারেন?
কার্লোস বার্সেলোনা

43

নিবন্ধের লিঙ্কগুলি মারা যাওয়ার প্রবণতা হিসাবে, এখানে বাজেল সম্পর্কে গ্রেডল টিমের মতামতের সংক্ষিপ্তসার রয়েছে (বেশিরভাগ সরাসরি নিবন্ধ থেকে উত্তোলন করা হয়েছে, যা মার্চ 2015 এ প্রকাশিত হয়েছিল):

এটি গুগলের অনন্য কোনও সমস্যা সমাধানের জন্য ডিজাইন করা হয়েছিল; একটি বিশাল একঘেয়ে কোডবিজ (কয়েক মিলিয়ন এলওসি)

বাজেল বর্তমানে যে সমান্তরাল সুবিধা সরবরাহ করে তা "আমাদের আসন্ন নতুন কনফিগারেশন এবং উপাদান মডেল" (এখানে নিবন্ধের তারিখটি মনে রাখবেন) এর সাথে মিলবে।

বাজেলে একটি উচ্চ স্তরের ঘোষণামূলক বিল্ড ভাষা নেই যা বিল্ডকে বিকাশকারীদের জন্য ব্যবহার সহজ করে তোলে। গুগলে এটিকে বিল্ড সরঞ্জামের মালিকানাধীন একটি বিশেষায়িত পরিষেবা দলের সাথে ক্ষতিপূরণ দেওয়া যেতে পারে।

বাজেল এক্সটেনসিবিলিটির জন্য নির্মিত হয় না (যদিও বাজেল বিকাশকারী দল তখন থেকে তারা এক্সটেনসিবিলিটি নিয়ে কাজ করছে এমন নিশ্চয়তার সাথে এটি মোকাবেলা করেছে)।

সমস্ত ট্রানজিটিভ নির্ভরতা একটি বড় রেপোতে সংরক্ষণ করা হয় এই ধারণার চারদিকে গতি অনুকূল করা হয়েছে; সমস্ত গ্রন্থাগার এবং সরঞ্জামগুলি এই কেন্দ্রীয় সংগ্রহস্থলে চেক ইন করা হয়। বেশিরভাগ এন্টারপ্রাইজগুলিতে বেশি বিতরণ নির্ভরতা পরিচালনার প্রয়োজনীয়তা থাকে।

বাজেল কেবল * নিক্স, এটি উইন্ডোতে চলবে না। এটি বিপুল সংখ্যক সম্ভাব্য উদ্যোগকে সরিয়ে দেয়।

কোনও প্লাগইন ইকোসিস্টেম নেই।


17
এই উত্তরের আপডেট হিসাবে, নোট করুন: ১. বাজেল এক্সটেনসিবিলিটি সম্পর্কে অনেক উন্নতি করেছে (অনেকগুলি নতুন ভাষা এখন সম্প্রদায়কে ধন্যবাদ জানায়), ২. একটি পরীক্ষামূলক উইন্ডোজ সংস্করণ রয়েছে ( bazel.build/versions/master/docs/ উইন্ডোজ এইচটিএমএল )। এই বছর উইন্ডোজ সমর্থন অনেক উন্নতি করা উচিত।
লরেন্ট

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

2
"আমাদের আসন্ন নতুন কনফিগারেশন এবং উপাদান মডেল" যা কখনও ঘটেনি। তারা মনে হয় গ্র্যাডলের নিবন্ধে যে কোনও লিঙ্ক মুছে ফেলেছে। তবে ২০১৪ সালে তারা সম্ভবত "নিয়ম-ভিত্তিক মডেল কনফিগারেশন" সম্পর্কে কথা বলছিলেন যা এখন অবহেলিত । এই সামান্য পরীক্ষার গ্র্যাডেলকে অনেক বেশি ব্যয় হয়েছিল কারণ এটি সম্প্রদায়কে প্রায় অর্ধেক করে ফেলেছে।
রেনাতো

1

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

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

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