সিনিয়র প্রোগ্রামারগুলির প্রকল্পগুলিতে জুনিয়র প্রোগ্রামারদের কোড রিভিউর হিসাবে যুক্ত হওয়া উচিত?


55

আমার দলের একজন সদস্য, একজন জুনিয়র প্রোগ্রামার, তার অভিজ্ঞতার স্তরের জন্য চিত্তাকর্ষক প্রোগ্রামিং দক্ষতা রয়েছে has

কোড পর্যালোচনা চলাকালীন, আমি ভুলকে নির্দেশ না করে, শেখার উপর জোর দেওয়ার বিষয়ে বিশ্বাস করি।

তবে জুনিয়র প্রোগ্রামারদের আরও সিনিয়র প্রোগ্রামারদের কোড রিভিউতে জড়িত হওয়া উচিত? অথবা কোড পর্যালোচনাগুলিতে কেবল একই অভিজ্ঞতাযুক্ত প্রোগ্রামাররা উপস্থিত থাকতে হবে?


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

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

18
তবে কখনও কখনও এই শিরোনাম এইচআর রাজনীতি এবং গেমস দ্বারা নির্ধারিত হয় :)
মিশাল ফ্রান্স

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

4
@ থমাস ওভেনস, "জুনিয়র প্রোগ্রামারস" দ্বারা, আমি বলতে চাইছি শিল্পে কম অভিজ্ঞতা সম্পন্ন লোক।
মোঃ মাহবুবুর রহমান

উত্তর:


62

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

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

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

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

এটি সত্যই কোনও ধরণের পর্যালোচনার জন্য প্রযোজ্য - প্রয়োজনীয়তা, ডিজাইন, কোড ...


4
"1 এর জন্য" পর্যালোচনায় প্রয়োজনীয় অংশগ্রহণকারীদের এমন ব্যক্তি হওয়া উচিত যারা তাদের শিরোনাম বা জ্যেষ্ঠতা নির্বিশেষে এই সমস্যাগুলি সনাক্ত করতে সবচেয়ে উপযুক্ত। এবং দুর্দান্ত উত্তরের জন্য।
মোঃ মাহবুবুর রহমান

60
"কোড পর্যালোচনার প্রাথমিক উদ্দেশ্য হ'ল ত্রুটি বা সম্ভাব্য সমস্যাগুলি খুঁজে পাওয়া" " সম্পূর্ণ অসমত। কোড-রিভিউয়ের প্রাথমিক উদ্দেশ্য জ্ঞান-ভাগাভাগি; কোড-রিভিউয়ের দ্বিতীয় উদ্দেশ্যটি কোডিং স্ট্যান্ডার্ড প্রতিষ্ঠা করছে; পর্যালোচনা চলাকালীন যে কোনও বাগ পাওয়া যায় বিচারের চেয়ে ভাগ্য বেশি। প্রোগ্রামার
.97things.oreilly.com

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

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

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

81

সিনিয়র প্রোগ্রামারগুলির প্রকল্পগুলিতে জুনিয়র প্রোগ্রামারদের কোড রিভিউর হিসাবে যুক্ত হওয়া উচিত?

হ্যাঁ তারা উচিত. অন্যান্য লোকের কোড পড়ার জন্য এটি একটি ভাল শিক্ষার অভিজ্ঞতা। (এবং এটি ভাল কোড এবং খারাপ উভয়ের জন্যই প্রযোজ্য Though যদিও একজন আশা করে যে একজন সিনিয়র বিকাশকারী কোডটি খারাপ না হয় ...)

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


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


আমি মনে করি মউভিচিল বলতে যা বোঝায় তা হ'ল সিনিয়রদের কোডটি ভয়ঙ্কর হতে পারে, সিনিয়ররা নিজেরাই নয় (যদি এটি হয় তবে হ্যাঁ, কোডটি পর্যালোচনা করার চেয়ে দলের বেশি গুরুতর সমস্যা রয়েছে)।
ইয়ানিস

