- Видео 140
- Просмотров 2 979 965
Eugene Suleimanov
Украина
Добавлен 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 559
Видео
Тестирование ПО глазами разработчика
Просмотров 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,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 Ссылк...
Многопоточность глазами разработчика
Просмотров 10 тыс.Месяц назад
В этом виде мы изучим теоретические основы и получим практические навыки работы с многопоточностью и параллелизмом на примере языка программирования 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 тыс.2 месяца назад
В данном видео мы рассуждаем о будущем программирования о том, куда мы движемся, текущих вызовах и перспективных направлениях. И пытаемся понять, что стоит делать инженерам в этих реалиях. Дружное сообщество: 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 тыс.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 Дружное сообщество:...
Публичный менторинг. Эльнар Сапаров. Сдача модуля 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 запроса
Просмотров 15 тыс.5 месяцев назад
В данном видео мы на практическом примере разбираем основы оптимизации 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 тыс.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 Ссылка на файл с задан...
Публичный менторинг. Эльнар Сапаров. Сдача модуля 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 тыс.6 месяцев назад
В данном видео мы рассматриваем технологию оркестрации контейнеров - 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 тыс.8 месяцев назад
Публичный менторинг. Игорь Шульга. Модуль 3.1. Код ревью 3.
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.4. Попытка №2
Просмотров 2,4 тыс.8 месяцев назад
Публичный менторинг. Эльнар Сапаров. Сдача модуля 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 тыс.9 месяцев назад
Публичный менторинг. Игорь Шульга. Модуль 3.1. Код ревью.
Тестовое собеседование Java разработчика #28 - Леонид Земенков
Просмотров 9 тыс.9 месяцев назад
Тестовое собеседование Java разработчика #28 - Леонид Земенков
Публичный менторинг. Эльнар Сапаров. Анализ модуля 1.3
Просмотров 1,8 тыс.9 месяцев назад
Публичный менторинг. Эльнар Сапаров. Анализ модуля 1.3
Публичный менторинг. Игорь Шульга. Модуль 3.1. Разбор дизайна решения.
Просмотров 2,8 тыс.9 месяцев назад
Публичный менторинг. Игорь Шульга. Модуль 3.1. Разбор дизайна решения.
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.2
Просмотров 4 тыс.9 месяцев назад
Публичный менторинг. Эльнар Сапаров. Сдача модуля 1.2
Публичный менторинг. Игорь Шульга. Анализ модуля 3.1
Просмотров 3,3 тыс.9 месяцев назад
Публичный менторинг. Игорь Шульга. Анализ модуля 3.1
Интересное ощущение, когда смотришь на ютубе дизайн ютуба:)))
Иронично :) Спасибо за комментарий!
Спасибо Евгений 😊
Спасибо за отзыв!
Топовый материал + все структурированно!
Большое спасибо за отзыв!
1:14:50 Как удалось Executors.newSingleThreadExecutor() запихнуть в try с ресурсами? ExecutorService не поддерживает Autocloseable. у меня 17 java. Как удалось замерять время? У меня метод main мнгновенно выполнился и закрылся
вопрос снят))) на 1:16:35
для любителей использовать котлин что-то поменяется?
Нет, любовь к котлину не исчезнет :)
@@EugeneSuleimanov посмотрел елизарова, сравнение виртуальных потоков и котлин корутин. Виртуальные потоки - это более глобальная концепция, она жрет (на момент того видео - год назад) раза в полтора-два больше памяти, и лучше подходит если старый тормозной многопоточный код надо улучшить. Для некоторых это важно. А вот так навскидку, если делать новое что-то, то мне котлин-корутины нравятся больше. Единственное что у них плохо - в них недонаписаны некоторые примитивы синхронизации. Например нету честного-нечестного ReadWriteLock (где-то есть тикет в котором Елизаров обещал, что когда будет время и желание - сделает). Мне правда этот ReadWriteLock вообще ни разу не был нужен.
"Идет загрузка, загрузка идет, и она, наконец, закончилась")))
Актуально в 2024
Четко, ясно с расстановкой! Спасибо большое!👍👍👍
Спасибо за отзыв!
Лайк, подписка!
Спасибо за поддержку!
Годнота! Может чуть подробнее стоило, и там в одном месте текст не дописан, но, в целом, отлично.
Большое спасибо за отзыв!
Годно. Видно, что видос от практика. Странно, правда, что говоря про брокеры сообщений забыл кафку.
Огромное спасибо за видео. Увидел небольшую недоработку хотел бы указать на нее. К сожалению на 29:59 некорректный пример для наглядного показа как работает синхронизация для двух разных счетчиков. Проблема которую я тут вижу в том, что вы в разных потоках, инкрементируете (пусть и потоконебезопасно) разные счетчики. Т.е. даже теоретически они не смогут повлиять друг на друга, а следовательно будут выводиться всегда верно. Даже если не будут синхронизированы.
Большое спасибо за отзыв и замечание. Здесь больше упор был на введение в мьютексы, но я должным образом не акцентировал на этом внимание, поэтому этот пример вызывает недоумение. Еще раз спасибо!
@@EugeneSuleimanov вам огромное спасибо за контент!
Не пойму за что его тут нахваливают, если он свои действия нихрена почти не объясняет. "Тут кликнем это, а тут напишем это" и так 99 процентов видео. Видео сделано для тех, кто уже такое приложение написать может и без этого недоАвтора
+вайб, респект
Спасибо за поддержку!
На мой взгляд, 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)
Спасибо за поддержку :)
Евгений, спасибо за отличное видео!)
Спасибо за отзыв!