জেমিনি কোড ব্যবহার করুন কোড কাস্টমাইজেশন সহায়তা

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

শুরু করার আগে

  1. এন্টারপ্রাইজ সাবস্ক্রিপশনের মাধ্যমে জেমিনি কোড অ্যাসিস্ট সেট আপ করুন
  2. জেমিনি কোড অ্যাসিস্ট কোড কাস্টমাইজেশন সেট আপ করুন

কোড কাস্টমাইজেশন কীভাবে ব্যবহার করবেন

নিম্নলিখিত সারণিতে জেমিনি কোড অ্যাসিস্ট কোড কাস্টমাইজেশন ব্যবহার করার উপায়গুলি তালিকাভুক্ত করা হয়েছে:

ফর্ম কীভাবে ট্রিগার করবেন নোট এবং রিসোর্স

স্বাভাবিক ভাষার চ্যাট

IDE-তে Gemini Code Assist চ্যাটে একটি স্বাভাবিক ভাষার প্রম্পট লিখুন।

নিম্নলিখিত বিষয়গুলো বিবেচনা করুন:

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

আরও তথ্যের জন্য, জেমিনি কোড অ্যাসিস্ট-এর সাথে চ্যাট করুন দেখুন।

কোড তৈরি করুন আপনার IDE-র কুইক পিক বারে, কোড সিলেক্ট করা থাকুক বা না থাকুক, Command+Enter (macOS-এ) অথবা Control+Enter চাপুন। আরও তথ্যের জন্য, প্রম্পট সহ কোড তৈরি করুন দেখুন।
কোড রূপান্তর করুন আপনার IDE-র কুইক পিক বারে, কোড সিলেক্ট করা থাকুক বা না থাকুক, /fix টাইপ করুন। আরও তথ্যের জন্য, প্রম্পট সহ কোড তৈরি করুন দেখুন।
স্বয়ংক্রিয় সম্পূর্ণতা আপনার লেখা তথ্যের উপর ভিত্তি করে কোড কাস্টমাইজেশন স্বয়ংক্রিয়ভাবে চালু হয় এবং পরামর্শ প্রদান করে।

নিম্নলিখিত বিষয়গুলো বিবেচনা করুন:

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

আরও তথ্যের জন্য, কোড কমপ্লিশন পান (Get code completions ) দেখুন।

দূরবর্তী সংগ্রহস্থল প্রসঙ্গ
  1. আপনার প্রম্পটটি @ চিহ্ন দিয়ে শুরু করুন। ইনডেক্স করা উপলব্ধ রিমোট রিপোজিটরিগুলোর একটি তালিকা প্রদর্শিত হবে।
  2. তালিকা থেকে প্রাসঙ্গিকতার জন্য আপনার পছন্দের রিপোজিটরিটি নির্বাচন করুন। তালিকাটি ফিল্টার করার জন্য আপনি রিপোজিটরির নামটি টাইপ করাও শুরু করতে পারেন।
  3. রিপোজিটরি নির্বাচন করার পর, আপনার প্রম্পটের বাকি অংশ লিখুন।

রিমোট রিপোজিটরি কনটেক্সট তখন কাজে আসে যখন আপনি এমন কোনো কাজ করছেন যা মূলত নির্দিষ্ট কিছু মাইক্রোসার্ভিস, লাইব্রেরি বা মডিউলের সাথে সম্পর্কিত।

আরও তথ্যের জন্য, ‘রিমোট রিপোজিটরি কনটেক্সট’ ব্যবহার করে আরও প্রাসঙ্গিক সাজেশন পান দেখুন।

ব্যবহারের ক্ষেত্র এবং তাৎক্ষণিক উদাহরণ

নিম্নলিখিত সারণিতে নির্দিষ্ট কিছু ক্ষেত্রে কোড কাস্টমাইজেশন ব্যবহারের বিষয়ে নির্দেশনা ও উদাহরণ দেওয়া হয়েছে:

ব্যবহারের ক্ষেত্র চেষ্টা করার মতো জিনিস
নতুন কোড লেখা

