ইউনিট 4 / 12

কোড পর্যালোচনা এবং ত্রুটি অনুসন্ধান

লাভ:

  • বিভাগ এবং তীব্রতা ট্যাগ সহ একটি প্রাথমিক পর্যালোচনা ফিল্টার হিসাবে AI ব্যবহার করার ক্ষমতা
  • যাচাই/মিথ্যা ইতিবাচক/প্রয়োগ করার জন্য মানুষের মন দিয়ে ফলাফল ফিল্টার করার ক্ষমতা
  • ব্যবসায়িক নিয়ম, স্থাপত্য এবং নিরাপত্তা-সমালোচনামূলক সিদ্ধান্তের উপর মানুষের অনুমোদনের প্রয়োজনীয়তা প্রয়োগ করার ক্ষমতা

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

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

পর্যালোচনায় AI ভাল এবং খারাপ কী

এর জন্য ভালো: নাল চেক মিস, রিসোর্স লিক (ফাইল/লিঙ্ক খোলা বাকি), ধরা না পড়া ব্যতিক্রম, স্পষ্টতই ভুল শর্ত (>= পরিবর্তে >), সাজেশন রিনেমিং, রিডেবিলিটি, মিসিং এজ কেস, সাধারণ নিরাপত্তা গন্ধ (যেমন SQL স্ট্রিং কনক্যাটেনেশন), ডুপ্লিকেট কোড সনাক্তকরণ।

দুর্বলতা: গভীর ত্রুটিগুলি যা আপনার ব্যবসার নিয়ম লঙ্ঘন করে কিন্তু প্রসঙ্গ এবং সময় প্রয়োজন, যেমন সিনট্যাক্টিক্যালি সঠিক যুক্তি, আর্কিটেকচারাল কমপ্লায়েন্স, বাস্তব পারফরম্যান্সের প্রতিবন্ধকতা, কনকারেন্সি ত্রুটি। AI এছাড়াও মিথ্যা ইতিবাচক (এমন কিছু ভুল করে যা আসলে একটি সমস্যার জন্য সমস্যা নয়) এবং মিথ্যা নেতিবাচক (আসল বাগ অনুপস্থিত) তৈরি করে। অতএব, এর আউটপুট একটি "সতর্কতা তালিকা", একটি নির্দিষ্ট রায় নয়।

সতর্কতা: কেবলমাত্র AI বলে "কোন সমস্যা নেই" কোডটি সঠিক তা প্রমাণ করে না। মিথ্যা নেতিবাচক নীরব; সবচেয়ে বিপজ্জনক ভুলগুলি হল যেগুলি পর্যালোচনাতে উল্লেখ করা হয় না।

পদ্ধতিগত পর্যালোচনা পদক্ষেপ

  1. প্রসঙ্গ দিন। পরিবর্তনের উদ্দেশ্য, প্রাসঙ্গিক সমস্যা এবং গ্রহণযোগ্যতার মানদণ্ড, যদি থাকে, প্রম্পটে যোগ করুন। উদ্দেশ্যহীন পর্যালোচনা উদ্দেশ্যহীন ব্যাখ্যা তৈরি করে।
  2. এটিকে বিভাগগুলিতে বিভক্ত করুন। মডেলটিকে "বাগ/নিরাপত্তা/কর্মক্ষমতা/পঠনযোগ্যতা/শৈলী" হিসাবে শ্রেণীবদ্ধ করতে বলুন; তাই আপনি গোলমাল থেকে সমালোচনা আলাদা.
  3. একটি তীব্রতা লেবেল অনুরোধ. প্রতিটি অনুসন্ধানকে একটি "উচ্চ/মাঝারি/নিম্ন" রেটিং দিন এবং "কারণ" এবং "প্রস্তাবিত সংশোধন" অন্তর্ভুক্ত করুন।
  4. আপনার নিজের চোখ দিয়ে এটি ফিল্টার করুন। প্রতিটি অনুসন্ধানের মূল্যায়ন করুন: এটি কি বাস্তব (যাচাই করুন), এটি কি একটি মিথ্যা ইতিবাচক (ন্যায্যতা লিখুন), কি কিছু অনুপস্থিত আছে (আপনার নিজস্ব জ্ঞান যোগ করুন)।
  5. ম্যানুয়ালি জটিল পথ যাচাই করুন। এআই-এর উপর নির্ভর না করে নিজেই অর্থ, পরিচয়, অনুমোদন এবং ডেটা মুছে ফেলার রুটগুলি পড়ুন এবং সম্পাদন করুন।

