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