Это мой первый крупный самостоятельный проект в рамках обучения Java на платформе Яндекс Практикум
Основная суть этого приложения - бэкенд для трекера задач Пользователи могут:
- Создавать простые задачи и комплексные задачи (эпики), состоящие из подзадач
- Задавать планируемое время старта выполнения и продолжительность задач
- Приоритизировать задачи исходя из планируемого времени старта
- Просматривать историю задач
- Java 11
- (2) Filmorate (Сервис для оценки и рекомендации фильмов)
- (3) ShareIt ("Шэринг-сервис" - вещи в аренду)
- (4) Explore-with-me (Агрегатор мероприятий а-ля Афиша, дипломный проект)
- Стандартная библиотека Java
- Наследование в модели и бизнес-логике
- В модели сущность подзадач и эпиков наследуется от сущности задачи
- В сервисах реализованы несколько вариантов менеджеров задач с хранением состояния в о внутренней памяти, в файле и на сервере, а также простая фабрика по созданию нужного варианта менеджера
- Полиморфизм (Интерефейсы, дженерики, overload и override методов)
- Работа со строками (StringBuilder и форматирование)
- Фреймворк Collections
- Для хранения состояния менеджера активно использовали Map и List
- Создали свою версию LinkedList для хранения истории задач
- Работа с временем и датой (Period / Duration / LocalDate и LocalDaTeTime)
- Наследование в модели и бизнес-логике
- Основы алгоритмов и вычисление сложности по нотации Big O
- Работа с исключениями - создание собственных исключений и их обработка
- Работа с файлами (запись состояния менеджера задач в файл и восстановление из файла)
- Функциональный стиль - работа с функциональными интерфейсами (реализация через лямбда и ссылок на метод)
- Реализация собственнного компаратора для сортировки задач по приоритетам с учетом возможного пустого времени старта
- StreamApi
- Unit тесты (JUnit)
- Создание вручную собственного API (работа как со стороны сервера, так и со стороны клиента)
- Работа с Git