আপনার IDE অথবা Gemini Code Assist চ্যাটে কোড তৈরি করতে নিম্নলিখিতগুলি চেষ্টা করুন:

  • এমন কোড তৈরি করুন যাতে আপনার কোডবেসে ইতিমধ্যে উল্লিখিত পরিভাষাগুলো ব্যবহৃত হয়।
  • আপনার কোড, যেমন ফাংশনাল সিগনেচার বা TODO কমেন্টসহ কোড, পেস্ট করুন এবং তারপর Gemini Code Assist-কে TODO কমেন্টগুলো কোড দিয়ে পূরণ বা প্রতিস্থাপন করতে বলুন। প্রাসঙ্গিক ব্যাখ্যাসহ কমেন্ট যোগ করুন।

জেমিনি কোড অ্যাসিস্ট চ্যাটে নিম্নলিখিত নির্দেশাবলী অনুসরণ করে কোড তৈরি করার চেষ্টা করুন:

  • একটি মেইন ফাংশন লিখুন যেখানে DATABASE সাথে একটি সংযোগ তৈরি করা হবে। সংযোগের স্বাস্থ্য পরীক্ষাও অন্তর্ভুক্ত করুন।
  • নিম্নলিখিত কাঠামোতে একটি FUNCTION_OR_CLASS লিখুন: EXPLAIN_STRUCTURE

কিছু কোড তৈরি করার পর, সেটিকে আরও উন্নত করার জন্য একটি ফলো-আপ প্রম্পট ব্যবহার করে দেখুন:

  • তৈরি হওয়া কোড সংশোধন করতে—যেমন সিনট্যাক্স ত্রুটি দূর করতে— /fix কমান্ডটি ব্যবহার করে দেখুন।
  • অনুপস্থিত ইম্পোর্টগুলো যোগ করুন।
  • চ্যাট থেকে তৈরি হওয়া কোডের ক্ষেত্রে /fix ব্যবহার করে দেখুন।
কোড পরিষ্কার করা, সরল করা এবং রিফ্যাক্টরিং করা

জেমিনি কোড অ্যাসিস্ট চ্যাটে নিম্নলিখিত প্রম্পটগুলি ব্যবহার করে দেখুন:

  • আপনি কি এই ফাইলে IMPORTS_VARIABLES_OR_NOTE_EXPORTED_FUNCTIONS মার্জ করতে পারবেন?
  • আপনি FUNCTION_NAME ফাংশনটিকে কীভাবে সরল করবেন?
  • আপনি কি FUNCTION_NAME_1 এবং FUNCTION_NAME_2 একটি ফাংশনে একীভূত করতে পারবেন?
  • আপনি কি FUNCTION_NAME এর মধ্যে কিছু ভেরিয়েবল ইনলাইন করতে পারবেন?
  • আপনি কি FUNCTION_NAME ফাংশনে ভেরিয়েবলের নামকরণ সহজ করতে পারবেন?
পাঠযোগ্যতা

জেমিনি কোড অ্যাসিস্ট চ্যাটে নিম্নলিখিত প্রম্পটগুলি ব্যবহার করে দেখুন:

  • সম্ভব হলে FUNCTION_NAME ফাংশনটি আরও কম লাইনে লিখুন।
  • FUNCTION_NAME ফাংশনটিতে মন্তব্য যোগ করুন।
  • FUNCTION_NAME ফাংশন থেকে অপ্রয়োজনীয় স্পেসগুলো মুছে ফেলুন।
  • কোডের বাকি অংশের মতো করেই FUNCTION_NAME ফাংশনটি ফরম্যাট করুন।
কোড পর্যালোচনা

জেমিনি কোড অ্যাসিস্ট চ্যাটে নিম্নলিখিত প্রম্পটগুলি ব্যবহার করে দেখুন:

  • কোডটিকে বিভিন্ন অংশে ভাগ করুন এবং আমাদের কোডবেস ব্যবহার করে প্রতিটি অংশ ব্যাখ্যা করুন।
  • এমন কোনো ভেরিয়েবল বা কীওয়ার্ড আছে কি যা আরও সংক্ষিপ্ত এবং স্ব-ব্যাখ্যামূলক হতে পারে?
  • আপনি কি এই কোডটির জন্য REPOSITORY_NAME_PACKAGE_MODULE কনটেক্সট থেকে দরকারি কোড দিতে পারবেন?
  • FUNCTION_NAME ফাংশনটি সম্পর্কে আপনার মতামত কী?
ডিবাগিং

