Sergey Kazantsev
Sergey Kazantsev
  • Видео 26
  • Просмотров 174 833
Ошибочные убеждения начинающих разработчиков, Unity, C#, gamedev
Попробовал более разговорный формат, есть несколько вещей, которыми хотелось бы поделиться. Как вам?
Автору на смузи и брокколи
4276 5500 5792 8742 - карта Сбербанка
Тайминги:
00:00 Введение
01:09 Большую часть времени разработчики пишут код?
03:18 ChatGPT, копайлоты и нейросети повышают скилл разработчика?
07:15 Большие амбиции и желание ухватить всё везде и сразу
09:35 Желание быстрых результатов и несерьезное отношение к обучению
12:14 Пренебрежение книгами, статьями и материалами по программированию
15:09 Финал
Просмотров: 3 086

Видео

Паттерн Decorator, Декоратор Unity, C#, gamedev
Просмотров 2,4 тыс.3 месяца назад
Ставь лайк если ООП течёт в твоих венах, раскаляя сердца и вырывается на поверхность! ссылка на гитхаб на проект github.com/Haywaar/PatternDemoStorage - пример с псевдорогалькой Лежит по пути Assets/Patterns/Decorator/GoodExample Автору на смузи и брокколи 4276 5500 5792 8742 - карта Сбербанка Тайминги: 00:00 Введение 00:27 Определение 02:07 UML-схема 04:38 Пример из жизни 06:56 Декоратор как п...
Паттерн Command, Команда, Unity, C#, gamedev
Просмотров 3,1 тыс.5 месяцев назад
Один из самых непростых паттернов на моём канале. Встречайте, паттерн Command! Напишите пожалуйста, насколько вас раздражает звук ибо мне показалось что фильтр шумоподавления неестественно искажает голос и ухудшает восприятие. На этом ролике я полностью фильтр отключил ссылка на гитхаб на проект github.com/Haywaar/ShawarmaFight - проект с шаурмой github.com/Haywaar/PatternDemoStorage - пример с...
Паттерн State, паттерн состояние, Unity C#
Просмотров 4,5 тыс.6 месяцев назад
Новый видосик по паттерну State Ссылка на гитхаб на проект github.com/Haywaar/ShawarmaFight - проект с шаурмой github.com/Haywaar/PatternDemoStorage - пример с башнями Лежит по пути Assets/Patterns/State/GoodExample Автору на кофе и шаурму 4276 5500 5792 8742 - карта Сбербанка Если будут вопросы мой тг @wargy моя почта kazancev.s215@gmail.com Тайминги: 00:00 Введение 00:26 Определение 01:08 При...
Паттерны на практике 2, Zenject для самых маленьких, Unity, C#
Просмотров 3,1 тыс.7 месяцев назад
Наконец-таки разобрал зенджект на практике, как многие из вас просили. Напишите пожалуйста, обратную связь по более живому формату видео. Мне такой формат лично не очень нравится, так как кажется что я много косноязычу и э-каю и бэ-каю, но возможно вам нравится более подробный и не такая сухая подача Ссылка на гитхаб на проект github.com/Haywaar/ShawarmaFight Автору на кофе и шаурму 4276 5500 5...
Паттерны на практике 2, шавушный анонс, Unity, C#
Просмотров 9447 месяцев назад
Завёз вам прогрев о грядущих видеороликах) Надеюсь, понравится) Ссылка на гитхаб на проект github.com/Haywaar/ShawarmaFight Автору на кофе и шаурму 4276 5500 5792 8742 - карта Сбербанка Если будут вопросы мой тг @wargy моя почта kazancev.s215@gmail.com Тайминги: 00:00 Введение 00:29 О чём новая игра? 01:30 Какие темы мы рассмотрим? 04:03 Финал
Zenject, внедрение зависимостей, Unity C#
Просмотров 6 тыс.9 месяцев назад
Как говорится "Давненько тебя не было видно на уличных гонках" Гитхаб на проект с демкой из видео: github.com/Haywaar/PatternDemoStorage Лежит по пути Assets/Patterns/DIExample Assets/Patterns/DIExample_Zenject Там же и демо сцены с контекстом Автору на кофе и шаурму 4276 5500 5792 8742 - карта Сбербанка Если будут вопросы мой тг @wargy моя почта kazancev.s215@gmail.com Тайминги 00:00 Введение ...
Принципы ООП, инкапсуляция, абстракция, наследование, полиморфизм, Unity, C#
Просмотров 12 тыс.Год назад
Решил вместо редких паттернов рассказать самую базу, так как годный материал по этой теме разбросан по всему интернету Гитхаб на проект с демкой из видео: github.com/Haywaar/PatternDemoStorage Лежит по пути Assets/Patterns/OOPExampleBad Assets/Patterns/OOPExampleGood Там и демка с аптечкой и с расчётом стоимости юнитов Автору на кофе и шаурму 4276 5500 5792 8742 - карта Сбербанка Если будут воп...
Vertical Scroller - заключение, Паттерны на практике, DialogManager, Entry Point, Unity C#
Просмотров 2,3 тыс.Год назад
Ох, ребятушки, вроде темы небольшие, но запотеть пришлось знатно. Так как было много именно практики - мало красивых схем и много трансляций записи с кода. Надеюсь, вам понравилось :) Ссылка на гитхаб игры: github.com/Haywaar/VerticalScrollerExample Автору на кофе и шаурму 4276 5500 5792 8742 - карта Сбербанка Если будут вопросы мой тг @wargy моя почта kazancev.s215@gmail.com Тайминги: 00:00 Вв...
Object Pool, Пул объектов, Паттерны на практике, Unity, C#
Просмотров 5 тыс.Год назад
Ссылка на гитхаб игры: github.com/Haywaar/VerticalScrollerExample для пула от юнити прыгайте на ветку UnityPool Ссылка на гитхаб классного EventBus где тоже есть пул github.com/PeturDarri/GenericEventBus/blob/main/Runtime/GenericEventBus.cs Автору на кофе и шаурму 4276 5500 5792 8742 - карта Сбербанка Если будут вопросы мой тг @wargy моя почта kazancev.s215@gmail.com Тайминги: 00:00 Введение 00...
Event Bus, Паттерны на практике, Unity, C#
Просмотров 9 тыс.Год назад
Ссылка на гитхаб игры: github.com/Haywaar/VerticalScrollerExample Ссылка на гитхаб классной но сложной реализации EventBus github.com/PeturDarri/GenericEventBus/blob/main/Runtime/GenericEventBus.cs Автору на кофе и шаурму 4276 5500 5792 8742 - карта Сбербанка Если будут вопросы мой тг @wargy моя почта kazancev.s215@gmail.com Тайминги: 00:00 Введение 00:26 Проблема зависимостей классов 02:00 Опр...
Service Locator, Паттерны на практике, Unity, C#
Просмотров 6 тыс.Год назад
Разобрал один из любимых мною паттернов, которые с точки зрения ООП гигачадов часто может стать анти-паттерном Ссылка на гитхаб: github.com/Haywaar/VerticalScrollerExample Автору на кофе и шаурму 4276 5500 5792 8742 - карта Сбербанка Если будут вопросы мой тг @wargy моя почта kazancev.s215@gmail.com Тайминги: 00:00 Введение 00:22 Проблема: доступ между классами и сложная инициализация 02:15 Опр...
Паттерны на практике, анонс, Unity, C#
Просмотров 2,5 тыс.Год назад
Потихоньку стартую рубрику "Паттерны на практике" и запилил вот такое видео анонс, чтобы подбодрить вас и чуть больше замотивировать себя. Видео по Service Locator ruclips.net/video/1QdOkqBLnp0/видео.html Ссылка на гитхаб: github.com/Haywaar/VerticalScrollerExample Автору на кофе и шаурму 4276 5500 5792 8742 - карта Сбербанка Если будут вопросы мой тг @wargy моя почта kazancev.s215@gmail.com Та...
Model View ViewModel, Модель Вид Модель Вида, Unity, C#
Просмотров 11 тыс.Год назад
Пожалуй, паттерн на который я потратил больше всего времени p.s. Забыл про отписку от OnChanged в примерах, в гитхаб залью правку Гитхаб на проект с демкой из видео: github.com/Haywaar/PatternDemoStorage Лежит по пути Assets/Patterns/MVVMExample_Simple - окно прокачки персонажа Assets/Patterns/MVVMExample - слот машина с режимом реролла Ссылка на UniRx github.com/neuecc/UniRx assetstore.unity.c...
Model View Presenter, MVP, Модель Вид Представитель, С#, Unity
Просмотров 10 тыс.Год назад
А вот и Model View Presenter подъехал! Гитхаб на проект с демкой из видео: github.com/Haywaar/PatternDemoStorage Лежит по пути Assets/Patterns/MVPExample Автору на кофе и шаурму 4276 5500 5792 8742 - карта Сбербанка Если будут вопросы мой тг @wargy моя почта kazancev.s215@gmail.com Тайминги 00:00 Введение 00:28 MV* - семейства 00:48 Дисклеймер 01:16 Проблема MVC 03:03 Проблема MVC на примере с ...
Model View Controller, MVC, Модель Вид Контроллер, C#, Unity
Просмотров 13 тыс.Год назад
Model View Controller, MVC, Модель Вид Контроллер, C#, Unity
Паттерн Abstract Factory, Абстрактная фабрика, C#, Unity
Просмотров 15 тыс.Год назад
Паттерн Abstract Factory, Абстрактная фабрика, C#, Unity
Паттерн Factory Method, Фабричный метод, С#, Unity
Просмотров 13 тыс.Год назад
Паттерн Factory Method, Фабричный метод, С#, Unity
Советы новичкам при поиске первой работы, unity, gamedev
Просмотров 2,6 тыс.Год назад
Советы новичкам при поиске первой работы, unity, gamedev
Dependency Injection, С#, Внедрение зависимостей, unity, gamedev
Просмотров 17 тыс.Год назад
Dependency Injection, С#, Внедрение зависимостей, unity, gamedev
SOLID, 1.5 DIP - Dependency Inversion Principle, Принцип инверсии зависимости, С#, Unity
Просмотров 8 тыс.Год назад
SOLID, 1.5 DIP - Dependency Inversion Principle, Принцип инверсии зависимости, С#, Unity
SOLID, 1.4 ISP - Interface Segregation Principle, Принцип разделения интерфейса , С#, Unity
Просмотров 3,2 тыс.Год назад
SOLID, 1.4 ISP - Interface Segregation Principle, Принцип разделения интерфейса , С#, Unity
SOLID, 1.3 LSP - Liskov Substitution Principle Принцип подстановки Лисков - С#, Unity
Просмотров 4,4 тыс.Год назад
SOLID, 1.3 LSP - Liskov Substitution Principle Принцип подстановки Лисков - С#, Unity
SOLID, 1.2 OCP - Open Closed Principle, Принцип открытости закрытости, С#, Unity
Просмотров 3,8 тыс.Год назад
SOLID, 1.2 OCP - Open Closed Principle, Принцип открытости закрытости, С#, Unity
SOLID, 1.1 SRP - Single Responsibility Principle, Принцип Единственной ответственности, С#, Unity
Просмотров 6 тыс.Год назад
SOLID, 1.1 SRP - Single Responsibility Principle, Принцип Единственной ответственности, С#, Unity
Паттерн Observer, С#, unity, gamedev,
Просмотров 7 тыс.Год назад
Паттерн Observer, С#, unity, gamedev,

