@@NightTrainCode не за что :) просто, а если переименовал метод, все сдвигается влево или в право. А иногда левая часть очень далеко от правой и по факту читая код голову мотаешь. Ну как мне показалось без авто генерации слежения за подобным, не удобно, видел подобное один раз.
@@NightTrainCode я думаю, что стоит добавить название паттерна не только в превью, но и в название, чтобы легче было другим людям находить, которые не являются подписчиками.
идея для ролика: из чего делать тот или иной объект, например дорогу в городе, это некий плейн или 3д объект или спрайт горизонтально положенный), она должна накладываться на террейн или просто висеть в воздухе рядом с объектами земли и тд. Было бы очень познавательно😁
Мне кажется первый пример нужно было реализовывать через паттерн состояния или изменить слегка пример. Убрать swim и добавить новые классы ходьба спортивным шагом, обычная ходьба, пьяная ходьба и т.пд
Благодарю за труд! Кайфую с подачи материала. ❤ В тот день когда ты снимишь видео о том как на реальном примере разрабатывать проект на unity с помощью MVVM. Оформлю платную подписку на тебя везде где только это возможно сделать😹
Я только закончил изучение паттернов, но как по мне если ты в угоду инкапсуляции забираешь возможность стратегии меняться динамически, то теряется её смысл и это больше напоминает паттерн Шаблонный метод. Будь добр поправь, если я ошибаюсь
Видео просто не объяснило как задавать то или иное поведение в первом примере, я должен получается в Person завести переменную PersonSetup чтобы двигать его? Тогда получается жесткая связанность между сущностями
Чёрт. Помогите пожалуйста. Я всё пытаюсь понять, чё такое паттерны, но ничего не могу понять. Раньше ж я всё понимал нормально, но стоило столкнуться с паттернами - всё. Сплошные затупы и непонятки. Голова уже раскалывается, хоть и ни на шаг не приблизился к пониманию этой темы
Берешь один любой простой паттерн и тратишь времени столько, сколько нужно на его изучение. И так с каждым) Будет понятнее, если скажу, что «паттерн» - это шаблон кода, подходящего для решения какой-то проблемы?
Пиши без паттернов. Главное, чтоб игра работала. У нас тут не рокет саенс )) Когда база накопится, когда будешь готов, тогда в паттерны с головой окунешься. Не всё сразу. Да и в большинстве случаем они не нужны, либо сами собой получаются, только ты не знаешь, что ты изобрел велосипед. Это просто логика.
Сори за тупой вопрос но я не понял как происходит переключения с ходьбы на плаванье 2:08 неуглядел не зависимости ни тригеры для этого, если кто знает и вам не лень поделиться своим пониманием то можете разъяснить ?
Всё вроде круто на бумаге, но где конкретика? Ведь чтоб поведения выполнялись, нужен монобех, а у тебя одни интерфейсы тут. Тема не до конца раскрыта, я считаю.
Чуваааааак!!! Ну, не путай инкапсуляцию с сокрытием/изоляцией! Инкапсуляция -- некое логическое объединение данных вместе с методами их обработки. Главный инструмент для ее обеспечения -- собственно класс/структура (в C#, например), которые инкапсулируют в себе поля, свойства и методы. Инкапсуляция при этом не обязательно закрывает прямой доступ к данным, это просто некоторый логический контур, оболочка (собственно капсула) вокруг данных, который показывает, что "вот это все" относится к некой сущности, но не обязательно эта капсула -- непроницаема. Ты можешь сделать полностью открытый класс, и он все равно будет инкапсулировать (объединять в себе) данные и методы их обработки. А вот пример отсутствия инкапсуляции: в процедурных языках (например в C) можно делать отдельно глобальные переменные, глобальные методы и связывать это друг с другом в случайных местах в программе. Вот тут ни методы, ни данные не относятся ни к какой сущности. Одни просто есть, а вторые просто что-то делают с чем-то. Вопрос уместности открытости или закрытости -- совсем уже другая тема.
Спасибо за комментарий) Да, верно, инкапсуляция необязательно должна закрывать доступ к данным. Она должна защищать сущность от неправильного внешнего воздействия. Я нигде и не говорил, что инкапсуляции обязательно должна закрывать доступ. И здесь как раз пример инкапсуляции, потому что будет нелогично, например, если класс SilentCitizenUnit вдруг начнёт разговаривать 😄. И мы от этого спаслись. UPD: У меня и видео про инкапсуляцию есть)
@@NightTrainCode Вот опять же. Я, видно, неправильно акценты расставил. Инкапсуляция не должна защищать сущность. Она всего лишь обеспечивает такую возможность. Это как с вещами в доме: если они просто валяются на полу, то сложно будет их защитить от чужого воздействия. А вот если они сложены в шкаф, то другое дело. Но наличие шкафа с вещами само по себе не защищает вещи. Хозяин волен либо повесить на него замок, либо оставить его незапертым. Инкапсуляция есть: вещи аккуратно (или нет) разложены в шкафу. Сокрытие зависит от степени параноидальности хозяина))) Собственно, к чему я придрался (4:10): "Но в этом коде есть одна проблема. И это -- отсутствие инкапсуляции". Инкапсуляция там есть: класс с полем и методом для доступа к этому полю. То, что доступ этот публичный, никак не говорит об отсутствии инкапсуляции: она есть уже из простого факта, что это все описано в классе "Unit", который, собственно, инкапсулирует в себе поле и метод доступа к нему. Еще раз повторюсь, я не придираюсь к выбранному решению. Оно верное (с моей точки зрения). Я скорее "докапываюсь" до терминологии. Потому что потом "масялята" бегают с пеной у рта и доказывают, что инкапсуляция -- сокрытие/изоляция/защита данных от неконтролируемого доступа.
Дико недооцененный канал. Очень качестенное объяснение с хорошим качеством кода. Редко такое встретишь. Не останавливайся ❤️
Спасибо большое, этот канал я точно никогда не заброшу) ❤️
@@NightTrainCode видео не выходило 11 месяцев((
@@kaifimaz4524 Сам в шоке(
@@NightTrainCode надеюсь вернёшься. У тебя очень хорошо получается объяснять такой талант надо продвигать
Отличное объяснение паттерна! И радует, что ролики стали выходить намного чаще!
Спасибо большое)
Ахах, да
@@NightTrainCode не за что :) просто, а если переименовал метод, все сдвигается влево или в право. А иногда левая часть очень далеко от правой и по факту читая код голову мотаешь. Ну как мне показалось без авто генерации слежения за подобным, не удобно, видел подобное один раз.
Обожаю начало твоих видео прям в фирменном стиле и это очень круто а в видео воды вообще нету а это очень большой +
МУЖИК ТЫ РЕАЛЬНО ХОРОШ РЕСПЕКТ
Еее, большое спасибо, мужик! 😉❤️
Приятно наблюдать что канал оживает, видео качественные, жду много интересного
Спасибо)
Спасибо за видео. Рад, что нашёл этот канал.
На здоровье, спасибо)
У тебя такая кайфовая подача материала, спасибо, что рассказываешь!
Спасибо большое за тёплые слова)
Кайф
Ролики, которые смотреть просто приятно, а полезная инфа как бонус
Благодарю)
Ура, новый ролик =)
Спасибо за видео! Хотелось бы побольше о паттернах в Unity с простыми примерами реализации
спасибо. познавательно. ждем новых видео.
На здоровье, спасибо)
Увидел название.
Подумал: ну началось. Опять этот синглтон. У тебя же есть видео про Zenject.
Услышал о чем речь идет. Сразу подумал: уважуха)
Ахах, ну я же прошаренный чуть-чуть 😹
Спасибо)
@@NightTrainCode я думаю, что стоит добавить название паттерна не только в превью, но и в название, чтобы легче было другим людям находить, которые не являются подписчиками.
@@theoctan8569 В описании и тегах есть название для SEO, а так, на превью оно)
идея для ролика: из чего делать тот или иной объект, например дорогу в городе, это некий плейн или 3д объект или спрайт горизонтально положенный), она должна накладываться на террейн или просто висеть в воздухе рядом с объектами земли и тд. Было бы очень познавательно😁
Мне кажется первый пример нужно было реализовывать через паттерн состояния или изменить слегка пример. Убрать swim и добавить новые классы ходьба спортивным шагом, обычная ходьба, пьяная ходьба и т.пд
Моё почтение за ролик!
Спасибо)
Очень годно
Благодарю за труд! Кайфую с подачи материала. ❤ В тот день когда ты снимишь видео о том как на реальном примере разрабатывать проект на unity с помощью MVVM. Оформлю платную подписку на тебя везде где только это возможно сделать😹
Спасибо большое 😊
Ахах, договорились)
на метаните вроде тоже есть патерны, но у тебя понятнее получается)
Ахах, спасибо)
спасибо за видос
Спасибо за коммент, на здоровье)
И 1000 лет не прошло, удаче тебе
Я только закончил изучение паттернов, но как по мне если ты в угоду инкапсуляции забираешь возможность стратегии меняться динамически, то теряется её смысл и это больше напоминает паттерн Шаблонный метод. Будь добр поправь, если я ошибаюсь
Вдарьте кнопке подписаться на этот канал! Покажите этой кнопке кто тут главный!
Ахах, спасибо, спасибо)))
В полку классных каналов по Unity без говнокода от школьников прибыло!! Продолжай, таких каналов очень не хватает.
P.s. Подписался.
Спасибо)
Ещё бы посмотреть поттерны строитель и наблюдатель.
Наблюдатель уже есть на канале, но я хочу перезаписать этот видос
Видео просто не объяснило как задавать то или иное поведение в первом примере, я должен получается в Person завести переменную PersonSetup чтобы двигать его? Тогда получается жесткая связанность между сущностями
Понимаю, что вопрос не в тему, но подскажите пожалуйста на 3:29, что за музыка на фоне. Очень нужна (´▽`ʃ♡ƪ)
3 видос за 2 недели.
Ес)
Чёрт. Помогите пожалуйста. Я всё пытаюсь понять, чё такое паттерны, но ничего не могу понять. Раньше ж я всё понимал нормально, но стоило столкнуться с паттернами - всё. Сплошные затупы и непонятки. Голова уже раскалывается, хоть и ни на шаг не приблизился к пониманию этой темы
Берешь один любой простой паттерн и тратишь времени столько, сколько нужно на его изучение. И так с каждым)
Будет понятнее, если скажу, что «паттерн» - это шаблон кода, подходящего для решения какой-то проблемы?
Пиши без паттернов. Главное, чтоб игра работала. У нас тут не рокет саенс )) Когда база накопится, когда будешь готов, тогда в паттерны с головой окунешься. Не всё сразу. Да и в большинстве случаем они не нужны, либо сами собой получаются, только ты не знаешь, что ты изобрел велосипед. Это просто логика.
Удобно выдерживать принятый код стайл?
public void Speak() => .........
publick void Attack(.....................) => .......
В Rider это можно нажатием трёх клавиш сделать)
Сори за тупой вопрос но я не понял как происходит переключения с ходьбы на плаванье 2:08 неуглядел не зависимости ни тригеры для этого, если кто знает и вам не лень поделиться своим пониманием то можете разъяснить ?
Там просто абстрактный пример
Можно самому в любой момент менять поведение как захочется ну и чтобы было логично)
Блин, по новой. Как бы и понял, но и понял, что не понял...
Всё вроде круто на бумаге, но где конкретика? Ведь чтоб поведения выполнялись, нужен монобех, а у тебя одни интерфейсы тут. Тема не до конца раскрыта, я считаю.
Чуваааааак!!! Ну, не путай инкапсуляцию с сокрытием/изоляцией! Инкапсуляция -- некое логическое объединение данных вместе с методами их обработки. Главный инструмент для ее обеспечения -- собственно класс/структура (в C#, например), которые инкапсулируют в себе поля, свойства и методы. Инкапсуляция при этом не обязательно закрывает прямой доступ к данным, это просто некоторый логический контур, оболочка (собственно капсула) вокруг данных, который показывает, что "вот это все" относится к некой сущности, но не обязательно эта капсула -- непроницаема. Ты можешь сделать полностью открытый класс, и он все равно будет инкапсулировать (объединять в себе) данные и методы их обработки.
А вот пример отсутствия инкапсуляции: в процедурных языках (например в C) можно делать отдельно глобальные переменные, глобальные методы и связывать это друг с другом в случайных местах в программе. Вот тут ни методы, ни данные не относятся ни к какой сущности. Одни просто есть, а вторые просто что-то делают с чем-то.
Вопрос уместности открытости или закрытости -- совсем уже другая тема.
Спасибо за комментарий)
Да, верно, инкапсуляция необязательно должна закрывать доступ к данным. Она должна защищать сущность от неправильного внешнего воздействия. Я нигде и не говорил, что инкапсуляции обязательно должна закрывать доступ. И здесь как раз пример инкапсуляции, потому что будет нелогично, например, если класс SilentCitizenUnit вдруг начнёт разговаривать 😄. И мы от этого спаслись.
UPD: У меня и видео про инкапсуляцию есть)
@@NightTrainCode Вот опять же. Я, видно, неправильно акценты расставил. Инкапсуляция не должна защищать сущность. Она всего лишь обеспечивает такую возможность. Это как с вещами в доме: если они просто валяются на полу, то сложно будет их защитить от чужого воздействия. А вот если они сложены в шкаф, то другое дело. Но наличие шкафа с вещами само по себе не защищает вещи. Хозяин волен либо повесить на него замок, либо оставить его незапертым. Инкапсуляция есть: вещи аккуратно (или нет) разложены в шкафу. Сокрытие зависит от степени параноидальности хозяина)))
Собственно, к чему я придрался (4:10): "Но в этом коде есть одна проблема. И это -- отсутствие инкапсуляции". Инкапсуляция там есть: класс с полем и методом для доступа к этому полю. То, что доступ этот публичный, никак не говорит об отсутствии инкапсуляции: она есть уже из простого факта, что это все описано в классе "Unit", который, собственно, инкапсулирует в себе поле и метод доступа к нему.
Еще раз повторюсь, я не придираюсь к выбранному решению. Оно верное (с моей точки зрения). Я скорее "докапываюсь" до терминологии. Потому что потом "масялята" бегают с пеной у рта и доказывают, что инкапсуляция -- сокрытие/изоляция/защита данных от неконтролируемого доступа.
@@АлександрСериков-ч5ю а ты хорош