используйте это форматирование при выборе
to_char(systimestamp,'DD-MON-YYYY')
Например:
выберите to_char (systimestamp, «DD-MON-YYYY») из dual;
Я оснастил бы рабочую систему, чтобы сохранить журналы использования кода, и затем начать осматривать код, который не используется в течение многих месяцев или лет.
, Например, если Вы интересуетесь неиспользованными классами, все классы могли бы быть оснащены для входа, когда экземпляры создаются. И затем маленький сценарий мог сравнить эти журналы с полным списком классов для нахождения неиспользованных классов.
, Конечно, если Вы идете на уровне метода, необходимо иметь в виду производительность. Например, методы могли только зарегистрировать свое первое использование. Я не знаю, как это лучше всего сделано в Java. Мы сделали это в Smalltalk, который является динамическим языком и таким образом допускает модификацию кода во времени выполнения. Мы оснащаем все методы с регистрирующимся вызовом и удаляем регистрирующийся код после того, как метод был зарегистрирован впервые, таким образом через какое-то время больше потерь производительности не происходит. Возможно, подобная вещь может быть сделана в Java со статическими булевыми флагами...
Eclipse может показать/выделить код, который не может быть достигнут. JUnit может показать кодирование покрытия но Вы нуждались бы в некоторых тестах и имели бы, чтобы решить, отсутствует ли соответствующий тест, или код действительно не использован.
Инструменты покрытия кода, такие как Emma, Cobertura, и Clover, оснастят Ваш код и запись, которая части его вызывается путем выполнения комплекта тестов. Это очень полезно, и должно быть неотъемлемой частью Вашего процесса разработки. Это поможет Вам определить, как хорошо Ваш набор тестов покрывает Ваш код.
Однако это не то же как идентификация реального мертвого кода. Это только определяет код, который покрыт (или не покрыт) тестами. Это может дать Вам ложные положительные стороны (если Ваши тесты не покрывают все сценарии), а также ложные отрицательные стороны (если Ваш тестовый код доступа, который на самом деле никогда не используется в сценарии реального мира).
я воображаю лучший способ действительно определить, что мертвый код должен был бы оснастить Ваш код с инструментом покрытия в живой рабочей среде и проанализировать покрытие кода за длительный период времени.
, Если Вы работаете в загрузке, сбалансировал избыточную среду (и в противном случае почему нет?) тогда я предполагаю, что это имело бы смысл к, только оснащают один экземпляр Вашего приложения и настраивать Вашу подсистему балансировки нагрузки, таким образом, что случайная, но небольшая, часть Ваших пользователей работает на Вашем оснащенном экземпляре. Если Вы делаете это за длительный период времени (чтобы удостовериться, что Вы покрыли все сценарии использования реального мира - такие сезонные изменения), необходимо быть в состоянии видеть точно, к каким областям кода получают доступ при использовании реального мира и к каким частям действительно никогда не получают доступ и следовательно мертвый код.
я лично никогда не видел сделанный и не знаю, как вышеупомянутые инструменты могут использоваться, чтобы оснастить и проанализировать код, который не вызывается через набор тестов - но я уверен, что они могут быть.
Пользовательские инструменты покрытия, такие как EMMA. Но это не статический инструмент (т.е. это требует для фактического запуска приложения посредством регрессионного тестирования, и через все возможные ошибочные случаи, который, ну, в общем, невозможен:))
однако, EMMA очень полезен.
Однако ни один не может найти общедоступные статические методы , которые не использованы в рабочей области. Если кто-либо знает о таком инструменте, затем сообщенном мне.
Существуют инструменты, которые представляют код и обеспечивают данные покрытия кода. Это позволяет Вам видеть (когда код выполняется), сколько из него называют. Можно заставить любой из этих инструментов узнавать, сколько кода висячей строки Вы имеете.
IntelliJ имеет инструменты анализа кода для обнаружения кода, который не использован. Необходимо попытаться делать так же много полей/методов/классов максимально непубличными, и это разоблачит больше неиспользованных методов/полей/классов
, я также попытался бы определить местоположение дублирующего кода как способа уменьшить объем кода.
Мое последнее предложение является попыткой найти открытый исходный код, который, если используется сделал бы Ваш код более простым.
В теории Вы не можете детерминировано найти неиспользованный код. Существует математическое доказательство этого (хорошо, это - особый случай более общей теоремы). Если Вы любопытны, ищете Проблему остановки.
Это может проявиться в коде Java во многих отношениях:
Однако я использую ИДЕЮ IntelliJ в качестве моего предпочтительного IDE, и это имеет обширные аналитические инструменты для нахождения зависимостей между модулями, неиспользованными методами, неиспользованными участниками, неиспользованными классами, и т.д. Его довольно интеллектуальное также как закрытый метод, который не называют, отмечено неиспользованное, но открытый метод требует более обширного анализа.
Мы начали использовать , Находят, что Ошибки помогают определить часть фанка в богатой целью среде нашей кодовой базы для рефакторингов. Я также полагал бы Структура 101 определять пятна в архитектуре Вашей кодовой базы, которые являются слишком сложными, таким образом, Вы знаете, где реальные болота.
Используйте инструмент тестового покрытия для оснащения кодовой базы, затем запустите само приложение, не тесты.
Emma и Eclemma даст Вам хорошие сообщения о том, какой процент того, какие классы выполняются для любого данного шанса кода.
Одной вещью, которую я, как было известно, сделал в Eclipse на едином классе, является изменение все его методы к частному, и затем посмотрите, какие жалобы я получаю. Для методов, которые используются, это вызовет ошибки, и я возвращаю их самому низкому уровню доступа, я могу. Для методов, которые не использованы, это вызовет предупреждения о неиспользованных методах, и они могут затем быть удалены. И в качестве награды, Вы часто находите некоторые открытые методы, которые могут и должны быть сделаны частными.
, Но это является очень ручным.
Плагин Eclipse, который работает обоснованно хорошо, Неиспользованный Детектор Кода .
Это обрабатывает весь проект или определенный файл и показывает различные неиспользованные методы / методы мертвого кода, а также предлагающие изменения видимости (т.е. открытый метод, который мог быть защищен или частный).
Перспектива среза Structure101 даст список (и граф зависимостей) любых "сиротских" или "сиротских групп " классов или пакетов, которые не имеют зависимости от «основного» кластера.