কোড পর্যালোচনা করার ক্ষেত্রে কীভাবে আরও ভাল হতে পারে?


11

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

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


3
আপনি কেন এতটা ভাল কাজ করছেন না বলে আপনার মনে হচ্ছে? কি মেট্রিক দ্বারা?
মার্ক ক্যানলাস

এছাড়াও চেষ্টা area51.stackexchange.com/proposals/11464/code-review
রস

@ মার্কের সাথে একমত: সঠিকতা, শৈলী, সরলতা, দক্ষতা, ... এর জন্য কোড পর্যালোচনা? আপনি কোড পড়ে বাগ স্পট করতে সক্ষম? আপনি কি এটি পড়ার মাধ্যমে শৈলীতে অসঙ্গতিগুলি সনাক্ত করতে সক্ষম? ইত্যাদি।
রওয়ং

উত্তর:


5

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

সাধারণত আমি অনুসরণ করি

- Use variables judiciously
- Keep things in scope loose boundaries will generate more errors
- Orient your language of coding in domain specific terms, they make more sense
- Keep loops to minimum 2 for each method if needed
- use ternary operators
- Arrange methods alphabetically
- Keep errors at handling ease
- write less but efficient code

আমার মনে হয় আপনি এতে অনেক কিছু যোগ করতে পারেন।


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

2
টিবিএইচ, টের্নারি অপারেটরগুলি অনেক সময় আপনার কোডগুলি বোঝার জন্য কিছু না করে বোঝায় (সেগুলি আরও ভার্জোজ হলেও) than
ইলিজিয়াম গ্রাস করেছে

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

3

নিজেকে জিজ্ঞাসা করুন কী আপনার জন্য অন্যকে ভাল পর্যালোচক করে?

এছাড়াও, আপনি কোড মাধ্যমে যেতে;

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

1
ডাউনভোটের কারণ? গঠনমূলক সমালোচনা দয়া করে
রস

2
সঠিকভাবে মূলধন করুন।
মার্ক Canlas

1
লোল কী? এনপি ব্রো
রস

1

আমি শুধু জন্য লক্ষ্য

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

এগুলি ছাড়াও, "কী সন্ধান করতে হবে" তা কেবল অভিজ্ঞতা, অনুশীলন এবং পড়ার সাথে আসে।


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

1

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

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

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

আমি নিম্নলিখিত কোডগুলি মেনে চললে কোড পর্যালোচনাগুলির আমি সত্যই অনুরাগী:

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

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

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

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

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

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


1

[এইচ] উ আমি অন্য কারও জন্য কোড পর্যালোচনা সম্পাদন করে আরও ভাল কাজ করতে পারি?

তাদের প্রচুর প্রশ্ন জিজ্ঞাসা করুন

আমি জানি যে একটি কোড পর্যালোচনা সম্পাদনের জন্য আপনার বিদ্যমান কোডটি কীভাবে কাজ করে তা সম্পর্কে জ্ঞান থাকা দরকার ...

আসলে, না, আপনাকে একটি ভাল পর্যালোচক হওয়ার আগে কোডটি জানতে হবে না।

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

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

যদিও আমি সেখানে আর কাজ করি না, তবুও আমি চেক-ইন করার আগে আলাদাভাবে পর্যালোচনা করি এবং নিজেকে জিজ্ঞাসা করি, "বিল সম্পর্কে এ সম্পর্কে কী প্রশ্ন থাকবে?" এবং বেশিরভাগ ক্ষেত্রে, ফলস্বরূপ আমি কিছু পরিবর্তন করে শেষ করি।

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