Repository navigation
Краткое описание
В этом релизе сосредоточены улучшения функциональности компрессии изображений и PDF, рефакторинг модулей конфигурации и логирования, добавлена и расширена поддержка контейнерной упаковки, а также дополнена документация и тесты для ключевых компонентов.
Что сделано (основные изменения)
- Компрессоры:
- Обновлён компрессор изображений (
internal/infrastructure/compressors/image_compressor.go) — улучшена обработка форматов и параметры качества для лучшего соотношения сжатие/качество. - Добавлена поддержка нескольких реализаций компрессора PDF (
pdfcpu_compressor.go,unipdf_compressor.go) — реализованы альтернативные стратегии сжатия для разных типов PDF (сканированные страницы, текстовые PDF).
- Обновлён компрессор изображений (
- Бизнес-логика и usecase:
- Упорядочены и расширены usecase'ы для пакетной обработки:
compress_images.go,compress_pdf.go,compress_directory.go,process_all_files.go,process_pdfs.go. Это улучшает модульность и позволяет запускать отдельные сценарии обработки.
- Упорядочены и расширены usecase'ы для пакетной обработки:
- Интерфейсы и CLI/TUI:
- Контроллер командной строки (
interface/controllers/cli_controller.go) дополнен новыми флагами конфигурации и управления режимами обработки. - Добавлен адаптер для консольного интерфейса (
presentation/tui/manager.go,presentation/tui/logger_adapter.go) для удобного логирования и управления прогрессом в интерактивном режиме.
- Контроллер командной строки (
- Конфигурация и репозитории:
- Централизована работа с конфигурацией (
internal/infrastructure/config/repository.go,internal/infrastructure/repositories/config_repository.go) — поддержкаconfig.yamlиconfig.yaml.example. - Репозитории для файловой системы (
filesystem_repository.go) и конфигурации улучшены для более предсказуемой обработки ошибок и логирования.
- Централизована работа с конфигурацией (
- Логирование:
- Добавлен логгер для файлов (
internal/infrastructure/logging/file_logger.go) и улучшена интеграция с TUI — логирование стало более детализированным и удобным для отладки.
- Добавлен логгер для файлов (
- Сборка и развёртывание:
- Обновлены артефакты для контейнеризации:
Dockerfile,docker-compose.yml— теперь проще собирать и запускать сервис в контейнере. - Скрипты релиза и вспомогательные скрипты:
scripts/release-*иgitea-hooks/для автоматизации публикации и интеграции с Gitea.
- Обновлены артефакты для контейнеризации:
- Тесты и качество:
- Добавлены/обновлены модульные тесты для сущностей конфигурации и PDF (
internal/domain/entities/config_test.go,internal/domain/entities/pdf_test.go) для предотвращения регрессий.
- Добавлены/обновлены модульные тесты для сущностей конфигурации и PDF (
- Документация:
- Обновлён
README.mdи добавлены инструкции вtest/README.mdиgitea-hooks/README.md. ФайлVERSIONсодержит текущую версию релиза.
- Обновлён
Улучшения и пояснения
- Надёжность: улучшены проверки ошибок в репозиториях и конфигурации, чтобы избежать падений при некорректных параметрах.
- Модульность: выделение usecase-ов упростило добавление новых режимов обработки и тестирование.
- Контейнеризация: наличие
Dockerfileиdocker-compose.ymlупрощает тестирование в изолированной среде и развёртывание на серверах/CI. - Тестовое покрытие: добавлены тесты для ключевых модулей, что уменьшает риск регрессий в будущих изменениях.