MyWackoSite : NsuTs/Documentation/devguide/131/architecture

Изменения в архитектуре сервера системы тестирования в версии 1.3.1

Базовый класс для страниц

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

Обработка ошибок через исключения

Предложенная схема позволяет реализовать единообразную обработку ошибок через исключения. Обработка ошибок реализуется в базовом классе CommonPage.
Для проверки прав доступа можно применить следующую схему: все функциональные операции реализуются в отдельном слое (можно реализовать как в процедурном, так и в объектно-ориентированном стиле), при этом внутри реализации осуществляется проверка прав пользователя (в настоящее время реализовано в модуле Permission ). В случае возникновения ошибки выбрасывается исключение, которое обрабатывается в коде CommonPage.

Хранение документов на файловой системе (in process)

Проблема: число подпапок в папке ограничено, увеличение числа файлов делает медленным поиск
Изменение:
Объект NSUTSv1.2.8 NSUTSv1.3.*
Решение solution/<filename>; solution/<filename>.md5 solution/<taskid>/<filename>
Детализированный отчет (ошибка компиляции и тд) solution/<solution_id>.zip solution/<taskid>/<solution_id>.zip
Текст на печать solution/<filename>.txtprint/<filename>.txt
Возможно в будущем надо ввести более детализированную иерархию папок: олимпиада/ тур/ решение