গিটফ্লো ব্যবহার করে অন্য শাখা থেকে মার্জ করার জন্য কোডটিতে অপেক্ষা করে বিকাশকারীরা অবরুদ্ধ


17

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

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

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

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

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

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


কেবল যাচাই করা হচ্ছে - বৈশিষ্ট্যটির সাথে মিশে টাস্কটিতে কোড পর্যালোচনা করা হচ্ছে? এবং বৈশিষ্ট্যটি একত্রিত করার জন্য কোনও কোড পর্যালোচনা নেই?

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

উত্তর:


11

বিষয়টি ব্যাক-এন্ড এবং ফ্রন্ট-এন্ড বিকাশের মধ্যে কাজটির খুব কঠোর পৃথকীকরণের মধ্যেও থাকতে পারে।

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

নির্ভরতা ভঙ্গ করে, আপনি আরও ভাল প্রবাহ পাবেন এবং কোনও একক টাস্কের জন্য অপেক্ষা করতে যা আপনার বাধা হয়ে দাঁড়ায় না don't


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

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

5

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

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


0

যদি বিকাশকারী 1 টি বৈশিষ্ট্য A তে কাজ করে এবং বিকাশকারী 2 বৈশিষ্ট্য বি এর উপর নির্ভর করে যা বৈশিষ্ট্য B তে কাজ শেষ করে, তবে এর আশেপাশের কোনও উপায় নেই - বি বৈশিষ্ট্য বিটিকে একত্রে রাখা আছে। আপনি এ এ বৈশিষ্ট্যটি ছাড়া এটি পরীক্ষা করতে পারবেন না, এবং এটির পর্যালোচনা করার কোনও অর্থ নেই কারণ বৈশিষ্ট্য এ এর ​​আরও অগ্রগতি বি বৈশিষ্ট্য বিতে পরিবর্তন হতে পারে might

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


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

0

পরিস্থিতিটিকে সহায়তা করতে আপনি যা করতে পারেন তা হ'ল উন্নয়নের চক্রকে সংক্ষিপ্ত করার উপায়গুলিতে ভাল নজর দেওয়া।

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

ইন্টিগ্রেশন চক্র চালু রাখতে কাজের ছোট ছোট ইউনিটগুলিতে বৈশিষ্ট্যগুলি ভাঙ্গার উপায় আছে কি?

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


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