Задача: Восстановление исходного кода утерянного Java-приложения
Исходные данные
Имеется собранное Java-приложение (выходные артефакты в виде JAR-файлов с байт-кодом классов). Исходный код (plain Java) полностью утерян, включая файлы проекта, конфигурации и версионирование.
Требования
1. Декомпиляция
- Произвести декомпиляцию JAR-файлов в читаемый Java-код с точным восстановлением структуры классов, методов и зависимостей.
- Использовать профессиональные декомпиляторы (например, JD-GUI, CFR, Fernflower) с последующей ручной обработкой для устранения всех генераций "имени1, имя2" (типа synthetic/bridge).
2. Сборка и настройка
- Восстановить систему сборки (Maven/Gradle) с получением оригинальных конфигураторов: все зависимости должны корректно интегрироваться.
- Проект должен компилироваться и работать идентично передаваемым контейнерам/JAR.
3. Приведение к читабельному виду
- Устранить все отладочные огрехи (безымянные переменные, троянники типов/кастингов, мусорные аннотации и кривые выражения) - рефакторинг 1-го уровня.
- Форматирование должно соответствовать Java Code Convention: табуляция или правильные отступы (discourage как общую правку, точнее контроль читаемости дебаггерных условий).
4. Тестирование
- Провести юнит-тестирование восстановленного кода базового калькулятора (критичный путь, как при первичных расчетах в приложении).
- После любых изменений проверять работоспособность через демо-стенды компиляции непосредственно опубликованных стандартами прим-лоялизации компонентов.
Порядок работ
- Приём JAR-файлов от исполнителя.
- Эёрек программы по периодам декомпиляции и этапам восстановления билд систем.
- Дебаггер анализ (дожет в отдельных описаниях) для нормальт-клона функционала.