ইউনিট 3 / 12

নতুন কোড বেসের সাথে কোড রিডিং, ব্যাখ্যা এবং সামঞ্জস্য

লাভ:

  • AI দিয়ে স্তরে স্তরে একটি বিদেশী কোড বেস লেয়ার ম্যাপ করার ক্ষমতা এবং এন্ড-টু-এন্ড একটি বৈশিষ্ট্য ট্র্যাক করার ক্ষমতা
  • ধাপে ধাপে জটিল ফাংশন ব্যাখ্যা করার ক্ষমতা এবং ডেটা প্রবাহ নিরীক্ষণ
  • একটি অনুমান হিসাবে AI বিবরণ দেখতে এবং কোডে সমালোচনামূলক দাবি যাচাই করার ক্ষমতা

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

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

কেন কোড টীকা শক্তিশালী কিন্তু ঝুঁকিপূর্ণ?

একটি এলএলএম কোডের একটি অংশ পড়তে এবং এটিকে মানুষের ভাষায় অনুবাদ করতে খুব ভাল, যেমন "এই ফাংশনটি ব্যবহারকারীর সেশন টোকেন রিফ্রেশ করে"; কারণ এটি লক্ষ লক্ষ অনুরূপ উদাহরণ থেকে নিদর্শন শিখেছে। এটি একটি বিশাল সময় সাশ্রয়কারী, বিশেষ করে দীর্ঘ এবং নেস্টেড ফাংশন সহ।

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

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

একটি বিদেশী কোড বেস ম্যাপিং পদক্ষেপ

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

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

কেস 1 - উত্তরাধিকারসূত্রে প্রাপ্ত পরিষেবা 2 দিন থেকে 3 ঘন্টা কমানো হয়েছে৷ একজন ডেভেলপার চলে যাওয়া সহকর্মীর কাছ থেকে একটি 4,000-লাইন পেমেন্ট রিকনসিলিয়েশন সার্ভিস নিয়েছিলেন। যদি AI মডিউলগুলিকে সংক্ষিপ্ত করে এবং একটি পেমেন্ট ফ্লো এন্ড-টু-এন্ড ট্র্যাক করে থাকে; তিনি ব্যক্তিগতভাবে কোডের দুটি গুরুত্বপূর্ণ ফাংশন যাচাই করেছেন। আবিষ্কারটি, যা ক্লাসিক্যাল "ব্লাইন্ড রিডিং" সহ 2 দিন সময় লাগতে পারে বলে অনুমান করা হয়েছিল, যাচাইকৃত AI পদ্ধতিতে প্রায় 3 ঘন্টার মধ্যে সম্পন্ন হয়েছিল।

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

কেস 3 — নতুন লাইব্রেরি শেখার ত্বরান্বিত হয়েছে৷ দলটি একটি বার্তা সারি লাইব্রেরি সংহত করতে যাচ্ছিল যার সাথে তারা অপরিচিত ছিল। আমি AI কে জিজ্ঞাসা করেছি "কিভাবে এই লাইব্রেরিতে একজন ভোক্তা সেট আপ করবেন, কিভাবে ত্রুটির ক্ষেত্রে পুনরায় চেষ্টা করবেন?" তারা জিজ্ঞাসা এবং উত্পাদিত একটি নমুনা ছিল; তারপরে তারা অফিসিয়াল ডকের সাথে উদাহরণের তুলনা করেছে এবং একটি পার্থক্য (পুরানো সংস্করণ API) ঠিক করেছে। শেখার সময় অর্ধেক কেটে যায়।

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

কোডবেস ম্যাপিং:

নীচে একটি প্রকল্পের ডিরেক্টরি/ফাইল তালিকা আছে। 1) অ্যাপ্লিকেশনের স্তরগুলি বের করুন (ইনপুট, ব্যবসায়িক যুক্তি, ডেটা অ্যাক্সেস, ইত্যাদি)। 2) একটি "{{উদাহরণ সম্পত্তি}}" অনুরোধের সম্ভাব্য ফাইল যাত্রা তালিকা করুন। 3) "যাচাই করা আবশ্যক" হিসাবে আপনি অনিশ্চিত এলাকা চিহ্নিত করুন। {{directory_list}}