Комментарии

  • @kodilda6137
    @kodilda6137 40 минут назад

    Красавчик!

  • @USSR-Lenin-Stalin-Forever
    @USSR-Lenin-Stalin-Forever 7 часов назад

    Я все гадал в чем же отличие MVC и MVP а Вы все по полочкам расставили, вот это мощь!

  • @USSR-Lenin-Stalin-Forever
    @USSR-Lenin-Stalin-Forever 8 часов назад

    Первый раз вижу в Ru сегменте что бы кто то в IT объяснял также круто как CodeMonkey, подписка однозначно!

  • @Mepp3ku
    @Mepp3ku День назад

    А еще инвокер иногда дает кривой санстрайк)

  • @fuuuns
    @fuuuns 4 дня назад

    Пздц хрущевку я уже узнаю по пропорциям , как бы замаскирована она не была )

  • @DemidAleksandrovich
    @DemidAleksandrovich 4 дня назад

    Отлично видео! Может сделать сообщество в телеге?

  • @g4sasha
    @g4sasha 6 дней назад

    7:42 Напомнило рекламу, где 2 фабрики для одной шоколадки соревновались, у кого вкуснее, правая или левая :)

    • @sergeykazantsev1655
      @sergeykazantsev1655 6 дней назад

      Ну тут-то палочки таки отличаются :D

  • @THE666CODERED
    @THE666CODERED 6 дней назад

    Этот канал просто сокровище, наконецто без воды, с примерами не про зарплату и банки а из геймдева, нормальная речь без эээ и нуу, отличная подача материала, обязательно продолжай курс паттернов

  • @g4sasha
    @g4sasha 6 дней назад

    8:45 То есть мне каждому классу, который имплементирует интерфейс ISubject нужно каждый раз прописывать 3 метода, 2 из которых всегда повторяют проверку if и добавление в лист? И ещё сам лист? Я с ума не сойду, если у меня таких классов много? Можно конечно копировать, но это звучит не правильно

    • @sergeykazantsev1655
      @sergeykazantsev1655 6 дней назад

      Далее по видео я показал, куда Observer эволюционировал - на 12:20 можете посмотреть :) Там компактнее получилось

    • @g4sasha
      @g4sasha 5 дней назад

      Спасибо) ​@@sergeykazantsev1655

    • @ПётрЖуков-ж6т
      @ПётрЖуков-ж6т 3 дня назад

      Если нужен "голый" наблюдатель (не через events), то с С#8 мы можем дать в интерфейс типовую реализацию методов. Вещь сомнительная, но если следить за тем, чтобы не просачивалась конкретика в интерфейс, то это можно сделать так. Методы здесь работают только с тем, что есть внутри интерфейса, инкапсуляция не нарушается, но с явной реализацией в интерфейсах нужно быть крайне осторожным. public interface ISubject { ICollection<IObserver> Observers { get; init; } void Attach(IObserver observer) { if(!Observers.Contains(observer)) Observers.Add(observer); } void Detach(IObserver observer) { if (Observers.Contains(observer)) Observers.Remove(observer); } void Notify(); } UPD: Notify все таки лучше оставить нереализованным.

  • @kodilda6137
    @kodilda6137 6 дней назад

    Огонь!

  • @kodilda6137
    @kodilda6137 6 дней назад

    Класс!

  • @АндрейКовынев-м7э
    @АндрейКовынев-м7э 6 дней назад

    Большое спасибо за видео. С нетерпением будем ждать выхода новых.

  • @liubomyrprotsyk7225
    @liubomyrprotsyk7225 6 дней назад

    Якісний контент

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

    как всегда лучший

  • @ElosGloom
    @ElosGloom 9 дней назад

    Интересный формат, спасибо за видео. Будучи новичком в программировании, хотелось бы побольше узнать про собеседования: распространенные вопросы и ошибки, ожидания/реальность как и со стороны работодателя, так и со стороны соискателя/работника

    • @sergeykazantsev1655
      @sergeykazantsev1655 7 дней назад

      Я потихоньку запустил канал сообщества, там был вопрос на эту тему t.me/UnitistNotes Не то, чтобы там прям много полезной инфы - но возможно что-то полезное найдете)

  • @Slagemer1
    @Slagemer1 9 дней назад

    Comfor minus - в голос))

  • @andreyromanov680
    @andreyromanov680 10 дней назад

    как всегда лучший

  • @ГеннадийШушпанов-д1ч

    По поводу недостатков. Здесь мне видится недопонимание назначения шины событий. Вы же начали с того, что поставщики и потребители событий не зависят друг от друга. Если это так, то никакого контроля за событиями не нужно. Вот на шине его и нет. Поставщик создал событие и забыл про него. Подписчик получил событие и обработал его и ему не важно, сколько еще есть подписчиков. Если же Вам контроль понадобился, например порядок обработки, то это означает, что между объектами, использующими шину есть зависимость. Только она здесь неявная.

    • @sergeykazantsev1655
      @sergeykazantsev1655 10 дней назад

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

    • @ГеннадийШушпанов-д1ч
      @ГеннадийШушпанов-д1ч 10 дней назад

      @@sergeykazantsev1655 ну вот, Вы опять протаскиваете зависимость. На шине все равны, там нет первых, вторых или десятых. А "хорошо написанные сигнальные шины" -- это уже расширение, а не наследование :)

  • @andrew_shakhtarin
    @andrew_shakhtarin 15 дней назад

    Та вообще на первой картинке все понятно) четко подобрал)

  • @ГеннадийШушпанов-д1ч

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

    • @sergeykazantsev1655
      @sergeykazantsev1655 10 дней назад

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

    • @ГеннадийШушпанов-д1ч
      @ГеннадийШушпанов-д1ч 10 дней назад

      @@sergeykazantsev1655 возможность избежать копирования при наследовании, скорее побочный эффект. Процедурный подход тоже в плюсы записывал эту возможность. Наследование определяет отношение между абстрактным и детальным. При наследовании потомок является предком. А вот если потомок расширяет предка, то это другое отношение -- расширение. При нем потомок не является предком. Например, прямоугольник является фигурой -- это наследование, а трехмерная точка расширяет двумерную, но не является ей. То, что оба отношения реализованы одинаково лишь случайность. А книги пишут люди со своих точек зрения. С ними можно и поспорить. Не так ли? Мы ведь тоже спорим, несмотря на то, что мнение другого -- написанный текст, маленькая книга.

    • @sergeykazantsev1655
      @sergeykazantsev1655 9 дней назад

      Я ваш аргумент про точки зрения понимаю, Но я считаю что если человек на каком-то деле съел собаку, а всякие Кнуты, Рихтеры, Фаулеры и прочие авторы которые переиздают одну и ту же книгу в течение 20 лет, редактируют, улучшают ее, дискутируют на форумах и тд - это не просто вкусовое мнение - это занесенный на бумагу многолетний опыт, как минимум выслушать стоит. А так если спорить - надо тогда на факты выводить) Почему избегание копирования побочный эффект? Почему именно абстрагирование и возможность отделение абстракции от деталей важнее? А если главное в наследовании это отношение между абстрактным и детальным - то зачем тогда принцип Абстракция - разве они не одно и то же тогда объясняют? Все равно конечно на вкусовщину и личный опыт сойдемся - но мало ли

    • @ГеннадийШушпанов-д1ч
      @ГеннадийШушпанов-д1ч 9 дней назад

      @@sergeykazantsev1655 книги конечно читать надо :). Да, это материализованный опыт. Но всего лишь опыт. И если выводы противоречат вашему опыту, то почему бы не поспорить? Да, в наследовании отношение абстрактный-детальный важнее копирования. Потому что это фундамент ООП, причина для наследования, база для полиморфизма. А то, что на этом можно строки кода экономить -- это побочный эффект. Однако зримый эффект, вот на нём и фокусируются. Вы себе вопрос задайте, как часто причиной наследования была необходимость избежать копирования? Или все же чаще Вы иерархию абстракций строили. Судя по википедии принцип абстракции вообще к наследованию не относится. Он призывает избегать дублирования кода "путем использования абстракций, предоставляемых языком программирования или библиотеками программного обеспечения". Так что абстракции в принципе абстракции, это несколько иное понятие, нежели абстракции в наследовании ООП. Примечание. Я в этом топике только Ваши комментарии вижу почему-то.

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

      Я ваши ответы не удаляю, если что) Для меня в наследовании важно расширение: написать абстрактное ядро, и в потомках уже добавлять уникальное мясцо. Я частенько огребал последствий от дублированного в нескольких местах кода, и наоборот, получал много эстетического удовольствия, когда какую нибудь логику окошек загнал в базовый класс, написал ее в одном месте и забыл. И когда нужно поменять поведение, мне достаточно менять его в одном месте. Создание ядра с логикой, и наращивание другой логики для потомков - вот что я вижу главной частью наследования. И такое наращивание возможно благодаря копированию. Как-то так

  • @Хилючуваки
    @Хилючуваки 17 дней назад

    Балдеж

  • @bogeyman000
    @bogeyman000 20 дней назад

    Хочу заметить то-что у вас суперски получается объяснять паттерны проектирования, спасибо большое за видео по паттернам

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

    Шикарнейшее объяснение! Спасибо!

  • @Тест_ТВ
    @Тест_ТВ 24 дня назад

    Спасибо! Продолжай! Очень доходчиво и интересно (Пишу на Java)

  • @radari7180
    @radari7180 25 дней назад

    Слава богу за то что вы есть в ру сегменте❤

  • @zjcom-bb7ek
    @zjcom-bb7ek 26 дней назад

    Я В ШОКЕ. Столько роликов было просмотрено, а так разъяснить паблик от прайвета никто не смог!

  • @fuuuns
    @fuuuns 26 дней назад

    Я как то приплетал di как устройство компа. Где есть центальная мать и шина которые следят за состоянием устройств и отвечают за взаимодейсивие и разграничивающая ответственность, которой нужно питание, для взаимодействия устройств, устройства это классы синглтоны копнув внутрь такого увидим почти целый мир рекурсивной реальности, похожую на мать диай шину, мироустройства разные/одановковые, все взаимодействуют как пчёлки гармонинчно, которые должны весьма специфично и в определенном порядке (билдеру привет) взаимодействовать. Можно накинуть планки оперативы, добавить pci ультрамеганавороченный класс вывода звука. Слой классов/устройств которые готовят для тебя финальную картинку (выходящие данные, собранный обьект приложения) на монитор. И слой классов внешних девайсов которые можно плуг/эн/плей подключать, отключать, не нарушая сомтояния всего компа. Ну тупо когда комп ребутает или умирает когда ты вставляешь или вынимаеш например флешку или подключаешь монитор.

    • @fuuuns
      @fuuuns 26 дней назад

      А в итоге мы приходим в высшей абстракции - компьютер.

    • @fuuuns
      @fuuuns 26 дней назад

      А компьютер ноутбук, десктоп, планшет, телефон??? Мироустройство матьегоети

    • @fuuuns
      @fuuuns 26 дней назад

      Высшая абстракция это момент большого взрыва )

  • @fuuuns
    @fuuuns 26 дней назад

    А серсислокатор это не фабрика считается? Или фабрика не может хранить свои реализации? Фабрика которая клепает различные по сути сингтоны?

    • @sergeykazantsev1655
      @sergeykazantsev1655 26 дней назад

      Фабрики создают объекты, а сервис локатор предоставляет доступ к уже созданным)

  • @fuuuns
    @fuuuns 26 дней назад

    И к стати да 🙂‍↕️ я из коммерческого веба приперся ) тут те же паттерны, абсолютно, от пхп до питона и го. От интернет магазинов до озерных агрегаторов хайлода.

  • @fuuuns
    @fuuuns 26 дней назад

    Я так понял это банальный ивент рассылки. И это получается ведь фабрика и билдер это по сути декораторы? Или нет? Есть родительский класс ивент. Единый общий Текст, картинка, хтмл, документ, что угодно. От него наследуются фабрикой рассыльщики. Получают данные и каждый начинает слать в свой канал, почта, телеграмм, смс, файрбейз, дебаг логи в клику в кибану. У кажого свои особености там целые династии этих оберток, компоновка данных, подготовка соединения и конект к бд, получение обработка ответов, сверху еще сбор ошибок или поломаных отправок на перезапуск, дальше в слой который поставит недоставленную таску в очередь на новый перезапуск. И так по осп можно абстракцию ивента до бесконечности можно оборачивать в количестве * (количество средств рассылки данных)

    • @fuuuns
      @fuuuns 26 дней назад

      Вот она, сила ООП в своей красе...

    • @fuuuns
      @fuuuns 26 дней назад

      Ну и получается что мы берём результат фабрики - ивент. И с помощью билдера строим поэтапно оборачивая его в декораторы до момента пока не будет готова отправить постзапрос с сообщением в канал. И сверху слои хендлеров ответов что нам сказал рассыльщик, обработки ошибок, иретрай упавших. Слоёный пирог, или лук, не знаю с чем ассоциировать. Как по мне пирог приятнее для запоминания.

    • @sergeykazantsev1655
      @sergeykazantsev1655 25 дней назад

      Рассылка это про взаимодействие между классами. Здесь же(и в абстрактной фабрике) речь про то где порождать и как порождать объекты

    • @fuuuns
      @fuuuns 25 дней назад

      Порождать объекты с заданиями для очереди. Генератор задач для очереди? С которыми работаем потом каждым отдельно в другом месте как с пирожками.

  • @fuuuns
    @fuuuns 26 дней назад

    Невероятно. Я - понял. Для меня декоратор был только звуком. Вроде звучит красиво, важно, но я его ни 🍆я не понимал... Отчаялся что я тупой, и к 40 заработал слабоумие... Блть. Огромное спасибо!! Для меня сейчас благодаря вам, в прямом смысле , истина открылась. Просветление. Сошлись пазлы. Декоратор, ОСП, высший класс, абстракция, полиморфизм, интерфейсы на нижних слоях, ООП... Матерь Божа.... Все как бы и где то знал, но обрывочно и бессвязно. И тут вы. Если бы не тяжёлое положение, задонатил бы в копилку. Но я подписался. У вас теперь надёжный последователь. ) дай бог времена изменятся..

  • @r2d2-vw9wc
    @r2d2-vw9wc 26 дней назад

    Спасибо!

  • @fuuuns
    @fuuuns 26 дней назад

    Мне почему то пришел на ум пример с людьми. Люди - общая абстракция. Далее расы людей, класы низкого уровня - африканская, европеидная, азиатская. У всех есть кожа, уши, ноги руки(сво не в счет 😂). Классы высокого уровня - это баня, рестик прийти поесть может любой из рас классов. А детали есть детали, у людей у кого то есть, у кого то нет - косметика, шмот, ювелирка, личное авто.

    • @sergeykazantsev1655
      @sergeykazantsev1655 26 дней назад

      Тут важно учитывать, что детали характеризуют уникальное поведение объекта. И разные классы низкого уровня имеют уникальное поведение. Шмотки, косметика и ювелирка конечно могут влиять на то как люди действуют, но я бы сказал влияние минимально. Разве что если стереотипы взять за основу: типа все азиаты знают кунг-фу, а африканцы хорошо бегают. Но в жизни это правило распространяется далеко не на всех)

  • @ibnkhaleedone
    @ibnkhaleedone 27 дней назад

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

  • @СвятославПанчишин-с4ч

    Очень нравятся твои видео о паттернах и архитектуре. Подскажи, пожалуйста, что нужно знать джуну, чтобы устроиться на работу

    • @sergeykazantsev1655
      @sergeykazantsev1655 27 дней назад

      Тут зависит от фирмы, список вопросов может сильно меняться. Большинство спрашивает про принципы ООП, SOLID, структуры данных, про Unity(Monobehaviour loop, rigidbody, collider, particleSystem, корутины), просят на бумажке или на пальцах описать 3 паттерна проектирования на твой выбор. Ну и хорошо бы про C# что-то ответить(Что такое интерфейс, в чем разница между структурой и классом и тд)

    • @СвятославПанчишин-с4ч
      @СвятославПанчишин-с4ч 27 дней назад

      @@sergeykazantsev1655 Спасибо, значит я готов)

    • @sergeykazantsev1655
      @sergeykazantsev1655 27 дней назад

      есть тг канал сообщества t.me/UnitistNotes был там опрос - что спрашивают джунов и мидлов. Можете туда после собеса отписаться - что спрашивали. Может это будет полезно остальным

  • @СержПахомов-л4я
    @СержПахомов-л4я Месяц назад

    Спасибо большое за доклад, как всегда уйма информации для размышления. Есть вопросы.. можно ли считать что мvvm превосходит mvp по своему функциональному назначению и что в mvp уже нет необходимости? Имеет ли смысл применения патерна КОМАНДА в контексте mvvm ( в wpf эти патерны используются совместно , но там есть технология binding) . Так же вы сказали что реактивное программирование это не совсем ооп подход, так можете посоветовать какой нибудь ооп подход при разработке простейших графических оконных приложений? Понимаю не ваш формат роликов , но видно что вы в этом хорошо понимаете.

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

      Здравствуйте, да, Command с MVVM в геймдеве можно сочетать, как я понимаю он где-то в ViewModel должен находится Насчёт простейших графических оконных приложений я мало что могу подсказать ибо занимаюсь разработкой игр, но наверное подойдет классический ООП с каким-нибудь сервис локатором

    • @СержПахомов-л4я
      @СержПахомов-л4я 29 дней назад

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

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

    Вопрос такой, есть ли роль зарплаты при трудоустройстве. Мне самому предлагали работу за 50к, я сделал тестовое, за которое мне даже 5к заплатили, но делал я его долго, саму игру сделал дней за 5, но нужно было прикрутить sdk и залить на виртуальную машину, в общем из-за этого сама сдача тестового растянулась на несколько недель, но оффер не дали, т.к. к тому моменту уже нашли других людей. Был опыт, когда я устроился на работу, где платили за проект, обещали 100-150 долларов, делал я его где-то 3 недели и понял, что делать его еще кучу времени. В итоге решил слезть с разработки, так как сделал вывод для себя, что получу мало за возможных 2 месяца работы. Не знаю до сих пор что делать- либо работать за любые деньги, либо минимум все таки поставить по зп(

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

      К сожалению тут слишком много обстоятельств которые могут влиять - так что боюсь советы давать. Всё зависит от кучи факторов: какое у вас финансовое положение, какой у вас уровень разработчика, как много предложений на рынке где нужна проектная работа, как много у вас свободного времени и сил, насколько вам важен приобретённый опыт от написания новых проектов и так далее, какие у вас личностные данные(разные разрабы с одним и тем же уровнем могут сторговаться на разную зп различающуюся в разы)

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

    Насколько применим этот патерн в случае использования ui toolkit, в котором есть свои биндинги? Спасибо

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

      Я с ui toolkit знаком только номинально, но по тому что я видел, мне кажется вполне себе применим. По коду разницы нет особо - перерисовывать монобеховский канвас или монобеховский тулкит

  • @СержПахомов-л4я
    @СержПахомов-л4я Месяц назад

    Спасибо большое за ваш труд. Как всегда на высоте. Хотелось бы что нибудь про чистую архитектуру, с простейшем примером реализации ,например ToDo List. А то концепций и идей много но не всегда понятно можно ли её добиться на практике

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

      Спасибо! У меня есть рубрика паттерны на практике, где я делаю небольшие но полноценные игры Подробного разбора именно архитектуры там нет, но можете посмотреть на гитхабе проекты, две игры уже сделано

  • @СержПахомов-л4я
    @СержПахомов-л4я Месяц назад

    Контент супер, подача огонь! Давно пытаюсь разобраться с разнообразными технологиями построения графических приложений( winforms, wpf ...) и прилогающимся к ним паттернам. Автор нашёл компромис демонстрируя данные технологии на примерах работы с движком unity причём в таком изложение, что становится понятно как всё это перенести на вышеперечисленные десктопные инструменты разработки. Так можно и всё ООП по полочкам разложить😊 что очень актуально, учитывая как мно литературы в наше время и сколько времени нужно тратить чтобы докопаться до истины (не все могут себе это позволить работая по совсем другому профилю). Автору огромное спасибо за материал! Он однозначно годный, т.к преподносится не только структура и правила пользования данным шаблоном, но и рассуждения о причинах перехода к данной технологии, а также суть самой идеи, что соответственно заставляет голову думать, а не просто зазубривать очередной шаблон как аксиому, не развивая объектное мышление что является нормой для начинающих джунов в наши дни. Мне как начинающему джуну остается надеятся что будет больше подобного контента и что автор на гитхабе будет выкладывать проекты не только на unity, но и реализации на других технологиях разработки типа winforms и wpf, всё таки на таких исходниках потыкать былобы куда проще 😅 но это пожелание 😊 а вы слышали что нибудь про mvvmp?

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

      Большое спасибо за такие добрые слова! По мере и сил буду дальше стараться рассказывать про разное. Про WPF и Winforms - к сожалению мне будет трудно рассказывать ибо этим я никогда не занимался Про mvvmp - конкретно не слышал, но слышал про различные модификации mvvm. Наверное mvvmp - это очередная прокачанная версия)

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

    формат отличный, а первая тема формата ещё лучше. Так же хотел бы предложить тему для видео. Когда и как писать скрипты без MonoBehaviour. Может не только мне эта тема раскроет глаза

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

      Спасибо Про MonoBehaviour - я пользуюсь простым правилом - если тебе монобех не нужен - не используй его :) То есть если у вас есть класс которому не нужны ссылки на префабы, не нужен Awake,Start,OnEnable или корутины - и он не должен как объект висеть на сцене - тогда скрипту MonoBehaviour и не нужен.

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

    Огромное спасибо за Ваши видео! Сейчас готовлюсь по ним к собеседованию. 3:45 Если я все правильно понимаю, то как раз таки здесь не нужно делать protected поля, т.к. они всё равно будут в инспекторе отображаться. Да и вроде бы есть рекомендация от Microsoft: вообще никогда не делать поля protected (логика взаимодействия с этими полями должна остаться в родительском и только в родительском классе)

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

      Ну конкретно в этом случае да, _itemImage можно сделать private так как в наследнике мы его не трогаем

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

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

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

    я вас обожаю ❤

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

    вы - настоящий герой. спасибо за ваши труды, безмерно вам благодарен.

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

    Это ни капли не легкий паттерн, если сравнивать с другими.

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

    Наверное да, игровые приложения востребованы, но вот мне например нужны паттерны проектирования с базами данных

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

      А по вашему, есть существенное различие между использованием одного и того же паттерна в геймдеве или в проектировании БД? Или вы имеете ввиду что вам нужны паттерны, заточенные именно под БД?

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

      @@sergeykazantsev1655 я думаю, что спагетти-код, который очень удобен программисту, когда он разрабатывает приложение, очень неудобен компании, которая уволив этого программиста, возьмет другого, и увидев этот спагетти код тот через месяц скажет, что это никчемное ПО и надо переписывать. Но: паттерны были созданы не для удобства разработчиков, давайте не будем лукавить, паттерны были созданы для удобства компаний, нанимающих разработчиков. Культура использования паттернов крайне противоречива, и "неписаных правил талмут", следование которой сродни путешествию по минному полю. Но никто не хочет признать за разработчиками роли исследователей(творцов) потому что им тогда нужно дать больше прав. Последние годы массовый ажиотаж на ИТ специалистов, но знание ли паттернов определяет успешного разработчика. Я извините, за последний месяц изучил три фреймворка и какие там паттерны(особеннов JS)?

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

      @@sergeykazantsev1655 думаю, что разработчику удобнее сделать спагетти-код, который он оставит в наследие компании, где он работал, а пришедший вновь разработчик через пару месяцев работы с этим легаси заявит о том, что здесь все требует переделки. Паттерны - это некая культура взаимодействия в среде, которая хочет стать обыденной, но никак не может ей стать. И эта мода на программирование - когда кодить пытаются научить каждого таракана, так как для компаний разработчиков рабочий ресурс стал непомерно дорог. Я думаю, что паттерны это просто некий сигнал между специалистами, что они говорят на одном языке, однако нигде нет системного обучения этим паттернам. Или ты попадаешь в проект где с нуля нужно быстро что-то лепить или идешь в большой готовый проект и строишь его помаленьку

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

      Ну чтож, на это я могу высказать только свое мнение - а уж вам решать - соглашаться или нет :) 1. 95% задач с которыми сталкиваются разработчики - не уникальны. Паттерны проектирования - это шаблоны решения этих задач. Паттерны проектирования позволяют каждый раз не изобретать велосипед, тем более что высока вероятность что если вы изобретете это сами -вы что-то забудете, недоучтете и придется модифицировать ваше решение несколько раз 2. С моей точки зрения успешного разработчика характеризуют такие черты как: скорость разработки, качество кода и количество проблем которые он может решить. Условно джун пишет медленно, качество кода так себе, и если бага нестандартная - он не знает как ее пофиксить. Сильный разраб пишет быстрее джуна, пишет качественнее и может решить даже неочевидную и глубокую проблему, написав модификацию какого-нибудь драйвера или плагин. Знание паттернов - улучшает качество и скорость разработки кода. 3. Я не понимаю почему вы противопоставляете интересы компаний и разработчиков. У компаний есть цель - разрабатывать продукт как можно быстрее и как можно качественнее. Разработчики подстраиваются под это и ищут решения как это сделать. Мне как разработчику тоже не нравится читать чужой спагетти код и в нем разбираться). Если же вы хотите быть исследователем и иметь полную свободу - пожалуйста - пилите собственные пет проекты, решения и код - экспериментируйте вдоволь.

  • @Ilja.Kiriljuk
    @Ilja.Kiriljuk Месяц назад

    По мне дык самый понятный принцип. Когда-то давно сам пришёл к тому что нужно соблюдать эти правила

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

    Мне очень понравилось видео

  • @ЯрославМудрак-ю6к
    @ЯрославМудрак-ю6к Месяц назад

    Было бы интересно послушать про FSM

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

      Есть паттерн state на канале, это оно)