- 140
- 2 966 186
Eugene Suleimanov
Ukraine
Приєднався 21 лис 2013
Разработка программного обеспечения.
Меня зовут Евгений Сулейманов.
Я инженер по разработке ПО. Специализация - высоконагруженные распределённые системы.
Публикую обучающие видеоматериалы по языкам программирования, фреймворкам, базам данных, облачным сервисам и т.д.
Меня зовут Евгений Сулейманов.
Я инженер по разработке ПО. Специализация - высоконагруженные распределённые системы.
Публикую обучающие видеоматериалы по языкам программирования, фреймворкам, базам данных, облачным сервисам и т.д.
Публичный менторинг. Эльнар Сапаров. Сдача модуля 2.3. Попытка №1
В данном видео вы можете увидеть первую попытку сдачи модуля 2.3
Кандидат - Сапаров Эльнар Ерикович, 2001 г.р.
Ссылка на файл с программой обучения:
docs.google.com/spreadsheets/d/1QEpLqfv9ksigyFAIRnfwx3A78DzlWnWjK7ek65ydFFY/edit?usp=sharing
Ссылка на файл с материалами по модулю 2.3:
docs.google.com/document/d/1UvOy5U53AUtW7NzUxOBRHs-qbAd8wQzeyoeDuWBCucA
Ссылка на гит репозиторий с выполненным практическим заданием:
github.com/ElnarGit/module_2.3
Дружное сообщество:
t.me/pse_club
Материалы для разработчиков:
proselyte.net/
00:00:00 - Введение
00:00:32 - Сдача теории
00:17:00 - Разбор решения практической задачи
00:20:25 - Заключение
Кандидат - Сапаров Эльнар Ерикович, 2001 г.р.
Ссылка на файл с программой обучения:
docs.google.com/spreadsheets/d/1QEpLqfv9ksigyFAIRnfwx3A78DzlWnWjK7ek65ydFFY/edit?usp=sharing
Ссылка на файл с материалами по модулю 2.3:
docs.google.com/document/d/1UvOy5U53AUtW7NzUxOBRHs-qbAd8wQzeyoeDuWBCucA
Ссылка на гит репозиторий с выполненным практическим заданием:
github.com/ElnarGit/module_2.3
Дружное сообщество:
t.me/pse_club
Материалы для разработчиков:
proselyte.net/
00:00:00 - Введение
00:00:32 - Сдача теории
00:17:00 - Разбор решения практической задачи
00:20:25 - Заключение
Переглядів: 1 402
Відео
Тестирование ПО глазами разработчика
Переглядів 4,5 тис.Місяць тому
В данном видеокурсе мы изучим теоретические основы и получим практические навыки юнит и интеграционного тестирования на примере работы со Spring Boot приложениями с использованием JUnit, Mockito и TestContainers. Дружное сообщество: t.me/pse_club Материалы для разработчиков: proselyte.net/ Технологии проектов: * Java 21 * Spring Boot 3 * Spring Web * Spring WebFlux * Spring Data * Lombok * JUni...
Публичный менторинг. Эльнар Сапаров. Сдача модуля 2.2. Попытка №4
Переглядів 1,3 тис.Місяць тому
В данном видео вы можете увидеть четвертую и успешную попытку сдачи модуля 2.2 Кандидат - Сапаров Эльнар Ерикович, 2001 г.р. Ссылка на файл с программой обучения: docs.google.com/spreadsheets/d/1QEpLqfv9ksigyFAIRnfwx3A78DzlWnWjK7ek65ydFFY/edit?usp=sharing Ссылка на файл с материалами по модулю 2.2: docs.google.com/document/d/1DmK03rz-J2BUrin2DdbHSu3xOW8jUweTRC8QJmJA3RM/edit?usp=drive_link Ссылк...
Многопоточность глазами разработчика
Переглядів 9 тис.Місяць тому
В этом виде мы изучим теоретические основы и получим практические навыки работы с многопоточностью и параллелизмом на примере языка программирования Java. Ссылка на Github репозиторий с примерами кода: github.com/proselytear/javaconcurrency Дружное сообщество: t.me/pse_club Материалы для разработчиков: proselyte.net/ Рекомендуемые материалы: Java Concurrency In Practice www.amazon.com/Java-Conc...
Публичный менторинг. Эльнар Сапаров. Сдача модуля 2.2. Попытка №3
Переглядів 1,4 тис.Місяць тому
В данном видео вы можете увидеть третью попытку сдачи модуля 2.2 Кандидат - Сапаров Эльнар Ерикович, 2001 г.р. Ссылка на файл с программой обучения: docs.google.com/spreadsheets/d/1QEpLqfv9ksigyFAIRnfwx3A78DzlWnWjK7ek65ydFFY/edit?usp=sharing Ссылка на файл с материалами по модулю 2.2: docs.google.com/document/d/1DmK03rz-J2BUrin2DdbHSu3xOW8jUweTRC8QJmJA3RM/edit?usp=drive_link Дружное сообщество:...
Будущее программирования
Переглядів 8 тис.Місяць тому
В данном видео мы рассуждаем о будущем программирования о том, куда мы движемся, текущих вызовах и перспективных направлениях. И пытаемся понять, что стоит делать инженерам в этих реалиях. Дружное сообщество: t.me/pse_club Материалы для разработчиков: proselyte.net/ 00:00:00 Введение 00:01:19 Вычислительные мощности 00:08:18 Квантовые вычисления 00:10:23 Облачные вычисления 00:12:47 Сети 00:15:...
Публичный менторинг. Эльнар Сапаров. Сдача модуля 2.2. Попытка №2
Переглядів 1,4 тис.2 місяці тому
В данном видео вы можете увидеть вторую попытку сдачи модуля 2.2 Кандидат - Сапаров Эльнар Ерикович, 2001 г.р. Ссылка на файл с программой обучения: docs.google.com/spreadsheets/d/1QEpLqfv9ksigyFAIRnfwx3A78DzlWnWjK7ek65ydFFY/edit?usp=sharing Ссылка на файл с материалами по модулю 2.2: docs.google.com/document/d/1DmK03rz-J2BUrin2DdbHSu3xOW8jUweTRC8QJmJA3RM/edit?usp=drive_link Дружное сообщество:...
Виртуальные потоки в Java
Переглядів 9 тис.2 місяці тому
В данном видео мы рассматриваем основы виртуальных потоков в Java. Дружное сообщество: t.me/pse_club Материалы для разработчиков: proselyte.net/ Ссылка на GitHub: github.com/proselytear/virtualthreads JEP444: openjdk.org/jeps/444 00:00:00 Введение 00:01:04 Блокирующий подход 00:08:52 Асинхронный подход 00:12:20 Концепция легковесных потоков 00:12:52 Виртуальные потоки 00:16:44 Более детальное о...
Публичный менторинг. Эльнар Сапаров. Сдача модуля 2.2. Попытка №1
Переглядів 1,4 тис.2 місяці тому
В данном видео вы можете увидеть вторую попытку сдачи модуля 2.2 Кандидат - Сапаров Эльнар Ерикович, 2001 г.р. Ссылка на файл с программой обучения: docs.google.com/spreadsheets/d/1QEpLqfv9ksigyFAIRnfwx3A78DzlWnWjK7ek65ydFFY/edit?usp=sharing Ссылка на файл с материалами по модулю 2.2: docs.google.com/document/d/1DmK03rz-J2BUrin2DdbHSu3xOW8jUweTRC8QJmJA3RM/edit?usp=drive_link Дружное сообщество:...
Публичный менторинг. Эльнар Сапаров. Сдача модуля 2.1. Попытка №3
Переглядів 2,1 тис.4 місяці тому
В данном видео вы можете увидеть вторую попытку сдачи модуля 2.1 Кандидат - Сапаров Эльнар Ерикович, 2001 г.р. Ссылка на файл с программой обучения: docs.google.com/spreadsheets/d/1QEpLqfv9ksigyFAIRnfwx3A78DzlWnWjK7ek65ydFFY/edit?usp=sharing Ссылка на файл с материалами по модулю 1.6: docs.google.com/document/d/1fl-0UZPFNNHKBjVujcfXiur8fXh6nFVFPJTWqeUYOpY/edit?usp=sharing Ссылка на файл с задан...
Оптимизация SQL запроса
Переглядів 14 тис.4 місяці тому
В данном видео мы на практическом примере разбираем основы оптимизации SQL запроса и рабочие инструменты. Дружное сообщество: t.me/pse_club Материалы для разработчиков: proselyte.net/ Ссылка на GitHub репозиторий с запросами: github.com/proselytear/sql_optimization 00:00:00 Введение 00:00:52 Создание структуры данных 00:02:25 Выполнение первой версии запроса 00:04:30 EXPLAIN и EXPLAIN ANALYZE 0...
Публичный менторинг. Эльнар Сапаров. Сдача модуля 2.1. Попытка №2
Переглядів 1,5 тис.4 місяці тому
В данном видео вы можете увидеть вторую попытку сдачи модуля 2.1 Кандидат - Сапаров Эльнар Ерикович, 2001 г.р. Ссылка на файл с программой обучения: docs.google.com/spreadsheets/d/1QEpLqfv9ksigyFAIRnfwx3A78DzlWnWjK7ek65ydFFY/edit?usp=sharing Ссылка на файл с материалами по модулю 1.6: docs.google.com/document/d/1fl-0UZPFNNHKBjVujcfXiur8fXh6nFVFPJTWqeUYOpY/edit?usp=sharing Ссылка на файл с задан...
Публичный менторинг. Эльнар Сапаров. Сдача модуля 2.1
Переглядів 2 тис.5 місяців тому
В данном видео вы можете увидеть вторую попытку сдачи модуля 2.1 Кандидат - Сапаров Эльнар Ерикович, 2001 г.р. Ссылка на файл с программой обучения: docs.google.com/spreadsheets/d/1QEpLqfv9ksigyFAIRnfwx3A78DzlWnWjK7ek65ydFFY/edit?usp=sharing Ссылка на файл с материалами по модулю 1.6: docs.google.com/document/d/1fl-0UZPFNNHKBjVujcfXiur8fXh6nFVFPJTWqeUYOpY/edit?usp=sharing Ссылка на файл с задан...
Что такое Kubernetes?
Переглядів 7 тис.5 місяців тому
В данном видео мы рассматриваем технологию оркестрации контейнеров - Kubernetes Дружное сообщество: t.me/pse_club Материалы для разработчиков: proselyte.net/ Рекомендуемые материалы: 00:00:00 Введение 00:00:42 Задачи оркестрации 00:05:20 История создания 00:06:15 Архитектура K8S 00:07:57 Уровень управления (control plane) 00:10:00 kubelet/kube-proxy/container Runtime 00:11:35 Преимущества и нед...
Ключевые структуры данных
Переглядів 6 тис.6 місяців тому
В данном видео мы рассматриваем ключевые структуры данных с точки зрения разработчиков. Все примеры реализованы с использованием языка Java. Дружное сообщество: t.me/pse_club Материалы для разработчиков: proselyte.net/ Ссылка на гит репозиторий: github.com/proselytear/keydatastructures Рекомендуемые материалы: Книга "Introduction to Algorithms, fourth edition" (www.amazon.com/Introduction-Algor...
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.5. Попытка №2
Переглядів 2,4 тис.6 місяців тому
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.5. Попытка №2
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.5. Попытка №1
Переглядів 2,1 тис.7 місяців тому
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.5. Попытка №1
Публичный менторинг. Игорь Шульга. Модуль 3.1. Код ревью № 3.
Переглядів 2,5 тис.7 місяців тому
Публичный менторинг. Игорь Шульга. Модуль 3.1. Код ревью 3.
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.4. Попытка №2
Переглядів 2,4 тис.7 місяців тому
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.4. Попытка №2
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.4.
Переглядів 2,6 тис.8 місяців тому
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.4.
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.3. Попытка №2.
Переглядів 2,5 тис.8 місяців тому
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.3. Попытка №2.
Публичный менторинг. Игорь Шульга. Модуль 3.1. Код ревью № 2.
Переглядів 1,9 тис.8 місяців тому
Публичный менторинг. Игорь Шульга. Модуль 3.1. Код ревью 2.
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.3
Переглядів 3,4 тис.8 місяців тому
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.3
Публичный менторинг. Игорь Шульга. Модуль 3.1. Код ревью.
Переглядів 2,8 тис.8 місяців тому
Публичный менторинг. Игорь Шульга. Модуль 3.1. Код ревью.
Тестовое собеседование Java разработчика #28 - Леонид Земенков
Переглядів 8 тис.8 місяців тому
Тестовое собеседование Java разработчика #28 - Леонид Земенков
Публичный менторинг. Эльнар Сапаров. Анализ модуля 1.3
Переглядів 1,8 тис.8 місяців тому
Публичный менторинг. Эльнар Сапаров. Анализ модуля 1.3
Публичный менторинг. Игорь Шульга. Модуль 3.1. Разбор дизайна решения.
Переглядів 2,7 тис.8 місяців тому
Публичный менторинг. Игорь Шульга. Модуль 3.1. Разбор дизайна решения.
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.2
Переглядів 4 тис.8 місяців тому
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.2
Публичный менторинг. Игорь Шульга. Анализ модуля 3.1
Переглядів 3,3 тис.9 місяців тому
Публичный менторинг. Игорь Шульга. Анализ модуля 3.1
+вайб, респект
Спасибо за поддержку!
На мой взгляд, 2PC не подходит в банковских системах, т. к. в 2PC у нас может быть зафиксированы изменения первой транзакции, а для 2 транзакции - зафейлены, и откатить изменения 1 транзакции мы не можем, и тогда, получится так, что у клиента деньги списались, а услуга не подключена (ну или деньги не перенеслись на другой счет), насчет микросервисной архитектуры: все, кто упоминали 2PC, говорили, что очень плохо и показывали затем лучшее решение - сагу, сам я не реализовывал ни то, ни другое, поэтому утверждать не могу
Тем более существенном недостатком 2PC является то, что при горизонтальном масштабировании у нас Производительность падает (про это есть статья 2014 года)
SAGA это логическое продолжение 2PC и 3PC. Если мы говорим о сложной распределенной транзакции, то SAGA - хороший выбор.
Спасибо за полезную информацию 🔥🔥🔥
Спасибо за комментарий!
А сколько вообще способов есть для решения этой задачи?
Круто смотреть как тех. диры щелкачают задачки для джунов)))
Благодарю и жду новые гайдов)))
Спасибо за отзыв!
ну это самое крутое видео ведь, даже англоязычные источники не имеют аналогов
Евгений, спасибо за видео и примеры)
Спасибо за поддержку!
4:00 ZZZZZZZZZZZ ⬜🟦🟥🤙
Отличный цикл роликов, которые были записаны в далеком 2016 и не потеряли своей актуальности. Спасибо, Евгений, за труд. Убежден, что Ваш труд многим помог стать компетентнее. Могу только предположить, сколько раз Вы получили и получаете слова благодарности. Хочу в Вашу копилку добавить еще одно сердечное "Благодарю". Такие люди, как Вы, меняют людей в лучшую сторону. Спасибо, Женя!
Большое спасибо за отзыв! Рад, что материал оказался полезен :)
С гитхабом хороший пример придумал. Отличный урок. Спасибо, Женя.
Спасибо за отзыв, Виталий!
@EugeneSuleimanov 2:51:21 а почему зависимость io.r2dbc:r2dbc-postgresql а не org.postgresql:r2dbc-postgresql ?
Спасибо за вопрос. Чаще работаю с ней, поэтому взял эту зависимость.
Очень полезное видео и сколько труда вложено, благодарю!
Большое спасибо за отзыв!
топ
Спасибо за поддержку!
Евгений, приветствую! При тестировании сервисного слоя ( 1:15:00 и далее ) мы присваиваем методам мока репозитория findByEmail и getById поведение, которым они не обладают и обладать, в моём понимании, не должны - пробрасывание исключений. Не было бы правильнее делать .willReturn(null) ? И уже этот null обрабатывать в методе сервиса и дожидаться проброса исключения там? Просто в моём понимании мы не тестируем функциональность по пробросу исключений в методе сервиса при получении null от репозитория. Надеюсь понятно написал) Для наглядности укажу код : Метод из ролика : -- public void givenIncorrectEmail_whenGetDeveloperByEmail_thanExceptionIsThrown() { //given BDDMockito.given(repository.findByEmail(anyString())) .willThrow(DeveloperIsNotExistException.class); //when assertThrows(DeveloperIsNotExistException.class, ()-> serviceUnderTest.getDeveloperByEmail(DataUtils.getJohnScottTransient().getEmail())); //then } Мой метод : -- public void givenIncorrectEmail_whenGetDeveloperByEmail_thanExceptionIsThrown() { //given BDDMockito.given( repository.findByEmail(anyString())) .willReturn(null); //when assertThrows(DeveloperIsNotExistException.class, ()-> serviceUnderTest.getDeveloperByEmail(DataUtils.getJohnScottTransient().getEmail())); //then }
Спасибо огромное за такой видеоурок!
Спасибо за отзыв!
Великолепная, монструозная, важнейшая работа! Спасибо, мастер)
Большое спасибо за поддержку!
про DNS маловато как то
+
Спасибо за поддержку!
Эльнар молодец! Уже дошёл до сложных тем!
Спасибо за комментарий!
Большое спасибо Вам! Очень полезно
Спасибо за отзыв!
Дякую! Супер!
Спасибо за поддержку!
Помогите разобраться, плиз! А что мы пытаемся протестировать, когда задаем BDDMockito результат, который хотим получить? Тесты ведь никогда не упадут, т.к. мы указали результат, который получим (при вызове методов репозитория или сервиса), а затем проверили наличие его же. Или я чего то не понимаю...
Тестируются методы, в них есть логика и есть данные, некоторые данные мы можем прописать на месте, но некоторые идут к нам из каких-то источников, так вот мокито нам позволяет прописать данные для источников. В мокито не прописывается логика всего метода, а только данные для одно из источников.
Спасибо за видео. Видите ли вы roadmap для среднего Java разработчика в сегодняшних реалих? Немного не понял какую експертность мне нужно иметь
Спасибо за отзыв! Если резюмировать, то мое мнение такое: 1. Высокий уровень знаний/умений (экспертность) в конкретной технологии/технологиях. 2. Высокий уровень знаний/умений в домене (фин.тех., ИИ, высокие нагрузки и т.д.).
Огромное спасибо за ваш труд, Евгений
Спасибо за поддержку!
Евген красавчік!!! Дуже гарно все пояснив, детально структуровано!! Дуже хотілося б почути від тебе розбори і приклади створення високонавантажених розподілених систем типу Нетфлікс, Ютуб.. Дякую за твою роботу!
Не понимаю людей ,которые пишут про понятное объяснение. Что тут понятно? Для чего куча всего этого создается? Ничего не понятно. А статичный метод? Серьезно? А если на разработчиков всех языков программирования выводить,то какое же это полотно получится. Что за бред? И сколько будет доп класс с переопределенными методами,в которых будет выводиться строка под каждого. Это же с ума сойти можно. Я не разработчик,может сейчас фигню сморожу. Но не проще было бы сделать,что бы этот статичный метод принимал не строку с названием специальности а ОБЪЕКТ? Интерфейс ,блин. И в main вместо строки лямбду передавать. И не придется каждый раз при добавлении нового создавать доп классы, лепить доп условия.
Лучшее объясние во всём рунете!
Спасибо, Женя! по качеству этот материал намного превосходит все подобные платные курсы. я бы не пожалел даже купить такое.
Большое спасибо за поддержку!
Четко 👍🏻
Спасибо за отзыв!
Нужно ли делать showPageContent() - с модификатором доступа protected?
Низкий поклон к твоему труду, спасибо большое, за то, что ты делаешь!
Спасибо за поддержку!
3:40:52 не понял, зачем в entity сетится email? Ведь мы проверяем изменение email, поэтому в сущности должен быть старый email, а в dto - новый. Или я чего-то не понимаю?
Так и не понял а как же у вас отработало на 2:17:57? мы падаем с NPE когда в контролере используем сохранение в сервисе developerService.saveDeveloper(entity)
Как всегда все максимально понятно, спаси большое за твой труд!
Большое спасибо за отзыв!
Это самый лучший канал по Java)
Спасибо за поддержку :)
Евгений, спасибо за отличное видео!)
Спасибо за отзыв!
Что с Игорем? Он отвалился?
Спасибо за вопрос! Да, к сожалению не смог продолжить. Быстро нашёл работу и не смог совмещать с обучением.
@@EugeneSuleimanov ну удачи этому добряку)
Женя, большое спасибо за экспертизу! Очень приятно слушать тебя. Без воды, чётко и с примерами на экране. Такие знания продают, а ты делишься ими безвозмездно. Это просто не передать словами. Огромное человеческое спасибо.
Большое спасибо за поддержку!
А вот я так понял делейт сделен не идемпотентным для примера просто? Показать работу эксепшнов, да?
Спасибо за вопрос! Да, все верно, акцент на тестировании.
@@EugeneSuleimanov спасибо
Это бриллиант из мира видео про программирование. Мало кому удается настолько подробно объяснить тяжелые темы доступным способом, без воды, и с максимальным количеством примеров, браво!
Большое спасибо за отзыв!
Отличный материал! Спасибо, Евгений!
Спасибо за комментарий!
Как всегда. Подача материала супер. Спасибо за труд
Спасибо за поддержку!
Евгений, отличное видео. Планируете ли дальше снимать видео на данную тематику?
Отличный курс, спасибо! Вопрос: почему кастомные метода репозитория возвращают сущность, а не Optional?
Спасибо за отзыв! Фреймворк позволяет возвращать как объект, так и optional.
@@EugeneSuleimanov так по best practices вроде лучше возвращать Optional? Методы спринговых интерфейсов возвращают или List или Optional)
@@tiy2000 не встречал такого утверждения, если можете скинуть ссылки, буду признателен.
@@EugeneSuleimanov это было не утверждение, а вопрос)
@@EugeneSuleimanov если в самом спринге везде возвращается optional, то я предполагаю, что это основной кейс. Но бывают случаи, когда удобнее получать реальную сущность. Поэтому такая возможность оставлена для кастомных методов. Но это не основной кейс, как я думаю) Могу ошибаться) Другими словами, какой вариант предпочтительнее в таких задачах, типа рассмотренной в видео?
👍👍
Спасибо за комментарий!
HashMap не коллекция
Не в иерархии Collection интерфейса, но входит в Collection Framework с версии 1.2
Вопрос сразу появился и исчез. Зачем использовать CollectionUtils.isEmpty, когда можно проще. Но сейчас понимаю что там идет проверка на null
Спасибо Тебе добрый человек делишься своими трудами!
Спасибо за отзыв!
Сеппер. Материал прям разжеван. Подача на высоте. Спасибо за труд.
Спасибо за поддержку!