Александр Бармин
Александр Бармин
  • Видео 137
  • Просмотров 115 465
Wildcard Matching - [LEET] Code with me #43
Еще одна сложная задача на написание собственного ограниченного движка регулярных выражений. Сначала попробуем применить наиболее логичный подход - класс Pattern, затем реализуем тривиальное решение, а затем решение на базе динамического программирования.
Ссылка на задачу - leetcode.com/problems/wildcard-matching/
-----
Сообщество Java Weekly в Telegram: t.me/java_weekly
-----
Поддержать автора:
* Patreon (если вы не в России): www.patreon.com/abarmin
* Boosty (если вы в России): boosty.to/abarmin
Просмотров: 0

Видео

Multiply Strings - [LEET] Code with me #42
Просмотров 12114 часов назад
Следующая задачка уже среднего уровня сложности на длинную арифметику - нужно умножить два числа представленные в виде строк. Применим метод, известный каждому еще со школы - умножение столбиком. Ссылка на задачу - leetcode.com/problems/multiply-strings/ Сообщество Java Weekly в Telegram: t.me/java_weekly Поддержать автора: * Patreon (если вы не в России): www.patreon.com/abarmin * Boosty (если...
Trapping Rain Water - [LEET] Code with me #41
Просмотров 92День назад
Задачка уровня Hard на вычисление количества воды, которую можно налить на поверхность нестабильной высоты. Задача выглядит сложной, но, по факту, два указателя и вычисление локального минимума. Ссылка на задачу - leetcode.com/problems/trapping-rain-water/ Сообщество Java Weekly в Telegram: t.me/java_weekly Поддержать автора: * Patreon (если вы не в России): www.patreon.com/abarmin * Boosty (ес...
First Missing Positive - [LEET] Code with me #40
Просмотров 6914 дней назад
Задачка уровня Hard на поиск первого положительного пропуска в массиве. Рассмотрим два решения - очевидное и оптимальное, используем циклическую сортировку. Ссылка на задачу - leetcode.com/problems/first-missing-positive/ Сообщество Java Weekly в Telegram: t.me/java_weekly Поддержать автора: * Patreon (если вы не в России): www.patreon.com/abarmin * Boosty (если вы в России): boosty.to/abarmin
Combination Sum II - [LEET] Code with me #39
Просмотров 5121 день назад
Очень похоже на задачку, которую мы решали в прошлый раз, на Combination Sum. Основная сложность этой задачи состоит в том, что теперь исходные данные могут содержать дубликаты, а в результатах дубликатов быть не должно. Можем использовать структуры данных вроде множеств, который позволяют от дубликатов избавиться, либо отсортируем входные данные и будем пропускать дубликаты. Ссылка на задачу -...
Combination Sum - [LEET] Code with me #38
Просмотров 65Месяц назад
Очередная задачка на backtracking - выбрать из массива элементы, которые в сумме дают заданное число. Если представить, что ищем сумму двух элементов, которые вместе дают target, то нужно зафиксировать один элемент, допустим, А, то нужно найти второй, который равен (target - A). С тремя элементами так же - зафиксируем один элемент (А) и будем искать теперь два других, которые в сумме дают (targ...
Count and Say - [LEET] Code with me #37
Просмотров 122Месяц назад
Несложная задачка с очень сложным описанием - реализуем алгоритм RLE (run-length encoding) или кодирование длин серий. Разберемся с условием и реализуем. Ссылка на задачу - leetcode.com/problems/count-and-say/ Сообщество Java Weekly в Telegram: t.me/java_weekly Поддержать автора: * Patreon (если вы не в России): www.patreon.com/abarmin * Boosty (если вы в России): boosty.to/abarmin
Sudoku Solver - [LEET] Code with me #36
Просмотров 101Месяц назад
В прошлый раз проверяли судоку на валидность, в этот раз будем решать с использованием алгоритма backtracking. Ссылка на задачу - leetcode.com/problems/sudoku-solver/ Сообщество Java Weekly в Telegram: t.me/java_weekly Поддержать автора: * Patreon (если вы не в России): www.patreon.com/abarmin * Boosty (если вы в России): boosty.to/abarmin
Valid Sudoku - [LEET] Code with me #35
Просмотров 110Месяц назад
Проверяем судоку на валидность. Есть решать задачку в лоб, ровно так, как написано в условии, то добиться высоких результатов, ожидаемо, не получится. Подход без использования вспомогательных структур данных позволяет получить 100% результат и именно его будем реализовывать. Ссылка на задачу - leetcode.com/problems/valid-sudoku/ Сообщество Java Weekly в Telegram: t.me/java_weekly Поддержать авт...
Работа с Zip-архивами - Weekly Tips #20 (#livecoding #java)
Просмотров 161Месяц назад
🧑‍💻 Лайвкодинг - работа с Zip-архивами в Java. Удивительно, но API для работы с ними есть в Java начиная с версии 1.1 и сегодня я покажу как создать архив, получить список файлов и извлечь файл из архива. Постепенно готовлю новый более сложный выпуск, а пока повторяем Java core. 💻 Код примера доступен на GitHub - github.com/aabarmin/ab-examples Сообщество Java Weekly в Telegram: t.me/java_weekl...
Find Insert Position - [LEET] Code with me #34
Просмотров 692 месяца назад
Еще одна задачка на бинарный поиск. Точнее, по совокупности маркеров в задании удалось это быстро обнаружить и решить сразу подходящим алгоритмом. Отличие от обычного поиска состоит в том, что если значение в массиве не нашлось, то возвращаем позицию, где оно могло бы быть, а не -1 как обычно. Ссылка на задачу - leetcode.com/problems/search-insert-position/description/ Сообщество Java Weekly в ...
System Design Interview - Designing Google Docs
Просмотров 4352 месяца назад
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. Vladimir's channel - @architectureweekly Сообщество Java Weekly ...
Find First and Last Position of Element in Sorted Array - [LEET] Code with me #33
Просмотров 802 месяца назад
В описании задачи явно упоминается, что сложность алгоритма должна быть O(log n). Те, кто смотрят канал давно, сразу могут догадаться, что речь идет про бинарный поиск. Так как нужно найти одновременно индексы первого и последнего повторяющегося элемента, стандартный бинарный поиск придется немного модифицировать. Именно этим и займемся. Ссылка на задачу - leetcode.com/problems/find-first-and-l...
JWT and Spring Authorization Server - Weekly Tips #19 (#livecoding #springframework #springboot)
Просмотров 3542 месяца назад
🧑‍💻 Лайвкодинг - второе видео про JWT. В этот раз будем создавать JWT через Spring Authorization Server, посмотрим как используется JWKS для проверки подписей токенов и как можно сделать multitenancy для разных issuer-ов. 💻 Код примера доступен на GitHub - github.com/aabarmin/ab-examples Сообщество Java Weekly в Telegram: t.me/java_weekly Поддержать автора: * Patreon (если вы не в России): www....
Search in rotated sorted array - [LEET] Code with me #32
Просмотров 1002 месяца назад
Search in rotated sorted array очень похоже на "сон для усталых взрослых людей", так как задачка не сложная - обычный бинарный поиск с дополнительной проверкой на излом массива. Ссылка на задачу - leetcode.com/problems/search-in-rotated-sorted-array/description/ Сообщество Java Weekly в Telegram: t.me/java_weekly Поддержать автора: * Patreon (если вы не в России): www.patreon.com/abarmin * Boos...
JWT and Spring Security - Weekly Tips #18 (#livecoding #springframework #springboot)
Просмотров 5032 месяца назад
JWT and Spring Security - Weekly Tips #18 (#livecoding #springframework #springboot)
Longest valid Parentheses - [LEET] Code with me #31
Просмотров 602 месяца назад
Longest valid Parentheses - [LEET] Code with me #31
Next Permutation - [LEET] Code with me #30
Просмотров 642 месяца назад
Next Permutation - [LEET] Code with me #30
Substring with concatenation of all words - [LEET] Code with me #29
Просмотров 732 месяца назад
Substring with concatenation of all words - [LEET] Code with me #29
Divide two Integers - [LEET] Code with me #28
Просмотров 863 месяца назад
Divide two Integers - [LEET] Code with me #28
Find a First occurrence in a String - [LEET] Code with me #27
Просмотров 933 месяца назад
Find a First occurrence in a String - [LEET] Code with me #27
Google Login and Spring Security - Weekly Tips #17 (#livecoding #springframework #springboot)
Просмотров 2683 месяца назад
Google Login and Spring Security - Weekly Tips #17 (#livecoding #springframework #springboot)
Remove Duplicates from Sorted Array - [LEET] Code with me #26
Просмотров 803 месяца назад
Remove Duplicates from Sorted Array - [LEET] Code with me #26
Spring Security Authorisation - Weekly Tips #16 (#livecoding #spring #springframework #springboot)
Просмотров 7963 месяца назад
Spring Security Authorisation - Weekly Tips #16 (#livecoding #spring #springframework #springboot)
Swap Nodes in k-Groups - [LEET] Code with me #25
Просмотров 863 месяца назад
Swap Nodes in k-Groups - [LEET] Code with me #25
Spring Security Basics - Weekly Tips #15 (#livecoding #spring #springframework #springboot)
Просмотров 5773 месяца назад
Spring Security Basics - Weekly Tips #15 (#livecoding #spring #springframework #springboot)
Swap Nodes in Pairs - [LEET] Code with me #24
Просмотров 1403 месяца назад
Swap Nodes in Pairs - [LEET] Code with me #24
Spring Boot Observability - Weekly Tips #14 (#livecoding #spring #springframework #springboot)
Просмотров 5523 месяца назад
Spring Boot Observability - Weekly Tips #14 (#livecoding #spring #springframework #springboot)
Merge K Sorted Lists - [LEET] Code with me #23
Просмотров 2304 месяца назад
Merge K Sorted Lists - [LEET] Code with me #23
Spring Boot Test - Weekly Tips #13 (#livecoding #spring #springframework #springboot)
Просмотров 3184 месяца назад
Spring Boot Test - Weekly Tips #13 (#livecoding #spring #springframework #springboot)

Комментарии

  • @ТатьянаБармина-п8н

    Спасибо

  • @nadzhafox
    @nadzhafox 8 дней назад

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

    • @ABarmin
      @ABarmin 8 часов назад

      Да, это частая ситуация с микросервисами - вроде в большом монолите все работало, но сложность выросла настолько, что решили разделить. И тут сложность выросла еще больше!

  • @evgenykostrikov5429
    @evgenykostrikov5429 8 дней назад

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

  • @evgenykostrikov5429
    @evgenykostrikov5429 8 дней назад

    На самом деле сомнительная оптимизация, если посчитать сложность. Понятно, что тут константа по сути, т.к. размер ограничен и известен. Но на реальном интервью скорее всего важно будет продемонстрировать понимание алгоритмической сложности, а не времени исполнения на литкоде.

  • @ТатьянаБармина-п8н
    @ТатьянаБармина-п8н 13 дней назад

    Спасибо

  • @ТатьянаБармина-п8н
    @ТатьянаБармина-п8н 19 дней назад

    Спасибо

  • @Saycka
    @Saycka 21 день назад

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

  • @ВасилийШалашов-п2й

    Призрачный экзаминатор был из-за того, что эврика иногда отображает в панели инфу об "умерших" сервисах.

  • @Chybaka-lp6fd
    @Chybaka-lp6fd Месяц назад

    очень полезно, спасибо

  • @ТатьянаБармина-п8н

    Спасибо!

  • @user-lk8n0fgjk
    @user-lk8n0fgjk Месяц назад

    Большое спасибо за Ваш труд! очень полезно

  • @yanaya7230
    @yanaya7230 Месяц назад

    С чего Требования: Функциональные - системные операции Не функциональные - качества Что должна делать система? Понять, какие внешние операции будут? Разделить приложение на отдельные сервисы. (2 стратегии) По бизнес функциям (Внутри больших б.ф ест функции меньше.) Взглянув на функцию управления курьерами, мы понимаем, что она большая. Одна функция свапится на о дельный серфис/приложения. Какие гаицы сервиса и агрегаты. 1 прил - 1 бизнес функция. и по дизайну доменов Начинаем с пректирования ддд. Смотрим какие функции мапятся на большие функции. 3. Определение операций между сервисами. (Между собой обмениватся ?) (Модель запросов и ответов request/response) Запрос - синхронно и ответ ассинхронно. Клиент отправил множество запросов Как понять к какому пришёл ответ? Идентификатор к вопросу и к ответу Ассинхронное взаимодействие. Если есть несколько клиентов и взаимодействие с ними ассинхронно. Publish subscribe У ассинхронного и синхронного взаимодействия... И клиент и сервер должны быть доступны. Если они не доступны - такой запрос не обработать. Каждая система отвечает ассинхронно. Надёжность: Как вызывать сервисы? Бизнес логика - порт. Прокси. Проблемы сильной связи. И через сервисный Удаленный вызов. Месседжинг Не надо из бизнес логики Корреляционный айди. И Приёмник сообщений. Архитектура с брокером или без? Корреляция - триггер и Брокер - прмежуточное хранилище. Записывать обработанные идентификаторы сообщений в промеждуточную таблицу Дублирующиеся сообщения. У каждого серфиса есть приежуточныц буфер, куда он сохр. Сообщения перед отправкой. Чем больше серфисов в обработке запроса - тем меньше надежность системы. Избавиться от асинхронного взаимодействия. И добавляем очередь У него есть промежуточные состояния и хранилища. Если система не требует синхронного ответа. Если требует. Нет ли каких-то данных, кот. Нужны этому серфису входному? Нет и таких у зависимых сервисов? Репликация данных (подход) Какие-то запросы этот сервис может синхронно обрабатывать. Нет единого верного решения. Мы смотрим на варианты. Что мы можем сделать?

  • @yasnoponyatno6208
    @yasnoponyatno6208 Месяц назад

    Благодарю. Как раз было неясно как правильно тестировать контроллеры. Законспектировал.

  • @viewer_evgeniy
    @viewer_evgeniy Месяц назад

    C этими префиксами у спринга какая-то беда прям. Где-то требуются, где-то не требуются (фреймворк сам добавляет). Почему не привели данный аспект к единому формату - мне так и осталось неясным.

  • @mursadinovmalik6373
    @mursadinovmalik6373 Месяц назад

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

    • @ABarmin
      @ABarmin Месяц назад

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

    • @mursadinovmalik6373
      @mursadinovmalik6373 Месяц назад

      @@ABarmin тоже потом догнал, спасибо за ответ

  • @ТатьянаБармина-п8н

    Спасибо

  • @zisoua
    @zisoua Месяц назад

    Очень интересный опыт и практика! А что Вы можете порекомендовать для создания PDF-файлов? Это довольно частый вариант для генерации квитанций. И довольно специфический вопрос: какие паттерны проектирования Вы чаще всего используете в разработке (не считая "подкапотных" паттернов Spring)? Это больше для понимания, в какие из них стоит углубиться больше всего. Спасибо!

    • @ABarmin
      @ABarmin Месяц назад

      Я использовал Apache PDFBox для работы с PDF. Более-менее удобный инструмент, развивается, поддерживается. По поводу паттернов - здесь тяжело прям назвать конкретные, поэтому назову группы. GoF паттерны обнаруживаются тут и там, часто используются enterprise integration patterns, описанные в одноименной книге. Часто использую тактические паттерны DDD и все чаще стратегические. Мои личные фавориты среди паттернов - composer & chain of responsibility.

  • @IgorKlimov-l9s
    @IgorKlimov-l9s Месяц назад

    Спасибо за очередной выпуск! Nio апи действительно сильно упрощает многие вещи.

    • @ABarmin
      @ABarmin Месяц назад

      Это правда. Несмотря на все модные новые фишки вроде object storage-ей, работа с файлами все равно встречается часто.

  • @oleggye
    @oleggye Месяц назад

    Отличный выпуск, спасибо, Александр!

    • @ABarmin
      @ABarmin Месяц назад

      Спасибо!

  • @Ту-ту-ту-ту
    @Ту-ту-ту-ту 2 месяца назад

    Доклад очень интересный, одно так и не понял зачем эврика в k8s

    • @ABarmin
      @ABarmin Месяц назад

      Вроде как там рассказывается о постепенном переходе с эврики на k8s сервисы.

  • @pashapofactu3897
    @pashapofactu3897 2 месяца назад

    Благодарю за море полезной информации 🤝

    • @ABarmin
      @ABarmin Месяц назад

      Пожалуйста!

  • @RasimAlimgukov
    @RasimAlimgukov 2 месяца назад

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

    • @ABarmin
      @ABarmin 2 месяца назад

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

  • @user-lk8n0fgjk
    @user-lk8n0fgjk 2 месяца назад

    Спасибо за Ваш труд. Все четко и понятно! Не останавливайтесь!

  • @АлександрГубайдулин-я2н

    Добрый день! Появится ли код примера на гитхабе? Не увидел в репозитории кода этого урока

    • @ABarmin
      @ABarmin 2 месяца назад

      Все есть, уже на гихабе.

  • @zisoua
    @zisoua 2 месяца назад

    о это прям красота !

    • @ABarmin
      @ABarmin 2 месяца назад

      Мы старались! Рад, что понравилось

  • @flatmapper
    @flatmapper 2 месяца назад

    Please zoom in

    • @ABarmin
      @ABarmin 2 месяца назад

      Will do next time, thank you for pointing it out.

  • @ТатьянаБармина-п8н
    @ТатьянаБармина-п8н 2 месяца назад

    Спасибо

    • @ABarmin
      @ABarmin 2 месяца назад

      Пожалуйста ^_^

  • @ИльяРоманов-г4б
    @ИльяРоманов-г4б 2 месяца назад

    Спасибо за ролик!

    • @ABarmin
      @ABarmin 2 месяца назад

      Пожалуйста ^_^

  • @alexandertolkachev3399
    @alexandertolkachev3399 2 месяца назад

    Смотрю на код и ничего не понимаю. Какой-то тяжелый понедельник.

    • @ABarmin
      @ABarmin 2 месяца назад

      У меня так же. Хорошо, что я ролик записал еще на прошлой неделе.

  • @АлександрБугримов-о1е

    Очень круто! Спасибо за видео

    • @ABarmin
      @ABarmin Месяц назад

      Пожалуйста!

  • @IgorKlimov-l9s
    @IgorKlimov-l9s 2 месяца назад

    Спасибо за детальный разбор!

    • @ABarmin
      @ABarmin 2 месяца назад

      Пожалуйста, рад, что нравится.

  • @sqy3371
    @sqy3371 2 месяца назад

    Спасибо большое за видео!

    • @ABarmin
      @ABarmin Месяц назад

      Пожалуйста!

  • @КимНикитаВладимирович

    Было бы интересно послушать про интеграцию с keycloak и spring gateway

  • @ИльяРоманов-г4б
    @ИльяРоманов-г4б 2 месяца назад

    Александр, спасибо большое за вторую часть!

    • @ABarmin
      @ABarmin 2 месяца назад

      Рад, что нравится. Пожалуйста!

  • @TheExcentro
    @TheExcentro 2 месяца назад

    Спасибо, как всегда интересно :)

    • @ABarmin
      @ABarmin 2 месяца назад

      Рад, что нравится. Пожалуйста!

  • @alexkoren7648
    @alexkoren7648 2 месяца назад

    достаточно понятно и интересно, спасибо 👍. но лично мое мнение подход Борисова к объяснению с написанием кода с нуля себя оправдывает, этого не хватает немного.

  • @vladimirsolovyov9400
    @vladimirsolovyov9400 2 месяца назад

    получается же что второе решение работает не за O(log N) а за O(N) странно что оно бьет 100% по времени выполнения :)

    • @ABarmin
      @ABarmin 2 месяца назад

      Именно так, поэтому и странно.

  • @oleksandr.tereshchenko
    @oleksandr.tereshchenko 2 месяца назад

    Александр, большое спасибо вам за ваш труд. Каждый раз кайфую от ваших объяснений!

    • @ABarmin
      @ABarmin 2 месяца назад

      Спасибо, очень стараюсь, чтобы было интересно.

  • @ИльяРоманов-г4б
    @ИльяРоманов-г4б 2 месяца назад

    Урааа, спасибо большое!

    • @ABarmin
      @ABarmin 2 месяца назад

      Рад, что нравится =)

  • @exactly4234
    @exactly4234 2 месяца назад

    Черт, Шарий программировать взялся

  • @IgorKlimov-l9s
    @IgorKlimov-l9s 2 месяца назад

    Спасибо за очередной детальный разбор! У меня возник вопрос по взаимодействию между микросервисами. Суть в следующем: если авторизация и аутентификация происходят в бфф или апи шлюзе, и нужно передать данные о текущем пользователе сервисам ниже, какой подход считается бест практис с точки зрения безопасности? Нужно ли снова шифровать данные или можно открыто передать в хэдэрах/параметрах/теле запроса?

    • @ABarmin
      @ABarmin 2 месяца назад

      И простого ответа, как обычно, нет, но есть варианты: 1) Токен переправляется в другие сервисы в хедере как есть. 2) Делаем token exchange и получаем новый токен для межсервисного взаимодействия, который содержит значения из исходного токена. Второй способ более надежный и используется, когда есть необходимость разделить сервисы на публичные и внутренние, а также, когда нужно интегрировать новую систему с уже существующей. Про шифрование данных - здесь зависит. Обычно, шифрование данные это не задача сервиса и здесь спасает SSL/TLS или sidecar контейнер с прокси, например, с nginx или envoy.

    • @IgorKlimov-l9s
      @IgorKlimov-l9s 2 месяца назад

      @@ABarmin Спасибо за ответ!

  • @tusman4ik
    @tusman4ik 2 месяца назад

    Спасибо вам за работу, невероятно полезно))

    • @ABarmin
      @ABarmin 2 месяца назад

      Спасибо, что смотрите.

  • @IgorKlimov-l9s
    @IgorKlimov-l9s 2 месяца назад

    Спасибо за видео! Второй вариант решения достаточно неочевиден, мне взяло какое-то время, чтобы понять, почему работает так.

    • @ABarmin
      @ABarmin 2 месяца назад

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

  • @ilYa1984
    @ilYa1984 2 месяца назад

    Спасибо. Большой объём базы.

    • @ABarmin
      @ABarmin 2 месяца назад

      Рад, что нравится

  • @TheExcentro
    @TheExcentro 2 месяца назад

    Спасибо, полезно!

    • @ABarmin
      @ABarmin 2 месяца назад

      Очень рад, что нравится

  • @kopn9k735
    @kopn9k735 2 месяца назад

    Хотелось бы еще для полноты картины, хотя бы сказать про KMP подход, который позволяет решить за линейное время это задачу

    • @ABarmin
      @ABarmin 2 месяца назад

      Спасибо за идею, думаю, это даже отдельного видео заслуживает.

  • @ИльяРоманов-г4б
    @ИльяРоманов-г4б 2 месяца назад

    Александр, спасибо большое за труд! Ждём jwt!

    • @ABarmin
      @ABarmin 2 месяца назад

      Скоро будет. Я сейчас в отпуске, сделаю выпуск сразу как только вернусь

    • @ИльяРоманов-г4б
      @ИльяРоманов-г4б 2 месяца назад

      @@ABarmin отлично! Хорошо отдохнуть)

  • @ИльяРоманов-г4б
    @ИльяРоманов-г4б 2 месяца назад

    Александр, спасибо за труд!

    • @ABarmin
      @ABarmin 2 месяца назад

      Рад, что нравится

  • @user-lk8n0fgjk
    @user-lk8n0fgjk 3 месяца назад

    Александр, спасибо за Ваш контент. Если это важно для будущих поисков, в названии видео ошибки с номером задачи, 28, а не 29.

    • @ABarmin
      @ABarmin 2 месяца назад

      У меня был выпуск, в котором одновременно разобрал сразу две задачи, поэтому один номер пропущен. Спасибо за рекомендацию.

  • @viewer_evgeniy
    @viewer_evgeniy 3 месяца назад

    У Лаурентия появился конкурент) На 19:05 - только не authentication provider выбирает провайдера, а authentication manager (он же provider manager в виде более частного случая). Но это для слушателей ремарка)

    • @ABarmin
      @ABarmin 2 месяца назад

      Спасибо за точность)