From 409b520e6932ba2b934da1007e9ac45410f933df Mon Sep 17 00:00:00 2001 From: KamaSK Date: Sun, 8 Jun 2025 11:43:32 +0300 Subject: [PATCH] feat(todo): release v2.2.0 (close #53) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Обновил README с описанием новых возможностей и примерами использования - Добавил детальные заметки о релизе в CHANGELOG - Установил версию 2.2.0 --- CHANGELOG.md | 31 ++++++++++++++++--- README.md | 87 +++++++++++++++++++++++++++++++++++++++++++--------- todo/pom.xml | 2 +- 3 files changed, 100 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0089a5f..729f773 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,32 @@ -Все заметные изменения проекта будут документироваться в этом файле. +# Журнал изменений +Все заметные изменения проекта будут документироваться в этом файле. Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/), и этот проект придерживается [Semantic Versioning](https://semver.org/spec/v2.0.0.html) +## [2.2.0] - 2025-06-08 + +### Добавлено +- Универсальный интерфейс `Identifiable` для всех сущностей с ID +- Универсальный класс `EntityService` для стандартных CRUD-операций +- Универсальный интерфейс `Repository` для базовых операций с данными +- Утилитарный класс `Formatter` с методом `asTable()` для форматирования таблиц + +### Изменено +- **[BREAKING]** Обобщение CLI-команд для поддержки разных типов сущностей через `EntityService` +- Рефакторинг `TaskService` для расширения `EntityService` вместо собственной реализации +- Переименование `InMemoryTaskRepository` → `InMemoryRepository` с поддержкой generics +- Унификация работы с моделью `Task` через интерфейс `Identifiable` +- Вынесение логики форматирования таблиц из `ListCommand` в отдельный utility-класс +- Обновление `ListCommand` и `SearchCommand` для использования `Formatter.asTable()` +- Замена метода `list()` на `getAll()` в сервисном слое + +### Технические улучшения +- Улучшена типобезопасность через использование generics +- Повышена переиспользуемость кода за счёт вынесения общей логики +- Упрощена архитектура через унификацию интерфейсов +- Удалено дублирование кода форматирования между командами + ## [2.1.0] - 2025-06-01 ### Добавлено @@ -12,13 +36,12 @@ ### Изменено - Обновлены внутренние зависимости между компонентами CLI (`SearchCommand`, `ListCommand`) и моделью данных (`Task`, `SimpleTask`) -- Добавлена обработка минимальной длины поискового запроса (3 символа) в `SearchCommand`# Журнал изменений - +- Добавлена обработка минимальной длины поискового запроса (3 символа) в `SearchCommand` ## [2.0.0] - 2025-05-29 ### Добавлено - Базовая функциональность для управления задачами -- Команды: create, list, delete +- Команды: create, list, delete, complete - Консольный интерфейс для взаимодействия с приложением - In-memory хранилище задач \ No newline at end of file diff --git a/README.md b/README.md index b771189..526d37a 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,92 @@ # TodoApp ## Описание -TodoApp - это консольное приложение для управления списком задач, разработанное на Java в качестве учебного проекта. Приложение позволяет создавать, просматривать, отмечать как выполненные и удалять задачи через интерфейс командной строки. + +TodoApp - это консольное приложение для управления списком задач, разработанное на Java в качестве учебного проекта. Приложение построено на универсальной архитектуре с использованием generics, что позволяет легко расширять функционал для работы с различными типами сущностей. + + +### Особенности +- Консольный интерфейс с интуитивными командами +- Универсальная архитектура на базе `EntityService` и `Repository` +- Поддержка поиска задач по тексту +- Красивое табличное отображение данных +- Типобезопасность через использование generics + ## Требования + - Java 24 или выше - Maven 3.8.x или выше + ## Установка и запуск + ```bash cd ./todo mvn clean package java -jar ./target/todo.jar ``` -### Доступные команды -- `create <название_задачи>` - Создать новую задачу -- `list` - Показать список всех задач -- `complete ` - Отметить задачу как выполненную -- `delete ` - Удалить задачу -- `search <текст>` - Найти задачи по тексту -- `exit` - Выйти из приложения -## Структура проекта -- `model` - Модели данных (Task, SimpleTask) -- `repo` - Репозитории для хранения задач -- `service` - Бизнес-логика -- `cli` - Компоненты интерфейса командной строки +## Использование + +### Доступные команды +- create <название_задачи> - Создать новую задачу +- list - Показать список всех задач в табличном виде +- complete - Отметить задачу как выполненную +- delete - Удалить задачу по ID +- search <текст> - Найти задачи по тексту (минимум 3 символа) +- help - Показать список всех команд +- exit - Выйти из приложения + + +## Пример использования + +```shell +todo> create Изучить Java generics +Задача "Изучить Java generics" успешно добавлена! + +todo> create Написать документацию +Задача "Написать документацию" успешно добавлена! + +todo> list + +ID │ Название задачи │ Статус +-------------------------------------------------- +1 │ Изучить Java generics │ В процессе +2 │ Написать документацию │ В процессе + + +todo> complete 1 + +Задача ID-1 выполнена. + +todo> search Java + +ID │ Название задачи │ Статус +-------------------------------------------------- +1 │ Изучить Java generics │ Выполнена + +``` ## Версии -Актуальная версия: 2.1 + +Актуальная версия: 2.2.0 + +### История изменений +- 2.2.0 - Универсальная архитектура с generics, утилиты форматирования +- 2.1.0 - Добавлена команда поиска, улучшено отображение +- 2.0.0 - Базовый функционал управления задачами + +Подробная история изменений доступна в CHANGELOG.md + +### Разработка +Проект использует современные подходы Java-разработки: +- Generic programming для типобезопасности +- Разделение ответственности через слоистую архитектуру +- Command pattern для CLI-команд +- Repository pattern для работы с данными ## Лицензия -[MIT](LICENSE) \ No newline at end of file + +MIT \ No newline at end of file diff --git a/todo/pom.xml b/todo/pom.xml index d4451e7..b17d35f 100644 --- a/todo/pom.xml +++ b/todo/pom.xml @@ -6,7 +6,7 @@ ru.kamask.pet todo - 2.2.0-SNAPSHOT + 2.2.0 24