Java & Spring Weekly
211 subscribers
17 photos
63 videos
55 links
Рассказываю о новинках Java & Spring Framework, выпускаю практические обучающие видео
Download Telegram
Новое видео уже доступно на Бусти и завтра выйдет на ютубе и в Тележке. Пока предлагаю посмотреть еще несколько фото из отпуска - замок Chatsworth House. Знаменит тем, что здесь снимали некоторые сцены из фильма Гордость и Предубеждение по роману известной британской писательницы Джейн Остин. И да, там прям есть настоящий лабиринт.
❤6🔥5
Longest valid Parentheses - LeetCode with me 31

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

Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍6
Вчера записал весь лайв-кодинг для следующего выпуска про JWT - будет большое видео про Plain, Signed, и Encrypted JWT. Осталось смонтировать и опубликовать.

Пока вы ждете видео, хочу поделиться статьей про баг, который команда Netflix обнаружила в Virtual Threads - https://netflixtechblog.com/java-21-virtual-threads-dude-wheres-my-lock-3052540e231d
🔥5👍3
JWT & Spring Security - Weekly Tips 18

🧑‍💻 Лайвкодинг - первая вводная сессия про JWT. Кажется, это просто json закодированный в base64 и разделенный точками, однако, на самом деле, все гораздо сложнее. Особенно, когда необходимо удостовериться, что токен по дороге никто не поменял, не перехватил, и вообще не попытался прочитать.

Видео довольно длинное и покрывает три важные аспекта:

* Spring Security Resource Server - входная точка в мир JWT.
* PlainJWT, SignedJWT, и EncryptedJWT как три последовательно усложняющихся способа защититься от перехвата и подмены токена.
* RSA & AES - ключики и подписи.

Заваривайте крепкий кофе, включайте видео и пишите комментарии.

Видео получилось длинным и не уместилось в 4ГБ в хорошем качестве. Для телеграма я пережал в 720р, если качество не очень - на Бусти и YouTube полная версия видео доступна без ограничений.

Ссылки: Ссылка на код на GitHub | Patreon (если вы не в России) | Boosty (если вы в России) | #SpringFramework
Media is too big
VIEW IN TELEGRAM
👍9
Search in rotated sorted array - LeetCode with me 32

Search in rotated sorted array очень похоже на "сон для усталых взрослых людей", так как задачка не сложная - обычный бинарный поиск с дополнительной проверкой на излом массива.

Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍4🔥3
JWT and Spring Authorization Server - Weekly Tips 19

🧑‍💻 Лайвкодинг - второе видео про JWT. В этот раз будем создавать JWT через Spring Authorization Server, посмотрим как используется JWKS для проверки подписей токенов и как можно сделать multitenancy для разных issuer-ов.

Заваривайте крепкий кофе, включайте видео и пишите комментарии.

Ссылки: Ссылка на код на GitHub | Patreon (если вы не в России) | Boosty (если вы в России) | #SpringFramework
Media is too big
VIEW IN TELEGRAM
👍7
Find First and Last Position of Element in Sorted Array - LeetCode with me 33

В описании задачи явно упоминается, что сложность алгоритма должна быть O(log n). Те, кто смотрят канал давно, сразу могут догадаться, что речь идет про бинарный поиск. Так как нужно найти одновременно индексы первого и последнего повторяющегося элемента, стандартный бинарный поиск придется немного модифицировать. Именно этим и займемся.

Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
🔥5❤2
System Design Interview - Designing Google Docs

An old friend of mine Vladimir Ivanov from the @architectureweekly channel asked me join the system design session and come up with an idea on how to make a new Google Docs. I think the session was fruitful and interesting, due to the limited time we didn't manage to discuss all the topics but still I think the session was useful.

Ссылки: Канал Architecture Weekly | Patreon (если вы не в России) | Boosty (если вы в России) | #SystemDesign
Media is too big
VIEW IN TELEGRAM
❤2👍2
Find Insert Position - LeetCode with me 34

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

Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
🔥3👍2❤1
Работа с Zip-архивами - Weekly Tips 20

🧑‍💻 Лайвкодинг - работа с Zip-архивами в Java. Удивительно, но API для работы с ними есть в Java начиная с версии 1.1 и сегодня я покажу как создать архив, получить список файлов и извлечь файл из архива.

Постепенно готовлю новый более сложный выпуск, а пока повторяем Java core.

Ссылки: Ссылка на код на GitHub | Patreon (если вы не в России) | Boosty (если вы в России) | #Java
Media is too big
VIEW IN TELEGRAM
👍5❤2
Valid Sudoku - LeetCode with me 35

Проверяем судоку на валидность. Есть решать задачку в лоб, ровно так, как написано в условии, то добиться высоких результатов, ожидаемо, не получится. Подход без использования вспомогательных структур данных позволяет получить 100% результат и именно его будем реализовывать.

Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍3
Всем привет, это Александр Бармин.

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

Я хочу обратиться к моим подписчикам на Boosty уровня «Senior-помидор» - спасибо большое, что вы со мной. Я больше не могу поддерживать такой высокий тем выпуска видео и поэтому прошу вас перейти с уровня поддержки «Senior-помидор» на обычный уровень. Это будет честно.

Скорее всего, в ближайшие несколько недель вернется текстовый формат со ссылками - мне самому его очень не хватает.

Остаемся на связи и пишем на Java! Ставьте лайки, пишите комментарии, увидимся.
❤11🤝3🔥2👍1
Soduku Solver - LeetCode with me 36

В прошлый раз проверяли судоку на валидность, в этот раз будем решать с использованием алгоритма backtracking.

Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
❤3🔥2
Count and Say - LeetCode with me 37

Несложная задачка с очень сложным описанием - реализуем алгоритм RLE (run-length encoding) или кодирование длин серий. Разберемся с условием и реализуем.

Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍5❤1
Combination Sum - LeetCode with me 38

Очередная задачка на backtracking - выбрать из массива элементы, которые в сумме дают заданное число. Если представить, что ищем сумму двух элементов, которые вместе дают target, то нужно зафиксировать один элемент, допустим, А, то нужно найти второй, который равен (target - A). С тремя элементами так же - зафиксируем один элемент (А) и будем искать теперь два других, которые в сумме дают (target - A). Для суммы неограниченной длинны делаем несколько итераций, где каждый раз уменьшаем target на значение зафиксированного элемента.

Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
🔥7❤2😁1
Combination Sum II - LeetCode with me 39

Очень похоже на задачку, которую мы решали в прошлый раз, на Combination Sum. Основная сложность этой задачи состоит в том, что теперь исходные данные могут содержать дубликаты, а в результатах дубликатов быть не должно. Можем использовать структуры данных вроде множеств, который позволяют от дубликатов избавиться, либо отсортируем входные данные и будем пропускать дубликаты.

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