আপনার অবিচ্ছিন্ন ইন্টিগ্রেশন সিস্টেমকে বাচ্চিত করা


22

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

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

আমি জানি যে অনেক পরিপক্ক দল ক্রমাগত একীকরণ ব্যবহার করে তবে ভাল অনুশীলনগুলির বিষয়ে প্রচুর পরিমাণে উপাদান নেই।

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

কিছু ভাল অভ্যাস অনুসরণ করা কি? পরিপক্ক অবিচ্ছিন্ন একীকরণের বৈশিষ্ট্যগুলি কী কী ?

হালনাগাদ

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

প্রত্যেকের উত্তর পড়ে, আমাদের মনে হয় আমাদের দুটি বড় সমস্যা হতে পারে।

  1. সিআই সার্ভার যখন বিল্ড ব্যর্থ হয় তখন যথেষ্ট জোরে অভিযোগ করে না।
  2. বিকাশকারীরা তাদের প্রতিশ্রুতি সফলভাবে অতিক্রম করেছে তা নিশ্চিত করার জন্য এটি সবার দায়িত্বের মতো মনে হয় না।

আমার দলে যে জিনিসগুলিকে আরও কঠিন করে তোলে তা হ'ল আমাদের কাছে একটি বিশাল দল রয়েছে (10+ বিকাশকারী) এবং আমরা যখন কাজের বাইরেও থাকি না তখন কম-বেশি অফ-শোর দলের সদস্যরা প্রতিশ্রুতিবদ্ধ। যেহেতু দলটি বৃহত এবং আমরা প্রতিষ্ঠিত করেছি যে ঘন ঘন, ছোট কমিটিকেই প্রাধান্য দেওয়া হয়, আমাদের মাঝে মাঝে একদিনে অনেক বেশি ক্রিয়াকলাপ হয়।


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

2
@ অ্যালিসন: সম্ভবত এটি তাই, যদিও আমার কাছে "বিল্ড ভেঙে ফেলা" অর্থ হ'ল কোড তৈরি করা নয় যা তৈরি করে না । একটি ব্যর্থ পরীক্ষা অনেক কম সমালোচনামূলক সমস্যা; এটি সাধারণত অন্যান্য বিকাশকারীদের তাদের কাজ শেষ হতে বাধা দেয় না।
অ্যারোনআউট

1
অ্যারোনটকে ব্যক্তিগতভাবে আমি এটিকে বিপরীত হিসাবে দেখতে পেয়েছি - কোডগুলি সংকলন করে এখনও স্বয়ংক্রিয় পরীক্ষায় ব্যর্থ হতে পারে এবং তাই "বিল্ডটি ভাঙ্গা"।
আরমান্ড

2
মার্টিন ফাউলারের কাছ থেকে একটি সাউন্ডবাইট উদ্ধৃত করার জন্য: যদি এটি ব্যথা হয় তবে এটি প্রায়শই করুন do
rwong

1
কেউ (যদি আমি সঠিকভাবে মনে করি তবে এটি ওয়ার্ড কানিংহাম ছিল) একটি বক্তৃতার সময় আমাকে তার দলের অনুশীলন জানিয়েছিল: যে বিল্ডটি ভেঙেছে তাকে সেই দিনের জন্য "আমি বিল্ডটি ভেঙে দিয়েছিলাম" এই শব্দটি সহ একটি টি শার্ট পরে থাকতে হয়েছিল the । তিনি আরও উল্লেখ করেছিলেন যে টি শার্ট কখনও ধুয়ে যায়নি।
ডক ব্রাউন

উত্তর:


29

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

বেশিরভাগ সিআই সার্ভার (আমি কেবল হডসন ব্যবহার করেছি) একটি স্বয়ংক্রিয় ইমেল প্রেরণ করবে যাতে করা বিলটি ভেঙে ফেলার কারণ হয়ে থাকে its আপনার ভূমিকার একমাত্র অংশ হ'ল সন্দেহজনক লোকেরা যা ভেঙে ফেলেছে তা স্থির না করা পর্যন্ত তাদের পিছনে শক্ত দেখা।


3
দিনের দেরিতে এবং তারা কাজ ছেড়ে দিলে কী ঘটে? এমন কোনও নিয়ম থাকা উচিত যা আপনি প্রতিশ্রুতিবদ্ধ না করতে পারেন যদি না আপনি এটি নিশ্চিত করে নিতে পারেন যে এটি সফলভাবে তৈরি হয়েছে?
সি_মেকার

4
আমি আশঙ্কা করছি যে হুমকি দিলে ছোট ফোকাসের পরিবর্তে বৃহত্তর ওভারচারিং কমিটকে উত্সাহ দেওয়া হবে যা পছন্দসই।
সি_মেকার

