বাধ্যতামূলক কোড পর্যালোচনার জন্য ভাল নির্দেশিকা এবং অনুশীলন [বন্ধ]


11

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

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

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

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

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

উত্তর:


13
  1. পর্যালোচনাগুলি সংক্ষিপ্ত করুন।

    বিশেষত কোড পর্যালোচনা চলাকালীন দীর্ঘ সময় ধরে মনোনিবেশ করা শক্ত। তদুপরি, দীর্ঘ কোড পর্যালোচনাগুলি ইঙ্গিত দিতে পারে যে কোডটিতে খুব বেশি কিছু বলা আছে (পরবর্তী দুটি পয়েন্ট দেখুন) বা পর্যালোচনাটি বৃহত্তর বিষয়ে যেমন আর্কিটেকচারের মতো আলোচনায় পরিণত হয়।

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

  2. কোডটি পর্যালোচনা করা এড়িয়ে চলুন যা খুব খারাপ।

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

  3. পর্যালোচনার আগে স্বয়ংক্রিয় চেকার ব্যবহার করুন।

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

  4. পর্যালোচনা করা ব্যক্তিদের সাবধানতার সাথে বেছে নিন।

    দু'জন ব্যক্তি যারা একে অপরকে সহ্য করতে পারে না তারা একে অপরের কোডের মধ্যে একটি ভাল পর্যালোচনা করবে না। একই সমস্যা দেখা দেয় যখন একজন ব্যক্তি অন্যটিকে সম্মান না করে (তা পর্যালোচনা বা লেখক যাই হোক না কেন, যাই হোক না কেন)।

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

  5. উভয় অনানুষ্ঠানিক এবং আনুষ্ঠানিক পর্যালোচনা করুন।

    একটি চেকলিস্ট থাকা ত্রুটিগুলির নির্দিষ্ট সেটগুলিতে মনোনিবেশ করাতে সাহায্য করে, নিট বাছাইয়ের মধ্যে রূপান্তরিত করা এড়ানো। এই চেকলিস্টে পয়েন্ট থাকতে পারে যেমন:

    • এসকিউএল ইনজেকশন,
    • একটি ভাষা সম্পর্কে ভুল অনুমান যা ত্রুটি হতে পারে,
    • নির্দিষ্ট পরিস্থিতি যা ত্রুটি হতে পারে যেমন অপারেটর অগ্রাধিকার। উদাহরণস্বরূপ, সি # তে, var a = b ?? 0 + c ?? 0;এমন কারও পক্ষে সূক্ষ্ম লাগতে পারে যে শূন্যে কোয়েলেস সহ দুটি অপ্রয়োজনীয় সংখ্যা যুক্ত করতে চায় তবে তা তা নয়।
    • স্মৃতিশক্তি হ্রাস,
    • অলস লোডিং (এটির দুটি ঝুঁকির সাথে: একই জিনিসটি একাধিকবার লোড করা এবং এটি মোটেও লোড করা নয়),
    • উপচে,
    • ডেটা স্ট্রাকচার (ত্রুটি সহ যেমন একটি হ্যাশ সেটের পরিবর্তে সাধারণ তালিকার মতো, উদাহরণস্বরূপ),
    • ইনপুট বৈধতা এবং রক্ষণাত্মক প্রোগ্রামিং সাধারণভাবে,
    • থ্রেড সুরক্ষা,
    • প্রভৃতি

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

  6. প্রগতিশীলভাবে চেকলিস্টটি সামঞ্জস্য করুন।

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


কোড পর্যালোচনা চেকলিস্টে কী কী হওয়া উচিত তার কোনও উদাহরণ? - আমাকে নিজের জন্য গুগল করতে দিন।
কোডলিবিটার

@ কোডলিবিটার: কয়েকটি উত্তর অন্তর্ভুক্ত করার জন্য আমি আমার উত্তর সম্পাদনা করেছি।
আর্সেনী মরজেনকো

2

আমাদের প্রায় চেকলিস্টের মতো রয়েছে:

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

মোটামুটি ভাল কাজ করে।


0

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

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

দ্বিতীয় জিনিসটি আপনি যতটা পারেন স্বয়ংক্রিয়ভাবে চলছে!

  • সাদা স্পেস নিয়ন্ত্রণ
  • শৈলী নিয়ন্ত্রণ সফ্টওয়্যার
  • কোড পর্যালোচনার আগে স্বয়ংক্রিয় বিল্ডগুলি
  • কোড পর্যালোচনার আগে স্বয়ংক্রিয় পরীক্ষণ

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

এর অনেকগুলি আপনার প্রযুক্তির উপর নির্ভর করে তবে আপনি যা স্বয়ংক্রিয়ভাবে আরও ভাল পরীক্ষা করতে পারেন তা সন্ধান করুন।

আমরা এখনও এই যুদ্ধে জিততে পারি নি, তবে এটিই আমরা কার্যকর বলে মনে করেছি।


আমরা এই পিয়ার-স্টাইলটি করছি, কারও কাছেই পরিবর্তন আনার / অবরুদ্ধ করার সম্পূর্ণ ক্ষমতা নেই। মতভেদ থাকলে আমরা গ্রুপ sensকমত্যের আবেদন করব। এটি মন্দা সৃষ্টি করবে তবে আশা করি প্রত্যেকের কোডিংয়ের সমন্বয় বাড়িয়ে তুলবে।
Quodlibetor
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.