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