3
@ সি_মেকার: ছোট, কেন্দ্রীভূত কমিটগুলি বিল্ডটি ভাঙ্গার সম্ভাবনা কম হবে না? এটি আমার কাছে শৃঙ্খলার সমস্যা বলে মনে হচ্ছে, কোনও প্রক্রিয়া সমস্যা নয়।
অ্যারোনআট

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

5
কে এই বিল্ডটি ভাঙবে সে সম্পর্কে কে চিন্তা করে, যতক্ষণ না তারা এটি ফিক্স করে?

21

আপনার দল একটি জিনিস ভুল পেয়েছে:

বিল্ড জন্য দায়ী হচ্ছে সার্ভার জন্য দায়ী হচ্ছে হিসাবে একই নয় বিল্ড

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

  • বিল্ড ভেঙে!
  • বিল্ডিংয়ের সময় কী ভুল হয়েছে!
  • শেষ নির্মানের পরে কী পরিবর্তন হয়েছে!

এটি খুব ঘন ঘন ইমেলের মাধ্যমে ঘটে। এটি গুরুত্বপূর্ণ যে প্রতিটি চেক-ইন করার পরে এটি বেশ দ্রুত ঘটে।

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

সুতরাং আপনার প্রশ্নের জবাব দিতে: একজন পরিপক্ক সিআই পরিবেশের জন্য তার সাধারণ কাজকর্মের জন্য একজন দারোয়ানকে জড়িত থাকার প্রয়োজন হয় না

এছাড়াও, যদি "অদ্ভুত পরিস্থিতি বিদ্যমান" খুব ঘন ঘন ঘটে থাকে তবে এর কারণ কী তা খুঁজে বার করুন এবং সিস্টেমটিকে আরও শক্তিশালী করুন।


9

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

"সোনার শাখা" কৌশলটি সোনার শাখার দারোয়ান না থাকলে কার্যকর হয় না।

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


8

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

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

এই পদ্ধতির সাথে যুক্ত সুবিধাগুলি অন্তর্ভুক্ত:

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

গীত। পুরো বিল্ড বেবিসিটার ধারণাটি হাস্যকর, তবে অন্যরা এটি coveredেকে ফেলেছে।


আমেন। কিছু করা যায় বলেই বোঝায় না, এটি সর্বদা করা উচিত
gbjbaanb

7

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

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

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

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


2
যাওয়ার আগে বিল্ড ভাঙার বিষয়ে একমত হয়েছেন। আপনি একটি পরিবর্তন প্রতিশ্রুতিবদ্ধ, আপনি বিল্ডটি শেষ হওয়ার জন্য অপেক্ষা করেন যাতে আপনি জানেন যে এটি কাজ করেছে। এটা কি কাজ করে না? আপনার পরিবর্তনটি রোলব্যাক করুন বা চলে যাওয়ার আগে এটি ঠিক করুন। এটা করতে চান না? দিনের শেষ জিনিস পরিবর্তন করবেন না।
কারসন 63000

1
"উচিত" দুর্দান্ত তবে যে কোনও মানবিক উপাদান হ'ল শূন্যের সুযোগ। যদি বিল্ডটি গুরুত্বপূর্ণ হয় তবে এক বা একাধিক স্টেজিং বিল্ড সার্ভার রাখুন।

3

আমি মাইক্রোসফ্ট (সম্ভবত?) করার একটি জিনিস সম্পর্কে শুনেছি, যা দলের চারপাশে বাচ্চাদের সরানোর ভূমিকা রাখে। তারা এটি করার উপায়টি হ'ল যে কেউ যখন বিল্ডটি ভাঙেন (যার মধ্যে সম্ভবত এটির পরীক্ষাতে ব্যর্থ কোনও বিষয় যাচাই করা উচিত) তখন তারা ভূমিকাটি ধরে নেয় ass এটি লোককে তাদের কর্মের পরিণতির জন্য খুব প্রত্যক্ষভাবে দায়ী করে। এবং প্রদত্ত যে এটি করা কিছুটা বিরক্তিকর কাজ, এটি আবার বিল্ডটি না ভাঙতে তাদের উত্সাহ দেয়।

বর্তমানে বিল্ডটির জন্য দায়বদ্ধ ব্যক্তিটির একটি বিশেষ টুপি থাকতে পারে। এটি হস্তান্তর করার জন্য একটি অনুষ্ঠান হতে পারে।

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

