বিল্ড টুল কি?


130

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

ইদানীং আমি "বিল্ড টুলস" নামে পরিচিত এমন কিছু সম্পর্কে শুনে আসছি। শুনেছি এগুলি প্রায় সমস্ত ধরণের বাস্তব বিশ্বের বিকাশে ব্যবহৃত হয়। তারা ঠিক কি? কোন সমস্যাগুলি তারা সমাধানের জন্য ডিজাইন করা হয়েছে? বিগত চার বছরে আমি কখনই তাদের কীভাবে দরকার নেই? এগুলি কি আইডিই হ'ল কমান্ড-লাইন থেকে দূরে?

উত্তর:


117

বিল্ড টুলস কি?

বিল্ড সরঞ্জামগুলি এমন প্রোগ্রামগুলি যা উত্স কোড (যেমন। অ্যান্ড্রয়েড অ্যাপের জন্য .apk) থেকে এক্সিকিউটেবল অ্যাপ্লিকেশন তৈরি করতে স্বয়ংক্রিয় করে mate বিল্ডিং কোডকে একটি ব্যবহারযোগ্য বা সম্পাদনযোগ্য ফর্মের মধ্যে সংকলন, সংযোগ এবং প্যাকেজিং অন্তর্ভুক্ত করে।

মূলত বিল্ড অটোমেশন হ'ল সফটওয়্যার বিকাশকারীরা তাদের প্রতিদিনের কাজকর্মগুলিতে বিভিন্ন ধরণের কাজগুলি স্ক্রিপ্টিং বা স্বয়ংক্রিয় করার কাজ যেমন:

  1. নির্ভরতা ডাউনলোড করা হচ্ছে।
  2. বাইনারি কোডে উত্স কোড সংকলন
  3. প্যাকেজিং যে বাইনারি কোড।
  4. পরীক্ষা চলছে
  5. উত্পাদন সিস্টেমে মোতায়েন।

কেন আমরা বিল্ড টুলস ব্যবহার করি বা অটোমেশন তৈরি করি?

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

বিভিন্ন বিল্ড সরঞ্জাম উপলব্ধ (কেবলমাত্র কয়েকটি নামকরণ):

  1. জাভা জন্য - পিঁপড়া, মাভেন, গ্রেডল।
  2. .NET ফ্রেমওয়ার্কের জন্য - ন্যান্ট
  3. সি # - এমএস বিল্ড।

আরও পড়ার জন্য আপনি নিম্নলিখিত লিঙ্কগুলি উল্লেখ করতে পারেন:

1. অটোমেশন তৈরি করুন

2. বিল্ড অটোমেশন সফ্টওয়্যার তালিকা

ধন্যবাদ।


17

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

আপনি তাদের সম্পর্কে আগে না শোনার কারণ হ'ল আপনি এর আগে বাণিজ্যিক পরিবেশে কাজ করেননি। এমন একটি পুরো প্রচুর জিনিস রয়েছে যা আপনি সম্ভবত ব্যবহার করেননি যে কোনও বাণিজ্যিক পরিবেশের মধ্যে আপনি হবেন, বিশেষত যদি আপনি সফ্টওয়্যার হাউসে কাজ করেন।

অন্যরা যেমন বলেছে, আপনি সেগুলি ব্যবহার করে যাচ্ছেন, তবে আপনাকে সেগুলি বিবেচনা করার দরকার নেই, কারণ আপনি সম্ভবত সাধারণত বাণিজ্যিকভাবে কাজ করার পদ্ধতিতে অন্যভাবে কাজ করছেন working


10

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

ধারণাটি হ'ল আপনার কোডটি তৈরি, ডিবাগিং ইত্যাদি থেকে সংকলন এবং প্যাকেজিংয়ের কাজটি আলাদা করা to

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

C / C ++ নির্মাণের জন্য * নিক্স পরিবেশে ব্যবহৃত একটি প্রাথমিক কমান্ড সরঞ্জাম ছিল।

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


6
এখন, গ্রেডলও ব্যাপকভাবে ব্যবহৃত হয়
অসুর

আমি যেখান থেকে বসেছি তা নয়। আমি গ্র্যাডল সম্পর্কে সচেতন ছিলাম না, সুতরাং রেফারেন্সের জন্য আপনাকে ধন্যবাদ।
ডাফাইমো

@ ডিফাইমো দয়া করে আপনি শেষ লাইনে বিস্তারিত বর্ণনা করতে পারেন? অবিচ্ছিন্ন একীকরণ কী? তারা কীভাবে বিল্ড সরঞ্জামগুলির সাথে সম্পর্কিত?
কাজী ইরফান

4

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

এক্সিলিপ বা ভিজ্যুয়াল স্টুডিও হ'ল বিল্ড সিস্টেম (তবে একটি আইডিইর বেশি), এবং ভিজ্যুয়াল স্টুডিওর জন্য এটি হুডের নিচে ভিজ্যুয়াল স্টুডিও প্রকল্প ফাইলগুলি পার্স করার অন্তর্নিহিত মিসবিল্ড।

