Як працює Web-додаток на Apps Script

Оптимізація з використанням сучасних технік

Цей посібник досліджує, як працює Google Apps Script як Веб-додаток, як застосовувати техніки оптимізації для покращення продуктивності та чому Apps Script не підтримує Node.js безпосередньо, порівнюючи це з Docker.

Як працює Apps Script як Веб-додаток

Google Apps Script дозволяє створювати Веб-додатки, які хостяться на серверах Google. Ви можете опублікувати свій код і створити публічну URL-адресу, яка буде доступна користувачам з відповідними правами доступу, включаючи будь-кого в Інтернеті.

Як опублікувати Веб-додаток

У редакторі Apps Script перейдіть до меню Deploy > New Deployment.
Виберіть Web App.
Налаштуйте, хто може отримати доступ:
Тільки ви: Тільки ви маєте доступ до додатку.
Користувачі вашого домену з авторизацією: Тільки користувачі вашої організації (Google Workspace).
Будь-хто з посиланням (Користувачі Інтернету): Дозволяє публічний доступ без входу в систему.

Різниця між авторизованими користувачами та користувачами Інтернету

Якщо ви виберете опцію Будь-хто з посиланням, ваш Веб-додаток буде публічним. Це означає, що будь-хто в Інтернеті може отримати доступ до додатку без необхідності входити в систему.
Це налаштування корисне для створення:
Публічних API
Інтерактивних форм
Панелей моніторингу даних
⚠️Увага: Якщо ваш Веб-додаток обробляє чутливі дані, переконайтеся, що ви реалізували контроль доступу на серверній частині для запобігання неналежному розкриттю даних.

Чи є Apps Script Docker?

Хоча Apps Script не є саме Docker, він має деякі важливі характеристики, схожі на концепцію контейнерів, такі як ізоляція середовища виконання і спрощене управління інфраструктурою.
Порівняння Docker та Apps Script

pic

Схожості з Docker

Apps Script є авто-хостинговим на серверах Google, подібно до того, як Docker-контейнер ізольований від хост-системи.
Він є стандартизованим та контрольованим, що гарантує, що код завжди працює в одному середовищі, уникнення проблем типу "працює на моєму комп'ютері".

Важливі відмінності

Docker дозволяє вибирати середовище, операційну систему та бібліотеки, які ви хочете використовувати.
Apps Script не дозволяє налаштовувати середовище, і ви обмежені версією V8 та бібліотеками, які надає Google.

Чому Apps Script не підтримує Node.js безпосередньо?

Хоча Node.js також використовує движок V8, Apps Script не є повноцінним середовищем Node.js з кількох важливих причин:
Безпека та Контроль
Google контролює середовище виконання Apps Script для гарантування безпеки та масштабованості.
Дозволити використання пакетів Node.js безпосередньо відкрило б двері до проблем з безпекою, таких як:
Інсталяція шкідливих пакетів.
Розкриття чутливих даних.
Залежність від застарілих або небезпечних пакетів.

Простота та відсутність налаштувань

Велика перевага Apps Script полягає в тому, що це платформа без серверів (serverless).
Вам не потрібно турбуватися про налаштування інфраструктури, як це було б необхідно в середовищі Node.js.
Все вже налаштовано для роботи на серверах Google, без необхідності налаштовувати runtime, залежності або сервери.

Орієнтація на API Google

Основна мета Apps Script — забезпечити нативну інтеграцію з API Google, такими як:
Google Sheets
Google Drive
Gmail
Google Calendar
І т.д.
Дозвіл Node.js безпосередньоможе зламати цю спрощену інтеграцію.
Google хоче, щоб Apps Script був зручним інструментом для автоматизації завдань у його екосистемі.

Як застосувати техніки оптимізації в Apps Script Web App

Давайте розглянемо, як застосувати раніше згадані техніки оптимізації до вашого Web App на Apps Script.

Мінімізація файлів (HTML, CSS, JS)

Як оптимізувати:
Видаліть зайві пробіли та коментарі у файлах HTML, CSS та JS.
Використовуйте онлайн-інструменти для мінімізації перед тим, як включати файли в проект.
Уникайте вставляння скриптів і стилів безпосередньо в HTML.

Приклад функції для завантаження мінімізованих файлів:

function include(filename) {  
 return HtmlService.createHtmlOutputFromFile(filename).getContent();  
}








Привіт, Світ!
       ```  

## Lazy Loading зображень

В Apps Web **lazy loading** зображень може значно покращити початкове завантаження сторінки. Однак **Google Apps Script не дозволяє завантажувати зображення безпосередньо з локальних файлів**. Зображення повинні бути доступні через **публічне посилання**.

**Як оптимізувати:**  
Додайте атрибут `loading="lazy"` до зображень.  
Використовуйте **JavaScript** для динамічного завантаження зображень.  
Переконайтеся, що посилання на зображення є публічними та доступними.

Використання CDN (Content Delivery Network)

Apps Script дозволяє вбудовувати ресурси сторонніх розробників, такі як CSS та JavaScript бібліотеки, безпосередньо з CDN.

Як оптимізувати:
Використовуйте CDNs для завантаження стандартних бібліотек (наприклад, Bootstrap, jQuery, Font Awesome).
Надавайте перевагу надійним посиланням на CDNs, таким як Google Fonts.

Приклад використання CDN:

         ```  

# Ефективне кешування

Apps Script дозволяє реалізувати **серверне кешування** за допомогою класу **CacheService**.

**Як оптимізувати:**  
Використовуйте **CacheService** для зберігання динамічних відповідей API або оброблених даних.  
Це зменшує повторні запити до бекенду.

**Приклад використання CacheService:**

function getData() {
const cache = CacheService.getScriptCache();
let data = cache.get('myData');

if (!data) {
data = 'Це динамічні дані';
cache.put('myData', data, 3600); // Кешування на 1 годину (3600 секунд)
}

return data;
}
```

Google Apps Script є потужною платформою для створення швидких та масштабованих Web Apps. Застосовуючи сучасні техніки оптимізації, ви можете значно покращити продуктивність та досвід користувача. Наприклад, сторінка, яка завантажується 5 секунд, може скоротити цей час до менш ніж 2 секунд за допомогою мінімізації файлів і lazy loading зображень. Це не тільки позитивно впливає на досвід користувача, але й може покращити рейтинг сторінки в пошукових системах, таких як Google, оскільки швидкість завантаження є важливим фактором для SEO.

Слід зазначити, що ці техніки я часто застосовую в своїх проектах, але існують й інші підходи, які можуть бути так само ефективними. Кожен проект може вимагати різних методів оптимізації, залежно від специфічних потреб.
Якщо вам потрібна допомога в реалізації цих технік у вашому конкретному проекті, звертайтесь до мене! 😉

▶️ Канал YouTubebe
🚀 Мій Git
📚 Документація Apps Script

Перекладено з: Como Funciona o Apps Script Web

Leave a Reply

Your email address will not be published. Required fields are marked *