তিনটি মিনি কেস

কেস 1 — সাইলেন্ট নাল ত্রুটি ধরা পড়েছে। একটি দল একটি 380-লাইন পিআর এআই প্রাক-পর্যালোচনা করেছিল। মডেলটি এমন একটি উপায় পতাকাঙ্কিত করেছে যাতে একটি বাহ্যিক পরিষেবার প্রতিক্রিয়া শূন্য হতে পারে, তবে কোডে এর জন্য কোনও চেক করা হয়নি। মানব পর্যালোচক এই পথটি যাচাই করেছেন এবং একটি শূন্য চেক যোগ করেছেন; অনুরূপ একটি ত্রুটি পূর্ববর্তী প্রান্তিকে উত্পাদনে 2-ঘন্টা বাধা সৃষ্টি করেছিল।

কেস 2 - মিথ্যা ইতিবাচক নির্মূল। এআই একটি লুপে একটি "সম্ভাব্য কর্মক্ষমতা সমস্যা" চিহ্নিত করেছে। পর্যালোচক এটিকে মিথ্যা ইতিবাচক হিসাবে বন্ধ করেছেন, জেনেছেন যে লুপটি শুধুমাত্র সর্বাধিক 5টি উপাদানের সাথে কাজ করে (এটি একটি enum এর উপর লুপ করে)। মডেল, যিনি প্রসঙ্গ জানেন না, সতর্ক করেছেন; যে ব্যক্তি প্রসঙ্গ জানতেন তিনি সঠিক সিদ্ধান্ত নিয়েছেন।

কেস 3 — AI ব্যবসার নিয়ম ত্রুটি মিস করেছে। প্রচারাভিযানের নিয়ম অনুসারে ছাড়ের অ্যাকাউন্ট সর্বাধিক 30% হওয়া উচিত, কোডটি 50% অনুমোদিত৷ এআই কখনও এই সিনট্যাক্টিকাল নিখুঁত লজিক্যাল ত্রুটি লক্ষ্য করেনি; কারণ সে নিয়ম জানত না। বাগটি পণ্যের মালিকের দ্বারা পর্যালোচনায় ধরা পড়েছিল যিনি গ্রহণযোগ্যতার মানদণ্ড জানেন৷ পাঠ: ব্যবসায়িক নিয়মের বৈধতা একটি মানুষের কাজ।

চারটি অনুলিপিযোগ্য টেমপ্লেট

উদ্দেশ্য-ভিত্তিক, শ্রেণীবদ্ধ পর্যালোচনা:

ভূমিকা: সূক্ষ্ম কোড পর্যালোচক। পরিবর্তনের উদ্দেশ্য: {{purpose / issue}}এই পার্থক্যটি পর্যালোচনা করুন। এই বিভাগগুলিতে ফলাফলগুলি প্রদান করুন: [বাগ] [নিরাপত্তা] [কর্মক্ষমতা] [পঠনযোগ্যতা] [শৈলী]। প্রতিটি অনুসন্ধানের জন্য: ফাইল: সারি, তীব্রতা (উচ্চ/মাঝারি/নিম্ন), কারণ, প্রস্তাবিত সমাধান। আপনি নিশ্চিত না হলে "সম্ভব" চিহ্নিত করুন। আপনি ব্যবসার নিয়ম জানেন না; আমাকে এমন জায়গাগুলি সম্পর্কে জিজ্ঞাসা করুন যেখানে নিয়মের প্রয়োজন৷{{diff}}

