লাইব্রেরি

লাইব্রেরি হলো একটি স্ক্রিপ্ট প্রকল্প যার ফাংশনগুলি অন্যান্য স্ক্রিপ্টে পুনরায় ব্যবহার করা যেতে পারে।

লাইব্রেরিতে প্রবেশাধিকার পান

আপনার প্রকল্পে একটি লাইব্রেরি অন্তর্ভুক্ত করার জন্য আপনার কমপক্ষে ভিউ-লেভেল অ্যাক্সেস থাকতে হবে। আপনি যে লাইব্রেরিটি অন্তর্ভুক্ত করতে চান তার লেখক যদি না হন, তাহলে লেখকের সাথে যোগাযোগ করুন এবং অ্যাক্সেসের জন্য অনুরোধ করুন।

আপনি যে লাইব্রেরিটি অন্তর্ভুক্ত করতে চান তার স্ক্রিপ্ট আইডি আপনার প্রয়োজন। যখন আপনার লাইব্রেরিতে অ্যাক্সেস থাকবে, তখন আপনি প্রকল্প সেটিংস পৃষ্ঠায় স্ক্রিপ্ট আইডিটি খুঁজে পেতে পারেন।

আপনার স্ক্রিপ্ট প্রকল্পে একটি লাইব্রেরি যোগ করুন

  1. অ্যাপস স্ক্রিপ্ট এডিটরের বাম দিকে, "লাইব্রেরি" এর পাশে, একটি লাইব্রেরি করুন বিকল্পে ক্লিক করুন।
  2. "স্ক্রিপ্ট আইডি" ক্ষেত্রে, লাইব্রেরির স্ক্রিপ্ট আইডি পেস্ট করুন।
  3. উপরে দেখুন ক্লিক করুন।
  4. সংস্করণ ড্রপডাউনে ক্লিক করুন এবং ব্যবহার করার জন্য লাইব্রেরির সংস্করণ নির্বাচন করুন।
  5. এই লাইব্রেরিতে আপনি যে ডিফল্ট "আইডেন্টিফায়ার" নামটি ব্যবহার করতে চান তা পরীক্ষা করে দেখুন। আপনার স্ক্রিপ্ট লাইব্রেরি উল্লেখ করার জন্য এই নামটি ব্যবহার করে। উদাহরণস্বরূপ, যদি আপনি এটিকে Test এ সেট করেন তাহলে আপনি সেই লাইব্রেরির একটি পদ্ধতিকে নিম্নরূপ কল করতে পারেন: Test.libraryMethod()
  6. যোগ করুন ক্লিক করুন।

একটি লাইব্রেরি ব্যবহার করুন

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

একটি অন্তর্ভুক্ত লাইব্রেরির জন্য রেফারেন্স ডকুমেন্টেশন এই পদক্ষেপগুলি অনুসরণ করে খোলা যেতে পারে:

স্ক্রিপ্ট এডিটরের বাম দিকে, লাইব্রেরির নামের পাশে, More > Open in a new tab এ ক্লিক করুন।

একটি লাইব্রেরি সরান

স্ক্রিপ্ট এডিটরের বাম দিকে, লাইব্রেরির নামের পাশে, More > Remove > Remove library এ ক্লিক করুন।

একটি লাইব্রেরি আপডেট করুন

আপনি লাইব্রেরির সংস্করণ পরিবর্তন করতে পারেন অথবা এর শনাক্তকারী আপডেট করতে পারেন।

  1. সম্পাদকের বাম দিকে, "লাইব্রেরি" এর অধীনে, লাইব্রেরির নামে ক্লিক করুন।
  2. আপনার পরিবর্তনগুলি করুন এবং সংরক্ষণ করুন এ ক্লিক করুন।

একটি লাইব্রেরি তৈরি করুন এবং শেয়ার করুন

আপনার স্ক্রিপ্ট প্রকল্পটি লাইব্রেরি হিসেবে ব্যবহার এবং ভাগ করে নিতে, নীচের পদক্ষেপগুলি অনুসরণ করুন।

  1. আপনার স্ক্রিপ্টের একটি সংস্করণযুক্ত স্থাপনা তৈরি করুন
  2. লাইব্রেরির সকল সম্ভাব্য ব্যবহারকারীর সাথে কমপক্ষে ভিউ-লেভেল অ্যাক্সেস শেয়ার করুন।
  3. সেই ব্যবহারকারীদের স্ক্রিপ্ট আইডি দিন, যা প্রকল্প সেটিংস পৃষ্ঠায় পাওয়া যাবে।

সেরা অনুশীলন

