Vsevolod Leonov
Данная публикация посвящена презентации Рея Конопки (Ray Konopka), в которой автора рассказывает об использовании сервиса журналирования Code Site. Данный сервис (logging system) входит в состав Delphi XE и C++Builder XE, являясь мощным средством отладки создаваемых приложений.
По своей функциональности сервис настолько мощный, что невольно хочется воскликнуть "как же я жил без него раньше!". Это действительно так. А как мы жили раньше без Delphi XE и Code Site как составной ее части? Основная масса разработчиков при необходимости проявляли чудеса изобретательности и изощренности, в принципе, "на ровном месте", разрабатывая собственные "движки журналирования" (создания и ведения log-ов). Однако б о льше чудес сулила работа без журналов или логов как таковых.
Кратко: что такое "журнал" (он же "лог", он же "log"). Абстрактно "лог" - это то место, куда записывается информация, позволяющая воссоздать ход исполнения процесса. Данная мысль вполне тривиальна, но нетривиальна реализация концепции "журнала" в приложениях Delphi и C++Builder. А что же тут нетривиального? Открываем файл и пишем в него что-нибудь. Или даже используем таблицу базы данных, чтобы не искать по пользовательским машинам лог, а считать его централизовано. Но простая запись а) обременительна; б) малоинформативна. Нужно же уметь фиксировать всё подряд: состояние объектов, возникающие исключения, динамически создаваемые запросы к базе данных и т.д. Делать редкую запись - неэффективно, частую - обременительно с точки зрения как размера журнала, так и потом его анализа. Тут самое время обратиться к профессиональным решениям, а Code Site в составе Delphi XE и C++Builder XE как раз и является таким сервисом.
На стадии разработки журнал нужен для отладки:
- глубокое понимание того, как исполняется код (ну не отладчиком же постоянно ходить по сложным алгоритмам!);
- захват состояния объектов (начиная от элементов управления и заканчивая экземплярами собственных классов);
- контроль над исполнением динамически генерируемых запросов;
- разработка и отладка многопоточных приложений.
При использовании готового приложения на уровне пользователя концепция и технология журнала также крайне полезна:
- контроль над действиями пользователя ("я ничего не нажимал, а она сама повисла");
- воссоздание проблемных ситуаций (пользователь реально не помнит, как он "дошел до этой жизни");
- выявление "проблемных" состояний объектов (например, непредусмотренный ввод ошибочных данных);
- фиксация исключений (как минимум);
- выявление наиболее типовых сценариев использования интерфейса пользователя/алгоритмических последовательностей с целью дальнейшей оптимизации и повышения уровня эргономики;
- … еще много чего, что непременно придет вам в голову после просмотра данного видео
Эффективное использование Code Site Express в составе RAD Studio XE (rus)
Приятного просмотра!