কোড পর্যালোচনা, সুবিধা কি কি? [বন্ধ]


12

আমার দলে, আমরা আনুষ্ঠানিক কোড পর্যালোচনা করি না। আমরা প্রায়শই জোড় জোড় প্রোগ্রামিং এবং ঘোরানো জোড়া যথেষ্ট তা ভাবার প্রবণতা।

আমাদের কি আনুষ্ঠানিক কোড পর্যালোচনা করা বিবেচনা করা উচিত? সুবিধা কি হবে?


1
সম্পর্কিত প্রশ্ন: প্রোগ্রামারস.স্ট্যাকেক্সচেঞ্জ / প্রশ্ন / 15874/… আপনি সেখানে কিছু প্রতিক্রিয়া আকর্ষণীয় খুঁজে পেতে পারেন।
কেভিন ডি

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

উত্তর:


8

আমরা কোড পর্যালোচনা কিছুটা আলাদা (সম্ভবত) করি।

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

অনুকূল:

  • সংস্থায় কী ঘটে তা প্রত্যেক সদস্যই জানেন
  • বাগগুলি দ্রুত পাওয়া যায়
  • এটি আমাদের পঠনযোগ্য কোড (এমন কোড যা ব্যাখ্যা বা প্রবর্তন ছাড়াই পড়া যায়!) লিখতে বাধ্য করে!
  • অনুকূলকরণের পদ্ধতি / কৌশল / উত্পাদনশীল প্রোগ্রামগুলি দ্রুত ছড়িয়ে পড়ে
  • বিশেষজ্ঞ হিসাবে প্রোগ্রামার দ্রুত "বিকশিত" হয়
  • এটা একটা মজা

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

আমি আশা করি এটি কিছু চিন্তাভাবনা নিয়ে আসবে। শুভকামনা।


আপনি যখন বলছেন "দলটি যত দীর্ঘ সময় এক সাথে কাজ করে - তত দ্রুত তা পায়" আপনি কী উল্লেখ করছেন? এবং কিভাবে এটি একটি খারাপ জিনিস?
এডগার গঞ্জালেজ

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

ওহ, তবে আপনি পুরো দলটিকে আরও ভাল করে জানতে পারেন, এবং আপনি সমস্যা ডোমেন সম্পর্কে আরও সাধারণ জ্ঞান অর্জন করতে পারেন, পাশাপাশি কেবলমাত্র একজনের থেকে নয় সমস্ত দলের সদস্যদের থেকে 3 বা 4 টি ভিন্ন মতামত :)
এডগার গঞ্জালেজ

কোড পর্যালোচনার সময় আপনি একই পান get :) আরও আপনি প্রতিটি কোম্পানির প্রোগ্রামার থেকে প্রতিটি ক্ষেত্রে মতামত পেতে। মাত্র কয়েকদিন অপেক্ষা করতে হবে।
জ্যাকলিও

4

আপনি এই বিনামূল্যে বইয়ের মাধ্যমে পড়তে চাইতে পারেন:

http://smartbear.com/best-kept-secrets-of-peer-code-review/

অবশ্যই, তাদের কাছে ধাক্কা দেওয়ার মতো পণ্য রয়েছে তবে সেখানে এখনও প্রচুর দরকারী তথ্য রয়েছে।

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


2

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

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


1

আপনার কি ফর্মাল কোড রিভিউ করা উচিত?

একেবারে

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

আমি কোড রিভিউ দুটি ফর্ম পরিচয় করিয়ে দিতে হবে:

পিয়ার কোড পর্যালোচনা

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

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

পিয়ার কোড পর্যালোচনা (আমার বিশ্বে) প্রতিটি জমা দেওয়ার আগে পরিচালিত হয় । জুটিযুক্ত প্রোগ্রামিং বিশ্বে এটি কীভাবে বহন করে, আমি নিশ্চিত নই।

গ্রুপ কোড পর্যালোচনা

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

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

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

আমি খুঁজে পেয়েছি যে এই দুটি পদ্ধতির নিয়োগের ফলে ইঞ্জিনিয়াররা অগ্রগতির পাশাপাশি বাগের সংখ্যাও কমিয়ে আনার হার বাড়ায় :)


2
"এটি কখনও ব্যথা করে না"। ঠিক আছে, হ্যাঁ পারে। কোড পর্যালোচনাগুলি ব্যয়বহুল এবং সময় নষ্ট করা অনেক সময় হতে পারে, যা ওয়ার্কিং সফটওয়্যার সরবরাহ করতে আরও ভাল ব্যয় হবে।
মার্টিন উইকম্যান

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

@ ফ্র্যাঙ্ক হ্যাঁ, তবে আমরা জোড় প্রোগ্রামিংয়ের সাথে আনুষ্ঠানিক পর্যালোচনাগুলির তুলনা করছি এবং পিপি ট্রাকের নম্বরটি পরিচালনাযোগ্য রেখে জাস্টা ভাল (আরও ভাল ইমো) কাজ করে।
মার্টিন উইকম্যান

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

@ ডেমিয়ান, আবার আমরা পিপি এর সাথে তুলনা করছি যা কোড পর্যালোচনা, তবে ক্রমাগত এটি ঘটে। এটি আমার অভিজ্ঞতাতে আনুষ্ঠানিক কোড পর্যালোচনার চেয়ে ভাল করে তোলে। পিয়ার পর্যালোচনা অপরিহার্য তবে এগুলি করার বিভিন্ন উপায় রয়েছে।
মার্টিন উইকম্যান

1

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

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

আমরা গড়ে প্রতি সপ্তাহে একটি অধিবেশন করেছি, এতে 3-5 জন জড়িত। প্রতিটি সেশনে জনপ্রতি (প্রস্তুতি সহ) প্রায় 3-4 ঘন্টা সময় লেগেছিল এবং 200-300 লাইনের কোড (এলওসি) * পর্যালোচনা করেছেন। এই গতিতে, 6 মাসেরও বেশি সময়কালে আমরা প্রায় 50K এর মধ্যে প্রায় 5K এলওসি পর্যালোচনা করতে পেরেছি।

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

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


* এটি আনুষ্ঠানিক কোড পর্যালোচনার স্বাভাবিক গতি।

সাধারণ কোড পর্যালোচনার হার প্রতি ঘন্টা প্রায় 150 লাইন কোড। সমালোচনামূলক সফ্টওয়্যার (যেমন সুরক্ষা সমালোচনা এম্বেডড সফ্টওয়্যার) এর জন্য প্রতি ঘন্টা কয়েক শতাধিক লাইন কোড পরিদর্শন ও পর্যালোচনা ত্রুটিগুলি খুঁজে পেতে খুব দ্রুত হতে পারে।

উইকিপিডিয়া থেকে উদ্ধৃত (আমার দ্বারা জোর দেওয়া)।


1

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

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

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

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


0

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


0

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

লাভ কি কি? আচ্ছা, আপনি যদি এটি না করার ঝুঁকি বিবেচনা করেন তবে এটি আরও ভাল হবে।

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

আমি আনন্দিত যে লোকেরা বলেছে যে কোড পর্যালোচনা সময়ের অপচয়। হ্যাঁ, এটি সময় নেয় না। হতে পারে এটি কোডে কোনও পরিবর্তন আনবে না তবে এর অর্থ এটি নষ্ট হচ্ছে ted আপনার বলার মতো বিষয়গুলি আপনার নিয়মিত আপনার ফায়ার সিস্টেমটি পরীক্ষা করা দরকার না কারণ এটি সময় নষ্ট।


0

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

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

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