আপনার নিজের কোড পর্যালোচনা করার জন্য প্রস্তুত করতে:

পিআর খোলার আগে এই পরিবর্তনটি পর্যালোচনা করুন। সন্ধান করুন: অনুপস্থিত নাল/বাগচেক, রিসোর্স লিক, এজ কেস, গোপন, অ-পরীক্ষিত শাখা। অগ্রাধিকারের ক্রমে ফলাফল তালিকাভুক্ত করুন; প্রতিটির জন্য 1 লাইন সংশোধনের পরামর্শ দিন।{{code}}

এজ কেস হান্ট:

ইনপুট এবং পরিস্থিতির তালিকা করুন যেখানে এই ফাংশনটি ভেঙে যেতে পারে: খালি, নাল, খুব বড়, নেতিবাচক, সমবর্তী কল, নেটওয়ার্ক ত্রুটি, আংশিক ডেটা। প্রতিটি ক্ষেত্রে, প্রত্যাশিত আচরণ এবং বর্তমান কোডটি কী করবে তা লিখুন।{{function}}

নিরাপত্তা সুগন্ধি স্ক্যানিং (প্রি-স্ক্রিনিং):

এই কোডে সাধারণ নিরাপত্তা গন্ধের জন্য দেখুন: SQL/কমান্ড সংযোজন, অপ্রমাণিত ইনপুট, অপরিবর্তনীয় এমবেডেড গোপন, অনিরাপদ ডিসিরিয়ালাইজ, বিশেষাধিকার চেকিংয়ের অভাব। ফলাফলগুলিকে "নির্দিষ্ট/সম্ভাব্য/জ্ঞানে" আলাদা করুন। এটি একটি প্রাথমিক স্ক্রীনিং; এটি একটি নির্দিষ্ট নিয়ম নয়।{{code}}

দুর্বল প্রম্পট / শক্তিশালী প্রম্পট

দুর্বল: "এই জনসংযোগে কি কোন ভুল আছে?"
শক্তিশালী: "উদ্দেশ্য: কার্ট মোটে কুপন ছাড় যোগ করুন (ডিসকাউন্ট অবশ্যই 30% এর বেশি হতে হবে না — আপনি নিজে এই নিয়মটি যাচাই করতে পারবেন না, কোডটি একটি উচ্চ সীমা আরোপ করে কিনা তা আমাকে বলুন)। পার্থক্য পরীক্ষা করুন; বিভাগ + তীব্রতা + প্রস্তাবিত সংশোধন অনুসারে ফলাফল দিন, অনিশ্চিত হলে 'সম্ভব' চিহ্নিত করুন। [তফা]।

শক্তিশালী সংস্করণটি স্পষ্টভাবে AI এর উদ্দেশ্য, ব্যবসার নিয়ম এবং সীমানা উল্লেখ করে; এইভাবে, দরকারী ফলাফল আসে এবং মডেলের অজানা এলাকাটি পরিষ্কার থাকে।

ধরন খোঁজা

এআই নির্ভরযোগ্যতা

মানুষের ভূমিকা

শূন্য/ত্রুটি চেক অনুপস্থিত

উচ্চ

যাচাই করে আবেদন করুন

পঠনযোগ্যতা/শৈলী

উচ্চ

পছন্দ অনুসারে নির্বাচন করুন

সহজ নিরাপত্তা গন্ধ

মাঝারি

চূড়ান্ত করুন, যানবাহন দিয়ে স্ক্যান করুন

ব্যবসায়িক নিয়ম সম্মতি

কম

এটা সম্পূর্ণ মানবিক।

সঙ্গতি/স্থাপত্য

