Приложения Express — задачи и архитектурные примеры

В каталоге документации Express 3 были собраны социальные сервисы, инструменты совместной работы, аналитика и приложения с HTTP API. Названия ниже сохранены как состав той подборки. Они не подтверждают нынешний стек, доступность или поддержку этих продуктов; коммерческие ссылки «Посетите» и рекламные обещания убраны.

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

Ленты, публикации и поиск

Пример из исходной подборкиЗадача, описанная в источникеЧто разобрать в своём приложении
MySpaceСоциальный сайт; исходник упоминал его новую на тот момент версию.Как разделить публичную страницу, личные данные и действия владельца профиля?
StorifyСборка публикации из материалов социальных медиа.Как валидировать внешние URL и безопасно показывать пользовательский контент?
PrismaticПерсонализированная подборка контента по взаимодействиям.Какие сигналы сохраняет сервер и как отделяется рекомендация от выдачи ленты?
ClipboardСохранение фрагментов веб-страниц.Как ограничить размер загрузки и убрать исполняемый код из внешнего HTML?
Geekli.stПубликация достижений и общение разработчиков.Как проверяются права на изменение записи и видимость профиля?
YummlyПоиск рецептов из разных источников.Как отделить параметры поиска от хранения и нормализации документов?

Совместная работа и инструменты

ПримерНазначение в подборкеАрхитектурный вопрос
LearnBoostУчебные планы, посещаемость, оценки и отчёты.Как разграничить доступ преподавателя, ученика и администратора к одной записи?
KodingРедактор, общение и терминал в браузере.Как отделить HTTP-приложение от исполнения недоверенного кода? Маршрутизатор не является песочницей.
Balloons.ioЧат с обновлениями в реальном времени.Как клиент переподключается и получает пропущенные сообщения? Нужен отдельный транспорт/протокол обновлений.
Apiary.ioОписание и документирование REST API.Как связать спецификацию, обработчики и проверки фактических HTTP-ответов?

Идентификация и аналитика

ПримерНазначение в исходникеЧто важно проверить
Persona / BrowserIDПроект идентификации браузера Mozilla.Как приложение проверяет результат аутентификации и срок действия утверждения? Старый бренд не является рекомендацией нового провайдера.
CountlyАналитика мобильных приложений.Какие события действительно нужны, как ограничены объём, сроки хранения и доступ?
Segment.ioПередача событий разным аналитическим службам.Как схема события и список получателей ограничивают распространение персональных данных?
KloutОценка и сравнение социального влияния.Что означает метрика, откуда берутся данные и можно ли независимо проверить расчёт?

Как перейти от названий к коду

Название известного продукта не доказывает пригодность выбранной библиотеки для вашей нагрузки. Для проверки начните с небольшого собственного вертикального сценария: запрос → проверка входа → доступ к данным → статус и ответ. Затем добавьте отказ базы, неверные права, пустой результат и повторный запрос.

Состав исторической подборки: документация Express 3, © 2012 TJ Holowaychuk; русский перевод JSman. Архитектурные вопросы — редакционное дополнение, а не сведения о внутренней реализации перечисленных продуктов.

Заметки и перевод: @jsmarkus