একটি আনুষ্ঠানিক কোড পর্যালোচনা পরিচালনা করার সময় সহায়ক মানসিকতা কী


14

আমাদের দল সম্প্রতি প্রতিটি চেকিনের বিপরীতে কোড পর্যালোচনা করা শুরু করেছে।

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

সুপরিচিত উত্সগুলি থেকে কোনও প্রমাণ, অধ্যয়ন বা গাইডেন্স রয়েছে যা সহায়ক পদ্ধতির পরামর্শ দেয়?


2
নিজেকে জিজ্ঞাসা করার প্রথম প্রশ্ন: আপনি কোড পর্যালোচনা কেন করছেন?
ফিলিপ কেন্ডল

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

এটি আপনার আগ্রহী হতে পারে
লাইভ

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

উত্তর:


15

অতিরিক্ত লক্ষ্যগুলি মনে রাখবেন: শেষ পর্যন্ত, কেবলমাত্র সফ্টওয়্যার সম্পর্কিত কাজ

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

আপনার পর্যালোচনা জন্য একটি পরিষ্কার সুযোগ সেট করুন

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

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

  • দুর্বল পারফরম্যান্সের জন্য চ্যালেঞ্জ করবেন না যদি না এমন কোনও ব্যবস্থা থাকে যা দেখায় যে সমস্যাটি কোথায়। অকালীন অপটিমাইজেশন হ'ল সমস্ত অশুভের মূল ;-)

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

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

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

নেতৃত্ব বিকাশ: পর্যালোচনা মানব দিক

একটি দলনেতা হিসাবে, আপনি একটি মান নিয়ন্ত্রণের আনুষ্ঠানিকতার বাইরে, নিজেকে এবং আপনার দলকে উন্নত করার সুযোগ পেতে পারেন:

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

অন্যান্য অনুশীলনের সুযোগ নিন

কোড-রিভিউতে আপনি কয়েকটি বিষয় এড়াতে পারেন:

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

"ওয়ার্কিং সফটওয়্যার"? খুব দরকারী না। "সঠিক সফ্টওয়্যার" - এটাই আমার পছন্দ!
ফ্র্যাঙ্ক হিলিমান

পছন্দ করুন এবং নির্ভুল, নির্ভরযোগ্য, ব্যবহারযোগ্য, পারফরম্যান্ট এবং উদ্দেশ্যে উপযুক্ত। এটি "ওয়ার্কিং" শব্দটি যথাযথভাবে সংজ্ঞায়িত করার জন্য একটি প্রশ্ন ;-)
ক্রিস্টোফ

3

বিকাশকারী হিসাবে আমরা, একই সাথে মানসিকতা সর্বদা উন্মুক্ত এবং সংশয়ী হওয়া উচিত।

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

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

এখানে বিষয়গত পন্থা। উদ্দেশ্য প্রশ্ন, আইএমও এই প্রশ্নটিতে খুব ভালভাবে ব্যাখ্যা করা হয়েছে

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

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

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


2

প্রসাধনী পরিবর্তনের জন্য বিকাশকারী কোডের সাথে মিল রেখে বিকাশকারীকে হ্রাস করা হবে তবে পরম পরিস্থিতিতে এটি করতে হবে। সীসাটি দরকারী কোড পর্যালোচনা সরবরাহ এবং সামান্য ত্রুটিগুলি ছেড়ে দেওয়ার জন্য শেখার মধ্যে ভারসাম্য সন্ধান করতে হবে । https://blog.smartbear.com/sqc/for-the-new-team-lead-the-first-six-things-you-should-know/


কসমেটিক পরিবর্তন প্রয়োজন "পরম পরিস্থিতি" কি?
ইয়ান

1
কোডিং নির্দেশিকা অনুসরণ না করা হলে, কোড ডিজাইনের ত্রুটিগুলি যা মেমরি ফাঁসের কারণ হতে পারে যখন নেতৃত্বটি যেতে দেয় না।
নিশানথ মেনন

আপনার লিঙ্কটি মারা গেছে
গ্রিননলাইন

1

কিছু বিষয় মনে রাখতে হবে:

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

-4

এখানে দুটি বিষয়ই গুরুত্বপূর্ণ।

  1. সমস্ত প্রয়োজনীয়তার জন্য স্বয়ংক্রিয় পরীক্ষা আছে?
  2. তারা কি সব পাস?

বাকি সমস্ত জিনিস প্রসাধনী এবং গেট হিসাবে প্রয়োগের পরিবর্তে বিয়ারের উপর দিয়ে তর্ক করা উচিত।

আপনি যদি এই দৃষ্টিভঙ্গিটি অনুসরণ করেন তবে তা আপনাকে ফোকাসের একটি সংকীর্ণ ক্ষেত্রে সীমাবদ্ধ করে।

প্রয়োজনীয়তা কি ভাল? কোন কাজটি শুরুর আগে আদর্শভাবে আপনার জানা উচিত, যেমন পারফরম্যান্স, সুরক্ষা ইত্যাদি সমস্ত সেখানে থাকা উচিত

পরীক্ষাগুলি কি ভাল পরীক্ষা হয়? যে কোনও মিসড এজের কেসগুলি, সেগুলি প্রয়োজনীয়ভাবে ভালভাবে পরীক্ষা করা হয় Ul শেষ পর্যন্ত: আপনি কোনও পরীক্ষা লিখতে পারেন যা বিদ্যমান প্রয়োজনের জন্য তবে যা ব্যর্থ হবে?


3
আপনি কি কোনও লাইন বিরতি ছাড়াই কোডটি বলতে পারবেন, কেবলমাত্র একক বর্ণের ভেরিয়েবলের নাম এবং অন্যথায় অবরুদ্ধ? সমস্ত পরীক্ষা পাস হবে, কিন্তু এটি রক্ষণাবেক্ষণযোগ্য নয়
ফিলিপ কেন্ডল

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