Написание программного обеспечения хорошего качества должно быть первым шагом. На данный момент это своего рода движущаяся цель. (У нас есть нечто вроде https://stackoverflow.com/questions/3716203/automatic-code-quality-and-architecture-quality-static-code-analysis.. У нас также есть набор регрессионных тестов и среда тестирования, аналогичная некоторым избранным клиентам.) Что бы мы ни делали, бывают случаи, когда только клиент видит и получает сбой / ошибку. Иногда у них просто проблемы с производительностью. Иногда происходит сбой, иногда ошибка объектной модели приложения.
Как я могу уменьшить боль? Как я могу получить большинство (данные) из такой ситуации? Какие шаги кодирования / архитектуры могут помочь получить больше информации, когда проблема возникает в первый раз и во второй раз?
Вот отправные точки:
Хорошее ведение журнала: log4j является отправной точкой. Пользователь должен иметь возможность легко изменить файл. Предоставление небольшого графического интерфейса для редактирования такого файла будет еще лучше. (наша конфигурация регистрации находилась в области c: / Program Files / в Windows 7; редактирование, которое не является простым для обычных пользователей - требует волшебной опции «запуск от имени администратора».).
Дамп кучи: Дамп кучи при нехватке памяти.
Автоматическое представление отчетов об ошибках: Хороший пример - Firefox, intellij и т. Д. Не уверен, что для этого есть готовая библиотека.
JMX: Для серверных приложений это кажется очень полезным. Я никогда не использовал это.
Инструмент для определения системных требований:
Я еще этого не сделал.
Возможность автоматического обновления:
В основном это настольное Java-приложение, которое взаимодействует с сервером Я думаю, что есть еще шаги, которые мы могли бы предпринять, пока мы не получим желаемое качество:)