Глоссарий

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

Протоколы и форматы

JWT

JSON Web Token

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

OAuth

OAuth 2.0 · вход через соцсети · Sign in with Apple

Стандарт, на котором держатся «Вход через Apple», Google и остальные: пользователь подтверждает доступ у провайдера, которому уже доверяет, а приложение получает токен вместо пароля. Никто не заводит новый пароль, и вы его не храните.

Server-Sent Events

SSE

Односторонний поток от сервера к клиенту поверх обычного HTTP-соединения. Проще WebSocket и достаточен там, где сказать есть что только серверу: прогресс операции, ответ ИИ, приходящий по токенам.

TLS

SSL · HTTPS · Transport Layer Security

Слой шифрования под HTTPS. Он подтверждает, что сервер именно тот, о ком говорит его сертификат, согласует свежий ключ на сессию и шифрует всё дальнейшее — сеть между вами видит шифртекст и не может незаметно его изменить.

WebRTC

Web Real-Time Communication

Браузерный и мобильный стандарт для передачи аудио, видео и данных напрямую между двумя устройствами; серверы участвуют только в том, чтобы их познакомить. На нём строят видеозвонок внутри приложения, когда не берут готовый SDK.

WebSocket

Протокол, который держит одно соединение между клиентом и сервером открытым, чтобы любая сторона могла отправить данные в любой момент, а не клиент спрашивал снова и снова. На нём работают живые котировки, чаты и статусы присутствия.

XMPP

Jabber · Extensible Messaging and Presence Protocol

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

Возможности платформ

AOSP

Android Open Source Project

Android Open Source Project — Android без гугловского слоя сверху, который может форкнуть кто угодно. На его форках работают кассовые терминалы, киоски и автомобильные системы, а работа на этом уровне открывает части ОС, которых прикладной разработчик не видит.

App Clips

Возможность Apple запустить небольшую часть iOS-приложения — до 15 МБ — не устанавливая его целиком. Вызывается по QR-коду, NFC-метке или ссылке: для случаев, когда первое действие пользователя не должно требовать похода в App Store.

BigQuery

Аналитическое хранилище Google Cloud. Вы направляете SQL на миллиарды строк, и они сканируются за секунды — на хранилище, отделённом от машин, которые выполняют запросы. Именно это уводит отчётность и исследование данных от базы, обслуживающей живой трафик.

Elasticsearch

Elastic · ELK

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

Host Card Emulation

HCE · EMV Contactless · бесконтактные платежи

Режим, в котором Android-телефон программно изображает бесконтактную карту по NFC, без аппаратного защищённого элемента. Так платит приложение-кошелёк на терминале: телефон говорит с ним по тому же протоколу EMV Contactless, что и пластиковая карта.

Impeller

Движок рендеринга, на котором Flutter работает сегодня: по умолчанию на iOS с 2023 года и на Android с 2024-го. Он компилирует шейдеры заранее, а не во время первой анимации, что убрало главную видимую проблему Flutter в проде — джанк на компиляции шейдеров.

Install Referrer

API Google Play, который передаёт только что установленному Android-приложению параметры кампании из ссылки, приведшей к установке. Android-половина отложенного диплинкинга и надёжный способ понять, откуда пришёл пользователь.

Kotlin Multiplatform

KMP

Переиспользование бизнес-логики на Kotlin между Android, iOS и сервером при том, что интерфейс на каждой платформе остаётся нативным. Альтернатива Flutter, когда UI обязан быть нативным, а правила за ним — нет.

Skia

Skia Graphics Engine · skia-safe

Открытая 2D-графическая библиотека Google, которая рисует Chrome, Android и — до появления Impeller — каждый кадр Flutter. Она умеет выводить не только на экран, но и в PDF: именно это делает «печать в PDF» в Chrome.

Диплинкинг

deep linking · отложенный диплинкинг · Universal Links · Android App Links

Ссылка, которая открывает конкретный экран внутри установленного приложения, а не его главную или веб-страницу. Отложенный диплинкинг переживает установку: нажатие, приведшее в магазин приложений, всё равно попадает на нужный экран.