জেমিনি কোড অ্যাসিস্ট চ্যাটে নিম্নলিখিত প্রম্পটগুলি ব্যবহার করে দেখুন:

  • আমি যখন X করতে বা Y যোগ করতে চেষ্টা করছি, তখন একটি ত্রুটি আসছে। কেন?
  • আপনি কি FUNCTION_NAME ফাংশনটিতে কোনো ভুল খুঁজে পাচ্ছেন?
  • এই ত্রুটি বার্তাটি দেওয়া থাকলে আপনি FUNCTION_NAME ফাংশনটি কীভাবে ঠিক করবেন?
শিক্ষা এবং অন্তর্ভুক্তিকরণ

জেমিনি কোড অ্যাসিস্ট চ্যাটে নিম্নলিখিত প্রম্পটগুলি ব্যবহার করে দেখুন:

  • এই কোডটিকে বিভিন্ন অংশে ভাগ করুন এবং আমাদের কোডবেস ব্যবহার করে প্রতিটি অংশ ব্যাখ্যা করুন।
  • FUNCTION_NAME ফাংশনটি কিভাবে কল করতে হয় তা দেখান।
  • ENVIRONMENT_NAME এনভায়রনমেন্টে মেইন ফাংশনটি কীভাবে রান করতে হয় তা দেখান।
  • এই কোডটিকে আরও কর্মক্ষম করে তোলার জন্য আমরা প্রধান প্রযুক্তিগত উন্নতি কী করতে পারি?
  • আরও ভালো ফলাফল পেতে আমাকে FUNCTION_OR_CLASS_NAME এর ইমপ্লিমেন্টেশন দেখান এবং সেই নির্দিষ্ট এলিমেন্টটি কী তা যোগ করুন—উদাহরণস্বরূপ, "আমাকে ফাংশন foo-এর ইমপ্লিমেন্টেশন দেখান, যেখানে foo হলো ফাংশনটির নাম।"
অভিবাসন

জেমিনি কোড অ্যাসিস্ট চ্যাটে নিম্নলিখিত প্রম্পটগুলি ব্যবহার করে দেখুন:

  • আমাকে একটি কৌশল বলুন যার মাধ্যমে আমি FILE_NAME LANGUAGE_1 থেকে LANGUAGE_2 তে স্থানান্তর করতে পারি—উদাহরণস্বরূপ, Go থেকে Python-এ।
  • REPOSITORY_NAME রিপোজিটরিতে থাকা FUNCTION_NAME ফাংশনটির জন্য, LANGUAGE_NAME ল্যাঙ্গুয়েজে এমন একটি সমতুল্য ফাংশন খুঁজে দিন যা আমি ব্যবহার করতে পারি।

প্রম্পট ব্যবহার করে নিম্নলিখিত চ্যাট-ভিত্তিক বা কোড জেনারেশন ট্রান্সফরমেশন ওয়ার্কফ্লোটি চেষ্টা করুন:

  1. LANGUAGE_1 এ ইতিমধ্যে লেখা FILENAME_COMPONENT কোডটি নিন এবং সেটিকে রিফ্যাক্টর করে LANGUAGE_2 এ স্থানান্তর করুন —উদাহরণস্বরূপ, Go থেকে Python-এ।
  2. কিছু কোড মাইগ্রেট করার পর, নিম্নলিখিতগুলি চেষ্টা করুন:
    • ছোট ছোট অংশ নির্বাচন করুন এবং এটিকে আপনার পছন্দসই অবস্থায় আনতে /fix ব্যবহার করুন।
    • নিম্নলিখিত নির্দেশাবলী চেষ্টা করুন:
      • এমন কিছু আছে যা উন্নত করা যেতে পারে?
      • আমাকে সম্ভাব্য দুর্বল জায়গাগুলো বলুন।
      • ওই মাইগ্রেশনটি সঠিক কিনা, তা আপনি এই কোডটি কীভাবে পরীক্ষা করবেন?
ডকুমেন্টেশন তৈরি করা

জেমিনি কোড অ্যাসিস্ট চ্যাটে নিম্নলিখিত প্রম্পটগুলি ব্যবহার করে দেখুন:

  • প্যাকেজ বা ফোল্ডার X এর কোডের সারসংক্ষেপ করুন এবং সবচেয়ে গুরুত্বপূর্ণ পাঁচটি মেথডের ডকুমেন্টেশন প্রদান করুন।
  • FUNCTION_OR_CLASS_NAME এর জন্য ডকুমেন্টেশন তৈরি করুন।
  • মূল তথ্যগুলো অক্ষুণ্ণ রেখে নথিপত্র সংক্ষিপ্ত করুন।