এখন, প্রক্রিয়া বিশদটি বাদ দিয়ে, আমি কোনও বিল্ড অ্যান্ড টেস্ট চালিয়ে না গিয়ে চেক ইন করা বিকাশকারীদের প্রতি হতাশা প্রকাশকারী লোকদের কোরে যোগদান করতে যাচ্ছি। অগ্রহণীয়!

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


2

জোনাথন খু যেমন বলেছেন, আপনারা সবাই বিল্ড সার্ভার এবং বিল্ড স্ক্রিপ্টের জন্য দায়বদ্ধ হন। তিনটি কারণ রয়েছে:

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

আমি নিজে সিআই-এর সাথে খুব যুক্ত হয়েছি এবং স্ক্রিপ্টগুলি বজায় রাখার একের ফাঁদে পড়ে যাই তবে এটিকে প্রশমিত করতে আপনি করতে পারেন কয়েকটি জিনিস।

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

আমি কাউকে বিব্রত করার সাথে দৃ strongly়ভাবে একমত নই। আপনি যখন একটি সংশ্লেষ ত্রুটি আছে তখন আপনি কি আপনার সংকলকটি একটি অ্যালার্ম ফ্ল্যাশ করতে চান?

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

আমি এখনও একমত না। একটি বিল্ডিং সার্ভার কেবল একটি বিল্ডিং সার্ভার এবং প্রত্যেকে ভুল করতে পারে। কেবল অপরাধীকে অবহিত করুন এবং তাকে এটি ঠিক করতে দিন। যদি সে এটি ঠিক করে না, তবে আমরা অন্য কারও জানা উচিত কিনা তা বিবেচনা করা শুরু করতে পারি।

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

1

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

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

ট্রেতে ক্যাটলাইট সতর্কতার স্থিতি তৈরি করুন

ক্যাটলাইটও এই ব্যক্তির উপর সামাজিক চাপ চাপিয়ে প্রথমে এই বিল্ডটি কে ভেঙে দিয়েছে তা দেখিয়ে দেবে, কারণ পুরো দলটি পরের প্রতিটি বিল্ড ব্যর্থতার বিষয়টি দেখতে পাবে।

এখানে চিত্র বর্ণনা লিখুন


0

একটি কৌশল হ'ল প্রচুর ছোট প্রকল্পের জন্য প্রচুর ছোট ছোট শাখা ব্যবহার করা। তারপরে কেউ যখন বিল্ডটি ভাঙেন, তারা কেবল নিজের জন্য বিল্ডটি ভেঙে ফেলছেন। সুতরাং তারা বিল্ড সার্ভার থেকে বিরক্ত ইমেল পেয়েছে এবং এটি সম্পর্কে তাদের চিন্তিত হওয়া তাদের উপর নির্ভর করে।

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


আপনার যখন একটি বড় অ্যাপ্লিকেশন অবদান রাখে এমন একটি বড় অ্যাপ থাকে তখন 'প্রচুর ছোট ছোট শাখাগুলি' ভাল কাজ করে না।
সি_মেকার

2
না, এটা ভাল কাজ করে। তবে আপনি সময়কে একীভূত করতে বিকাশের সময় থেকে ব্যথা স্থানান্তর করেন। আপনি যদি নিয়মিতভাবে ছোট কাজের প্যাকেজগুলি মার্জ করেন তবে এটি মোটেই বেশি ক্ষতি করে না।
gbjbaanb

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

@ সি_মেকার: প্রতিটি কৌশলই ট্রেড-অফের সেট নিয়ে আসে এবং সমস্ত পরিস্থিতিতে কোনওটিই সঠিক নয়। তবে আমি আপনাকে যে দুটোই দিয়েছি তা এখনই ব্যবহার করা হচ্ছে একাধিক সংস্থায় যথেষ্ট সাফল্যের সাথে।
btilly

0

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


0

মনে রাখতে দম্পতিরা জিনিসগুলি:

  1. আপনার দলের অনুসরণ করতে মানকগুলির একটি সেট প্রয়োজন
  2. পরিষ্কার কোডের ধারণা নিয়ে আপনাকে বোর্ডে পরিচালনা পেতে হবে এবং উন্নত কোড অনুশীলনের জন্য প্রচেষ্টা করতে হবে।
  3. পরীক্ষার পরীক্ষা! আপনি চেক ইন করার আগে সর্বদা পরীক্ষা করুন।
  4. যদিও আমি সম্মত হই না যে এটি বিল্ডিং ঠিক আছে, এটি একটি বিরল এবং আমার অর্থ অত্যন্ত বিরল উপলক্ষ যা গ্রহণযোগ্য হবে। যদি এটি প্রতিদিন হয় তবে আমি দরজাটি খুঁজছি বা আমার বসের সাথে মানদণ্ডের বিষয়ে কথা বলব।

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

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