জুনিয়র বিকাশকারীদের জন্য কি কোড পর্যালোচনাগুলি প্রয়োজনীয়?


39

কোড দুটি পর্যালোচনা করার সময় আমি দুটি সংস্থায় কাজ করেছি, যাদের প্রত্যেকেরই আলাদা পদ্ধতি ছিল:

প্রথম সংস্থায় টিম নেতারা একটি কোড পর্যালোচনা পরিচালনা করেছিলেন এবং প্রতিটি মডিউল শেষ হওয়ার পরে এটি প্রয়োজনীয় ছিল।

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

তাই আমি বিভ্রান্ত কোড পর্যালোচনা প্রক্রিয়া কি আসলেই প্রয়োজন? যদি তা হয় তবে কেন? এবং যদি তা না হয় তবে কেন নয়?


28
যদি সিনিয়র বিকাশকারীরা জুনিয়র বিকাশকারীদের কোনও নির্দিষ্ট উপায়ে কাজ করতে বলেন তবে প্রায়শই খুব ভাল কারণ থাকতে পারে ....

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

9
@ থরজজর্ন - এটি কেবল সত্য যদি সিনিয়র বিকাশকারীরা দক্ষতার কারণে সিনিয়র হন এবং সময়কালের কারণে নয়। সিনিয়র ইঞ্জিনিয়ারদের প্রচুর ব্যাড কোড এবং নকশা দেখেছি
ক্যালড্রেক্সিক্স

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

4
+1 ক্যালড্রেইক্সএক্সএক্স - এটি আমি খুঁজে পেয়েছি। আমি প্রায়শই একজন "সিনিয়র" বিকাশকারীকে জানি না কেন আপনি কেবল স্থির শ্রেণিতে সমস্ত কিছু আটকে রাখবেন না, বা পরীক্ষার বিষয়ে কিছু জানেন না, বা কোনও সঠিক নকশার নমুনা জানেন না ... "সিনিয়র" সাধারণত কার্যকালকে বোঝায় এবং দক্ষতা থেকে নয় আমি কি বলতে পারি।
ওয়েন মোলিনা

উত্তর:


107

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

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

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

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


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

63
টিম লিডগুলির তাদের কোডটিও পর্যালোচনা করা উচিত, কারণ প্রায়শই জুনিয়র বিকাশকারীরা মূল্যবান কৌশলগুলি শিখতে পারেন বা কমপক্ষে "ভাল" কোডটি কীভাবে দেখানো উচিত তা দেখতে পান। এবং কেবলমাত্র আপনি একটি দলের নেতৃত্বের অর্থ এই নয় যে আপনি কোনও ভুল করতে পারবেন না।
TMN

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

2
@ টিএমএন খুব ঠিক আছে। "সিনিয়র বিকাশকারী" শিরোনামের অর্থ "ভুল করতে অক্ষম" বা "উন্নতি করতে অক্ষম" নয়। যদি এটি হয় তবে এটি আমার দলে প্রবীণ বিকাশকারীদের মতো নয়।
ব্র্যান্ডন ডুরেটে

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

37

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

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

দুর্ভাগ্যক্রমে খুব কম লোকই এটি করতে চায় তবে ব্যবসায়ের দিক থেকে দেখা এটি বাধ্যতামূলক হওয়া উচিত।


@ মিঃ টর্জজর্ন রাভন অ্যান্ডারসন: আপনি কি দয়া করে কোড পর্যালোচনা প্রক্রিয়াটির সুবিধাগুলি এবং অসুবিধাগুলি নির্দিষ্ট করতে পারেন?
শঙ্কর গণেশ

2
আপনি এই কোড পর্যালোচনা প্রস্তাব আগ্রহী হতে পারে । এটির জন্য আমরা যদি বলটি ঘূর্ণায়মান অবস্থায় পাই তবে এটি দুর্দান্ত।
গ্রেটওয়ल्फ

@ ভিক্টর, একটি আকর্ষণীয় পদ্ধতির এবং আমি আপনাকে শুভ কামনা করি।

@Sankar গণেশ আছে: কোড পর্যালোচনা সম্পর্কে বিনামূল্যের বই যে আলোচনা সুবিধা এবং অসুবিধা: smartbear.com/best-kept-secrets-of-peer-code-review
Joeri Sebrechts

17

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

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

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

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

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

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


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

1
কেন তা ক্যাপচারের জন্য +1

11

চৌকস লোকটি বলবে: "আপনার কোডের পর্যালোচনা দরকার নেই, কেবল জুটি প্রোগ্রামিং করুন এবং ভাল পরীক্ষা লিখুন" :)


9
এবং প্রায়শই জোড়া জোড়া পরিবর্তন করে এবং স্বীকৃতি দেয় যে টিম, কোনও স্বতন্ত্র নয়, কোডটির মালিক।
ডন রবি

18
চটপটে লোকটি ভুল। কোডটি এমন একটি মনের দ্বারা পর্যালোচনা করা উচিত যা মনের থেকে স্বতন্ত্র যে এটি তৈরি করেছে। (একজোড়া প্রোগ্রামাররা একে অপরকে বুঝতে না পেরে অন্ধ গলিতে কথা বলা খুব সহজ!)
পিটার বুফট

6
জুড়ি প্রোগ্রামিং অবিচ্ছিন্ন কোড পর্যালোচনা।

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

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

8

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

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


