Java & Spring Weekly
211 subscribers
17 photos
63 videos
55 links
Рассказываю о новинках Java & Spring Framework, выпускаю практические обучающие видео
Download Telegram
Тестирование веб-приложений со Spring MVC Test

Большая часть современных приложений имеет REST API и Spring Test предоставляет богатые возможности для его тестирования. В новом видео я рассказываю какие инструменты я использую.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin

#SpringFramework
Media is too big
VIEW IN TELEGRAM
Merge two sorted lists - LeetCode 21

Как и любая другая задача на связные списки решается путем итерирования до тех пор, пока не наступит конец списка. В данном конкретном случае нужно итерировать сразу по двум.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin

#LeetCode
Media is too big
VIEW IN TELEGRAM
Тестирование слоя доступа к данным со Spring Data JPA Test

Ого, это уже гораздо интереснее - закрываем последний (на текущий момент) непротестированный слой, слой доступа к данным. В обычном спринговом приложении это Spring Data. Spring Data - это круто, если бы не магия под капотом и куча аннотаций на @Entity-классах. К счастью, Spring Test позволяет протестировать и этот слой тоже. Сегодня в выпуске - JDBC, JPA тесты и тесты с Test Containers.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin

#SpringFramework
Media is too big
VIEW IN TELEGRAM
❤1
Generate Parentheses - LeetCode 22

В этот раз задачка динамического программирования, которая решается бектрекингом - генерацией следующего состояния системы до тех пор, пока некоторое условие не будет достигнуто. Таким образом, кстати, автоматизированно решаются судоку.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin

#LeetCode
Media is too big
VIEW IN TELEGRAM
End-to-end тестирование со @SpringBootTest

Заключительное видео в серии выпусков про тестирование спринговых приложений. В предыдущих выпусках я рассказал о тестировании отдельных компонентов, контроллеров и репозиториев, в этот раз все части головоломки вместе. 

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin

#SpringFramework
Media is too big
VIEW IN TELEGRAM
Spring Security Basics

Начинаю серию выпусков, посвященных Spring Security. В этом выпуске рассказываю самые базовые вещи:

* какую зависимость добавить, чтобы начать;
* разница между авторизацией и аутентификацией;
* хранение учетных записей пользователей в памяти и в базе данных;
* базовая авторизация на основе полномочий.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin

#SpringFramework
Media is too big
VIEW IN TELEGRAM
❤1🔥1
Merge K Sorted Lists - LeetCode #23

Похожую задачку уже решали, но тогда нужно было объединить только два списка. Сейчас же решим ее в общем виде для К списков с использованием стратегии divide & conquer.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin

#LeetCode
Media is too big
VIEW IN TELEGRAM
❤1
Swap Nodes in k-Groups - LeetCode 25

Очень похоже на то, что мы решали недавно - swap nodes in pairs и теперь задача усложняется. В этом варианте меняем элементы не парами, а группами. На самом деле, задача сводится к задаче динамического программирования и в конце концов, к перестановке двух элементов. 

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin

#LeetCode
Media is too big
VIEW IN TELEGRAM
❤4
Jackson Serialization and Deserialization

🧑‍💻 Лайвкодинг - сегодня это кастомизация библиотеки Jackson для сериализации и десериализации иерархии объектов.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin
Media is too big
VIEW IN TELEGRAM
❤2
Jackson and Spring Boot

🧑‍💻 Лайвкодинг - сегодня пишем кастомный сериализатор и десериализатор для Jackson в Spring Boot, а потом тестируем с помощью тестового слоя @JsonTest.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin

#SpringFramework
Media is too big
VIEW IN TELEGRAM
❤3
Spring Security Authorisation

Продолжаю рассказывать про Spring Security и сегодня в выпуске:

* Security Context Holder как основной держатель информации о пользователей.
* Authentication Provider и Authentication Manager - как логин и пароль из формы попадают во внутренности спринга и проверяются.
* @WithMockUser & @PreAuthotrised - аннотации для тестирования.
* И другие важные для авторизации внутренности.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin

#SpringFramework
Media is too big
VIEW IN TELEGRAM
🔥2
Database scheme migration with Flyway

🧑‍💻 Лайвкодинг - разбираемся как использовать Flyway для миграции схемы базы данных.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin
Media is too big
VIEW IN TELEGRAM
Jooq Basics

🧑‍💻 Лайвкодинг - используем Jooq для работы с базой данных.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin
Media is too big
VIEW IN TELEGRAM
Jooq Joins

🧑‍💻 Лайвкодинг - продолжаем с Jooq и выполняем агрегацию записей и извлекаем записи из связанных таблиц.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin
Media is too big
VIEW IN TELEGRAM
Remove Duplicates from Sorted Array и Remove Element - LeetCode 26 и 27

Обе задачки начального уровня, но для решения нужно постараться обходить массив от начала до конца только один раз.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin

#LeetCode
Media is too big
VIEW IN TELEGRAM
👍2❤1
Media is too big
VIEW IN TELEGRAM
Google Login and Spring Security - Weekly Tips 17

🧑‍💻 Лайвкодинг - как сделать вход через Google в своем приложении всего в несколько строчек кода.

* Google API Credentials - куда зайти в Google Cloud Console чтобы разрешить своему приложению авторизовывать через Google Account.
* Spring Security OAuth2 Client - добавляем и настраиваем зависимость.
* Смотрим на то, как это работает под капотом.

Поддержать автора:

* Patreon (если вы не в России): https://www.patreon.com/abarmin
* Boosty (если вы в России): https://boosty.to/abarmin

#SpringFramework
🔥3
Find a First occurrence in a String - LeetCode 27

Продолжаю решать задачки с LeetCode и сегодня это реализация метода indexOf, который есть почти во всех языках программирования.

Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍2
Divide two Integers - LeetCode 28

Сегодня решаем коварную задачку с LeetCode на деление двух целых чисел без использования операции деления. К счастью, в Java есть операция битового сдвига.

Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍1
Substring with concatenation of all words - LeetCode 29

Задача, которая выглядит как стандартный sliding window внезапно не решается, но оно и понятно - уровень-то hard! В связи с этим будем делать улучшенное скользящее окно.

Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍3
Я в отпуске в британском захолустье - в городке Castleton в Peak District. Выпуск с leet code на завтра уже готов и скоро выйдет здесь и на YouTube
🔥12❤4❤‍🔥2