Bazel পরিচিতি

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

সুবিধা

Bazel নিম্নলিখিত সুবিধা প্রদান করে:

  • উচ্চ-স্তরের নির্মাণ ভাষা। Bazel একটি বিমূর্ত, মানব-পাঠযোগ্য ভাষা ব্যবহার করে একটি উচ্চ শব্দার্থিক স্তরে আপনার প্রকল্পের বিল্ড বৈশিষ্ট্যগুলি বর্ণনা করতে। অন্যান্য টুলের বিপরীতে, Bazel লাইব্রেরি, বাইনারি, স্ক্রিপ্ট এবং ডেটা সেটের ধারণার উপর কাজ করে, যা আপনাকে কম্পাইলার এবং লিঙ্কারের মতো টুলগুলিতে পৃথক কল লেখার জটিলতা থেকে রক্ষা করে।

  • Bazel দ্রুত এবং নির্ভরযোগ্য. Bazel পূর্বে করা সমস্ত কাজ ক্যাশে করে এবং ফাইল সামগ্রী এবং বিল্ড কমান্ড উভয়ের পরিবর্তনগুলি ট্র্যাক করে। এইভাবে, Bazel জানে কখন কিছু পুনর্নির্মাণ করা প্রয়োজন, এবং শুধুমাত্র এটিই পুনর্নির্মাণ করে। আপনার বিল্ডগুলিকে আরও গতিশীল করতে, আপনি একটি অত্যন্ত সমান্তরাল এবং ক্রমবর্ধমান ফ্যাশনে তৈরি করার জন্য আপনার প্রকল্প সেট আপ করতে পারেন।

  • Bazel হল মাল্টি-প্ল্যাটফর্ম। Bazel Linux, macOS এবং Windows এ চলে। Bazel একই প্রকল্প থেকে ডেস্কটপ, সার্ভার এবং মোবাইল সহ একাধিক প্ল্যাটফর্মের জন্য বাইনারি এবং স্থাপনযোগ্য প্যাকেজ তৈরি করতে পারে।

  • Bazel দাঁড়িপাল্লা. Bazel 100k+ সোর্স ফাইল সহ বিল্ড পরিচালনা করার সময় তত্পরতা বজায় রাখে। এটি কয়েক হাজারের মধ্যে একাধিক সংগ্রহস্থল এবং ব্যবহারকারী বেসের সাথে কাজ করে।

  • ব্যাজেল এক্সটেনসিবল। অনেক ভাষা সমর্থিত, এবং আপনি অন্য কোন ভাষা বা কাঠামো সমর্থন করার জন্য Bazel প্রসারিত করতে পারেন।

Bazel ব্যবহার করে

Bazel এর সাথে একটি প্রকল্প তৈরি বা পরীক্ষা করতে, আপনি সাধারণত নিম্নলিখিতগুলি করেন:

  1. Bazel সেট আপ করুন। Bazel ডাউনলোড এবং ইনস্টল করুন।

  2. একটি প্রজেক্ট ওয়ার্কস্পেস সেট আপ করুন , এটি একটি ডিরেক্টরি যেখানে বেজেল বিল্ড ইনপুট এবং BUILD ফাইলগুলি সন্ধান করে এবং যেখানে এটি বিল্ড আউটপুটগুলি সঞ্চয় করে৷

  3. একটি BUILD ফাইল লিখুন , যা Bazel কে কী তৈরি করতে হবে এবং কীভাবে এটি তৈরি করতে হবে তা বলে।

    আপনি একটি ডোমেন-নির্দিষ্ট ভাষা Starlark ব্যবহার করে বিল্ড টার্গেট ঘোষণা করে আপনার BUILD ফাইলটি লিখুন। ( এখানে উদাহরণ দেখুন।)

    একটি বিল্ড টার্গেট ইনপুট আর্টিফ্যাক্টগুলির একটি সেট নির্দিষ্ট করে যা Bazel তৈরি করবে এবং তাদের নির্ভরতা, বিল্ড রুল Bazel এটি তৈরি করতে ব্যবহার করবে, এবং বিকল্পগুলি যা বিল্ড নিয়ম কনফিগার করে।

    একটি বিল্ড নিয়ম নির্দিষ্ট করে যে বিল্ড টুলগুলি ব্যাজেল ব্যবহার করবে, যেমন কম্পাইলার এবং লিঙ্কার এবং তাদের কনফিগারেশন। সমর্থিত প্ল্যাটফর্মগুলিতে সমর্থিত ভাষায় সবচেয়ে সাধারণ শিল্পকর্মের ধরনগুলিকে কভার করে বেশ কয়েকটি বিল্ড নিয়ম সহ Bazel জাহাজ।

  4. কমান্ড লাইন থেকে Bazel চালান । Bazel কর্মক্ষেত্রের মধ্যে আপনার আউটপুট রাখে।

বিল্ডিং ছাড়াও, আপনি পরীক্ষা চালানোর জন্য Bazel ব্যবহার করতে পারেন এবং আপনার কোডে নির্ভরতা ট্রেস করার জন্য বিল্ডকে জিজ্ঞাসা করতে পারেন।

Bazel নির্মাণ প্রক্রিয়া

একটি বিল্ড বা একটি পরীক্ষা চালানোর সময়, Bazel নিম্নলিখিত কাজ করে:

  1. লক্ষ্যের সাথে প্রাসঙ্গিক BUILD ফাইল লোড করে।

  2. ইনপুট এবং তাদের নির্ভরতা বিশ্লেষণ করে, নির্দিষ্ট বিল্ড নিয়ম প্রয়োগ করে এবং একটি অ্যাকশন গ্রাফ তৈরি করে।

  3. চূড়ান্ত বিল্ড আউটপুট উত্পাদিত না হওয়া পর্যন্ত ইনপুটগুলিতে বিল্ড অ্যাকশনগুলি চালায়।

যেহেতু পূর্ববর্তী সমস্ত নির্মাণ কাজ ক্যাশে করা হয়েছে, তাই Bazel ক্যাশে করা শিল্পকর্মগুলি সনাক্ত করতে এবং পুনঃব্যবহার করতে পারে এবং শুধুমাত্র যা পরিবর্তিত হয়েছে তা পুনর্নির্মাণ বা পুনরায় পরীক্ষা করতে পারে। আরও সঠিকতা প্রয়োগ করার জন্য, আপনি স্যান্ডবক্সিং, তির্যক ন্যূনতম এবং প্রজননযোগ্যতা সর্বাধিক করার মাধ্যমে বিল্ড এবং পরীক্ষা চালানোর জন্য বেজেল সেট আপ করতে পারেন

অ্যাকশন গ্রাফ

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

টিউটোরিয়াল শুরু করা হচ্ছে

Bazel এর সাথে শুরু করতে, শুরু করা দেখুন বা সরাসরি Bazel টিউটোরিয়ালগুলিতে যান: