Браво! Как у тебя не заканчиваются идеи для видео? Git, docker, kafka, микросервисы - все, на мой взгляд, очень понятно и не совсем для зеленых. Сейчас еще и паттерны подъехали. А самое клевое то, что почти все это не привязано к языку. Мне вот, как с++ разработчику, очень приятно. Спасибо!
А что ещё можно разобрать? Помимо всего вышеперечисленного? Что ещё существует такое, не привязанное к языку, но желательное к ознакомлению каждым программистом?
@@RaptorT1V agile, system design, алгоритмы и структуры данных, те же паттерны, гит, докер, но глубже. Так еще многопоточное программирование, grpc, rest, websocket. Это то, что за 2 минуты в голову пришло
@@ozimandias1858 а почему именно все про Agile говорят, а не про Waterfall или RAD или Incremental and Iterative model? Это же из области программной инженерии, я правильно понимаю? Методологии разработки. Что за структуры данных? Что за алгоритмы? Какие-то конкретные, типа Дейкстры или Хаффмана? Какие именно паттерны? Что за многопоточное программирование (асинхронное, что ли?) и GRPC, REST, Websocket? И можно, пожалуйста, ещё примеров? Себе хочу записать, чтобы изучить.
@@RaptorT1V если честно, звучит как троллинг ;-) Для меня agile, потому что большинство компаний по этой методологии работают. А вообще да, можно со многими ознакомиться, понять, в чем разница и т.п. Структуры данных, как и алгоритмы - все с литкода чисто для собеседований. Паттерны - стратегия, билдер, фабрика, абстрактный метод, например. Остальное гуглится.
Красава, Влад, я сразу очень уместно применил его на своем проекте. Был сервис, который при создании сущности делал 3 доп. действия. Прошу продолжать рассказывать нам про подобные фишки
Так то да, классно! Вот только проблема есть, если у нас шина для сообщений нормально не сделана, то сиди и пытайся понять - кому что улетело и почему там что-то выстрелило. Сложность нельзя просто замести под коврик, ее можно перенести в другое место, но это, скорее всего, вызовет накладные расходы. Так что в реальной реальности все немного сложнее.
Не знаю говорил ли ты или нет, но можешь рассказать про свои первые задачи на первой работе, или может расскажешь какие задачи дают совсем новичкам (не стажерам, а работягам) в вашей конторе.
Ложка дегтя :) При использовании паттерна наблюдатель помните, что вы лишь скрываете связи между объектами, а не устраняете их. То, что ранее присутствовало в коде, теперь должно хранится в вашей голове или, что нечасто, в документации.
паттерн классный, но лучше уже сразу рассказать про архитетурное решение EDA - event driven development, но уже есть видео про кафку, где это подробро рассказано. Кстати eda и в монолите работает отлично.
Спасибо за видео, Влад! Как обычно с радостью посмотрел. Если я правильно понимаю, следуя принципам solid, ты как раз будешь придерживаться паттерна наблюдатель?
Если не сложно, хорошо бы еще сразу давать English-вариант всех названий ( а то иногда сомневаешься в переводе- то ли имелся в виду observer, то ли listener ).
События играют мегаклассно в Event driven архитектуре) там ты паблишера и консумеров можешь разносить аж в разные микросервисы) Событие кладется в брокера сообщений, и далее его получают все, кто подписан на данное событие. ВААААУУУУУ
Я совсем не спец, но тоже подумал что зря он не объяснил этот момент. По логике, наблюдатель должен подписаться на события, т.е. в публикаторе нужен метод, который добавит наблюдателя в лист.
@@KhodorisfulТ.е. все наблюдатели у нас бины и они при инициализации листа прыгают в лист ?? Ну тогда это надо в конструкторе класса конкретно прописать каждое добавление экземплярами класса?? Да ещё и тип загрузки прописать как @lazy у каждого компонента ?? А то машина насоздает бинов и запутается в них (((
@@dimaskusidze подключите rx и не мучайтесь и генерацией 100500 классов ради 2+2. В ООП самое плохое что может быть это наследование и создание классов ради создания классов. Этот код их 100 тыс классов ни кто не сможет ни читать и не понимать. В rx есть и observer и map и filter и управление потоками. Причем это все работает ОДИНАКОГО на всех языках. В том же rxjs все тоже самое. Обсервер создается знаком доллара и это очень легко писать и понимать БЕЗ единого класса
Влад, спасибо огромное тебе за твой труд! Хотелось бы узнать, как и можно ли вообще устроиться на работу программистом в Европу если не было карьерного опыта? Буду благодарен за ответ
на самом деле самый популярный паттерн - это стратегия, где-то даже исследование было) и ты как раз его реализовал на самом деле обсервер должен подписываться, на обсерваблы, которые генерируют нотификации, у тебя же прямая передача в потребителя не может фича сама по себе подписаться на сохранение поста, ты в классе сохранения сам добавляешь фичу
По GOF, subject хранит в себе наблюдателей и уведомляет их при наступлении события (метода Notify) с передачей этого события, также в самом наблюдателе может хранится ссылка на наблюдаемый объект (subject), чтобы тот при уведомлении сам мог запрашивать необходимую информацию. Посмотрите книжку там все понятно описано
А вообще, можно создать такой класс наблюдатель, который имеет метод запуска, который на вход получает, не только объект события, но тип события. И после этого можно вообще в основной клас не заходить, а просто добавлять модули :) Прилижение с подгружаемыми модулями :)
Я вот сейчас тоже подумал, что в этом примере не рационально, что продюсер отправляет событие всем наблюдателям в списке.. Лучше отправить одно событие в некий сортировщик который сам решит по типу события что с ним делать и какому наблюдателю отправить.
@@PavelNebo на один и тот же тип события может быть куча разных получателей, каждый из которых обрабатывает его по своему. Эта концепция например широко используется в кафке - на один и тот же топик может быть создано куча консьюмер групп, обрабатывающие одни и те же события по своему, независимо друг от друга.
@@TimLaizaR228 ну я это и описал. Отдельный клас который занимается распределением событий по нужным получателям, а продюсер отправляет одно событие в этот класс
Привет, отдельного курса по Spring у нас нет, работа с этим фреймворком является частью программы интенсивного обучения - Java Буткемпа, где за 4 месяца ты изучаешь все ключевые инструменты и технологии, которые необходимы разработчику, чтобы получить работу! А также 3 октября в 19:00 по мск состоится вебинар - лекция “Основы Spring для начинающих Java Junior”, где разберем основы его работы, заходи по ссылке в шапке профиля!
Привет. Спасибо за информацию. Но думаю, что у тебя неточность в схеме про публикатор. Он же записывает информацию в БД, а не отправляет ее напрямую слушателям, слушатели подписываются на события, т.е. делают запросы к базе. Это так?
Полезная фитча такого паттерна - отмена события.. Если один из наблюдателей проверив условия не одобрил дальнейшие действия с данным обьектом - все остальные будут в курсе и так же пропустят мимо обработки.
"Отдельными компонентами программы являются классы и объекты"? Vlad, ты уверен что хорошо сформулировал свою мысль? Класс - это design-time (если речь не идет про static class - там есть ньюансы), а объект - это run-time.
Добрый день, меня интересует один вопрос на каком устройстве или операционной системе проще работать, виндовс или иос макбук или какой-нибудь Леонова йога 9 вопрос не в деньгах, а в удобстве может совместимости программ, хочется начать заниматься программированием?
Смотря на чем программировать. Если нет прямой необходимости в винде (как в .net и т.п.), то ни в коем случае ее не использовать. Макбук хорош (качество железа на высоте, все эргономично и удобно), на линухе во всех остальных случаях
В начале (5:20) вы указали, что выполняемые действия могут зависеть друг от друга. Но до конца видео так и не указали на решение этой проблемы. Как раз наоборот - Наблюдатели ничего не знают (не должны знать) о других наблюдателях, ровно как и порядок "наблюдения" никак не регламентируется. Также в видео не указано, как организовать "подписку" на событие. Вы утверждаете, что мы исходный класс не правим. Но это не совсем верно - мы же должны добавить нового Наблюдателя в нашу коллекцию наблюдателей.
@АлексейСытник-э9т если что-то происходит автоматически - это все равно происходит. Я к тому, что изменение в исходный класс (регистратор) все равно нужно вносить. Не важно, вручную или автоматически
Но ведь теперь каждый класс наблюдатель будет получать событие, которое может быть не для него и фильтровать его уже внутри себя. Получается некоторый оверхед производительности
если он меняет сам пост, а не просто реагирует на него, то это не обсервер :) Это происходит на этапе создания и сохранения поста, то есть до того как мы создаем событие
@@decimaldelimiter587 говорю по опыту недавно пройденного собеса - когда спросят про паттерны скажи не про фабрику, не про биллер и не про синглтон. Все про них говорят так как они самые очевидные. Скажи про dto например, он в каждом круде применяется и ла это тоже принцип, на моем собесе это оценили. Про враппер ака обертка скажи, или про штуку из видео. Это прям хорошо влияет. Можно сказать в начале про вышеперечисленные, а банальные в конце насыпать просто мол "ну ещё банальные х,у,z но че про них рассказывать и так все знают
Если телеграммом не пользуюсь, то зарегистрироваться не получится? Печально. Вообще мне нужно не сайт сделать, а сервер для Unity приложения (хранение данных по игрокам, регистрация всяких операций типа купил/продал/сделал) соответственно база данных и какой-то апи для взаимодействия из Unity.
Я конечно не 7, а всего лишь 6 лет в индустрии. Но меня ни разу ни на одном собеседовании не спрашивали про этот паттерн. Хотя собеседуюсь довольно часто. Пару раз было такое, что меня спрашивали о том, какие паттерны я знаю и просили рассказать про парочку. Обычно первыми на ум приходили: стратегия, фабрика, синглтон.
Непонятно для других языков. Будет ли считаться "наблюдателем" если класс или микросервис создает посты, другой микросервис или класс мониторит появление новых постов в БД и шлет уведомления и т.д.?
Этот ролик наглядно демонстрирует отсталость Java от C#. В С# весь этот "паттерн" реализован на уровне самого языка (Events) и доступен разработчикам в готовом виде (да еще и с кучей дополнительных фишек) сразу "из коробки". В Java же нужно писать все самому ручками, со всеми погрешностями и дальнейшей дополнительной поддержкой.
Разработчик из Амстердама , скажи хватит ли у тебя оперативки на все объекты в твоей «Мега крутой соц сети»? Если бы ты рассказывал это в контексте SOLID принципов, то в целом ок. Но ты суешь это в идее где у тебя будет много событий , а значит у тебя рано или поздно оперативка кончится и привет memoryExeption
Запишет сообщение в брокер сообщений который доставит его получателям на каком угодно количестве серверов. Да и это очень уж нужно постараться чтобы забить память просто инициализацией обьектов)
Skillfactory отличная школа для изучения базы в программировании, я училась на графического дизайнера с нуля, до этого была экономистом и работаю по новой специальности, хочу пойти на бэкендера опять же в скиллфэктори тк опыт работы с ребятами разработчиками во время обучения мне был комфортен
Могу тоже сказать про sf, потому что они очень хорошие дают материал, и даже если нет никакого опыта помогут, объяснят и направят в нужном направлении изучения и закрепления материала))
Добрый день, меня интересует один вопрос на каком устройстве или операционной системе проще работать, виндовс или иос макбук или какой-нибудь Леонова йога 9 вопрос не в деньгах, а в удобстве может совместимости программ, хочется начать заниматься программированием?
@@Stalker-b7m главное не macos, Линукс лучше всего, а если с ним не дружите, лучше винда на неё много что можно поставить, на крайняк можно через виртуалку запустить Линукс для единичных случаев
Я прошел только за год 10 собеседований и ни на одном не спросили про паттерн этот. Звучит очень клик-бейтно и плюс еще не очень удачный пример и не совсем правильное и очевидное приминение этого паттерна и особенно в заданном контексте сиутации. Очень рад, что умеете снимать контент и продвигать его, но пригласите, пожалуйста экспертов еще для проверки сценариев. Потому что подача красивая и быстрая, но суть некачественная. А ведь было бы полезно иногда обновлять свои знания какие-то таким образом.
Какие "собесы"?! Пришел программист. В каких проектах вы принимали участие, в каких фирмах? Запрограммируйте вот эту задачу за 15 минут. Кто будет экзаменовать программиста по знанию языка программирования? Только с дуба рухнувший!😂 А если экзаменуют, бежать из такого дурдома без оглядки.😅
@ГеннадийШушпанов-д1ч Возможно. Однако пресловутые тесты IQ не случайно имеют ограничение по времени выполнения. Решение задач за деньги должно быть производительным. )) В программировании, которое теперь предпочитают называть "написанием кода", подчеркивая этим банальность этого занятия и отсутствие в нем таорческого начала, приобретает едва ли не главенствующее значение производительность. Прошли времена "суперпрограммистов", серенький руководитель предпочитает иметь дело с программистами того же оттенка, главное, чтобы они работали вместе и укладывались в поставленные им сроки. Есть мнение, что с появлением ИИ этот процесс станет еше более рутинным. Много также говорится об индийских программистах, которые пишут удивительно быстро. По этому скорость "кодирования" сейчас становится для работодателя важным показателем профессионализма програмииста. И тест на время, при всей его пошлости, имеет определенный смысл.
Отлично! Давай продолжать разбирать паттерны в таком же формате!
Круто 👍 Спасибо тебе, Влад, за контент. И всё таки, выпуск про Redis ждём)
Браво! Как у тебя не заканчиваются идеи для видео? Git, docker, kafka, микросервисы - все, на мой взгляд, очень понятно и не совсем для зеленых. Сейчас еще и паттерны подъехали. А самое клевое то, что почти все это не привязано к языку. Мне вот, как с++ разработчику, очень приятно. Спасибо!
А что ещё можно разобрать? Помимо всего вышеперечисленного?
Что ещё существует такое, не привязанное к языку, но желательное к ознакомлению каждым программистом?
@@RaptorT1V agile, system design, алгоритмы и структуры данных, те же паттерны, гит, докер, но глубже. Так еще многопоточное программирование, grpc, rest, websocket. Это то, что за 2 минуты в голову пришло
@@ozimandias1858 а почему именно все про Agile говорят, а не про Waterfall или RAD или Incremental and Iterative model? Это же из области программной инженерии, я правильно понимаю? Методологии разработки.
Что за структуры данных?
Что за алгоритмы? Какие-то конкретные, типа Дейкстры или Хаффмана?
Какие именно паттерны?
Что за многопоточное программирование (асинхронное, что ли?) и GRPC, REST, Websocket?
И можно, пожалуйста, ещё примеров? Себе хочу записать, чтобы изучить.
@@RaptorT1V если честно, звучит как троллинг ;-)
Для меня agile, потому что большинство компаний по этой методологии работают. А вообще да, можно со многими ознакомиться, понять, в чем разница и т.п.
Структуры данных, как и алгоритмы - все с литкода чисто для собеседований.
Паттерны - стратегия, билдер, фабрика, абстрактный метод, например.
Остальное гуглится.
Красава, Влад, я сразу очень уместно применил его на своем проекте. Был сервис, который при создании сущности делал 3 доп. действия. Прошу продолжать рассказывать нам про подобные фишки
я почему-то сначала думал, что он говорит про синглтон, я думал, что именно он самый популярный паттерн
Чаще всего это самый популярный антипаттерн)
самый нерекомендуемый))
Да, самый полуполярный среди тех, кто второй раз слышит слово "паттерн"
Супер! 70% ролика - объясняет саму суть для опытного флаттерфовщика!
Я наконец понял, как называлось то, что часто применял в своих проектах, но не знал, что у этого есть отдельное название)
Можно где то ваши проекты скачать или посмотреть в интернете?😂
@@alexgavril385 ты что это секретные пет проекты под NDA
@@alexgavril385 можно
А будут видео именно про объяснение разных паттернов? Было бы круто))
Я тоже хочу больше такого контента!
Например GRASP, SOLID
Я об порождающих, структурных и поведенческих)
@@kvaselaпро solid есть видео. Всё четко на примерах разобрано.
@@kvasela SOLID это принципы, а не паттерны.
Супер объяснение! И графика оболденная!!! Спасибо за видео большое!
Жду других патернов!!! Можно было бы целый плей лист! Еще раз спасибо!
Не хватило только о том как эти обсерверы перечислять и передавать в класс. А так все классно и наглядно рассказано 👍
Отличное видео! Всё понятно. Поймал себя на мысли, что никогда так захватывающе не смог бы объяснять паттерны программирования😁
Так то да, классно! Вот только проблема есть, если у нас шина для сообщений нормально не сделана, то сиди и пытайся понять - кому что улетело и почему там что-то выстрелило. Сложность нельзя просто замести под коврик, ее можно перенести в другое место, но это, скорее всего, вызовет накладные расходы. Так что в реальной реальности все немного сложнее.
Не знаю говорил ли ты или нет, но можешь рассказать про свои первые задачи на первой работе, или может расскажешь какие задачи дают совсем новичкам (не стажерам, а работягам) в вашей конторе.
Ложка дегтя :) При использовании паттерна наблюдатель помните, что вы лишь скрываете связи между объектами, а не устраняете их. То, что ранее присутствовало в коде, теперь должно хранится в вашей голове или, что нечасто, в документации.
паттерн классный, но лучше уже сразу рассказать про архитетурное решение EDA - event driven development, но уже есть видео про кафку, где это подробро рассказано. Кстати eda и в монолите работает отлично.
Нужно бооольше таких разборов разных паттернов))
Спасибо за видео, Влад!
Как обычно с радостью посмотрел.
Если я правильно понимаю, следуя принципам solid, ты как раз будешь придерживаться паттерна наблюдатель?
Бомба! Реально увлекательно! Спасибо за видос!
Понравилось! Рассказывай еще про паттерны)
Классно было бы еще рассказать об системном и бизнес аналике,их работу,основы,принципы,от лица бэкэнд разраба
Если не сложно, хорошо бы еще сразу давать English-вариант всех названий ( а то иногда сомневаешься в переводе- то ли имелся в виду observer, то ли listener ).
Круто. На самом деле прикольно будет узнать это на практисе. Жаль что я не Java, но и на шарпе интересно)
Одно и тоже
Уж шарпист-то java, и наоборот, может читать как никто другой.
Я чуть чаем не подавился когда в конце таки сказал что ты шарпист :D ахах, тролль 80го уровня
суть паттернов и причины применений везде одинаковые, будь то шапы, джава, пыха, питон...
Спасибо , интересный урок . Возможно ты сделаешь еще видео про другие паттерны
События играют мегаклассно в Event driven архитектуре) там ты паблишера и консумеров можешь разносить аж в разные микросервисы)
Событие кладется в брокера сообщений, и далее его получают все, кто подписан на данное событие. ВААААУУУУУ
супер объяснение! запишите еще такие же видео про другие паттерны, пожалуйста
Аж кайфанул от подачи...) -> List(Действие). Лайк extends Действие. Подписка extends Действие. Уведомления extends Действие. =)))
Второй вариант паблишить через ивенты спринга и вешать листенеры в каждой новой фиче. Но этот вариант более понятен для восприятия
Объяснение и анимации топ. Очень хочется видео и про другие паттерны)
Смотрю уже второе видео, Влад, я поражен на сколько сценарий ролика читает мои возникающие вопросы)
Огонь! Очень полезное и понятное видео, спасибо!
Очень доступным языком объяснил. Круто!🔥
Годнота, практически никогда не ставлю лайк и не подписуюсь, а тут парень просто заслужил! Уважение и благодарность!
Подскажите пожалуйста , а как наблюдатели дружно запрыгивают в list класса PostSaver?? Им же надо там откуда-то взяться ...
Я совсем не спец, но тоже подумал что зря он не объяснил этот момент. По логике, наблюдатель должен подписаться на события, т.е. в публикаторе нужен метод, который добавит наблюдателя в лист.
либо при инициализации приложения всех обсерверов цепляешь, либо можно это динамически через метод класса добавлять-убирать
DI контейнер. Реализация паттерна Inversion of control
@@KhodorisfulТ.е. все наблюдатели у нас бины и они при инициализации листа прыгают в лист ?? Ну тогда это надо в конструкторе класса конкретно прописать каждое добавление экземплярами класса?? Да ещё и тип загрузки прописать как @lazy у каждого компонента ?? А то машина насоздает бинов и запутается в них (((
@@dimaskusidze подключите rx и не мучайтесь и генерацией 100500 классов ради 2+2. В ООП самое плохое что может быть это наследование и создание классов ради создания классов. Этот код их 100 тыс классов ни кто не сможет ни читать и не понимать. В rx есть и observer и map и filter и управление потоками. Причем это все работает ОДИНАКОГО на всех языках. В том же rxjs все тоже самое. Обсервер создается знаком доллара и это очень легко писать и понимать БЕЗ единого класса
Влад, спасибо огромное тебе за твой труд!
Хотелось бы узнать, как и можно ли вообще устроиться на работу программистом в Европу если не было карьерного опыта?
Буду благодарен за ответ
Влад, спасибо! Хорошее объяснение. Даже я понял:)
Один из моих любимых шаблонов - часто его использую. Еще есть стратегия, тоже круто паттерн
на самом деле самый популярный паттерн - это стратегия, где-то даже исследование было) и ты как раз его реализовал на самом деле
обсервер должен подписываться, на обсерваблы, которые генерируют нотификации, у тебя же прямая передача в потребителя
не может фича сама по себе подписаться на сохранение поста, ты в классе сохранения сам добавляешь фичу
По GOF, subject хранит в себе наблюдателей и уведомляет их при наступлении события (метода Notify) с передачей этого события, также в самом наблюдателе может хранится ссылка на наблюдаемый объект (subject), чтобы тот при уведомлении сам мог запрашивать необходимую информацию. Посмотрите книжку там все понятно описано
Влад, привет! Лекцию можно будет посмотреть в записи? Только сегодня увидел твоё видео, а лекция была вчера 😢
Привет, 3 октября проводим повтор, залетай по ссылке в описании, успеешь!
@@fakng-engineer отлично, спасибо!
топ видео! а как ты делаешь такие крутые анимации ?
Очень круто) но как нам после создания нового наблюдателя добавить его в лист наблюдателей PostSaver?
Если речь о Spring, то есть такое понятие как "Внедрение зависимостей". Spring сам создаст список всех наблюдателей.
ага, этот момент не расскрыт
Подача отличная. Если бы смотрел такое впервые, то зашло бы.
Классно!
А вообще, можно создать такой класс наблюдатель, который имеет метод запуска, который на вход получает, не только объект события, но тип события.
И после этого можно вообще в основной клас не заходить, а просто добавлять модули :)
Прилижение с подгружаемыми модулями :)
Я вот сейчас тоже подумал, что в этом примере не рационально, что продюсер отправляет событие всем наблюдателям в списке.. Лучше отправить одно событие в некий сортировщик который сам решит по типу события что с ним делать и какому наблюдателю отправить.
@@PavelNebo на один и тот же тип события может быть куча разных получателей, каждый из которых обрабатывает его по своему. Эта концепция например широко используется в кафке - на один и тот же топик может быть создано куча консьюмер групп, обрабатывающие одни и те же события по своему, независимо друг от друга.
@@TimLaizaR228 ну я это и описал. Отдельный клас который занимается распределением событий по нужным получателям, а продюсер отправляет одно событие в этот класс
@@PavelNebo вы придумали кафку и систему очередей в целом))
ваще, крутой видос
Влад, спасибо за объяснение! Ты крутой 🔥
прекрасный ролик - ставлю класс!)
Мишустин Влад, ты молодец, отлично сделал
+ За паттерны, у тебя хорошо получается)
Владик, ты топчик! спасибо!
Zdravstvuyte. Skolko stoit kurs Spring ?
Привет, отдельного курса по Spring у нас нет, работа с этим фреймворком является частью программы интенсивного обучения - Java Буткемпа, где за 4 месяца ты изучаешь все ключевые инструменты и технологии, которые необходимы разработчику, чтобы получить работу!
А также 3 октября в 19:00 по мск состоится вебинар - лекция “Основы Spring для начинающих Java Junior”, где разберем основы его работы, заходи по ссылке в шапке профиля!
Привет. Спасибо за информацию. Но думаю, что у тебя неточность в схеме про публикатор. Он же записывает информацию в БД, а не отправляет ее напрямую слушателям, слушатели подписываются на события, т.е. делают запросы к базе. Это так?
четко расскзал, про паттерн "посетитель" (visitor) расскажи так же
Полезная фитча такого паттерна - отмена события..
Если один из наблюдателей проверив условия не одобрил дальнейшие действия с данным обьектом - все остальные будут в курсе и так же пропустят мимо обработки.
чувак, инфа огонь, мерси!
"Отдельными компонентами программы являются классы и объекты"? Vlad, ты уверен что хорошо сформулировал свою мысль? Класс - это design-time (если речь не идет про static class - там есть ньюансы), а объект - это run-time.
Спасибо за видео. Хотя с первого раза не совсем понял. Но у меня и с ООП не оч хорошо, т.к. пока не требуется нигде - всё на процедурном...
Добрый день, меня интересует один вопрос на каком устройстве или операционной системе проще работать, виндовс или иос макбук или какой-нибудь Леонова йога 9 вопрос не в деньгах, а в удобстве может совместимости программ, хочется начать заниматься программированием?
Смотря на чем программировать. Если нет прямой необходимости в винде (как в .net и т.п.), то ни в коем случае ее не использовать. Макбук хорош (качество железа на высоте, все эргономично и удобно), на линухе во всех остальных случаях
@@b33blebroxа чем винда плоха?
Я думал, что чамый популярный паттерн - это MVC, да так оно и есть
Это база везде
В начале (5:20) вы указали, что выполняемые действия могут зависеть друг от друга. Но до конца видео так и не указали на решение этой проблемы. Как раз наоборот - Наблюдатели ничего не знают (не должны знать) о других наблюдателях, ровно как и порядок "наблюдения" никак не регламентируется.
Также в видео не указано, как организовать "подписку" на событие. Вы утверждаете, что мы исходный класс не правим. Но это не совсем верно - мы же должны добавить нового Наблюдателя в нашу коллекцию наблюдателей.
Если работать через авинжект спринга например, то это произойдёт автоматически
@АлексейСытник-э9т если что-то происходит автоматически - это все равно происходит. Я к тому, что изменение в исходный класс (регистратор) все равно нужно вносить. Не важно, вручную или автоматически
Сурер понятно и полезно!
Но ведь теперь каждый класс наблюдатель будет получать событие, которое может быть не для него и фильтровать его уже внутри себя. Получается некоторый оверхед производительности
Но ведь наблюдатель добавления рекламы в пост должен менять сам пост, поэтому он должен выполниться самым первым, а это уже декоратор какой-то
если он меняет сам пост, а не просто реагирует на него, то это не обсервер :) Это происходит на этапе создания и сохранения поста, то есть до того как мы создаем событие
Теперь понял почему старое железо тормозит. Из за сотен наблюдателей.
12:40 Это называется Несвязность
Странный паттерн наблюдатель, по факту он не наблюдает, а его пинают. А весь толк даёт наследование с полиморфизмом.
По-моему, самый популярный - синглтон.
@@decimaldelimiter587 говорю по опыту недавно пройденного собеса - когда спросят про паттерны скажи не про фабрику, не про биллер и не про синглтон. Все про них говорят так как они самые очевидные. Скажи про dto например, он в каждом круде применяется и ла это тоже принцип, на моем собесе это оценили. Про враппер ака обертка скажи, или про штуку из видео. Это прям хорошо влияет. Можно сказать в начале про вышеперечисленные, а банальные в конце насыпать просто мол "ну ещё банальные х,у,z но че про них рассказывать и так все знают
@@ВысоцкийАндрей-г5э согласен :) про синглтон можно упомянуть если уже назвал штук 5 паттернов :) так до кучи
@@ВысоцкийАндрей-г5э Я ж не говорю, что он самый эффектный для собеседования; скорее, наоборот - один из самых тривиальных (=популярных).
@@decimaldelimiter587 вообще синглтон это АНТИпаттерн
Классное видео, спасибо
круто!!! спасибо!!!
Слушай друг, откуда у тебя столько времени на все это ?
Если телеграммом не пользуюсь, то зарегистрироваться не получится? Печально.
Вообще мне нужно не сайт сделать, а сервер для Unity приложения (хранение данных по игрокам, регистрация всяких операций типа купил/продал/сделал) соответственно база данных и какой-то апи для взаимодействия из Unity.
Зарегистрироваться получится, в телеграме общение и всякие приятные бонусы, но все необходимые ссылки дублируются на почту
Дело говорит)
Сохранение в базу данных лучше сделать в виде наблюдателя, а не хардкодить в методе создания ивента.
Почему вы указали на 5:54 минуте последовательность: Событие + Публикатор + Наблюдатель ?
Это ошибка или я что-то упустила?
Нет чувак!Самый популярный паттерн стратегия.
Я знаю где не спросят о нем - на разработчика с использованием библиотеки Qt, ведь она основывается на нем
Я конечно не 7, а всего лишь 6 лет в индустрии. Но меня ни разу ни на одном собеседовании не спрашивали про этот паттерн. Хотя собеседуюсь довольно часто.
Пару раз было такое, что меня спрашивали о том, какие паттерны я знаю и просили рассказать про парочку. Обычно первыми на ум приходили: стратегия, фабрика, синглтон.
+
+
Зарегистрироваться на вебинар невозможно, форма внизу не отображается, только призыв написан.
Попробуй включить впн, или отключить ADblock в браузере, должно помочь
Непонятно для других языков. Будет ли считаться "наблюдателем" если класс или микросервис создает посты, другой микросервис или класс мониторит появление новых постов в БД и шлет уведомления и т.д.?
Этот ролик наглядно демонстрирует отсталость Java от C#. В С# весь этот "паттерн" реализован на уровне самого языка (Events) и доступен разработчикам в готовом виде (да еще и с кучей дополнительных фишек) сразу "из коробки". В Java же нужно писать все самому ручками, со всеми погрешностями и дальнейшей дополнительной поддержкой.
С# сейчас часто применяется в проектах?
@@userxh-sg6cg Смотря в каких проектах. В крупных компаниях для реализации больших сложных проектах - часто!
В конце видео гоготнул со слова лаконичный)
Разработчик из Амстердама , скажи хватит ли у тебя оперативки на все объекты в твоей «Мега крутой соц сети»? Если бы ты рассказывал это в контексте SOLID принципов, то в целом ок. Но ты суешь это в идее где у тебя будет много событий , а значит у тебя рано или поздно оперативка кончится и привет memoryExeption
Запишет сообщение в брокер сообщений который доставит его получателям на каком угодно количестве серверов. Да и это очень уж нужно постараться чтобы забить память просто инициализацией обьектов)
Патерны-матерны это хорошо.
Но было бы в 💯 раз полезно, если бы вы сделали хотя бы 5 приложений с объяснением🎉
А то на одной "воде" далеко не уедешь ❤
Сингальтон
@@ЮрийДымов-у6щ о, это де отсылка для своих
Самый главный паттерн - это абстрактный метод
так и не сказано, что же это за зверь паттерн программмирования
Добрый день, Вы не подскажите курсы программирования для самых нулей?
Skillfactory отличная школа для изучения базы в программировании, я училась на графического дизайнера с нуля, до этого была экономистом и работаю по новой специальности, хочу пойти на бэкендера опять же в скиллфэктори тк опыт работы с ребятами разработчиками во время обучения мне был комфортен
Могу тоже сказать про sf, потому что они очень хорошие дают материал, и даже если нет никакого опыта помогут, объяснят и направят в нужном направлении изучения и закрепления материала))
Добрый день, меня интересует один вопрос на каком устройстве или операционной системе проще работать, виндовс или иос макбук или какой-нибудь Леонова йога 9 вопрос не в деньгах, а в удобстве может совместимости программ, хочется начать заниматься программированием?
@@Stalker-b7m главное не macos, Линукс лучше всего, а если с ним не дружите, лучше винда на неё много что можно поставить, на крайняк можно через виртуалку запустить Линукс для единичных случаев
Я прошел только за год 10 собеседований и ни на одном не спросили про паттерн этот. Звучит очень клик-бейтно и плюс еще не очень удачный пример и не совсем правильное и очевидное приминение этого паттерна и особенно в заданном контексте сиутации. Очень рад, что умеете снимать контент и продвигать его, но пригласите, пожалуйста экспертов еще для проверки сценариев. Потому что подача красивая и быстрая, но суть некачественная. А ведь было бы полезно иногда обновлять свои знания какие-то таким образом.
звук печатающей машинки в левом ухе честно отвлекает
Братан, ты крут как яйца вкрутую) Как целый мешок яиц вкрутую!) Очень полезный видос! Спасибо)
актуалка для меня, лаййййк, подписка
Сохранять пост стоило бы тоже по евенту, и выдавать другое событие
Singleton наше все
У меня вопрос, разве этот паттерн в таком исполнении, не нарушает принцип подстановки Лисков?
А в чем проблема? В каком месте у вас сомнения?
Спасибо!
Брат, моно побольше патернов
в рамках создания поста, новую фичу в список то нужно прописать, а не просто новую создать :)
Список наблюдателей заполняется за пределами PostSaver'а. Тут только ссылка на него.
Сюда бы кафку)
@@rkpstam да это буквально она и естьив глобальном смысле. Кафкато реализация данного принципа
Rmq, kafka, да))
Там и слушатели и эвенты
класс постов нарушает srp из solid
Спс за видос, норм обьяснил
Какие "собесы"?! Пришел программист. В каких проектах вы принимали участие, в каких фирмах? Запрограммируйте вот эту задачу за 15 минут. Кто будет экзаменовать программиста по знанию языка программирования? Только с дуба рухнувший!😂 А если экзаменуют, бежать из такого дурдома без оглядки.😅
Программирование не любит суеты. Просьба "Запрограммируйте вот эту задачу за 15 минут" такой же повод "бежать из такого дурдома без оглядки".
@ГеннадийШушпанов-д1ч Возможно. Однако пресловутые тесты IQ не случайно имеют ограничение по времени выполнения. Решение задач за деньги должно быть производительным. )) В программировании, которое теперь предпочитают называть "написанием кода", подчеркивая этим банальность этого занятия и отсутствие в нем таорческого начала, приобретает едва ли не главенствующее значение производительность. Прошли времена "суперпрограммистов", серенький руководитель предпочитает иметь дело с программистами того же оттенка, главное, чтобы они работали вместе и укладывались в поставленные им сроки. Есть мнение, что с появлением ИИ этот процесс станет еше более рутинным. Много также говорится об индийских программистах, которые пишут удивительно быстро. По этому скорость "кодирования" сейчас становится для работодателя важным показателем профессионализма програмииста. И тест на время, при всей его пошлости, имеет определенный смысл.