Платформенные каналы

platform channels · method channel

Мост, через который Flutter-приложение вызывает нативный код iOS и Android — Keychain и Keystore, биометрию, платёжные шторки, любой SDK без Dart-пакета. Работа рутинная, но настоящая, и первое место, где споткнётся инженер, не выходивший за пределы Dart.

Архитектура

Fan-out

веерная рассылка · фан-аут

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

GraphQL

Язык запросов к API, где клиент сам перечисляет нужные поля и получает один ответ ровно такой формы. Он снимает избыточную выдачу, к которой дрейфуют REST-эндпоинты, и добавляет собственный режим отказа: неограниченный запрос, обходящий всю модель данных.

Headless CMS

безголовая CMS · контентное API

Система управления контентом с админкой и API, но без собственного фронтенда. Редакторы публикуют в одном месте, а сайт или приложение отрисовывает контент само — слой представления остаётся вашим, а не навязанным вендором CMS.

Pub/Sub

публикация/подписка · Google Cloud Pub/Sub

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

REST

REST API · Representational State Transfer

Общепринятый стиль HTTP-API: URL называет ресурс, а HTTP-метод говорит, что с ним сделать. Способ по умолчанию, которым приложение общается с бэкендом, и то, что ожидает найти большинство сторонних интеграций.

Мультиархитектурный образ

мультиарх-сборка · multi-arch build · linux/amd64 + linux/arm64

Один тег образа, который разрешается в разные бинарники под конкретную архитектуру процессора — обычно это пара linux/amd64 и linux/arm64, — так что один и тот же docker pull работает без изменений и на серверах Intel/AMD, и на ноутбуках с Apple Silicon.

Мультитенантность

multi-tenancy · мультиарендность · тенант

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

Объектное хранилище

S3 · S3-совместимое хранилище · блоб-хранилище

Хранилище, которое держит файл целиком под ключом, а не в дереве файловой системы, — Amazon S3 и множество сервисов, говорящих на его API. Дёшево, практически безгранично и обычно хранит сырые события, бэкапы и медиа: записали один раз, читают редко, лежит вечно.

Реестр контейнеров

реестр образов · Docker registry · GHCR · ghcr.io · container registry

Хранилище образов контейнеров, адресуемых по имени и тегу, — Docker Hub, GitHub Container Registry или собственный реестр облачного провайдера. Публикация сборки туда превращает «у меня работает» в образ, который любой может скачать и запустить без изменений.

Серверный рендеринг

SSR · server-side rendering

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

Сквозное шифрование

E2EE · end-to-end encryption · оконечное шифрование

Шифрование, которое накладывается на устройстве отправителя и снимается только на устройстве получателя, так что сервис-переносчик не может прочитать сообщение — ни по решению суда, ни после взлома. Оно защищает содержимое и никогда метаданные.

Управление состоянием

state management · BLoC · Riverpod

То, как приложение решает, где живёт значение, кому позволено его менять и какие части экрана перерисовываются, когда оно меняется. Во Flutter выбор между Riverpod, BLoC и Provider — одно из первых архитектурных решений и одно из самых трудных для пересмотра.

Числа с плавающей точкой

IEEE 754 · double · плавающая запятая

Двоичный формат IEEE 754, стоящий за double и float. Он не хранит 0.1 точно, поэтому 0.1 + 0.2 даёт 0.30000000000000004 — незаметно в графике и фатально в деньгах, которым место в целых минорных единицах или в decimal-типе.

Практики

CI/CD

CI · непрерывная интеграция · непрерывная поставка

Автоматизация, которая собирает, тестирует и выкладывает каждое изменение без ручного запуска команд. На мобильных это то, что превращает релиз в нажатие кнопки вместо полудня ожидания, пока освободится нужный человек.

Dev Container

devcontainer.json · Dev Containers · VS Code Dev Containers

Среда разработки, описанная один раз в devcontainer.json — ОС, инструменты и версии рантаймов, которые нужны проекту, — и открываемая одинаково внутри контейнера в редакторе любого участника, вместо инструкции по установке, которую каждый понимает по-своему.

