Лучшие практики

Улучшите общее впечатление ваших пользователей, следуя этим руководствам по дизайну надстроек.

Общие рекомендации

Вам рекомендуется следовать следующим рекомендациям для всех разрабатываемых вами надстроек.

Определите владельца надстройки перед запуском

Надстройки определяются проектами Apps Script, которые должны принадлежать определенной учетной записи или размещаться на общем диске . Прежде чем писать надстройку, определите, какая учетная запись должна владеть проектом, а какая учетная запись выступает в качестве его издателя. Также определите, какие учетные записи будут выступать в качестве соавторов, и убедитесь, что эти учетные записи имеют доступ к проекту сценария и связанному с ним проекту облачной платформы .

Расширяйте Google Workspace, а не копируйте его

Дополнения предназначены для предоставления новых возможностей приложениям Google Workspace, которые они расширяют, или же для автоматизации сложных задач. Надстройки, которые просто копируют функциональность, уже существующую в приложении, или те, которые не вносят существенных улучшений в рабочий процесс, скорее всего, не пройдут проверку надстройки для публикации.

Держите рамки узкими

При явном определении областей всегда выбирайте наименее допустимый набор областей. Например, не предоставляйте вашему запросу дополнения полный доступ к календарю пользователя с областью действия https://www.googleapis.com/auth/calendar , если ему нужен только доступ для чтения. Для доступа только для чтения используйте область https://www.googleapis.com/auth/calendar.readonly .

Не полагайтесь слишком сильно на библиотеки

Использование библиотек Apps Script может привести к тому, что надстройка будет работать медленнее, чем если бы весь код Apps Script содержался в одном проекте скрипта. Хотя библиотеки Apps Script работают в надстройках, их использование может привести к снижению производительности. Избегайте включения ненужных библиотек в свой проект и подумайте о том, как уменьшить зависимость от них вашего дополнения.

Описанная выше задержка применима только к проектам Apps Script, которые используются в качестве серверных библиотек. Вы можете свободно использовать клиентские библиотеки JavaScript, такие как jQuery, не сталкиваясь с этой задержкой.

Рекомендации по использованию надстроек Google Workspace

Следующие рекомендации применимы только к надстройкам Google Workspace и использованию службы карт .

Используйте всего несколько карт

Если надстройка использует слишком много карт, конфигурация навигации становится сложной и трудноуправляемой.

Избегайте импульса создавать больше карт, чем необходимо.

Используйте функции создания виджетов

При написании кода, создающего Card или другие сложные объекты пользовательского интерфейса, рассмотрите возможность размещения этого кода в отдельной функции. Эта функция создания должна просто построить объект и вернуть его. Это позволяет быстро регенерировать этот объект всякий раз, когда необходимо обновить пользовательский интерфейс. Не забудьте вызвать build() после использования классов-строителей в сервисе Card .

Делайте карты простыми

Если на данной карточке слишком много виджетов, она может занять слишком большую часть экрана и стать менее полезной. Хотя большие разделы карточек отображаются как свертываемые элементы пользовательского интерфейса, это скрывает информацию от пользователя. Стремитесь оптимизировать надстройку и предоставлять именно то, что нужно пользователю, и не более того.

Используйте карточки ошибок

Создайте карточки для ошибочных состояний. Если ваше дополнение выдает ошибку, оно должно отобразить карточку с информацией об ошибке и инструкциями по ее исправлению, если это возможно. Например, если вашему дополнению не удалось подключиться к службе, не принадлежащей Google, из-за сбоя авторизации, покажите карточку с сообщением об этом и попросите пользователя подтвердить используемые данные учетной записи.

Написание тестов и тестовых сообщений

Вам следует тщательно тестировать все создаваемые вами дополнения. Создайте тестовые функции, которые создают карточки и виджеты с использованием тестовых данных, а затем проверяйте, что объекты создаются должным образом.

При использовании функций обратного вызова действий обычно необходимо создать объект ответа. Вы можете использовать следующие операторы, чтобы убедиться, что ответы формируются правильно:

    Logger.log(response.printJson());

Запускайте созданные вами тестовые функции непосредственно из редактора Apps Script с помощью меню «Выполнить» . Если у вас есть работающее жизнеспособное дополнение, обязательно установите неопубликованную версию , чтобы вы могли ее протестировать.

Используйте тестовые данные, соответствующие каждому главному приложению, расширяемому надстройкой. Например, если надстройка расширяет Gmail, вам, вероятно, понадобится несколько тестовых писем и их идентификаторы сообщений, чтобы вы могли убедиться, что надстройка работает должным образом при различном содержании сообщений. Вы можете получить идентификатор сообщения для данного сообщения, перечислив сообщения с помощью метода Users.messages.list API Gmail или воспользовавшись службой Gmail Apps Script.

Рекомендации по организации конференций в календаре

Если ваша надстройка интегрирует сторонние параметры конференц-связи в календаре с Календарем Google, следуйте этим дополнительным рекомендациям:

Держите индикатор onCreateFunction

Каждая onCreateFunction которую вы определяете в своем манифесте, вызывается синхронно, когда пользователь пытается создать конференц-решение этого типа. Убедитесь, что эти функции выполняют только минимально необходимую работу для создания конференции. Слишком большое использование этих функций может привести к замедлению работы пользователя с вашим дополнением.

Используйте соответствующие поля ConferenceData для данных конференции.

При создании объектов ConferenceData вы можете заполнить их сведениями о конференции (коды доступа, номера телефонов, контакты, URI и т. д.). Обязательно используйте соответствующее поле EntryPoint для этой информации. Не помещайте эти данные в поле примечаний ConferenceData .

Не добавляйте сведения о конференции к событию Календаря Google.

Вашему дополнению не нужно добавлять информацию о созданных сторонних конференциях в описание событий Календаря Google. Календарь Google делает это автоматически при необходимости.