সমস্ত বিল্ড সিস্টেমের উত্স বিখ্যাত 'মেক' এর মতো মনে হয়।

বিভিন্ন ভাষার জন্য বিল্ড সিস্টেম রয়েছে:

  1. সি ++: মেক, cmake, প্রিমেক
  2. জাভা: পিপীলিকা + আইভী, মাভেন, গ্রেড
  3. সি #: মিসবিল্ড

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


1

বিল্ড প্রসেস হ'ল কিছু বিল্ড টুলস ব্যবহার করে এবং বিল্ডগুলি (যা প্রকল্পের নির্বাহযোগ্য সংস্করণ হয়) তৈরির জন্য কোনও ত্রুটির জন্য আপনার উত্স কোডটি সংকলনের একটি প্রক্রিয়া। বিল্ড প্রক্রিয়াটি হওয়ার জন্য আমরা (প্রধানত বিকাশকারীগণ) উত্স কোডে কিছু সংশোধন করি এবং সেই কোডটি চেক ইন করি। বিল্ড প্রক্রিয়াটির পরে এটি দুটি ফলাফল দেয়: 1. হয় পাস পাস করুন এবং আপনি আপনার প্রকল্পের একটি নির্বাহযোগ্য সংস্করণ পাবেন (বিল্ড প্রস্তুত)। ২. এটি ব্যর্থ হয় এবং আপনি নির্দিষ্ট ত্রুটি পান এবং বিল্ড তৈরি হয় না।

বিভিন্ন ধরণের বিল্ড প্রক্রিয়া রয়েছে যেমন: ১. নাইট বিল্ড ২. গেটেড বিল্ড ৩. অবিচ্ছিন্ন ইন্টিগ্রেশন বিল্ড ইত্যাদি

বিল্ড সরঞ্জামগুলি সহায়তা দেয় এবং বিল্ডগুলি তৈরি করার প্রক্রিয়াটিকে স্বয়ংক্রিয় করে তোলে।

* সুতরাং শর্ট বিল্ডে বিকাশকারী বা বিকাশকারী দল তাদের প্রডাক্টের চূড়ান্ত ফলাফলের জন্য আত্মবিশ্বাস অর্জনের জন্য বিকাশকারী বা বিকাশকারী দল দ্বারা ব্যবহৃত প্রাক-রিলিজ ফর্ম্যাটে একটি সংস্করণ যা তাদের প্রোডাক্টটির ধারাবাহিক পর্যবেক্ষণ করে এবং বিকাশ প্রক্রিয়া চলাকালীন সময়ে যে কোনও সমস্যা সমাধান করে। *


আপনি দয়া করে নাইটলি, গেটেড এবং অবিচ্ছিন্ন ইন্টিগ্রেশন বিল্ডস সম্পর্কে আরও কিছু বলতে পারেন?
কাজী ইরফান

@ আইয়ামক্র্যাসি বিভিন্ন বিল্ড সম্পর্কে ব্যাখ্যার জন্য আপনার প্রশ্নের সাথে আমি আরও একটি উত্তর যুক্ত করেছি। আপনি নীচে যে ব্যাখ্যা খুঁজে পেতে পারেন। আরও ভালভাবে বিল্ড প্রক্রিয়াটি বুঝতে আপনাকে সহায়তা করার জন্য আমি কয়েকটি লিঙ্কও যুক্ত করেছি।
প্রকাশ

1

এগুলি বিভিন্ন ধরণের প্রক্রিয়া যার মাধ্যমে আপনি নিজের বিল্ডগুলি সম্পন্ন করতে পারেন।

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

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

3. নাইট বিল্ডস: এটিকে তফসিলযুক্ত বিল্ড হিসাবেও উল্লেখ করা হয়। এই ক্ষেত্রে পরিবর্তনগুলি তৈরির জন্য আমরা একটি নির্দিষ্ট সময়ের জন্য চলার জন্য বিল্ডগুলি শিডিউল করি। শেষ বিল্ড থেকে পূর্ববর্তী সমস্ত অননুমোদিত পরিবর্তনগুলি এই বিল্ড প্রক্রিয়া চলাকালীন নির্মিত। এটি অনুশীলন করা হয় যখন আমরা একাধিকবার যাচাই করতে চাই তবে আমাদের কোডটিতে প্রতিটি সময় যাচাই করার সময় কোনও বিল্ড চাই না যাতে আমাদের একটি নির্দিষ্ট সময় বা সময় থাকতে পারে যাতে আমরা চেক ইন কোড তৈরির জন্য বিল্ডটি শুরু করতে পারি।

এই বিল্ডগুলি সম্পর্কে আরও বিশদ নীচের অবস্থানে পাওয়া যাবে।