লাইব্রেরি লেখার সময় অনুসরণ করার জন্য এখানে কিছু নির্দেশিকা দেওয়া হল:

  1. আপনার প্রকল্পের জন্য একটি অর্থপূর্ণ নাম চয়ন করুন কারণ এটি অন্যদের দ্বারা আপনার লাইব্রেরি অন্তর্ভুক্ত করার সময় ডিফল্ট শনাক্তকারী হিসাবে ব্যবহৃত হয়।
  2. যদি আপনি চান যে আপনার স্ক্রিপ্টের এক বা একাধিক পদ্ধতি আপনার লাইব্রেরি ব্যবহারকারীদের কাছে দৃশ্যমান (অথবা ব্যবহারযোগ্য) না হোক, তাহলে আপনি পদ্ধতির নামটি একটি আন্ডারস্কোর দিয়ে শেষ করতে পারেন। উদাহরণস্বরূপ, myPrivateMethod_()
  3. লাইব্রেরি ব্যবহারকারীরা কেবল enumerable global properties দেখতে পাবেন। এর মধ্যে রয়েছে ফাংশন ডিক্লেয়ারেশন, var সহ ফাংশনের বাইরে তৈরি ভেরিয়েবল এবং গ্লোবাল অবজেক্টে স্পষ্টভাবে সেট করা প্রোপার্টি। উদাহরণস্বরূপ, Object.defineProperty() enumerable false তে সেট করা থাকলে আপনার লাইব্রেরিতে আপনি ব্যবহার করতে পারেন এমন একটি প্রতীক তৈরি হয়, কিন্তু এই প্রতীকটি আপনার ব্যবহারকারীরা অ্যাক্সেস করতে পারবেন না।
  4. যদি আপনি চান যে আপনার লাইব্রেরি ব্যবহারকারীরা স্ক্রিপ্ট এডিটর অটোকম্পলিট এবং অটোমেটিক জেনারেট হওয়া ডকুমেন্টেশন ব্যবহার করুক, তাহলে আপনার সকল ফাংশনের জন্য JSDoc-স্টাইল ডকুমেন্টেশন থাকতে হবে। এখানে একটি উদাহরণ দেওয়া হল:

    /**
     * Raises a number to the given power, and returns the result.
     *
     * @param {number} base the number we're raising to a power
     * @param {number} exp the exponent we're raising the base to
     * @return {number} the result of the exponential calculation
     */
    function power(base, exp) { ... }
    

রিসোর্স স্কোপিং

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

ভাগ করা সম্পদ

একটি নন-শেয়ার্ড রিসোর্স বলতে বোঝায় যে লাইব্রেরি এবং ইনক্লুসিভিং স্ক্রিপ্ট উভয়েরই কেবল তাদের রিসোর্সের ইনস্ট্যান্সে বিল্ট-ইন অ্যাক্সেস থাকে। তবে, একটি লাইব্রেরি তাদের নন-শেয়ার্ড রিসোর্সগুলিতে স্পষ্ট ফাংশন ব্যবহার করে অ্যাক্সেস প্রদান করতে পারে। এখানে একটি ফাংশনের উদাহরণ দেওয়া হল যা আপনি আপনার লাইব্রেরিতে এর স্ক্রিপ্ট প্রোপার্টিজ প্রকাশ করার জন্য অন্তর্ভুক্ত করবেন:

  function getLibraryProperty(key) {
    const scriptProperties = PropertiesService.getScriptProperties();
    return scriptProperties.getProperty(key);
  }

নিচের চিত্রটি স্ক্রিপ্ট প্রোপার্টিজের উদাহরণ ব্যবহার করে একটি নন-শেয়ারড রিসোর্স চিত্রিত করে:

ভাগাভাগি না করা সম্পদ

এই টেবিলে আপনার রেফারেন্সের জন্য ভাগ করা এবং ভাগ না করা সম্পদের তালিকা দেওয়া হয়েছে:

রিসোর্স ভাগ করা হয়েছে* ভাগ করা হয়নি** মন্তব্য
তালা লাইব্রেরিতে তৈরি করার সময় স্ক্রিপ্ট সহ সকলের কাছে একই উদাহরণ দৃশ্যমান হয়।
স্ক্রিপ্ট বৈশিষ্ট্য লাইব্রেরিতে তৈরি করার সময় স্ক্রিপ্ট সহ সকলের কাছে একই উদাহরণ দৃশ্যমান হয়।
ক্যাশে লাইব্রেরিতে তৈরি করার সময় স্ক্রিপ্ট সহ সকলের কাছে একই উদাহরণ দৃশ্যমান হয়।
ট্রিগার লাইব্রেরিতে তৈরি করা সহজ ট্রিগারগুলি অন্তর্ভুক্ত স্ক্রিপ্ট দ্বারা ট্রিগার করা হয় না।
স্ক্রিপ্টঅ্যাপ
UiApp সম্পর্কে
ব্যবহারকারীর বৈশিষ্ট্য
লগার এবং এক্সিকিউশন ট্রান্সক্রিপ্ট
সাইট, শিট এবং অন্যান্য পাত্র getActive() এ কল করলে ইনক্লুডিং স্ক্রিপ্টের কন্টেইনারটি ফেরত আসে।
মেইলঅ্যাপ এবং জিমেইলঅ্যাপ
* এর মানে হল যে লাইব্রেরির নিজস্ব বৈশিষ্ট্য/সম্পদটির কোনও উদাহরণ নেই এবং পরিবর্তে এটি যে স্ক্রিপ্টটি ব্যবহার করেছিল তার দ্বারা তৈরি একটি ব্যবহার করছে।
** এর অর্থ হল লাইব্রেরির নিজস্ব রিসোর্স/বৈশিষ্ট্যের উদাহরণ রয়েছে এবং লাইব্রেরি ব্যবহারকারী সমস্ত স্ক্রিপ্ট একই উদাহরণ ভাগ করে নেয় এবং অ্যাক্সেস করে।

একটি লাইব্রেরি পরীক্ষা করুন

আপনার লাইব্রেরি পরীক্ষা করার জন্য, হেড ডিপ্লয়মেন্ট ব্যবহার করুন। যাদের স্ক্রিপ্টে সম্পাদক-স্তরের অ্যাক্সেস আছে তারা হেড ডিপ্লয়মেন্ট ব্যবহার করতে পারবেন।

একটি লাইব্রেরি ডিবাগ করুন

যখন আপনি এমন একটি প্রকল্পে ডিবাগার ব্যবহার করেন যেখানে একটি লাইব্রেরি থাকে, তখন আপনি অন্তর্ভুক্ত লাইব্রেরির একটি ফাংশনে প্রবেশ করতে পারেন। কোডটি ডিবাগারে শুধুমাত্র দেখার মোডে এবং সঠিক সংস্করণে প্রদর্শিত হয়।