Тёмный

Разбор unity3d тестовых заданий от подписчиков ч1 

Максим Крюков
Подписаться 17 тыс.
Просмотров 18 тыс.
50% 1

В рамках этого стрима разбираем первые девять работ по тестовому заданию от подписчиков на языке c#
Ссылка на Discord - / discord
"00:00 - Настройка"
"04:44 - Проект 1"
"29:26 - Проект 2"
"48:03 - Проект 3"
"1:15:45 - Проект 4"
"1:32:39 - Проект 5"
"1:53:03 - Проект 6"
"2:05:52 - Проект 7"
"2:19:36 - Проект 8"
"2:31:05 - Проект 9"
Поддержка канала:
Patreon - www.patreon.com/user?u=32502669
В крипте:
BTC - 16WmTb4VTFGYrwEjjnMKNNMMzsMB1rPEqD
ETH - 0x8d35406f8317b846528d0a9ea4a34ce59968dff2
XRP - rLW9gnQo7BQhU6igk5keqYnH3TVrCxGRzm (TAG - 1438215071)
LTC- MNSWdzdVsUMnozSU5HhUPEscfxaUK3Fdck
#unity #кодревью #рефакторинг #ityoutubersru

Опубликовано:

 

29 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 101   
@naxa1ka
@naxa1ka 2 года назад
4:44 - Первый проект 29:26 - Второй проект 48:03 - Третий проект 1:15:45 - Четвертый проект 1:32:39 - Пятый проект 1:53:03 - Шестой проект 2:05:52 - Седьмой проект 2:19:36 - Восьмой проект 2:31:05 - Девятый проект
@VADIM-SOLOV
@VADIM-SOLOV 2 года назад
Огромное спасибо за это видео. Мне, как новичку было крайне интересно посмотреть на реальный код и послушать объективную критику. Так же спасибо за подробное объяснение различных паттернов и других вещей. Очень классный формат. Приятно было видеть автора через вебку) Очень круто что в СНГ есть такие авторы. Желаю успехов в развитии канала! :)
@user-mw7mg3zq9f
@user-mw7mg3zq9f 2 года назад
Максим, есть небольшое предложение. Как завершение череды данных стримов, не могли бы вы сделать свою реализацию данного ТЗ, что бы можно было увидеть код, на который нужно равняться. Соответственно быстро пройтись по нему на завершающем стриме и закинуть в ваш гит. Спасибо за ваш труд! upd1: увидел похожий комментарий и ответ к нему. Надеюсь, что морщиться не будете)
@FeralThaiCat
@FeralThaiCat 2 года назад
такого кода не бывает
@vvvasily
@vvvasily 2 года назад
такий здоровий бородатий дядько, з таким суворим голосом - ззовні і не скажеш що це розробник-інтелектуал :)
@gaitavr1992
@gaitavr1992 2 года назад
Та я охранником работаю, просто наслушался программистов на кухне и решил стрим запилить)
@sanded9321
@sanded9321 2 года назад
Вынес для себя из того что смог понять и буду применять: 1.Button лучше прокидывать из скрипта через onClick 2.Event прям повсеместно. значит буду внедрять . почему то воспринималось как нечто специфическое 3.Наглядно увидел как работают в ID.Момент раскрывания зависимостей через кнопку ссылки 4.Ну и классическое и пожалуй самое фундаментальное на мой взгляд как делить классы и методы по ответственностям и их наименование И все это наглядно видно на коде разного уровня и разных подходов. Респект за потраченное время.
@MrGhost-bg6ud
@MrGhost-bg6ud 2 года назад
Event надо использовать когда это уместно, много их тоже плохо будет.
@user-oh5jk6kf4x
@user-oh5jk6kf4x 2 года назад
По ответственности тоже может оказаться ошибкой. Если маниакально разделять ответственности то получатся скрипты что-то вроде Movable, Attackable, Damager и тд, это будет все же захламлением. Посмотри что такое многоуровневая архитектура, исходя из моего субъективного мнения, разделение должно быть осуществлено по принципу разделения концепций согласно концепциям слоев, типо пользовательского ввода / "показывания" данных / хранения данных и т.д. как придумаешь. Для этого посмотри шо такое MVP или MVC, MVP к слову маст хэв
@user-oh5jk6kf4x
@user-oh5jk6kf4x 2 года назад
Насчет ивентов, чисто по идее, это наилучший способ избежать зацепления издателя к подписчику, то что надо для связи модель-вид ИЛИ модель-представление (в случае если мы хотим вынести модель из зависимости вида). В таких случаях ивенты наилучший способ оповещения от модели
@MineFord
@MineFord 2 года назад
Спасибо вам за стрим, благодаря вам у меня появилось желание учить и познавать Юнити :)
@user-mw7mg3zq9f
@user-mw7mg3zq9f 2 года назад
Очень полезный стрим! Когда ты делал это и тебе показывают реализации лучше, заставляет задуматься и пересмотреть способы реализации. Спасибо огромное!
@evgeniy4472
@evgeniy4472 2 года назад
Благодарю за Ваши труды!
@wonderload
@wonderload 2 года назад
Очень сильно, Максим. При самостоятельном обучении именно такой практики не хватало и позже придя в компанию только пришло понимание многих вещей, у Вас можно увидеть это до рабочего опыта, что очень важно на стартовом этапе. С удовольствием смотрю и сейчас, спасибо)
@adiletsatybaldiev5554
@adiletsatybaldiev5554 2 года назад
Здравствуйте! Спасибо, что простым языком объяснили и выделили некоторые моменты для внимание! Было интересно слушать !
@vladisslavss
@vladisslavss 2 года назад
Блин. Пока что досматриваю первый проект. Очень круто! Больше таких разборов!!!! Лукас Лукас Лукас !
@inetto84
@inetto84 2 года назад
Блин, круто видеть многие свои ошибки, еще до того, как дошли до твоей работы:))) Очень ценно, спасибо.
@gaitavr1992
@gaitavr1992 2 года назад
Коммитить уже нельзя)
@kiteva7087
@kiteva7087 2 года назад
Большое спасибо за труд!
@tcunay1
@tcunay1 2 года назад
Кайф! Спасибо за контент!)
@ddrgs60
@ddrgs60 2 года назад
очень полезная рубрика, как для меня - новичка, так и для тех кто скинул свой проект на критику Максиму, Максим, спасибо большое за контент)
@rdragon587
@rdragon587 2 года назад
Все круто. Спасибо) хотелось бы чтобы дополнительно была запись в более высоком разрешении и с обработанным звуком без шума
@vladisslavss
@vladisslavss 2 года назад
Осень крутой формат. Наконец добрался
@brainwashing5576
@brainwashing5576 2 года назад
Спасибо за ваш труд. Можно многому научиться.
@kappa_1001
@kappa_1001 2 года назад
Спасибо, Максим, за твой вклад в сообщество!)
@erickmanciny1352
@erickmanciny1352 2 года назад
Спасибо за разбор! Мой - восьмой)
@YuraBazhan
@YuraBazhan 2 года назад
Дякую за контент. Канал реально допомагає в вивченні Unity3D
@yummybunny7351
@yummybunny7351 2 года назад
Конспект №1,2 Не использовать transform.GetChild(i) - если кто-то передвинет в иерархии то будет сложно найти где баг . Статические поля это всегда плохо. Значит не знаю как прокинуть зависимости FindObjectOfType тоже лучше не использовать GameManager лучше только в маленьких проектах. №3 - 49:10 . Перепутано где подписывать событие. 52:20 порядок инициализации может не синхронизироваться через Start\Awake №4 - тоже средненький код, как и первые 2 №5 MVC. GameSetting in ScriptableObject 1:38:00 о самой модели. Классы без MonoBehaviour 1:38:59 state machine 1:41:00 Максим вешает компоненты MonoBehaviour логики на разные GO. Чтобы хотя бы на сцене видеть где какой 1:41:00 не называть методы как у MonoBeh 1:43:00 замена switch на ...
@guiltyshoes
@guiltyshoes 2 года назад
>GameManager лучше только в маленьких проектах. Есть альтернативы что ли? Не считая DI, который по факту хуже чем рут-объект.
@not_even_toxic
@not_even_toxic 2 года назад
9:21 - Платные символы 😂
@user-go7qv2yc6z
@user-go7qv2yc6z 2 года назад
Максим, а после окончания стримов можно ролик, как Вы бы эту задачу реализовали?
@gaitavr1992
@gaitavr1992 2 года назад
Посмотрим, если к шестому стриму я не буду морщиться от этого задания)
@ptrk924
@ptrk924 2 года назад
Отличный стрим! Жалею, что пропустил задание
@sanded9321
@sanded9321 2 года назад
Жаль пропустил стрим...хоть и подписан...по возможности бы анонсировать такую движуху👍
@andrey_aka_skif
@andrey_aka_skif 2 года назад
Анонс был
@angelxzs1
@angelxzs1 2 года назад
Максим, спасибо за стрим. Но, я к сожалению не попал на него, смотрел уже после. Ютуб не оповестил. Скажите, дублируются ли анонсы где-то помимо ютуба? Последний проект - действительно топ из представленных.
@alexspeleers
@alexspeleers 2 года назад
ля какой гигачад в камере! секси
@noob681
@noob681 2 года назад
Успел только на самый конец, хоть и подписался с колокольчиком - ютуб, не захотел информировать о новом посте в сообществе. Даты следующих еще неизвестны?
@gaitavr1992
@gaitavr1992 2 года назад
Пока не , это был пристрелочный. Недочетов много
@noob681
@noob681 2 года назад
@@gaitavr1992 Нормально всё вроде, только тихо очень.
@ndrey399
@ndrey399 2 года назад
Максим, не планируется ли видео по asset bundl-ам и addressable?
@sanded9321
@sanded9321 2 года назад
Подскажите такой момент, если я подписываюсь на кнопку через onClick.AddListener, нужно ли мне отписываться в OnDisable или в OnDestroy ? Раньше я кнопки назначал через инспектор и как то не задумывался об этом, а теперь через код, и возможно под капотом в инспекторе при удалении обьекта или при setActive=false; происходит отписка а в коде это самостоятельно нужно проделывать? Тот же вопрос при смене сцен, если сцена меняется ведь получается что все обьекты уничтожаются, это и unityEvent касается? Ну или может направьте где можно смотреть активных слушателей и то что загружено в памяти.
@STARasGAMES
@STARasGAMES 2 года назад
Chad, просто Chad
@PAVLIK_CHANNEL
@PAVLIK_CHANNEL 2 года назад
52:08, как же я устал объяснять коллегам, что Start и Awake - не надежно. Сколько было на эту тему холиваров, сколько было с этим связанных багов. Счастлив услышать, что я не один избегаю Start и Awake.
@CoolinarGameDeveloper
@CoolinarGameDeveloper 2 года назад
Добрый день, нельзя ли прикрепить таймкоды к видео по проектам. И будут ли проводиться еще такие евенты?) Пропустил время когда можно было отправить проект но очень хотелось поучаствовать)
@gaitavr1992
@gaitavr1992 2 года назад
Будет еще 45 вариантов решения)
@naxa1ka
@naxa1ka 2 года назад
Максим, последний проект мой, хотелось бы услышать подробно про GameLoseModel, Вы говорили про то, что его можно поделить на еще части, но как? я только начинаю познавать разделение вьюшек и прочего и очень хотелось бы услышать мнение со стороны
@gaitavr1992
@gaitavr1992 2 года назад
Отделить данные от бизнес логики
@naxa1ka
@naxa1ka 2 года назад
И про inject Playerа во вьюшку health'а тоже... Буду очень благодарен! Из своих идей, для healthBar давать только условный интерфейс в котором есть информация о здоровье
@naxa1ka
@naxa1ka 2 года назад
@@gaitavr1992 хмм, спасибо, попробую!
@gaitavr1992
@gaitavr1992 2 года назад
В целом - пиши в дискорде в личку, можем обсужить
@cherepyiiika
@cherepyiiika 2 года назад
Спасибо за ваши ролики, реально классный контент! Можете ли дать совет в плане матана, какие направления больше нужны и в каком объеме? Какие источники можете посоветовать?
@gaitavr1992
@gaitavr1992 2 года назад
Зачем он вам? 90 % разработчиков его никогда не применят
@Nessiffl
@Nessiffl 2 года назад
Если хочется делать что то сложнее шариков то точно стоит освоить хотя бы базовый уровень линейной алгебры и тригонометрии
@Nessiffl
@Nessiffl 2 года назад
Из источников могу посоветовать канал на ютубе Freya Holmer, мини курс Math for gamedevs
@cherepyiiika
@cherepyiiika 2 года назад
@@Nessiffl Вот его курю сейчас, но тяжко с языком
@bibyter6451
@bibyter6451 2 года назад
Сдемс следующие серии
@bibyter6451
@bibyter6451 2 года назад
Лидербоард замутить будет оверхедом ?
@yummybunny7351
@yummybunny7351 2 года назад
Максим, спасибо за стрим! Подскажите, 1) Для собеседования на джуна в портфолио достаточно ли такого маленького проекта всего на 5 классов, или писать проект по-больше? 2) Приняли бы на позицию джуна программиста, который пишет код на уровне первых двух кандидатов из вашего списка? (в среднем, если вынести за скобки остальное собеседование)
@gaitavr1992
@gaitavr1992 2 года назад
На джуна с обучением может быть, а вот более опытный если нужен, то подошли бы только два на текущий момент кандидата
@Ruslon-oc3pt
@Ruslon-oc3pt 2 года назад
@@gaitavr1992 какие если не секрет?
@gaitavr1992
@gaitavr1992 2 года назад
@@Ruslon-oc3pt Пятый и девятый
@gaitavr1992
@gaitavr1992 2 года назад
@@Ruslon-oc3pt Поправка, еще третий, я о нем совсем забыл
@FeralThaiCat
@FeralThaiCat 2 года назад
@@gaitavr1992 5й АХАХА. "Если честно, не знаю как она работает", "Что-то я это не понимаю, зачем эта штука нужна", "Непонятно, какой уровень оно в себе содержит". Не самый большой код, зато один из самых непонятных. На большом проекте будет ад.
@HelloWorld-ln5cy
@HelloWorld-ln5cy 2 года назад
Ох про статику все верно, я когда разбирался в unity Editor (именно в исходниках их), то ахринивал чё за код там.
@user-sx7vo6kg8t
@user-sx7vo6kg8t 2 года назад
Максим, такой вопрос, а как вязать между собой вложенный MVC? Нам например необходимо с более низкого уровня отправить нажатие в более высокий, с одной вложенностью ок, сделали событие и хорошо. А если более глубокие уровни вложенности три и более. Не хочется на каждый уровень прописывать по событию, где событие вызывает событие и т д.
@gaitavr1992
@gaitavr1992 2 года назад
Можно выделить интерфейс высокого уровня с одним методом Raise что-то там и передать его на нижний уровень
@user-sx7vo6kg8t
@user-sx7vo6kg8t 2 года назад
@@gaitavr1992 спасибо)
@Pravda-bw3tj
@Pravda-bw3tj 2 года назад
стейт машину на большой свитч в геймменеджере, мне кажется или такое стоит заворачивать сразу?
@gaitavr1992
@gaitavr1992 2 года назад
Не обязательно сразу, но как минимум на методы разбить нужно
@Ruslon-oc3pt
@Ruslon-oc3pt 2 года назад
Спасибо большое, очень полезный и продуктивный стрим! Я автор второго проекта, в письме я написал попросил вас сказать вам мой уровень. Скорее всего вы забыли. Можете пожалуйста сказать о моем уровне.
@gaitavr1992
@gaitavr1992 2 года назад
Да, забыл, извини. Честно говоря, начинающий джуниор
@Ruslon-oc3pt
@Ruslon-oc3pt 2 года назад
@@gaitavr1992 по вашему мнению за 7 месяцев самостоятельного обучения это хороший результат?
@gaitavr1992
@gaitavr1992 2 года назад
Да, я считаю, что нужно ходить по собеседованиям, и попутно набивать свой гитхаб
@Ruslon-oc3pt
@Ruslon-oc3pt 2 года назад
@@gaitavr1992 спасибо большое!!!
@alexsklyarov6792
@alexsklyarov6792 2 года назад
Разрешение видео маленькое, плохо видно код, не четко (((( (это в копилку улучшений качества стрима)
@gaitavr1992
@gaitavr1992 2 года назад
Учту, как и звук
@user-et1ww8yp1n
@user-et1ww8yp1n 2 года назад
Микрофон, похоже, работал какой-то встроенный во что-то...
@Pravda-bw3tj
@Pravda-bw3tj 2 года назад
ШКАФ 2х2
@The_Mavrik
@The_Mavrik 2 года назад
720p ничего не видно на монике 3440*1440
@Pravda-bw3tj
@Pravda-bw3tj 2 года назад
При такой простенькой таске люди столько гавна на лопату накидывают, сами себя запутывают и какой то треш создают
@The_Mavrik
@The_Mavrik 2 года назад
Покажитекак правильно делать? Как правильно сделать иерархию чтоб все знали только тех кого должны.
@kingofbattleonline
@kingofbattleonline 2 года назад
Мда... Конечно, лучше бы эти типы большие проекты не брались делать. Насмотрелись Романа Сакутина, некоторые привязались к его стилю программирования и к маленьким задачам делают миллион файлов и столько же кода. Хотя можно написать очень просто и легко. Взять на себя стиль программирования и не знать паттерны - это не говорит о высоком уровне знаний. Особенно удивил человек, который сокращал имена, Роман почти в каждом видео твердит это. Про наименование типов, что они должны носить за собой смысл. И коммент оставил, что кроме как найти ссылку на компонент в сцене не смог. Друг, много есть способов избавится от этого. Даже добавив этот компонент вручную. Так и создать пул, который не будет появляться с префаба. В общем, очень интересное видео. Если автор этого канала не против, я хочу попробовать написать эту задачу и пусть он лично последнее видео уделит на меня. Спасибо, за понимание.
@user-go7qv2yc6z
@user-go7qv2yc6z 2 года назад
Какой то странный коммент. Сперва обобщенный негатив "Насмотрелись Сакутина", потом к конкретному участнику "зачем сокращают, ведь Роман говорил.. ".
@kingofbattleonline
@kingofbattleonline 2 года назад
@@user-go7qv2yc6z негатив не обобщенный, он явный. Ну а раз он явный, и уже было осуществлен просмотр, то пусть понимают что смотрят.
@user-go7qv2yc6z
@user-go7qv2yc6z 2 года назад
@@kingofbattleonline Конкретную оценку дал Максим. Пост выше о группе участников - обобщенный. Кто что смотрел - неизвестно. То что ребята стараются по мере сил разделять ответственности - отлично. Ревью многим дальше поможет
Далее
Ayollar orzusidagi er😂😂
01:01
Просмотров 781 тыс.
▼ЧЁРНАЯ МАГИЯ 🔮
31:15
Просмотров 265 тыс.
7  ПАРАДОКСОВ БЕСКОНЕЧНОСТИ
36:02
Ayollar orzusidagi er😂😂
01:01
Просмотров 781 тыс.