Итак, вот мой проект:
Я создаю центральный интерфейс/панель инструментов для представления тестовых данных для нескольких типов тестов нескольких версий продукта. Мы используем TestNG в нашем массовом продукте, и хотя тестов пишется недостаточно, это обсуждение для другой темы. Вот как выглядит структура каталогов:
Файловая система/productVersion+testType/uniqueDateAndBuildID/testng-results.xml
Этот файл results.xml содержит теги с дочерними тестовыми тегами, которые соответствуют каталогу файловой системы, а затем файлы xml, содержащие фактические результаты тестового примера (пройдено, не пройдено и т. д.). Анализ XML и обход файловой системы - все хорошо и хорошо/надежно.
Поток управления: клиент обращается к главной странице --> сервер открывает файл свойств --> сервер проверяет свойства веб-сервера (либо Websphere, либо Tomcat, если я работаю локально) --> сервер устанавливает набор констант на основе этого. Константы включают в себя: корневой каталог файловой системы, разделитель файловой системы (перевод), «подобные типы (в основном одинаковые тесты на разных платформах)» и базовый URL-адрес для добавления. --> затем сервер еще немного читает файл свойств и выполняет всю обработку XML. Результаты кэшируются в памяти, а также в файловой системе с использованием ObjectOutputStream. --> Клиенту отправляется большой список результатов для обработки/отображения пользовательского интерфейса.
Вот где я столкнулся с проблемой: я не могу получить доступ к этим глобальным переменным (содержащимся/установленным в классе Globals... плохо, что я знаю :-/) обратно на клиенте, даже если они находятся в общей папке. Если вам интересно, почему я не могу просто снова загрузить свойства, это потому, что клиент представляет собой GWT-ориентированный Javascript, который не включает File(). Итак, моя следующая мысль, после небольшого чтения Java на верхнем уровне, заключалась в том, чтобы, возможно, использовать одноэлементный объект Globals и передать его обратно ... но похоже, что это так же плохо, если не невозможно. Предложения здесь были бы замечательными.
Все это довольно тесно связано, чего мое предыдущее образование в области Java еще не касалось. И поскольку это всего лишь внутренний портал для проверки разработчиками, кажется, нет особого смысла тестировать мой код. Пока он отображается правильно, правильно регистрируется и изящно обрабатывает ошибки, верно? В целом это ‹15 классов, так что это не очень большое дело, я думаю. Должен ли я провести рефакторинг, чтобы очистить все это и сделать его «лучше Java», прокомментировать все, чтобы четко разграничить поток управления, или не слишком беспокоиться об этом, потому что он маленький? Я знаю, что в будущем нужно больше думать о вещах, прежде чем разрабатывать их, но я действительно не знал большого количества высших принципов Java, с которыми я столкнулся с самого начала.
редактировать, немного подумав, нашел возможный обходной путь. Как насчет того, чтобы вместо того, чтобы возвращать только список результатов, я вернул какую-то другую реализацию пользовательского списка, которая включала объект заголовка globals? Я мог бы сохранить состояние.