Google Apps Script:
রিফ্যাক্টরিং

কিভাবে:

Google Apps Script-এ, রিফ্যাক্টরিং থেকে লাভ পাওয়ার একটি সাধারণ দৃশ্যাবলী হচ্ছে Google Sheets অথবা Docs এর সাথে ব্যাপক স্ক্রিপ্ট সহজীকরণ। প্রাথমিকভাবে, স্ক্রিপ্টগুলি দ্রুত ফলাফল পেতে দ্রুত এবং ময়লা উপায়ে লিখা হতে পারে। সময়ের সাথে সাথে, যেমন স্ক্রিপ্টের আকার বাড়ে, এটি হাতের বাইরে হয়ে যায়। চলুন উন্নত পাঠ্যতা এবং কার্যকারিতার জন্য রিফ্যাক্টরিং এর একটি উদাহরণের মধ্য দিয়ে যাই।

মূল স্ক্রিপ্ট:

function logSheetNames() {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  for (var i = 0; i < sheets.length; i++) {
    Logger.log(sheets[i].getName());
  }
}

এই ফাংশনটি একটি Google Spreadsheet-এর প্রতিটি শিটের নাম লগ করে। এটি ঠিক কাজ করে, কিন্তু এটি পুরাতন JavaScript প্র্যাকটিস ব্যবহার করে এবং পরিষ্কারতা অভাব রয়েছে।

রিফ্যাক্টরড স্ক্রিপ্ট:

function logSheetNames() {
  const sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  sheets.forEach(sheet => Logger.log(sheet.getName()));
}

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

নমুনা আউটপুট (উভয় স্ক্রিপ্টের জন্য):

Logger-এ আউটপুট এরকম দেখাবে, ধরুন আপনার Google Sheets ডকুমেন্টে “Expenses” এবং “Revenue” নামে দুটি শিট আছে:

[20-04-2023 10:00:00: INFO] Expenses
[20-04-2023 10:00:01: INFO] Revenue

রিফ্যাক্টরড স্ক্রিপ্ট একই ফলাফল অর্জন করে কিন্তু এটি পরিষ্কার এবং এক নজরে বুঝতে সহজ।

গভীর ডুব

Google Apps Script-এ রিফ্যাক্টরিং প্রশস্ত সফটওয়্যার ইঞ্জিনিয়ারিং অনুশীলন থেকে এর নীতিগুলি আংশিকভাবে উত্তরাধিকার করে নেয়। ১৯৯০ দশকের শেষে, বিশেষভাবে Martin Fowler এর “Refactoring: Improving the Design of Existing Code” (১৯৯৯) নামক গ্রন্থের কারণে, যা বিভিন্ন রিফ্যাক্টরিং কৌশলের একটি সম্পূর্ণ গাইড সরবরাহ করে, এটি আরও স্বীকৃতি পায় এবং কাঠামোগত। যদিও রিফ্যাক্টরিং এর বিশেষত্বগুলি তাদের ব্যাক্তানের এবং ফাংশনাল পার্থক্যের কারণে প্রোগ্রামিং ভাষাগুলি জুড়ে পরিবর্তনশীল হতে পারে, মূল লক্ষ্য একই থাকে: এর বাইরের আচরণ পরিবর্তন না করে কোডের উন্নতি করা।

Google Apps Script-এর প্রসঙ্গে, রিফ্‌্যাক্টরিং করার সময় বিবেচনা করার একটি প্রধান দিক হল Google দ্বারা আরোপিত সেবা কোটা এবং সীমাবদ্ধতা। দক্ষভাবে রিফ্যাক্টরড কোড শুধুমাত্র ভালভাবে পড়া যায় না, বরং এই সীমাবদ্ধতাগুলির মধ্যে দ্রুত এবং আরও নির্ভরযোগ্যভাবে চালানো যায়। উদাহারণস্বরূপ, ব্যাচ অপারেশন (Range.setValues() এক সেল এ একবারে মান সেট করার পরিবর্তে) কার্যকরী সময় এবং কোটা খরচ অনেক কমাতে পারে।

যাইহোক, বিশেষ করে জটিল প্রকল্পের ক্ষেত্রে, এই সীমাবদ্ধতাগুলির কারণে Google Apps Script অপর্যাপ্ত হতে পারে। এই ধরনের ক্ষেত্রে, Google Cloud Functions অথবা Apps Script-এর নতুন আত্মীয়, AppSheet এর মত বিকল্পগুলি বিবেচনা করা ভালো দক্ষতা এবং কার্যকারিতা অফার করতে পারে।

শেষ পর্যন্ত, Google Apps Script প্রকল্পগুলি রক্ষণাবেক্ষণ এবং উন্নতি করার জন্য রিফ্যাক্টরিং একটি মৌলিক দক্ষতা, তবে পরিবেশের সীমাবদ্ধতাগুলি বুঝতে এবং বিকল্প সমাধানগুলি বিবেচনা করা কোড দক্ষ, দৃঢ় এবং রক্ষণাবেক্ষণযোগ্য প্রদানের জন্য ঠিক ততটাই গুরুত্বপূর্ণ।