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

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

Никто не любит решать проблемы в экстренном порядке. Куда интереснее создавать какую-то новую опцию для приложения. Попробуем разобраться, как предотвращать пожароопасные ситуации.

Никто не пишет идеальные коды. Невозможно заранее предугадать непредвиденные ситуации, на то они и непредвиденные. Однако проанализировав данные о работе кода, вы сможете устранить распространенные проблемы уже на начальном этапе.

Факт: наиболее подходящий момент, чтобы узнать о наличии багов — это когда вы их, собственно, создаете.

Искать, воспроизводить и устранять дефекты на стадии производства куда сложнее. Чем раньше их удастся обнаружить, тем лучше.

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

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

Благодаря специальным инструментам можно отслеживать запросы

Скриншот Prefix (бесплатный профилировщик кода для разработчиков ASP.NET и Java ).

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

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

Почти все они бесплатные, за небольшим исключением.

Как только вы начнете ими пользоваться, они станут частью инструментария. С их помощью вы ответите на вопрос: «что этот программный код только что сделал?»

Поиск багов

Инструмент Prefix высвечивает множество сведений относительно веб-запросов. При этом Prefix не меняет код.

Инструмент Prefix способен высвечивать множество нюансов

Можно узнать, какие SQL-запросы выполняются и сколько это длится. Запрос можно скопировать и вставить в инструмент управления SQL.

Запрос можно скопировать и вставить в инструмент управления SQL

Вы можете использовать этот инструмент для решения проблем запроса N + 1.

Данный инструмент можно использовать для решения проблем запроса N + 1

Что происходит, когда вы отправляете приложение на тестирование?

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

Примеры таких инструментов: Stackify Retrace и New Relic.

Инструменты: Stackify Retrace и New Relic

Информация о производительности приложения, собранная Retrace. Логин, доступ к Redis, SQL-запросы.   

На что обратить внимание во время тестирования

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

  1. Медленные веб-запросы
  2. Повторяющиеся ошибки приложения
  3. Объемные и медленные SQL-запросы
  4. Управление зависимостями в приложении

Поиск медленных веб-запросов

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

Сколько времени выполняются запросы?

Обращайте внимание на все ошибки

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

Всегда стоит искать как новые, так и повторяющиеся ошибки.

Объемные и медленные SQL-запросы

Сложно узнать, насколько SQL-запросы окажутся быстрыми или медленными без фактических данных.

Без фактических данных сложно узнать о быстроте SQL запросов

Эффективность зависимостей в приложении

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

Важно понимать уровень эффективности всех этих зависимостей. На этом примере виден заметный скачок времени ответа в районе 9:45, из-за SQL-запросов по базе данных.

Важно понимать уровень эффективности всех зависимостей

Инструменты разработчика для обратной связи

Бесплатные и недорогие инструменты предоставят важную информацию о приложении. APM-инструменты (Prefix или Retrace) оказываются весьма полезными.

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

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