Трекер задач представляет собой бэкенд часть веб-сервисного монолитного приложения для управления задачами на основе канбан-доски. Приложение предназначено для организации совместной работы над задачами, позволяя пользователям выполнять операции создания, чтения, обновления и удаления.
- Типы задач:
- общие задачи, подзадачи и эпики. Эпики могут содержать несколько подзадач.
- Основное API:
- создание, получение, удаление, обновление, управление статусами всех типов задач.
- Дополнительное API:
- получение истории просмотров задач.
- Сохранение данных: в оперативной памяти, в файл на локальной машине (формат CSV) или на сервере.
- Серверная архитектура: два сервера — один для управления процессами сервера (приём, отправка, старт, остановка), другой для внутренней реализации логики.
- Java Core:
- ООП (Объектно-ориентированное программирование):
- Методы и классы: инкапсуляция, наследование и полиморфизм.
- Принципы: DRY (не повторяйся), сокрытие полей, переопределение методов.
- Стандартные классы:
Object, методыequals,hashCode,toString, работа с код-стилем и областями видимости.
- ООП (Объектно-ориентированное программирование):
- Git:
- Команды:
add,commit,status,branch,checkout,mergeи другие для контроля версий.
- Команды:
- Алгоритмы и структуры данных:
- Java Collections Framework:
List,Set,Map, сортировки и алгоритмы поиска. - Регулярные выражения для обработки строк.
- Java Collections Framework:
- Исключения:
- Обработка исключений с помощью
try-catch-finally, иерархия исключений и работа со стек-трейсом.
- Обработка исключений с помощью
- Работа с файлами:
- Обработка файлов с помощью классов
File,Files,Path, стримов и кодировок.
- Обработка файлов с помощью классов
- Функциональное программирование:
- Функциональные интерфейсы (
Consumer,Supplier,Function), лямбда-выражения и работа с дженериками.
- Функциональные интерфейсы (
- Сетевое взаимодействие:
- Клиент-серверная модель и сетевые протоколы.
- Работа с API (REST), сериализация данных в формате JSON с использованием библиотеки GSON.
- Тестирование:
- JUnit: библиотека для модульного тестирования кода.