উত্স নিয়ন্ত্রণ সংগ্রহস্থলে উত্স কোডটি 'পর্যালোচনা' করার জন্য সেরা অনুশীলনটি কী হবে?


12

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

উত্তর:


4

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

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

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

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

আমি একমাত্র ব্যবহার করেছি গুগলের অভ্যন্তরীণ সংস্করণ রিটভেল্ড এবং আমি এতে সন্তুষ্ট হয়েছি।


4

একাধিক দলে আমি যে কৌশলটি ব্যবহার করেছি তা হ'ল:

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

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

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


2
+1: "পর্যালোচনা খোঁজার পক্ষে কোড লেখকের দায়িত্ব" ব্যতীত। পরিচালনার দাবি পর্যালোচনা সম্পন্ন না হলে এগুলি অপ্রাসঙ্গিকায় চলে যাবে। কিছু প্রকারের পুরষ্কার সিস্টেম অবশ্যই থাকবে (এমনকি নৈমিত্তিক বা অনানুষ্ঠানিক) বা এটি সম্পন্ন হবে না। শাখা রক্ষণাবেক্ষণকারী কাউকে উত্তর দেয় এবং কোড পর্যালোচনাগুলির জন্য চেক করার ক্ষেত্রে শৃঙ্খলাবদ্ধ হওয়ার জন্য একরকম পুরষ্কার রয়েছে। ধাঁধা এই টুকরা এছাড়াও গুরুত্বপূর্ণ। লোকেরা কেন এটিতে শৃঙ্খলাবদ্ধ হবে তা আপনি বর্ণনা করতে পারেন?
এসলট

@ এস লট, আমি যে দলগুলিতে কাজ করেছি, পেশাদার গর্ব on এছাড়াও, আপনি যদি পর্যালোচনা না পান তবে আপনার কোড সংহত হয় না (উপরে বর্ণিত হিসাবে)। সুতরাং আপনার কোডটি পণ্যটিতে প্রবেশ করবে না এবং আপনি সেদিন / সপ্তাহ / পুনরাবৃত্তি কোনও কাজ করেন নি done যদি আপনার বিকাশকারীরা তাদের কাজটি করতে অনুপ্রাণিত না হয় তবে আপনার উত্স নিয়ন্ত্রণের সংগ্রহের ব্যবস্থা করার চেয়ে আপনার আরও খারাপ সমস্যা রয়েছে।

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

@ এস.লট আমি আপনার সম্পর্কে জানি না, তবে কোনও ব্যবস্থাপক আমার কাজ কীভাবে সম্পন্ন হয় সে সম্পর্কে তিনি আরও ভাল জানেন কিনা তা বিবেচনা করেই আমি ছদ্মবেশী একটি ছদ্মরূপ ছাড়ি না।

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

1

আমি কখনই কমিট / অ-কমিটেড মাপদণ্ডের দ্বারা পর্যালোচনার জন্য কোড পৃথক করি নি - ইউনিট টেস্ট এবং ইন্টিগ্রেশন পরীক্ষাগুলি সবুজ হ'ল একমাত্র মানদণ্ড encountered

ট্র্যাকিংয়ের ক্ষেত্রে আমি আপনার প্রিয় ইস্যু ট্র্যাকারের প্রবাহ আপডেট করার পরামর্শ দেব। পরিবর্তে উদাহরণের জন্য:

  • পণ্যের মালিক -> বিশ্লেষক -> বিকাশকারী -> কিউএ -> রিলিজ ইঞ্জিনিয়ার

আপনি আরও একটি পর্যায় (পর্যালোচনা) প্রবর্তন করতে চাইতে পারেন:

  • পণ্যের মালিক -> বিশ্লেষক -> বিকাশকারী -> পর্যালোচক -> কিউএ -> রিলিজ ইঞ্জিনিয়ার

সুতরাং বাস্তবায়িত রাষ্ট্রের প্রতিটি টিকিটের জন্য আপনি একটি পর্যালোচক নিয়োগ করতে পারেন এবং কেবল পর্যালোচিত টিকিটগুলি QA এ অগ্রসর হবে।


1

আমার কাছে কোড পর্যালোচনাগুলির একটিমাত্র অভিজ্ঞতা আছে, সুতরাং এটি কতটা ভাল তা আমি বলতে পারি না।

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


প্রতিদিন একবার করে প্রতিশ্রুতিবদ্ধ হওয়া আমাকে লাল পতাকা হিসাবে আঘাত করে। দুঃখিত।
btilly

হতে পারে. আমিও প্রথমে কিছুটা অবাক হয়েছিলাম। তবে এটি কোনও কঠিন এবং দ্রুত নিয়ম ছিল না এবং আপনি যতটা চান স্থানীয় পরিবর্তনগুলি "তাক" রাখতে পারেন।
apoorv020

0

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

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


0

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

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

এই প্রক্রিয়াটি নিয়ে আমরা যে সমস্যার সমাধান করেছি কেবল সেগুলি হ'ল বড় আইটেমগুলির মধ্যে একটি টন ফাইল ছিল। এটি হ্যান্ডেল করার জন্য কোডার এবং পর্যালোচক একসাথে মিলবে এবং কোডার পরিবর্তনগুলির মধ্য দিয়ে চলবে যতক্ষণ না পর্যালোচক সেগুলি বুঝতে পারে। তারা একসাথে কোড পর্যালোচনা করতে হবে।

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


0

আমার দলে আমরা গত এক বছর ধরে একটি অনুশীলন ব্যবহার করে আসছি যা দেখে মনে হচ্ছে এটি খুব ভাল কাজ করে।

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

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

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

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