2
হ্যাঁ, কোড পর্যালোচনা জ্ঞান ভাগ করে নেওয়ার মতোই মান নিয়ন্ত্রণ। প্রত্যেকেই একটি ভাল কোড পর্যালোচনা থেকে শিখতে পারে। রিভিউয়ার এবং রেভিউই।
গিলিয়াম

1
আমার সংস্থা ফ্লেমিংপেনগুইনের সাথে সমান। প্রতিটি চেক ইন অন্য বিকাশকারী দ্বারা পর্যালোচনা করা হয়। কে কী পর্যালোচনা করে তার সাথে র‌্যাঙ্কের কিছু করার নেই। এটি পিয়ার-টু-পিয়ার প্রক্রিয়া। প্রয়োজনীয়তাটি হ'ল সমস্ত কোড পর্যালোচনা করা হয়। পিতা-সন্তানের স্টাইল কোডের পর্যালোচনাগুলি কেবলমাত্র 'এ' বিকাশকারীদের তাড়িয়ে দেবে, একটি 'বি' দলের নেতৃত্বের 'সি' জুনিয়র পর্যালোচনা করে। একজন পিতা-মাতা বাচ্চাদের স্টাইলের সেরা দলটি হ'ল মাঝারি কোড hope তারা ভাগ্যবান হলে।
টেক্সাসে জিম

5

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

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

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


4

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

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


আপনার কাছে কোনও অফিশিয়াল নিবন্ধ রয়েছে যা 8-12 বার কম সস্তা নিয়ে আলোচনা করা হচ্ছে? আমরা অভ্যন্তরীণভাবে এটি নিয়ে আলোচনা করছি।

@ থরবজর্ন - আমরা করি: goo.gl/7dMf । এই কোড পর্যালোচনা, আমাদের বই থেকে আসে আপনি (এবং অন্য কেউ) জন্য বিনামূল্যে থাকতে পারে যা: codereviewbook.com
ব্রান্ডন Durette

2

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


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

3
@ গ্র্যাজি - আমি একেবারে শপথ করছি; সাধারণত এটি দেব-চক্রে ~% 10 যুক্ত করে; আমরা প্রথম দিকে কতটা ধরব তার জন্য একটি ছোট বিনিয়োগ।
এসটিডাব্লু

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

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

7
অবশ্যই তাদের করা উচিত নয়, তবে এর অর্থ এই নয় যে তারা নয়! (কতটি দলের নিখুঁত বিকাশকারী রয়েছে?) আপনি কোন লাইনের কোড পর্যালোচনা করবেন না? কোনও নির্দিষ্ট ফাইলের একটি নির্দিষ্ট পরিবর্তন পর্যালোচনা করা উচিত কিনা তা আপনি কীভাবে সিদ্ধান্ত নিতে পারেন?
পিটার বুটন

2

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

কিন্তু সেই সংস্থাগুলি কী করবে যেগুলি কোড পর্যালোচনা করে না? তারা সম্ভবত এমন সংস্থাগুলি যাদের প্রচুর প্রযুক্তিগত সমস্যা এবং প্রচুর পরিমাণ রয়েছে, কারণ তারা গ্রাহকদের বলে, "ক্র্যাশ" ;-)।

সুতরাং আমাকে আপনার সমস্ত প্রশ্নের উত্তর দিন:

  • হ্যাঁ পর্যালোচনা প্রক্রিয়া প্রয়োজনীয়।
  • কেন? কারণগুলির কারণে আমি উপরে বলেছি।

2

কোড পর্যালোচনা : কোড পর্যালোচনা প্রক্রিয়া অবশ্যই সবার জন্য গুরুত্বপূর্ণ , আমি ব্যাখ্যা করব যে কোড পর্যালোচনা পরিচালনার ফলে কারা কারা বেনিফিট পাচ্ছেন এবং সেই সাথে তারা কী কী সুবিধা পাচ্ছেন explain

১. কোড পর্যালোচনা পরিচালনার কারণে সংস্থার দ্বারা প্রাপ্ত সুবিধা: যদি ঘন ঘন কোড পর্যালোচনা পরিচালিত হয়, তবে সংস্থাটি চূড়ান্ত পণ্যগুলি আরও ভাল অনুকূলিতায় পেতে পারে যা তাদের বাজারে ব্র্যান্ডেড নাম পেতে সহায়তা করে এবং সংস্থাকে সহায়তা করতে সহায়তা করে তাদের বর্তমান সিএমএমআই স্তর পান বা উন্নত করুন ।

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

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

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


1

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

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

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


1

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

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


1

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

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

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

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


-1

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

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


-1

আমি মনে করি যে কীভাবে ভার্জোজ ২ য় পক্ষের পরিদর্শন আপনার জীবনচক্রের উপর নির্ভরশীল, আপনি আরও প্রসন্ন হন বা আপনার প্রক্রিয়াগুলিতে আরও জলপ্রপাত। আমি মনে করি এটি উচ্চ স্তরের ডিজাইন / পরিদর্শন করা, পাশাপাশি আরও বিশদ স্তরের নকশা পরিদর্শন করা যুক্তিসঙ্গত। আমি মনে করি যে কোনও দলের বেশ কয়েকজন সদস্যকে পরীক্ষা করতে জড়িত হওয়াও ভাল good


-1

তাদের অভিজ্ঞতা কম হওয়ায় এগুলি একেবারে প্রয়োজনীয়।


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