ফাংশনের বর্ণনা (ধাপে ধাপে):

এই ফাংশনটিকে সারি গোষ্ঠীতে ভাগ করুন এবং প্রতিটি গ্রুপ কী করে তা সরল তুর্কি ভাষায় ব্যাখ্যা করুন। অবশেষে: তালিকা ইনপুট, আউটপুট, পার্শ্ব প্রতিক্রিয়া (ডাটাবেস/ফাইল/নেটওয়ার্ক) এবং সম্ভাব্য প্রান্ত কেস। একটি পৃথক "যাচাই করা আবশ্যক" শিরোনামের অধীনে যে আচরণগুলি সম্পর্কে আপনি নিশ্চিত নন সেগুলি সংগ্রহ করুন৷{{function}}

ডেটা প্রবাহ ট্র্যাকিং:

"{{variable/data}}" মানটি কোথা থেকে আসে, এটি কোন রূপান্তরের মধ্য দিয়ে যায়, এটি কোথায় লেখা হয়? কোডে ফাংশনের নাম ব্যবহার করে একটি ফ্লো চেইন তৈরি করুন। সম্পর্কিত কোড: {{code_segments}}

লাইব্রেরি কীভাবে ব্যবহার করবেন তা শিখুন:

আমি {{library}} দিয়ে {{purpose}} করতে চাই। একটি ন্যূনতম, কাজের উদাহরণ দিন। নিশ্চিত করুন যে আপনার ব্যবহার করা প্রতিটি ফাংশন আসলে এই লাইব্রেরির অন্তর্গত; আপনি যদি নিশ্চিত না হন তবে "অফিসিয়াল ডকুমেন্টেশন থেকে যাচাই করুন" এ টিক দিন। সংস্করণ: {{version}}।

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

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

শক্তিশালী সংস্করণ আপনার অভিপ্রায় দেয় (আমি পুনরায় চেষ্টা করার যুক্তি পরিবর্তন করব) এবং ফোকাস করুন; যাতে ব্যাখ্যাটি একটি সাধারণ সারাংশ নয় কিন্তু একটি দরকারী গাইড।

কোয়েস্ট

এআই ভালো করে

যাচাই করতে ভুলবেন না

সাধারণ স্থাপত্যের সারাংশ

স্তরগুলি সরান

প্রকৃত কল ক্রম

জটিল ফাংশন

ধাপে ধাপে ব্যাখ্যা

বিপরীত যুক্তি, পার্শ্ব প্রতিক্রিয়া

তথ্য প্রবাহ

চেইন খসড়া

শর্তাধীন শাখা, এড়িয়ে যাওয়া পথ

লাইব্রেরি ব্যবহার

নমুনা প্রজন্ম

API এর সত্যতা এবং সংস্করণ

মানুষের বোঝার জন্য কোন প্রতিস্থাপন

এআই বর্ণনা শেখার বিকল্প নয়; এটা গতি বাড়ায়। একটি কোডবেসকে সত্যিকারের "নিজস্ব" করার অর্থ হল এটির একটি মানসিক মডেল তৈরি করা, এবং সেই মডেলটি শুধুমাত্র তখনই খাপ খায় যখন আপনি কোডটি পড়বেন, ছোট পরিবর্তন করুন এবং ফলাফল দেখুন৷ একজন পরামর্শদাতার মতো এআই ব্যবহার করুন আপনাকে বলবে "এখানে দেখুন, এটি গুরুত্বপূর্ণ" - তবে আপনি নিজের চোখে এটি কোথায় দেখেন তা পড়ুন।

টিপ: আপনি যখন মনে করেন যে আপনি একটি ফাংশন বুঝতে পেরেছেন, তখন AI কে "এক বাক্যে সংক্ষিপ্ত করতে" বলুন; তারপর আপনার নিজের বাক্যের সাথে তুলনা করুন। যদি দুটি বাক্য একে অপরের বিরোধিতা করে, হয় আপনি বা মডেল কিছু মিস করেছেন — এবং আপনি এটি কোডে কাজ করেছেন।

সাধারণ ভুল

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

সংক্ষেপে

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

আবেদন টাস্ক

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

চেকলিস্ট

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