ইউনিট পরীক্ষা তৈরি

জেমিনি কোড অ্যাসিস্ট চ্যাটে নিম্নলিখিত প্রম্পটগুলি ব্যবহার করে দেখুন:

  • FILENAME এর জন্য ইউনিট টেস্ট তৈরি করুন।
  • FUNCTION_NAME ফাংশনটির জন্য সবচেয়ে প্রাসঙ্গিক টেস্ট কেসগুলো যোগ করুন।
  • যেসব টেস্ট কেস আপনার মতে তেমন কোনো উপযোগিতা দেয় না, সেগুলো সরিয়ে ফেলুন।

সর্বোত্তম অনুশীলন

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

রিমোট রিপোজিটরি কনটেক্সট ব্যবহার করে আরও প্রাসঙ্গিক সাজেশন পান।

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

রিমোট রিপোজিটরিকে কনটেক্সট হিসেবে ব্যবহার করতে, আপনার IDE-এর চ্যাটে এই ধাপগুলো অনুসরণ করুন:

  1. আপনার প্রম্পটটি @ চিহ্ন দিয়ে শুরু করুন। ইনডেক্স করা উপলব্ধ রিমোট রিপোজিটরিগুলোর একটি তালিকা প্রদর্শিত হবে।
  2. তালিকা থেকে প্রাসঙ্গিকতার জন্য আপনার পছন্দের রিপোজিটরিটি নির্বাচন করুন। তালিকাটি ফিল্টার করার জন্য আপনি রিপোজিটরির নামটি টাইপ করাও শুরু করতে পারেন।
  3. রিপোজিটরি নির্বাচন করার পর, আপনার প্রম্পটের বাকি অংশ লিখুন।

এরপর জেমিনি প্রতিক্রিয়া তৈরি করার সময় নির্বাচিত রিপোজিটরিকে অগ্রাধিকার দেবে।

উদাহরণ প্রম্পট

এই বৈশিষ্ট্যটি আপনি কীভাবে ব্যবহার করতে পারেন তার কয়েকটি উদাহরণ নিচে দেওয়া হলো:

  • একটি রিপোজিটরি বুঝতে হলে:
    • @REPOSITORY_NAME REPOSITORY_NAME রিপোজিটরিটির সামগ্রিক কাঠামো কী?
    • @REPOSITORY_NAME আমি REPOSITORY_NAME টিমের একজন নতুন সদস্য। আপনি কি আমাকে এই রিপোজিটরিটির উদ্দেশ্য এবং প্রধান মডিউলগুলো সম্পর্কে একটি সংক্ষিপ্ত ধারণা দিতে পারবেন?
  • কোড তৈরি এবং পরিবর্তনের জন্য:
    • @ REPOSITORY_NAME এই রিপোজিটরিতে থাকা অথেনটিকেশন ফাংশনের অনুরূপ একটি অথেনটিকেশন ফাংশন ইমপ্লিমেন্ট করুন।
    • @ REPOSITORY_NAME নির্বাচিত রিপোজিটরির নিয়মকানুন অনুসরণ করে নিম্নলিখিত কোডটি রিফ্যাক্টর করুন।
    • @ REPOSITORY_A_NAME আমি কীভাবে এই রিপোজিটরির সর্বশেষ ফাংশনগুলো ব্যবহার করে REPOSITORY_B_NAME এ আমার কোড উন্নত করতে পারি?
  • পরীক্ষার জন্য:
    • @ UNIT_TEST_FILE_NAME নির্বাচিত ফাইলের উদাহরণগুলোর উপর ভিত্তি করে MODULE জন্য ইউনিট টেস্ট তৈরি করুন।

রিমোট রিপোজিটরিগুলোকে প্রাসঙ্গিক তথ্যের একটি সুনির্দিষ্ট উৎস হিসেবে ব্যবহার করে, আপনি জেমিনি কোড অ্যাসিস্ট থেকে আরও নির্ভুল ও প্রাসঙ্গিক পরামর্শ পেতে পারেন, যা আপনাকে আরও দ্রুত এবং দক্ষতার সাথে কোড করতে সাহায্য করবে।