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

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

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

Рекомендуется следовать приведенным ниже рекомендациям для всех надстроек, которые вы разрабатываете.

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

Надстройки определяются проектами 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, используемым в качестве серверных библиотек. Вы можете свободно использовать библиотеки JavaScript на стороне клиента, такие как jQuery, не сталкиваясь с этой задержкой.

Рекомендации по надстройке Google Workspace

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

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

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

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

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

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

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

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

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

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

Пишите тесты и тестовые сообщения

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

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

    Logger.log(response.printJson());

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

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

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

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

Держите свет onCreateFunction

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

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

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

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

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