বিল্ডস-এ গেটেড চেক

অবিচ্ছিন্ন একীকরণ বাড়ায় s

নাইট বিল্ডস


0

আপনি সেগুলি ব্যবহার করছেন - আইডিই একটি বিল্ড টুল tool কমান্ড লাইনের জন্য আপনি এই জাতীয় জিনিস ব্যবহার করতে পারেন make

লোকেরা রাত্রে তৈরির মতো জিনিসের জন্য কমান্ড লাইন সরঞ্জাম ব্যবহার করে - তাই সকালে একটি হ্যাংওভার দিয়ে প্রোগ্রামার বুঝতে পারে যে তিনি যে লাইব্রেরিগুলির সর্বশেষ বিল্ডগুলির সাথে ফিড করে চলেছেন তা কার্যকর হয় না!


11
সাধারণত আইডিই হয় না একটি build টুল, এর পরিবর্তে এটি সংহত সঙ্গে / একটি বিল্ড টুল কল। উদাহরণস্বরূপ ভিজ্যুয়াল স্টুডিও সাধারণভাবে এমএসবিল্ডকে কল করে।
জাস্টিন

-1

"... কী তৈরি করা দরকার তা ট্র্যাক করে রাখা খুব কঠিন" - বিল্ড সরঞ্জামগুলি সে সবের সাথে সহায়তা করে না। আপনি কী তৈরি করতে চান তা আপনার জানতে হবে। (রীতেশ গানের উত্তর থেকে উদ্ধৃত)

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

"কীভাবে আসি গত চার বছরে আমার কখনই তাদের প্রয়োজন হয়নি"। সম্ভবত আপনি দক্ষ প্রোগ্রামার হিসাবে।

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

কোনও প্রকল্পের উদ্দেশ্য এবং এটি অন্যান্য উপাদানগুলির সাথে কীভাবে কাজ করবে তা না জেনে আপনার কখনও কখনও কিছু যুক্ত করা উচিত নয়। উপাদানগুলি পৃথকভাবে কার্যকরী হতে পারে তবে একসঙ্গে কাজ করবে না। (এটি আমি যে সফ্টওয়্যার আর্কিটেক্ট ধরেছি তা দায়বদ্ধ)।

4-5 টি উপাদান যদি প্রকল্পে যুক্ত হয় তবে কী হবে। আপনি একটি 6th ষ্ঠ উপাদান যুক্ত করুন। প্রথম যুক্ত উপাদানগুলির সাথে একসাথে এটি সমস্ত কিছু স্ক্রু করতে পারে। কোনও স্বয়ংক্রিয় এটি সনাক্ত করতে সহায়তা করবে না।

চিন্তাভাবনা ভাবা ছাড়া আর কোনও শর্টকাট নেই।

তারপরে সংগ্রহস্থলগুলি থেকে অটো ডাউনলোড রয়েছে। আপনি কি কখনও এটি করতে চান? আপনি কী ডাউনলোড করবেন, প্রকল্পে কী যুক্ত করবেন তা আপনার জানতে হবে। আপনি কীভাবে সংগ্রহস্থলের সংস্করণগুলির পরিবর্তনগুলি সনাক্ত করতে পারেন? আপনাকে জানতে হবে. আপনি কিছুতেই "অটো" করতে পারবেন না।

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

আমি দুঃখিত যে এখানে কোনও শর্টকাট নেই https://en.wikedia.org/wiki/Stetec_method এবং https://en.wikedia.org/wiki/Analysis


আপনার উত্তরটি সি দৃষ্টিকোণ থেকে অবিশ্বাস্যভাবে পক্ষপাতযুক্ত যেখানে এটি একটি বিশাল সমস্যা। সংকলক চালানোর চেয়ে জটিল জটিলগুলির জন্য বিল্ড সরঞ্জামগুলি অপরিহার্য (তবুও, জিসিসি একটি বিস্তৃত বি-শব্দ) এবং কঠোর নির্ভরশীলতা ঘোষণা সহ নির্ভরতা ব্যবস্থাপনা গডসেন্ড। আপনি এটি ব্যবহার না করে কেবল তার অর্থ এইগুলি খারাপ ধারণা নয়। আপনি যদি স্টাফগুলি তৈরি করতে কেবল বাশ স্ক্রিপ্টগুলি ব্যবহার করেন তবে এটি একটি বিল্ড সরঞ্জামও - খুব খুব ভাল কোনও বিষয় নয়। আপনি যদি হাত দিয়ে বা একচেটিয়াভাবে আদর্শের মাধ্যমে সংকলন করেন তবে বিভিন্ন সিস্টেমে জটিল, পুনরাবৃত্তযোগ্য বিল্ডগুলির জন্য godশ্বর আপনার সাথে থাকতে পারেন।
পুনরাবৃত্তিমূলক এক্সসেপশন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.