GDPR

Общий регламент по защите данных · General Data Protection Regulation

Регламент ЕС о персональных данных людей в ЕС: законное основание для сбора, настоящее согласие на трекинг, право увидеть и удалить свои данные. Он следует за вашими пользователями, а не за вашими серверами, — где зарегистрирована компания, значения не имеет.

Golden-тест

golden test · золотой тест · скриншотный тест

Тест, который отрисовывает виджет и сравнивает результат попиксельно с эталонным изображением. Во Flutter это самый дешёвый способ узнать, не сломал ли редизайн пустое состояние на 320pt, в тёмной теме, при 200% масштабе текста.

HIPAA

Health Insurance Portability and Accountability Act

Закон США о защищённой медицинской информации: как её можно хранить, передавать, логировать и раскрывать. Как и PCI-DSS, это архитектурное ограничение, которое выбирают в начале, а не документ, который дописывают перед запуском.

KYC

Know Your Customer · AML · KYC/AML

Know Your Customer — проверка личности, которую регулируемый финансовый продукт обязан провести, прежде чем позволить двигать деньги: съёмка документов, liveness, санкционные и антиотмывочные списки. На онбординг это влияет сильнее любого дизайн-решения.

PCI-DSS

PCI DSS · Payment Card Industry Data Security Standard

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

Prompt injection

инъекция промпта · инъекция в промпт

Атака, при которой текст от пользователя языковая модель читает как инструкции, а не как данные, и уходит в обход собственных правил. Родственник SQL-инъекции в эпоху LLM: возникает везде, где пользовательский ввод склеивается в промпт.

SOC 2

SOC2 · System and Organization Controls

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

Ограничение частоты запросов

rate limiting · рейт-лимит · троттлинг

Предел на число запросов от одного вызывающего за интервал. Именно он не даёт одному увлечённому пользователю, скраперу или боту потратить месячный бюджет платного API за вечер, и стоять он должен на вашей стороне интеграции.

Поэтапная раскатка

staged rollout · phased release · канареечный релиз

Релиз сначала на небольшой процент пользователей и расширение только тогда, когда доля сессий без падений держится. Плохая сборка, пойманная на десяти процентах, — испорченный вечер; она же на ста процентах — испорченная неделя.

Фичефлаги

feature flags · фиче-флаги · feature toggle

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

Бизнес-термины

MVP

минимально жизнеспособный продукт · minimum viable product

Наименьшая версия продукта, которую можно показать реальным пользователям и всё ещё получить ответ на вопрос, ради которого он строился. Решение об объёме, а не о качестве: MVP всё равно обязан работать.

Product-market fit

PMF · соответствие продукта рынку

Момент, когда продукт доказуемо нашёл своих людей: они им пользуются, возвращаются и платят. До него инженерия отвечает на вопрос, после — на спрос.

Staff augmentation

аутстаффинг · расширение команды · выделенные разработчики

Модель найма, при которой инженеры внешнего партнёра входят в вашу команду и работают под вашим управлением — в вашем репозитории, ваших спринтах, вашем процессе, — а не сдают отдельный проект. Вы покупаете мощность; код и контекст остаются у вас.

Time to market

TTM · время выхода на рынок

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

White-label

белый лейбл · мультитенантное приложение

Один продукт, выпускаемый под многими брендами. White-label платформа собирает каждому клиенту готовое к публикации приложение со своим названием, оформлением и контентом из общей кодовой базы, а не форкает проект под заказчика.

Встроенные покупки

in-app purchase · IAP · внутренние покупки

Продажа цифровых товаров и подписок через биллинг Apple и Google, который оба стора требуют для цифрового контента и с которого берут комиссию. Сложность никогда не в самой покупке, а в её восстановлении на новом устройстве и в честном состоянии доступа.

Совокупная стоимость владения

TCO · total cost of ownership

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

Нужно что-то из этого построить?

Если один из этих терминов у вас в планах, а не в списке чтения, мы, скорее всего, уже это делали.

Обсудить задачу