- Видео 26
- Просмотров 174 833
Sergey Kazantsev
Германия
Добавлен 23 ноя 2016
Делаю короткие видео по программированию на Unity C#.
Основной фокус уделяю паттернам проектирования и построению архитектуры в играх.
На 2023 год я работаю Unity разработчиком более 7 лет.
Основной фокус уделяю паттернам проектирования и построению архитектуры в играх.
На 2023 год я работаю Unity разработчиком более 7 лет.
Ошибочные убеждения начинающих разработчиков, Unity, C#, gamedev
Попробовал более разговорный формат, есть несколько вещей, которыми хотелось бы поделиться. Как вам?
Автору на смузи и брокколи
4276 5500 5792 8742 - карта Сбербанка
Тайминги:
00:00 Введение
01:09 Большую часть времени разработчики пишут код?
03:18 ChatGPT, копайлоты и нейросети повышают скилл разработчика?
07:15 Большие амбиции и желание ухватить всё везде и сразу
09:35 Желание быстрых результатов и несерьезное отношение к обучению
12:14 Пренебрежение книгами, статьями и материалами по программированию
15:09 Финал
Автору на смузи и брокколи
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,
Красавчик!
Я все гадал в чем же отличие MVC и MVP а Вы все по полочкам расставили, вот это мощь!
Первый раз вижу в Ru сегменте что бы кто то в IT объяснял также круто как CodeMonkey, подписка однозначно!
А еще инвокер иногда дает кривой санстрайк)
А иногда даже не кривой)
Пздц хрущевку я уже узнаю по пропорциям , как бы замаскирована она не была )
Увы, это не хрущёвка :P
Отлично видео! Может сделать сообщество в телеге?
Уже есть) t.me/UnitistNotes
7:42 Напомнило рекламу, где 2 фабрики для одной шоколадки соревновались, у кого вкуснее, правая или левая :)
Ну тут-то палочки таки отличаются :D
Этот канал просто сокровище, наконецто без воды, с примерами не про зарплату и банки а из геймдева, нормальная речь без эээ и нуу, отличная подача материала, обязательно продолжай курс паттернов
8:45 То есть мне каждому классу, который имплементирует интерфейс ISubject нужно каждый раз прописывать 3 метода, 2 из которых всегда повторяют проверку if и добавление в лист? И ещё сам лист? Я с ума не сойду, если у меня таких классов много? Можно конечно копировать, но это звучит не правильно
Далее по видео я показал, куда Observer эволюционировал - на 12:20 можете посмотреть :) Там компактнее получилось
Спасибо) @@sergeykazantsev1655
Если нужен "голый" наблюдатель (не через 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 все таки лучше оставить нереализованным.
Огонь!
Класс!
Большое спасибо за видео. С нетерпением будем ждать выхода новых.
Якісний контент
как всегда лучший
Интересный формат, спасибо за видео. Будучи новичком в программировании, хотелось бы побольше узнать про собеседования: распространенные вопросы и ошибки, ожидания/реальность как и со стороны работодателя, так и со стороны соискателя/работника
Я потихоньку запустил канал сообщества, там был вопрос на эту тему t.me/UnitistNotes Не то, чтобы там прям много полезной инфы - но возможно что-то полезное найдете)
Comfor minus - в голос))
как всегда лучший
По поводу недостатков. Здесь мне видится недопонимание назначения шины событий. Вы же начали с того, что поставщики и потребители событий не зависят друг от друга. Если это так, то никакого контроля за событиями не нужно. Вот на шине его и нет. Поставщик создал событие и забыл про него. Подписчик получил событие и обработал его и ему не важно, сколько еще есть подписчиков. Если же Вам контроль понадобился, например порядок обработки, то это означает, что между объектами, использующими шину есть зависимость. Только она здесь неявная.
На моём опыте были проблемы с порядком уведомления подписчиков, они же race-conditions. Когда две системы подписаны на одно и то-же событие, но необходимо чтобы первая система среагировала раньше второй. В целом, хорошо написанные сигнальные шины позволяют это сделать.
@@sergeykazantsev1655 ну вот, Вы опять протаскиваете зависимость. На шине все равны, там нет первых, вторых или десятых. А "хорошо написанные сигнальные шины" -- это уже расширение, а не наследование :)
Та вообще на первой картинке все понятно) четко подобрал)
Я бы все же не сопоставлял наследование с копированием, пусть даже и умным. Ведь ниже Вы нашли другое сопоставление, отметив, что производный класс является и классом-предком. А раз он является, то и имеет все, что предку положено, без всякого копирования.
Но производный класс же не просто является классом предком, но и позволяет расширять его. Сколько читал разных книг на эту тему, у меня сложилось ощущение, что везде основной фокус обращен на то, что наследование позволяет избегать копирования одного и того же кода и делает код более гибким.
@@sergeykazantsev1655 возможность избежать копирования при наследовании, скорее побочный эффект. Процедурный подход тоже в плюсы записывал эту возможность. Наследование определяет отношение между абстрактным и детальным. При наследовании потомок является предком. А вот если потомок расширяет предка, то это другое отношение -- расширение. При нем потомок не является предком. Например, прямоугольник является фигурой -- это наследование, а трехмерная точка расширяет двумерную, но не является ей. То, что оба отношения реализованы одинаково лишь случайность. А книги пишут люди со своих точек зрения. С ними можно и поспорить. Не так ли? Мы ведь тоже спорим, несмотря на то, что мнение другого -- написанный текст, маленькая книга.
Я ваш аргумент про точки зрения понимаю, Но я считаю что если человек на каком-то деле съел собаку, а всякие Кнуты, Рихтеры, Фаулеры и прочие авторы которые переиздают одну и ту же книгу в течение 20 лет, редактируют, улучшают ее, дискутируют на форумах и тд - это не просто вкусовое мнение - это занесенный на бумагу многолетний опыт, как минимум выслушать стоит. А так если спорить - надо тогда на факты выводить) Почему избегание копирования побочный эффект? Почему именно абстрагирование и возможность отделение абстракции от деталей важнее? А если главное в наследовании это отношение между абстрактным и детальным - то зачем тогда принцип Абстракция - разве они не одно и то же тогда объясняют? Все равно конечно на вкусовщину и личный опыт сойдемся - но мало ли
@@sergeykazantsev1655 книги конечно читать надо :). Да, это материализованный опыт. Но всего лишь опыт. И если выводы противоречат вашему опыту, то почему бы не поспорить? Да, в наследовании отношение абстрактный-детальный важнее копирования. Потому что это фундамент ООП, причина для наследования, база для полиморфизма. А то, что на этом можно строки кода экономить -- это побочный эффект. Однако зримый эффект, вот на нём и фокусируются. Вы себе вопрос задайте, как часто причиной наследования была необходимость избежать копирования? Или все же чаще Вы иерархию абстракций строили. Судя по википедии принцип абстракции вообще к наследованию не относится. Он призывает избегать дублирования кода "путем использования абстракций, предоставляемых языком программирования или библиотеками программного обеспечения". Так что абстракции в принципе абстракции, это несколько иное понятие, нежели абстракции в наследовании ООП. Примечание. Я в этом топике только Ваши комментарии вижу почему-то.
Я ваши ответы не удаляю, если что) Для меня в наследовании важно расширение: написать абстрактное ядро, и в потомках уже добавлять уникальное мясцо. Я частенько огребал последствий от дублированного в нескольких местах кода, и наоборот, получал много эстетического удовольствия, когда какую нибудь логику окошек загнал в базовый класс, написал ее в одном месте и забыл. И когда нужно поменять поведение, мне достаточно менять его в одном месте. Создание ядра с логикой, и наращивание другой логики для потомков - вот что я вижу главной частью наследования. И такое наращивание возможно благодаря копированию. Как-то так
Балдеж
Хочу заметить то-что у вас суперски получается объяснять паттерны проектирования, спасибо большое за видео по паттернам
Шикарнейшее объяснение! Спасибо!
Спасибо! Продолжай! Очень доходчиво и интересно (Пишу на Java)
Слава богу за то что вы есть в ру сегменте❤
Я В ШОКЕ. Столько роликов было просмотрено, а так разъяснить паблик от прайвета никто не смог!
Я как то приплетал di как устройство компа. Где есть центальная мать и шина которые следят за состоянием устройств и отвечают за взаимодейсивие и разграничивающая ответственность, которой нужно питание, для взаимодействия устройств, устройства это классы синглтоны копнув внутрь такого увидим почти целый мир рекурсивной реальности, похожую на мать диай шину, мироустройства разные/одановковые, все взаимодействуют как пчёлки гармонинчно, которые должны весьма специфично и в определенном порядке (билдеру привет) взаимодействовать. Можно накинуть планки оперативы, добавить pci ультрамеганавороченный класс вывода звука. Слой классов/устройств которые готовят для тебя финальную картинку (выходящие данные, собранный обьект приложения) на монитор. И слой классов внешних девайсов которые можно плуг/эн/плей подключать, отключать, не нарушая сомтояния всего компа. Ну тупо когда комп ребутает или умирает когда ты вставляешь или вынимаеш например флешку или подключаешь монитор.
А в итоге мы приходим в высшей абстракции - компьютер.
А компьютер ноутбук, десктоп, планшет, телефон??? Мироустройство матьегоети
Высшая абстракция это момент большого взрыва )
А серсислокатор это не фабрика считается? Или фабрика не может хранить свои реализации? Фабрика которая клепает различные по сути сингтоны?
Фабрики создают объекты, а сервис локатор предоставляет доступ к уже созданным)
И к стати да 🙂↕️ я из коммерческого веба приперся ) тут те же паттерны, абсолютно, от пхп до питона и го. От интернет магазинов до озерных агрегаторов хайлода.
Я так понял это банальный ивент рассылки. И это получается ведь фабрика и билдер это по сути декораторы? Или нет? Есть родительский класс ивент. Единый общий Текст, картинка, хтмл, документ, что угодно. От него наследуются фабрикой рассыльщики. Получают данные и каждый начинает слать в свой канал, почта, телеграмм, смс, файрбейз, дебаг логи в клику в кибану. У кажого свои особености там целые династии этих оберток, компоновка данных, подготовка соединения и конект к бд, получение обработка ответов, сверху еще сбор ошибок или поломаных отправок на перезапуск, дальше в слой который поставит недоставленную таску в очередь на новый перезапуск. И так по осп можно абстракцию ивента до бесконечности можно оборачивать в количестве * (количество средств рассылки данных)
Вот она, сила ООП в своей красе...
Ну и получается что мы берём результат фабрики - ивент. И с помощью билдера строим поэтапно оборачивая его в декораторы до момента пока не будет готова отправить постзапрос с сообщением в канал. И сверху слои хендлеров ответов что нам сказал рассыльщик, обработки ошибок, иретрай упавших. Слоёный пирог, или лук, не знаю с чем ассоциировать. Как по мне пирог приятнее для запоминания.
Рассылка это про взаимодействие между классами. Здесь же(и в абстрактной фабрике) речь про то где порождать и как порождать объекты
Порождать объекты с заданиями для очереди. Генератор задач для очереди? С которыми работаем потом каждым отдельно в другом месте как с пирожками.
Невероятно. Я - понял. Для меня декоратор был только звуком. Вроде звучит красиво, важно, но я его ни 🍆я не понимал... Отчаялся что я тупой, и к 40 заработал слабоумие... Блть. Огромное спасибо!! Для меня сейчас благодаря вам, в прямом смысле , истина открылась. Просветление. Сошлись пазлы. Декоратор, ОСП, высший класс, абстракция, полиморфизм, интерфейсы на нижних слоях, ООП... Матерь Божа.... Все как бы и где то знал, но обрывочно и бессвязно. И тут вы. Если бы не тяжёлое положение, задонатил бы в копилку. Но я подписался. У вас теперь надёжный последователь. ) дай бог времена изменятся..
Спасибо!
Мне почему то пришел на ум пример с людьми. Люди - общая абстракция. Далее расы людей, класы низкого уровня - африканская, европеидная, азиатская. У всех есть кожа, уши, ноги руки(сво не в счет 😂). Классы высокого уровня - это баня, рестик прийти поесть может любой из рас классов. А детали есть детали, у людей у кого то есть, у кого то нет - косметика, шмот, ювелирка, личное авто.
Тут важно учитывать, что детали характеризуют уникальное поведение объекта. И разные классы низкого уровня имеют уникальное поведение. Шмотки, косметика и ювелирка конечно могут влиять на то как люди действуют, но я бы сказал влияние минимально. Разве что если стереотипы взять за основу: типа все азиаты знают кунг-фу, а африканцы хорошо бегают. Но в жизни это правило распространяется далеко не на всех)
Спасибо тебе. Я и раньше использовал этот подход в своем коде, но сука не мог понять что такое LSP
Очень нравятся твои видео о паттернах и архитектуре. Подскажи, пожалуйста, что нужно знать джуну, чтобы устроиться на работу
Тут зависит от фирмы, список вопросов может сильно меняться. Большинство спрашивает про принципы ООП, SOLID, структуры данных, про Unity(Monobehaviour loop, rigidbody, collider, particleSystem, корутины), просят на бумажке или на пальцах описать 3 паттерна проектирования на твой выбор. Ну и хорошо бы про C# что-то ответить(Что такое интерфейс, в чем разница между структурой и классом и тд)
@@sergeykazantsev1655 Спасибо, значит я готов)
есть тг канал сообщества t.me/UnitistNotes был там опрос - что спрашивают джунов и мидлов. Можете туда после собеса отписаться - что спрашивали. Может это будет полезно остальным
Спасибо большое за доклад, как всегда уйма информации для размышления. Есть вопросы.. можно ли считать что мvvm превосходит mvp по своему функциональному назначению и что в mvp уже нет необходимости? Имеет ли смысл применения патерна КОМАНДА в контексте mvvm ( в wpf эти патерны используются совместно , но там есть технология binding) . Так же вы сказали что реактивное программирование это не совсем ооп подход, так можете посоветовать какой нибудь ооп подход при разработке простейших графических оконных приложений? Понимаю не ваш формат роликов , но видно что вы в этом хорошо понимаете.
Здравствуйте, да, Command с MVVM в геймдеве можно сочетать, как я понимаю он где-то в ViewModel должен находится Насчёт простейших графических оконных приложений я мало что могу подсказать ибо занимаюсь разработкой игр, но наверное подойдет классический ООП с каким-нибудь сервис локатором
Спасибо большое!
Вопрос такой, есть ли роль зарплаты при трудоустройстве. Мне самому предлагали работу за 50к, я сделал тестовое, за которое мне даже 5к заплатили, но делал я его долго, саму игру сделал дней за 5, но нужно было прикрутить sdk и залить на виртуальную машину, в общем из-за этого сама сдача тестового растянулась на несколько недель, но оффер не дали, т.к. к тому моменту уже нашли других людей. Был опыт, когда я устроился на работу, где платили за проект, обещали 100-150 долларов, делал я его где-то 3 недели и понял, что делать его еще кучу времени. В итоге решил слезть с разработки, так как сделал вывод для себя, что получу мало за возможных 2 месяца работы. Не знаю до сих пор что делать- либо работать за любые деньги, либо минимум все таки поставить по зп(
К сожалению тут слишком много обстоятельств которые могут влиять - так что боюсь советы давать. Всё зависит от кучи факторов: какое у вас финансовое положение, какой у вас уровень разработчика, как много предложений на рынке где нужна проектная работа, как много у вас свободного времени и сил, насколько вам важен приобретённый опыт от написания новых проектов и так далее, какие у вас личностные данные(разные разрабы с одним и тем же уровнем могут сторговаться на разную зп различающуюся в разы)
Насколько применим этот патерн в случае использования ui toolkit, в котором есть свои биндинги? Спасибо
Я с ui toolkit знаком только номинально, но по тому что я видел, мне кажется вполне себе применим. По коду разницы нет особо - перерисовывать монобеховский канвас или монобеховский тулкит
Спасибо большое за ваш труд. Как всегда на высоте. Хотелось бы что нибудь про чистую архитектуру, с простейшем примером реализации ,например ToDo List. А то концепций и идей много но не всегда понятно можно ли её добиться на практике
Спасибо! У меня есть рубрика паттерны на практике, где я делаю небольшие но полноценные игры Подробного разбора именно архитектуры там нет, но можете посмотреть на гитхабе проекты, две игры уже сделано
Контент супер, подача огонь! Давно пытаюсь разобраться с разнообразными технологиями построения графических приложений( winforms, wpf ...) и прилогающимся к ним паттернам. Автор нашёл компромис демонстрируя данные технологии на примерах работы с движком unity причём в таком изложение, что становится понятно как всё это перенести на вышеперечисленные десктопные инструменты разработки. Так можно и всё ООП по полочкам разложить😊 что очень актуально, учитывая как мно литературы в наше время и сколько времени нужно тратить чтобы докопаться до истины (не все могут себе это позволить работая по совсем другому профилю). Автору огромное спасибо за материал! Он однозначно годный, т.к преподносится не только структура и правила пользования данным шаблоном, но и рассуждения о причинах перехода к данной технологии, а также суть самой идеи, что соответственно заставляет голову думать, а не просто зазубривать очередной шаблон как аксиому, не развивая объектное мышление что является нормой для начинающих джунов в наши дни. Мне как начинающему джуну остается надеятся что будет больше подобного контента и что автор на гитхабе будет выкладывать проекты не только на unity, но и реализации на других технологиях разработки типа winforms и wpf, всё таки на таких исходниках потыкать былобы куда проще 😅 но это пожелание 😊 а вы слышали что нибудь про mvvmp?
Большое спасибо за такие добрые слова! По мере и сил буду дальше стараться рассказывать про разное. Про WPF и Winforms - к сожалению мне будет трудно рассказывать ибо этим я никогда не занимался Про mvvmp - конкретно не слышал, но слышал про различные модификации mvvm. Наверное mvvmp - это очередная прокачанная версия)
формат отличный, а первая тема формата ещё лучше. Так же хотел бы предложить тему для видео. Когда и как писать скрипты без MonoBehaviour. Может не только мне эта тема раскроет глаза
Спасибо Про MonoBehaviour - я пользуюсь простым правилом - если тебе монобех не нужен - не используй его :) То есть если у вас есть класс которому не нужны ссылки на префабы, не нужен Awake,Start,OnEnable или корутины - и он не должен как объект висеть на сцене - тогда скрипту MonoBehaviour и не нужен.
Огромное спасибо за Ваши видео! Сейчас готовлюсь по ним к собеседованию. 3:45 Если я все правильно понимаю, то как раз таки здесь не нужно делать protected поля, т.к. они всё равно будут в инспекторе отображаться. Да и вроде бы есть рекомендация от Microsoft: вообще никогда не делать поля protected (логика взаимодействия с этими полями должна остаться в родительском и только в родительском классе)
Ну конкретно в этом случае да, _itemImage можно сделать private так как в наследнике мы его не трогаем
А можно ли указывать в метод создания юнитов параметры для инициализации объекта? Пример есть солдат и сквад, при создании солдата мы должны дать ему сквад для его правильной инициализации.
Можно
@@sergeykazantsev1655 Спасибо
я вас обожаю ❤
вы - настоящий герой. спасибо за ваши труды, безмерно вам благодарен.
Это ни капли не легкий паттерн, если сравнивать с другими.
Наверное да, игровые приложения востребованы, но вот мне например нужны паттерны проектирования с базами данных
А по вашему, есть существенное различие между использованием одного и того же паттерна в геймдеве или в проектировании БД? Или вы имеете ввиду что вам нужны паттерны, заточенные именно под БД?
@@sergeykazantsev1655 я думаю, что спагетти-код, который очень удобен программисту, когда он разрабатывает приложение, очень неудобен компании, которая уволив этого программиста, возьмет другого, и увидев этот спагетти код тот через месяц скажет, что это никчемное ПО и надо переписывать. Но: паттерны были созданы не для удобства разработчиков, давайте не будем лукавить, паттерны были созданы для удобства компаний, нанимающих разработчиков. Культура использования паттернов крайне противоречива, и "неписаных правил талмут", следование которой сродни путешествию по минному полю. Но никто не хочет признать за разработчиками роли исследователей(творцов) потому что им тогда нужно дать больше прав. Последние годы массовый ажиотаж на ИТ специалистов, но знание ли паттернов определяет успешного разработчика. Я извините, за последний месяц изучил три фреймворка и какие там паттерны(особеннов JS)?
@@sergeykazantsev1655 думаю, что разработчику удобнее сделать спагетти-код, который он оставит в наследие компании, где он работал, а пришедший вновь разработчик через пару месяцев работы с этим легаси заявит о том, что здесь все требует переделки. Паттерны - это некая культура взаимодействия в среде, которая хочет стать обыденной, но никак не может ей стать. И эта мода на программирование - когда кодить пытаются научить каждого таракана, так как для компаний разработчиков рабочий ресурс стал непомерно дорог. Я думаю, что паттерны это просто некий сигнал между специалистами, что они говорят на одном языке, однако нигде нет системного обучения этим паттернам. Или ты попадаешь в проект где с нуля нужно быстро что-то лепить или идешь в большой готовый проект и строишь его помаленьку
Ну чтож, на это я могу высказать только свое мнение - а уж вам решать - соглашаться или нет :) 1. 95% задач с которыми сталкиваются разработчики - не уникальны. Паттерны проектирования - это шаблоны решения этих задач. Паттерны проектирования позволяют каждый раз не изобретать велосипед, тем более что высока вероятность что если вы изобретете это сами -вы что-то забудете, недоучтете и придется модифицировать ваше решение несколько раз 2. С моей точки зрения успешного разработчика характеризуют такие черты как: скорость разработки, качество кода и количество проблем которые он может решить. Условно джун пишет медленно, качество кода так себе, и если бага нестандартная - он не знает как ее пофиксить. Сильный разраб пишет быстрее джуна, пишет качественнее и может решить даже неочевидную и глубокую проблему, написав модификацию какого-нибудь драйвера или плагин. Знание паттернов - улучшает качество и скорость разработки кода. 3. Я не понимаю почему вы противопоставляете интересы компаний и разработчиков. У компаний есть цель - разрабатывать продукт как можно быстрее и как можно качественнее. Разработчики подстраиваются под это и ищут решения как это сделать. Мне как разработчику тоже не нравится читать чужой спагетти код и в нем разбираться). Если же вы хотите быть исследователем и иметь полную свободу - пожалуйста - пилите собственные пет проекты, решения и код - экспериментируйте вдоволь.
По мне дык самый понятный принцип. Когда-то давно сам пришёл к тому что нужно соблюдать эти правила
Мне очень понравилось видео
Было бы интересно послушать про FSM
Есть паттерн state на канале, это оно)