Оптимізація з використанням сучасних технік
Цей посібник досліджує, як працює 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
Схожості з 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