Много лет назад такие технологии, как Adobe Flash и Flex, а также Microsoft Silverlight, были стандартом для создания визуально приятных интерактивных веб-приложений. Термин «одностраничное приложение» был скорее модным, и, хотя он использовался небольшими предприятиями, более крупные компании даже близко не подходили к такому подходу.

Сегодня мы видим, что библиотеки HTML5 и JavaScript доминируют в мире веб-разработки. Растущее распространение JavaScript также сигнализирует о росте проблем на стороне клиента, как с точки зрения абсолютного числа, так и сложности, что неизменно делает воспроизведение этих проблем более трудным и дорогостоящим.

Что такое СПА?

Как следует из названия, одностраничные приложения (SPA) - это веб-приложения, которые загружают одну HTML-страницу, которая динамически обновляется по мере взаимодействия пользователя с приложением. Большая часть работы выполняется на стороне клиента, на JavaScript, что позволяет SPA предлагать пользователям опыт работы с настольными компьютерами без постоянной перезагрузки страницы. Растущая экосистема фреймворков JavaScript, таких как Angular, React, EmberJS, Meteor, Backbone, доступна для поддержки разработки и внедрения SPA.

Почему сейчас?

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

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

С помощью одностраничных приложений организации могут имитировать работу (и производительность!), Похожую на собственное приложение, в браузере. Это дает ответ на общий вопрос, с которым сегодня сталкиваются многие компании: приложение или веб-сайт? Снижение затрат и усилий на загрузку и поддержку приложения в магазинах приложений не является незначительным. Кроме того, вы можете обновлять свое веб-приложение сколько угодно раз, сокращая таким образом время выхода на рынок.

Одностраничная модель также поддерживает более сложные взаимодействия с пользователем, которые может быть труднее реализовать с помощью рендеринга на стороне сервера: глубокие ссылки Pinterest, переход между страницами Artsy, бесконечная прокрутка и многие другие. (Восстание SPA Дэна Пупиуса)

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

JavaScript и предприятие

Список крупных компаний, использующих JavaScript не только для интерфейсной работы, постоянно растет. В прошлом году VMWare объявила о своем решении работать над переводом своего веб-клиента vSphere на HTML5. Groupon перестроила весь свой веб-слой с помощью Node.js, перейдя с Ruby. Далее GoDaddy угробил. NET для работы с Node.js. Netflix, Capital One, NASA - просто чтобы добавить еще несколько имен. Несмотря на постоянно растущий мобильный трафик, настольные компьютеры по-прежнему остаются нормой в офисной среде и среди клиентов B2B. Следовательно, инвестиции, которые предприятия вкладывают в разработку JavaScript, и в частности SPA, не вызывают удивления.

Цифры говорят сами за себя:

Источник: данные опроса разработчиков StackOverflow, 2016 г.

Непрерывный цикл роста предприятия. Источник: блог разработчиков Salesforce

Взрывной рост инструментов отслеживания ошибок

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

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

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

Менее чем за 5 лет, из внутреннего инструмента для регистрации исключений в приложениях Django, Sentry.io вырос и стал поддерживать другие популярные языки, такие как PHP, Java, Ruby и, в конечном итоге, JavaScript. Всего год назад они получили финансирование в размере 9 миллионов долларов для развития своей команды и расширения набора функций продукта.

Трассировка стека ошибки JavaScript в Sentry

В пространстве много похожих решений, и конкуренция накаляется. За последние несколько лет таким инструментам, как Rollbar и Bugsnag, также удалось обеспечить финансирование и заинтересовать как венчурных инвесторов, так и ангелов.

Новый рубеж

Новая концепция начала набирать обороты в прошлом году. Такие инструменты, как SessionStack, предлагают совершенно новый взгляд на построение контекста вокруг ошибки, произошедшей в вашем веб-приложении (включая SPA). SessionStack подключается к веб-приложению для сбора данных о том, как пользователи взаимодействуют с ним. Когда пользователь сталкивается с ошибкой (что-то ломается, сетевой запрос не выполняется и т. Д.), SessionStack воссоздает собранные данные в виде видео, в котором разработчики могут видеть каждый шаг, сделанный пользователем для получения ошибки. Кроме того, они получают трассировку стека ошибок JavaScript и сервера, подробную информацию о неудачных сетевых запросах и сообщениях отладки.

Запись пользовательского сеанса SessionStack. Все действия пользователя и технические данные можно развернуть слева.

Готовы попробовать SessionStack? Начни бесплатно или попробуй интерактивные демонстрации.