6
@ ইয়ানিসরিজোজ - ১) আমি সেভাবে পড়ি না। ২) সেখানেই "অনেক কিছু প্রত্যাশা করা বুদ্ধিমানের " আসে। সিনিয়র কোডটি যদি "ভয় দেখানো" হয় তবে জুনিয়রের বিকাশের জন্য এটি পড়ার / বোঝার চেষ্টা করা বিশেষত ভাল ।
স্টিফেন সি

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

38

আমি যুক্ত করব যে যদি কোনও "জুনিয়র" প্রোগ্রামার সিনিয়র কোড বুঝতে না পারে তবে তা নিজেরাই কোডের একটি ভাল পরিমাপ। ঠিক আছে এমন সময়গুলি হতে পারে যখন কোডটি লেখা সম্ভব নয় যা প্রত্যেকে বুঝতে পারে তবে আশা করা যায় যে ব্যতিক্রমগুলি - যদি কেবল 1 বা 2 জন লোক কোডটি বুঝতে পারে তবে এই লোকেরা উপলব্ধ না থাকলে কী ঘটে এবং তাতে সমস্যা আছে এটা?

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

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


6
এখন এটি একটি ভাল উদ্বোধনী বাক্য।
পিডিআর

কোডটি যদি আরও উন্নত কৌশল ব্যবহার করে (যেমন অ্যারে এবং লুপগুলির পরিবর্তে সেট অপারেশনগুলি ব্যবহার করে), তবে কি হয় তা দলের মধ্যে কেউ তাদের খেলা উত্থাপন করে।
কেভিন ক্লায়ান

1
কোড পর্যালোচনা করার সময় এটি একটি অত্যন্ত শক্তিশালী সূচক যে কোডটির একটি বা দুটি মন্তব্য প্রয়োজন যদি কোনও ব্যক্তির একটি নির্দিষ্ট কোডের অংশটি কী করে তা জিজ্ঞাসা করতে হয়।
ব্রায়ান অ্যান্ডারসন

24

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

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

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


13

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

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

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

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

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

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

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

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

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

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


7

আমার উত্তর: কখনও কখনও । এটি প্রোগ্রামার থেকে প্রোগ্রামার, এবং টাস্ক থেকে টাস্কে পরিবর্তিত হতে চলেছে।

এর জন্য:

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

বিরুদ্ধে:

  • জুনিয়রদের নন-ইস্যু নিয়ে পর্যালোচনাগুলি ঝাঁপিয়ে পড়ার ঝুঁকি রয়েছে।
  • প্রয়োজনীয় জ্ঞান / দক্ষতার স্তরটি কেবল জুনিয়রের ক্ষমতার বাইরে। এটি কেবল তাদের সময় নষ্ট করবে না, তবে সম্ভবত তাদের খুব মনমুগ্ধ করবে।

5

আমি দৃ strong় বিশ্বাসী যে দলে প্রত্যেকেরই কোড পর্যালোচনা উভয় পক্ষের সাথে জড়িত হওয়া উচিত। জুনিয়রদের সিনিয়র কোড এবং তার বিপরীতে পর্যালোচনা করা উচিত। দুজনেই কেন? কারণ সাধারণত কোডটি "সমস্যা সমাধান করে" তা হয় না। আমি আপনাকে বলতে পারি না কতবার আমাকে কাউকে কোডের একটি টুকরো ব্যাখ্যা করতে হয়েছিল এবং হঠাৎ করে ব্যাখ্যাটির শেষে এটি করার আরও ভাল উপায় নিয়ে এসেছি। কোড পর্যালোচনা সম্ভবত 3 উদ্দেশ্যে পরিবেশন করে:

  1. কোডটি সঠিক কিনা তা নিশ্চিত করুন
  2. অন্যরা কীভাবে তাদের কোড দেখতে পাবে সে সম্পর্কে ভাবতে লেখককে পান
  3. কী উন্নত করা যায় সে সম্পর্কে পাঠকের প্রতিক্রিয়া এবং চোখের একটি সাধারণ দ্বিতীয় জোড়া পান

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

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


2

