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 ในขณะที่มันทำงานได้ดี แต่มันใช้ practice ของ 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 บางส่วนได้รับหลักการมาจากการปฏิบัติการวิศวกรรมซอฟต์แวร์โดยรวม การนี้ได้รับการจดจำและจัดโครงสร้างมากขึ้นในฐานะคอนเซปต์ในช่วงปลายทศวรรษที่ 1990 เด่นชัดเป็นพิเศษเนื่องจากหนังสือ “Refactoring: Improving the Design of Existing Code” (1999) ของ Martin Fowler ซึ่งให้คำแนะนำรอบคอบเกี่ยวกับเทคนิคการปรับโครงสร้างต่างๆ ในขณะที่รายละเอียดของการปรับโครงสร้างอาจแตกต่างกันไปตามภาษาโปรแกรมเนื่องจากความแตกต่างทางไวยากรณ์และการทำงาน แต่เป้าหมายหลักยังคงเหมือนเดิม: การปรับปรุงโค้ดโดยไม่เปลี่ยนพฤติกรรมภายนอก

ในบริบทของ Google Apps Script สิ่งสำคัญที่ต้องพิจารณาในระหว่างการปรับโครงสร้างคือข้อจำกัดและโควต้าบริการที่ Google กำหนด เนื่องจากโค้ดที่ได้รับการปรับปรุงอย่างมีประสิทธิภาพไม่เพียงแต่อ่านง่ายขึ้น แต่ยังทำงานได้เร็วและเชื่อถือได้มากขึ้นภายในข้อจำกัดเหล่านี้ ตัวอย่างเช่น การดำเนินการเป็นกลุ่ม (Range.setValues() แทนที่จะตั้งค่าหนึ่งเซลล์ในครั้งหนึ่ง) สามารถลดเวลาการเรียกใช้และการบริโภคโควต้าได้อย่างมาก

อย่างไรก็ตาม สำหรับโปรเจคที่ซับซ้อนบางอย่าง Google Apps Script อาจไม่เพียงพอเนื่องจากข้อจำกัดเหล่านี้ ในกรณีเหล่านั้น การมองหาทางเลือกเช่น Google Cloud Functions หรือ AppSheet ซึ่งเป็นน้องใหม่ของ Apps Script อาจเสนอการขยายขนาดและฟังก์ชันการทำงานที่ดีขึ้น

ในที่สุด ในขณะที่การปรับโครงสร้างเป็นทักษะสำคัญในการบำรุงรักษาและปรับปรุงโปรเจกต์ Google Apps Script การเข้าใจข้อจำกัดของสภาพแวดล้อมและพิจารณาทางเลือกอื่นๆ ก็เป็นสิ่งสำคัญเช่นกันในการส่งมอบโค้ดที่มีประสิทธิภาพ ทนทาน และสามารถรักษาได้