Google Apps Script:
Организация кода в функции
Как это сделать:
В Google Apps Script, который основан на JavaScript, функции определяются с использованием ключевого слова function
, за которым следует уникальное имя функции, круглые скобки ()
, которые могут содержать параметры, и фигурные скобки {}
, ограничивающие блок кода функции. Вот простой пример:
function greetUser() {
var user = Session.getActiveUser().getEmail();
Logger.log('Привет, ' + user + '!');
}
greetUser();
Пример вывода:
Привет, [email protected]!
Теперь рассмотрим более практический пример, связанный с Google Sheets, где мы разделяем функциональность на две функции: одна для настройки листа и другая для его заполнения данными.
function setupSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
sheet.setName('Данные о продажах');
sheet.appendRow(['Товар', 'Количество', 'Цена']);
}
function populateSheet(data) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Данные о продажах');
data.forEach(function(row) {
sheet.appendRow(row);
});
}
// Инициализируем массив данных
var salesData = [
['Виджеты', 15, 2.5],
['Гаджеты', 8, 3.75]
];
// Запускаем функции
setupSheet();
populateSheet(salesData);
В этом примере setupSheet
подготавливает лист, а populateSheet
использует массив данных о продажах для заполнения листа. Разделение этих задач делает код более чистым и более адаптируемым к изменениям.
Углубленное изучение
Концепция разделения кода на функции не является новой или уникальной для Google Apps Script; это фундаментальная практика программирования, которую поддерживают почти все языки программирования. Исторически, функции эволюционировали из математической концепции отображения входных данных в результаты, что стало одним из основополагающих принципов структурного программирования. Этот подход способствует модульности и повторному использованию кода, предлагая четкие пути для тестирования отдельных частей скрипта.
Google Apps Script, будучи основанным на JavaScript, значительно выигрывает от функций первого класса в JavaScript, позволяющих передавать функции в качестве аргументов, возвращать их из других функций и присваивать переменным. Эта особенность открывает передовые паттерны, такие как коллбэки и функциональное программирование, хотя эти паттерны могут вносить сложность, которая может быть не нужна для простых задач автоматизации в Google Apps Script.
Для более крупных проектов или более сложных приложений разработчики могут исследовать использование новых возможностей JavaScript, таких как стрелочные функции, async/await для асинхронных операций, и даже TypeScript для статической типизации. TypeScript, в частности, может быть скомпилирован для выполнения как Google Apps Script, предоставляя разработчикам путь к более строгой проверке типов и продвинутым объектно-ориентированным функциям.
Однако, для большинства потребностей скриптинга в рамках набора приложений Google, придерживание простых, хорошо организованных функций, как показано на примерах, создает твердую основу. Всегда существует баланс между использованием передовых функций для повышения эффективности и поддержанием простоты для упрощения обслуживания и чтения кода.