কম

বিশেষজ্ঞ পর্যালোচনা প্রয়োজন

এআই পর্যালোচনা মানব পর্যালোচনার প্রতিস্থাপন নয়

AI পর্যালোচনাকে "প্রথম ফিল্টার" হিসাবে অবস্থান করুন: একটি সস্তা, দ্রুত, অক্লান্ত প্রাথমিক পাস। এই ফিল্টারটি গুরুত্বহীন বিশদ (একটি স্থান, একটি নাম) থেকে মানব পর্যালোচকের মনোযোগকে মুক্ত করে এবং এটিকে এমন জায়গায় নির্দেশ করে যেগুলির জন্য সত্যিই চিন্তার প্রয়োজন হয়—ব্যবসায়ের নিয়ম, স্থাপত্য, নিরাপত্তা ফলাফল। কিন্তু একত্রীকরণ অনুমোদন হল দলের মধ্যে একজন দায়বদ্ধ ব্যক্তির স্বাক্ষর। নিরাপত্তা-গুরুত্বপূর্ণ পরিবর্তনের জন্য অন্তত একজন দক্ষ প্রকৌশলীর স্বাধীন পর্যালোচনা বাধ্যতামূলক।

টিপ: AI "করতে হবে" এর পরিবর্তে "চেক করার জিনিস" হিসাবে তৈরি করে এমন ফলাফলের তালিকা পড়ুন। হয় যাচাই করুন এবং প্রতিটি আইটেম প্রয়োগ করুন অথবা এক বাক্যে লিখুন কেন আপনি এটি পাস করেছেন; এই ট্রেস পর্যালোচনা নিরীক্ষণযোগ্য করে তোলে.

সাধারণ ভুল

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

সংক্ষেপে

AI হল কোড রিভিউতে একটি অক্লান্ত প্রথম ফিল্টার: এটি নাল/ত্রুটি মিস, এজ কেস এবং সাধারণ নিরাপত্তার সুগন্ধ ধরছে; কিন্তু এটি ব্যবসায়িক নিয়ম, স্থাপত্য, এবং একযোগের মতো প্রসঙ্গ-প্রয়োজন ত্রুটির ক্ষেত্রে দুর্বল এবং মিথ্যা ইতিবাচক এবং মিথ্যা নেতিবাচক উভয়ই উৎপন্ন করে। বিভাগ এবং তীব্রতা দ্বারা অনুসন্ধানের অনুরোধ করুন, মানব বুদ্ধিমত্তা দিয়ে প্রতিটি ফিল্টার করুন, ম্যানুয়ালি সমালোচনামূলক পথ যাচাই করুন। অনুমোদন সর্বদা একজন দায়বদ্ধ প্রকৌশলীর স্বাক্ষর।

আবেদন টাস্ক

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

চেকলিস্ট

  • [ ] আমি এআই পর্যালোচনাকে প্রথম ফিল্টার হিসেবে ব্যবহার করি, অনুমোদন নয়।
  • [ ] আমি পর্যালোচনা প্রম্পটে উদ্দেশ্য এবং গ্রহণযোগ্যতার মানদণ্ড যোগ করি।
  • [ ] আমি বিভাগ দ্বারা গোলমাল থেকে ফলাফল পৃথক এবং দৃঢ়ভাবে তাদের চাই.
  • [ ] আমি সচেতনভাবে নিশ্চিত/মিথ্যা ইতিবাচক/প্রয়োগ করতে প্রতিটি অনুসন্ধান ফিল্টার করি।
  • একজন মানুষ হিসাবে, আমি ব্যবসার নিয়ম এবং স্থাপত্যের সম্মতি পরীক্ষা করি।
  • নিরাপত্তা-গুরুত্বপূর্ণ পরিবর্তনের জন্য আমার একজন যোগ্য প্রকৌশলীর অনুমোদন প্রয়োজন।