Skip to content

Commit 490f5db

Browse files
author
Anton
committed
fix: update readme
1 parent 0d360ff commit 490f5db

File tree

1 file changed

+111
-1
lines changed

1 file changed

+111
-1
lines changed

README.md

Lines changed: 111 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,112 @@
1-
# java-kanban: Спринт 8. Создание API. http сервер
1+
# Трекер задач
22

3+
### Описание функционала программы
4+
5+
Приложение для организации совместной работы над задачами. Программа позволяет выполнять CRUD-операции над задачами.
6+
Сами задачи делятся на разные типы: общие, подзадачи и эпики. Эпики включают в себя подзадачи. Функционал программы
7+
реализован в трех формах:
8+
9+
1) сохранение данных в оперативной памяти на локальной машине,
10+
2) сохранением данных в файл на локальной машине,
11+
3) сохранение данных в файл на сервере с использованием клиента.
12+
13+
-----
14+
15+
### 🧩Стек-технологий и опыт разработки (Java Core) 🧩
16+
17+
В ходе реализации проекта был применен следующий стек технологий:
18+
19+
- Проектирование в стиле ООП:
20+
- методы и классы
21+
- инкапсуляция (пакеты, модификаторы доступа, геттеры-сеттеры)
22+
- наследование, правило DRY, сокрытие полей, переопределение методов, super, this
23+
- IDEA: автогенерация кода, горячие клавиши, плагины, дебаггер
24+
- класс Object, метод equals, hashCode, toString
25+
- code style
26+
- Области видимости переменных
27+
- Оператор switch
28+
- Git: add, commit (хэш, лог, HEAD), status, .gitkeep, .gitignore, conventional commits, log, reset, diff
29+
- MarkDown for ReadMe
30+
31+
32+
- Абстракция и полиморфизм:
33+
- абстрактные класс и метод
34+
- интерфейсы
35+
- виды полиморфизма: классический, ad-hoc (динамический, статический: перегрузка метода), параметрический
36+
- Модификаторы: static, final
37+
- Константы
38+
- Перечисляемый тип Enum
39+
- Приведение типов: явное, скрытое, instanceof
40+
- Дженерики, типизированные классы и интерфейсы, границы дженериков
41+
- Git: branch, checkout, merge, revert
42+
- Утилитарный класс: фабрика
43+
44+
45+
- Алгоритмы:
46+
- асимптотическая сложность
47+
- поиск минимума/максимума в массиве (линейный поиск)
48+
- бинарный поиск
49+
- сортировка (вставками, поразрядная)
50+
- Структуры данных:
51+
- Java Collections Framework:
52+
- Iterable, Collection, List, Queue, Set
53+
- Map
54+
- Comparator, Comparable, сортировка коллекций, String.CASE_INSENSITIVE_ORDER
55+
- Collections
56+
57+
58+
- String:
59+
- неизменяемость, пул строк, методы, подстроки, сборка-разборка, форматирование
60+
- StringBuilder
61+
- Регулярные выражения
62+
- Исключения:
63+
- иерархия, стек-трейс, throw, throws
64+
- обработка исключений (try-catch-finally)
65+
- Работа с файлами:
66+
- File, Files, Path, Paths
67+
- Streams: байтовые - InputStream, OutputStream; символьные - Reader, Writer; буферизация
68+
- try-with-resources
69+
- кодировки, Юникод, Charset, StandardCharsets
70+
- Ключевые и зарезервированные слова
71+
72+
73+
- Функциональный стиль программирования: анонимные классы
74+
- Функциональные интерфейсы: Consumer, Supplier, Predicate, Function, UnaryOperator
75+
- Лямбда-выражение, замыкание, ссылка на метод, класс Optional
76+
- Дженерик-интерфейс Stream, промежуточные и терминальные операции
77+
- Время и дата: unix-время, класс Instant
78+
- LocalDateTime, LocalDate, LocalTime, DateTimeFormatter
79+
- Period, Duration, TemporalAmount
80+
- ZoneId (фиксированное смещение, привязка к региону), ZonedDateTime
81+
- Функциональное тестирование: классы эквивалентности, граничные значения, покрытие кода и требований
82+
- JUnit Test Framework
83+
84+
85+
- Интернет. Модель клиент-сервер. Сетевые протоколы (IP, TCP, HTTP)
86+
- URL-адрес, URL-кодирование, HTML, HTTP-сообщение (стартовая строка, методы, код ответа, заголовки, тело)
87+
- URI, параметры пути, параметры строки запроса
88+
- Инструменты разработчика в браузере (на примере Google Chrome)
89+
- Веб-сервис и WEB API
90+
- Формат данных JSON, класс POJO
91+
- Эндпоинты, сетевой пакет, номер порта, сокет
92+
- HttpServer, InetSockerAddress, HttpHandler, HttpExchange, Headers
93+
- GSON (JsonArray, JsonElement, JsonObject,JsonParser), сериализация, десериализация
94+
- GsonBuilder, TypeAdapter, JsonWriter, JsonReader
95+
- Приложение Insomnia для тестирования API
96+
- HttpClient, HttpRequest, HttpResponse, BodyHandler
97+
- Обработка ошибок HTTP-запросов (IOException, InterruptedException, IllegalArgumentException)
98+
99+
100+
### Системные требования
101+
102+
В данном репозитории представлен каркас приложения (без основного класса c методом main). Работоспособность приложения
103+
протестирована, тесты расположены в папке [test](./tests).
104+
105+
Приложение работает корректно в текущем виде при наличии:
106+
107+
- установленный [JDK версии 11](https://docs.aws.amazon.com/corretto/),
108+
- установленная среда разработки [IntelliJ IDEA](https://www.jetbrains.com/ru-ru/idea/download),
109+
- установленная библиотека [JUnit версии 5](https://github.com/PraktikumJava/m1-t23-junit/tree/master/lib),
110+
- установленная библиотека [Gson версии 2.9.0](https://github.com/PraktikumJava/m1-t25-api/tree/master/lib),
111+
112+
--------

0 commit comments

Comments
 (0)