Паттерн на примере железного человека, однозначно лайк )
@fuuuns4 ай бұрын
Невероятно. Я - понял. Для меня декоратор был только звуком. Вроде звучит красиво, важно, но я его ни 🍆я не понимал... Отчаялся что я тупой, и к 40 заработал слабоумие... Блть. Огромное спасибо!! Для меня сейчас благодаря вам, в прямом смысле , истина открылась. Просветление. Сошлись пазлы. Декоратор, ОСП, высший класс, абстракция, полиморфизм, интерфейсы на нижних слоях, ООП... Матерь Божа.... Все как бы и где то знал, но обрывочно и бессвязно. И тут вы. Если бы не тяжёлое положение, задонатил бы в копилку. Но я подписался. У вас теперь надёжный последователь. ) дай бог времена изменятся..
@yuraburyakovАй бұрын
Я обычно не оставляю комментраии, но ты настолкько круто и просто объяснил этот паттерн и подобрал настолько хорошие приемры (лучше, чем В книге Паттерны Проектирования от HeadFirst ), что я это сделаю пож твоим роликом. Спасибо большое
@firstvf16 күн бұрын
Автор канала - человек с даром преподавания👀 Как всегда огромное спасибо! :)
@TairNurpeisov24 күн бұрын
За такое старательное объяснение на примере Железного Человека однозначно лайк и коммент!
@Sergey-qv9es2 ай бұрын
такие классные емкие и информативные видео, я надеюсь у вас все в порядке и выпуск новых эпизодов продолжится!
@sergeykazantsev16552 ай бұрын
Спасибо большое) буду стараться
@NEKAlinka7 ай бұрын
Я раньше смотрел видосы по декоратору, но понять его смог только сейчас. Спасибо
@MRSHERMAN-id4fx6 ай бұрын
Аххрененеть, а я то думал, как накладывать разные эффекты друг на друга. Спасибо, сударь. Ждем больше видосиков.
@АлексейЧабан-ч2й7 ай бұрын
Недавно повторял этот паттерн, но за мем с Гуррен-Лаганн - лайк
@forcesoftheevil92527 ай бұрын
Рад видеть Вас! Как всегда вовремя) Думаю, применить этот паттерн к модификации пушек в своём проекте (точность 20, а с рукояткой, глушителем становится 30, к примеру)
@sergeykazantsev16557 ай бұрын
Спасибо! Если что-то интересное откроете при использовании, дайте знать)
@PragmaGames7 ай бұрын
Очень понятно объясняешь + юмор, то что нужно.
@tupoy_ytub_uberi_psevdonim7 ай бұрын
Выглядит интересно, осталось начать понимать как и что делать в юнити)
@sashikshik7 ай бұрын
Крутой видик, хотелось бы увидеть гайды по гиту в вашем исполнении :)
@sergeykazantsev16557 ай бұрын
В идеи для новых видео запишу, но пока таких планов не было)
@jordji86965 ай бұрын
Супер понятно объясняешь, спасибо за видео!
@alexgolovin40697 ай бұрын
Просто лучшие ролики! Спасибо!
@1nfer_exe7 ай бұрын
Сергей, спасибо за контент!
@seanmartin40747 ай бұрын
Отличная подача материала, спасибо!
@elementarist19917 ай бұрын
Как всегда шикарное объяснение )❤
@Davyd-jt3ey7 ай бұрын
Как всегда кайф, ждем еще
@Vav977 ай бұрын
Ееее новый паттерн 🥳
@igorparampam59847 ай бұрын
Спасибо, очень хорошо объяснили.
@andreikashin7 ай бұрын
за наглядный пример с Тони - 5!
@delmas2377 ай бұрын
Отличный видос! Лайк
@vernoyakira36117 ай бұрын
Самые лучшие примеры и объяснения. А ты знаешь канал git-amend? Можешь по подобному сценарию что-то снимать, я думаю это будет логичное продолжение твоих видео, но с большим количеством примеров
@sergeykazantsev16557 ай бұрын
Вообще первый раз слышу, вчера ознакомился, надо будет подумать)
@Harlanov-t1g5 ай бұрын
Спасибо за уроки
@nicktrin256 ай бұрын
Привет. на 11:28 проговаривается, что класс DamageDecorator абстрактный (и по схеме UML так должно быть), но в коде же обычный класс ? Спасибо за отличные лекции по паттернам )
@sergeykazantsev16556 ай бұрын
Да, должен быть абстрактным - очепятка с моей стороны - исправил, запушил)
@kaltikAFK7 ай бұрын
Спасибо!
@РусланИсабеков-у1н7 ай бұрын
Спасибоооо!
@ignut234219 күн бұрын
Окей, паттерн декоратор - пушка, огонь, но как быть, когда мы хотим динамически добавлять объектам новую функциональность, с возможностью "отката до заводских настроек". Поясню на примере из видео с железным человеком. У нас есть клиент: Тони старк. Декораторы: Mark42 и его большой костюм. Мы добавили в SuperHero функционал Mark42 и функционал большого костюма при помощи декоратора, кажется что все супер, ведь SuperHero теперь может стрелять из лазера, выпускать ракеты при помощи логики большого костюма. Но допустим Тони стало жарко и он хочет снять костюм Mark42, НО оставить большой костюм. Как быть в таком случае? Учитывая то, что декораторов может быть сколько угодно, а нужно убрать конкретный. Получается в примере, который я описал выше, паттерн декоратор использовать не стоит? Но если не он, то кто из паттернов поможет сохранить OCP? Заранее спасибо за ответ
@sergeykazantsev165519 күн бұрын
Тогда на моём личном опыте лучше сделать как в плохом примере, сделать массив модификаторов которые в итоге как-то суммируются. В случае когда мы убираем тот или иной костюм - просто удалять модификатор из массива. Сами в игре которую на работе пилили столкнулись ровно с той же проблемой и решили что массив чище и проще
@scc-66 ай бұрын
Слушай, а для юнити вообще важно качество кода, чтобы делать игры? То что ты объясняешь, помогает писать меньше кода, и это круто. Но есть много другого, чтобы оптимизировать свой код и сделать его читабельнее. С одной стороны не хочется быть ЯгдереДевом, а с другой не хочется потратить время на дрочку 0.00000001 секунды скорости запуска
@sergeykazantsev16556 ай бұрын
Качество кода даёт гибкость, а значит в долгосрочной перспективе при добавлении новой фичи ты будешь меньше тратить на нее время. Вообще есть мнение, что чем жирнее и крупнее проект, тем выше должно быть качество кода. На конвейере гиперказуалок, где делают прототипы за три недели, требований к коду меньше. Но вообще мое мнение заключается в том, что хороший разраб может писать качественный код так же быстро, как некачественный. Потому что качественный код это простой/читаемый/удобно расширяемый а не супер умный и сложный код
@PsevdoKoder6 ай бұрын
Здравствуйте, за недавнее время посмотрел почти все ваши видео по паттернам и мне очень понравилось как вы объясняете. Недавно делал свою игру и пришлось делать что похожее на смесь FSM и EventBus, в итоге наткнулся на паттерн Publish Subscribe Pattern, который очень был похож на то что у меня получилось, в итоге, и кторый почему то не упоминался во многих статьях, планируете ли вы сделать ролик по данному паттерну и правильно ли я понял его суть?
@PsevdoKoder6 ай бұрын
В любом случае, хотел сказать вам спасибо за ваши видео ролики, они максимально наглядные, и помогли мне многое осознать, желаю вам успехов в вашей карьере!☺
@sergeykazantsev16556 ай бұрын
Честно, о паттерне publish subscribe слышу впервые, очень похоже на Observer, по тому что вы сказали) В любом случае спасибо за тёплые слова)
@Абелис5 ай бұрын
Привет, такой вопрос. Насколько хороша идея, сделать небольшую игру(2-3 месяца разработки) и запихнуть туда все механики которые используют популярные паттерны и zenject? Такой пет проект будет отличным для демонстрации скилла для интервью или это сложно реализуемо?
@sergeykazantsev16555 ай бұрын
Мне кажется- не получится. Паттернов много , в одну игру больше 5-7 впихнуть проблематично. Можно по аналогии с моим репозиторием(в закрепе patternDemoStorage) сделать индивидуальные сцены с механиками и на одном примере показать один паттерн
@ivanshamanaev11127 ай бұрын
Погодите-ка. А как убрать одну или несколько оберток? А как убрать все обертки? А? М?
@sergeykazantsev16557 ай бұрын
Хороший вопрос :) Для декораторов можно реализовать методы Unwrap или UnwrapAll. Тут конечно могут возникнуть небольшие трудности с тем чтобы отличить обёрнутый объект от необёрнутого, но всё же по аналогии обёртки можно сделать
@death-dg3ns20 күн бұрын
Я не понял чем это отличается от обычного наследования типа [попугай : птица]. И зачем передавать объект класса если к нему и так, вроде, обратится можно через base
@sergeykazantsev165520 күн бұрын
В обычном наследовании нет возможности слоями наращивать поведение и слоями их снимать. Попугай всегда останется попугаем. Декоратор же позволяет засунуть попугая в сову, а сову в орла и при полете у птицы будут и ночное видение совы, и клюв орла и окрас попугая)
@fecol269927 күн бұрын
Если не секрет, какой прогой пользуешься для построения UML
@sergeykazantsev165527 күн бұрын
Google slides :D
@omegakrakengames7 ай бұрын
Ты умеешь в addressables ? Если конкретный ассет загрузить через addressables, загрузится только он или весь бандл, в котором он находится? Уже 2 сениора сказали что весь бандл Но мои тесты на голом проекте говорят четко об обратном. Я уже все перепроверил. У меня именно билд, именно 1 бандл. Всё четко
@sergeykazantsev16557 ай бұрын
А какой тип сжатия бандла стоит? LZMA/LZ4/uncompressed? По идее от типа сжатия будет зависеть ответ
@evgenbelovАй бұрын
Как реализуется если надо убрать из всей цепочки один из декораторов?
@sergeykazantsev1655Ай бұрын
Зависит от того находится этот декоратор как самый внешний слой, или внутри. Если как самый внешний, то погуглите метод unwrap, в гите его нет но найти в интернете реально. Если декоратор зарыт где-то внутри, то я бы тогда советовал делать таки как в плохом примере, создать массив модификаторов и их суммировать
@evgenbelovАй бұрын
@@sergeykazantsev1655 да, например надо исключить его гдето в середине цепочки. получается стандартного общепринятого решения нет?
@evgenbelovАй бұрын
хотя наверно под приведеный пример с модификаторами урона в том случае когда модификаторы надо изменять или удалять это не про этот паттерн
@sergeykazantsev1655Ай бұрын
Да, декоратор не очень хорошо подходит под случаи постоянной смены набора модификаторов. Сам недавно писал систему статов, где на параметры влияет куча всего: предметы, ауры, премиум пропуск и решил отказаться от декоратора в пользу простого массива модификаторов
@chernos6 ай бұрын
Привет, в чем существенная разница декоратора от наследования?
@sergeykazantsev16556 ай бұрын
Привет, так вроде ответил на 03:14
@chernos6 ай бұрын
@@sergeykazantsev1655 разве при наследовании мы не имеем ссылку на базовый объект через base?
@sergeykazantsev16556 ай бұрын
Декоратор использует И наследование и агрегацию. При наследовании мы наследуемся от базового класса (знак :). Если мы имеем ссылку на базовый объект, это значит что мы поместили базовый объект внутрь, то есть агрегация
@rastrubpatrubok70705 ай бұрын
Почему бы тебе не написать книгу. Я б купил. Как минимум бы скачал😊
@botcser5 ай бұрын
Да да, точно точно. Вполне претендовать на самое уникальное изложение можно!
@sergeykazantsev16555 ай бұрын
Спасибо большое, но мне кажется книг по паттернам на рынке уже предостаточно. С другой стороны все мои материалы я записываю в одну доку, которая потихоньку становится справочником, там уже 55 страниц. Если оформить и напилить схемы, может получится вполне неплохая книжка, надо подумать :/
@botcser5 ай бұрын
@@sergeykazantsev1655 не встречал изложение паттернов/ООП в контексте игр - хорошая наживка... Кстати, паттерн Посетитель будет? Кажется, один из самых полезных и трудных для понимания.
@sergeykazantsev16555 ай бұрын
В планах пока не было, так что если и будет, то не в ближайшее время