অবশ্যই, জুনিয়র ইঞ্জিনিয়ারদের কমপক্ষে কিছু সময় সিনিয়র ইঞ্জিনিয়ারদের কোড পর্যালোচনা করা উচিত।

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

আমার মতামত অনুসারে কোড পর্যালোচনার আরও কিছু সুবিধা উপেক্ষা করা হয়েছে যা ত্রুটিগুলি ধরায়ের চেয়ে দীর্ঘমেয়াদে সম্ভবত আরও গুরুত্বপূর্ণ:

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

এই উভয় দিক থেকেই, একজন জুনিয়র পর্যালোচক সিনিয়র ব্যক্তির চেয়ে বেশি উপকৃত হওয়ার ঝোঁক।


2

জুনিয়র প্রোগ্রামারদের অবশ্যই তাদের প্রবীণ সহকর্মীদের জন্য কোড পর্যালোচনা করা উচিত!

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

বিভিন্ন সুবিধাগুলি রয়েছে:

  • লেখক তাদের কোড সম্পর্কে আরও ব্যাখ্যা করতে বাধ্য হবে। আপনার কোডের মাধ্যমে কথা বলা হ'ল সমস্যাগুলি খুঁজে বের করার সেরা উপায় বা এটি করার আরও ভাল উপায়।

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

  • জুনিয়র দেব আরও ভাল কোডিং অনুশীলন শিখবে। কোড পর্যালোচনা উদাহরণ দ্বারা শেখানোর একটি সুযোগ।

  • জুনিয়র দেব আরও কার্যকর কোড রিভিউর হবে। কোড পর্যালোচনা করা শক্ত । কোড পর্যালোচনাগুলির সাথে আরও অভিজ্ঞ সবাই তত দ্রুত এবং কার্যকর কোড রিভিউ হয়ে ওঠে।

  • জুনিয়র দেবের কোড বেস সম্পর্কে গভীর জ্ঞান থাকবে। স্বার্থপর হোন! প্রথম দিকে জুনিয়র ডেভস টানার মাধ্যমে আপনি এটিকে তাড়াতাড়ি তাদের হাতে তুলে দিতে সক্ষম হবেন।

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

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

  • জ্যেষ্ঠ দেবগণ জবাবদিহি করা হয়। আমি প্রায়শই এমন পরিস্থিতি দেখেছি যেখানে সিনিয়র ডেভস একে অপরের কোড (আস্থা, অলসতা ইত্যাদির) উপর চকচক করে। চোখের একটি অতিরিক্ত সেট এটি নিরুৎসাহিত করতে সহায়তা করে।

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


0

একটি কোড পর্যালোচনা কোড পর্যালোচনা করার জন্য তৈরি করা হয়, শেখার জন্য নয়। আমি যদি জুনিয়র প্রোগ্রামার হতাম তবে সিনিয়র কোড পর্যালোচনা করতে আমাকে ভয় দেখানো হত।

অন্যদিকে, সিনিয়র কোড পড়া শেখার একটি দুর্দান্ত উপায়, তবে শর্ত থাকে যে সিনিয়র সমস্ত প্রশ্নের উত্তর দেওয়ার জন্য উপলব্ধ।

দুটি বিকল্প হতে পারে:

  • জুনিয়রদের কোড পর্যালোচনা সভায় যোগ দিন এবং প্রতিটি পরিচারককে কিছু শিক্ষণ / শেখার আলোচনার জন্য উন্মুক্ত রাখুন
  • অনুশীলন জোড়া প্রোগ্রামিং

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

ওপি স্পষ্টভাবে বলেছিল যে জুনিয়র প্রোগ্রামারটির দক্ষতা রয়েছে। কম অভিজ্ঞতা বলতে সর্বদা নিম্ন মানের কোড পর্যালোচনা বোঝায় না
ক্যাসাবেল

@ জেফ্রোমি: ওপি স্পষ্টভাবে বলেছে যে সে কোড পর্যালোচনার উদ্দেশ্যটি শিক্ষার ক্ষেত্রে নির্ধারণ করতে চায়। আমি কেবল বলি যে এটি তাদের পক্ষে বোঝানো হচ্ছে না।
mouviciel

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