Печально то, что происходит с XYZ.
Меня тоже раз в пару месяцев посещает мысль: "А давайте ещё пару направлений откроем?". Но я отказываюсь, сейчас у нас хорошо одно направление и один флагманский курс. Ещё два маленьких.
Это позволяет тонко всё контролировать и на 100% выполнять обещания.
Да это трудно превратить в большую историю, но зато на руках у меня один хороший курс в котором я уверен.
И у XYZ такое было, но пришли продюсеры и запустили новые направления и программы. А там и преподаватели которым нахер ничего не надо и сильно просевшее качество.
Раньше любил эту компанию но после того, как ушёл её основатель и основной состав преподавателей можно ставить на ней крест.
Goodnight, sweet prince
Меня тоже раз в пару месяцев посещает мысль: "А давайте ещё пару направлений откроем?". Но я отказываюсь, сейчас у нас хорошо одно направление и один флагманский курс. Ещё два маленьких.
Это позволяет тонко всё контролировать и на 100% выполнять обещания.
Да это трудно превратить в большую историю, но зато на руках у меня один хороший курс в котором я уверен.
И у XYZ такое было, но пришли продюсеры и запустили новые направления и программы. А там и преподаватели которым нахер ничего не надо и сильно просевшее качество.
Раньше любил эту компанию но после того, как ушёл её основатель и основной состав преподавателей можно ставить на ней крест.
Goodnight, sweet prince
👍2
Объектно-ориентированное программирование - это как секс у подростков. Все подростки в нём разбираются, но никто так и не занимался.
Про ООП много сказано и написано, но, к сожалению, не всё понято. Давайте разомнемся на небольшой загадке про инкапсуляцию.
Я вам сразу скажу, что считаю, что текущая теория программирования уже давно отошла от допотопного определения инкапсуляции как механизма соединения данных с функциями (методами).
Для меня инкапсуляция - это комплекс мер и механизмов для защиты состояния объекта. Т.е попытка не просто описать объект, но и описать его так, чтобы с ним нельзя было взаимодействовать так, как не запланировано.
Короче инкапсуляция - это защита состояния объекта. И тут действительно есть о чём подумать. Особенно если обратиться к контрактному программированию и понятию инварианта.
Инвариант - это определенное условие, которое всегда истинно для объекта.
Т.е мы буквально говорим, вот такая вот штука всегда будет соблюдать такие-то условия. И хреново, когда штука эти условия не соблюдает.
Допустим у нас есть класс “Инвентарь”, в инвентаре хранятся предметы. Есть инвариант - суммарный вес предметов в инвентаре не может превышать силу игрока * 100.
Сможете ли вы представить класс, который сможет защитить для нас этот инвариант? Я вас уверяю, это не так просто, как кажется.
Давайте посмотрим на такой код, который пытается решить эту задачу - https://gist.github.com/HolyMonkey/164a6b05eb869781b4562985237f9fa2
Соблюдает ли он наше правило?
Пытается, искренне пытается. Тем есть проверка при добавлении нового предмета, которая быстро поставит нас на место, если мы пытаемся добавить больше, чем инвентарь может уместить:
if (currentWeidth + count > MaxWeidth)
throw new InvalidOperationException();
Но что если я сделаю так:
var bag = new Bag();
bag.MaxWeidth = 10;
bag.AddItem(“Sword”, 5);
bag.MaxWidth = 4; //всё, объект в некорректном состоянии :)
Можно же закрыть MaxWidth от изменения и назначать через конструктор? Да, можно. Но если вы додумаетесь сделать метод по типу SetMaxWidth - вы опять оставите открытой форточку, через которую вломятся в ваш объект и поломают его.
Поэтому инкапсуляция - это не просто закрытие полей для изменения. Инкапсуляция - это контроль за своим состоянием. А его не всегда можно добиться, поэтому если объект не может что-то контролировать, то он не считает это частью себя. Это важная концепция, подумайте над ней.
Всё, что мы не можем контролировать в рамках типа, становится часть другого типа.
Ах да, ещё, если вы закроете на изменение MaxWidth, объект всё равно можно поломать. Кто скажет как?
К слову, на моём новом курсе “Напильник” мы целую неделю посвятим вопросам “правильного” ООП, где на практике разберём особенность инкапсуляции и прочих столпов. Записывайтесь - https://ijunior.ru/napilnik?utm_source=telega&utm_medium=social&utm_campaign=promo05
Про ООП много сказано и написано, но, к сожалению, не всё понято. Давайте разомнемся на небольшой загадке про инкапсуляцию.
Я вам сразу скажу, что считаю, что текущая теория программирования уже давно отошла от допотопного определения инкапсуляции как механизма соединения данных с функциями (методами).
Для меня инкапсуляция - это комплекс мер и механизмов для защиты состояния объекта. Т.е попытка не просто описать объект, но и описать его так, чтобы с ним нельзя было взаимодействовать так, как не запланировано.
Короче инкапсуляция - это защита состояния объекта. И тут действительно есть о чём подумать. Особенно если обратиться к контрактному программированию и понятию инварианта.
Инвариант - это определенное условие, которое всегда истинно для объекта.
Т.е мы буквально говорим, вот такая вот штука всегда будет соблюдать такие-то условия. И хреново, когда штука эти условия не соблюдает.
Допустим у нас есть класс “Инвентарь”, в инвентаре хранятся предметы. Есть инвариант - суммарный вес предметов в инвентаре не может превышать силу игрока * 100.
Сможете ли вы представить класс, который сможет защитить для нас этот инвариант? Я вас уверяю, это не так просто, как кажется.
Давайте посмотрим на такой код, который пытается решить эту задачу - https://gist.github.com/HolyMonkey/164a6b05eb869781b4562985237f9fa2
Соблюдает ли он наше правило?
Пытается, искренне пытается. Тем есть проверка при добавлении нового предмета, которая быстро поставит нас на место, если мы пытаемся добавить больше, чем инвентарь может уместить:
if (currentWeidth + count > MaxWeidth)
throw new InvalidOperationException();
Но что если я сделаю так:
var bag = new Bag();
bag.MaxWeidth = 10;
bag.AddItem(“Sword”, 5);
bag.MaxWidth = 4; //всё, объект в некорректном состоянии :)
Можно же закрыть MaxWidth от изменения и назначать через конструктор? Да, можно. Но если вы додумаетесь сделать метод по типу SetMaxWidth - вы опять оставите открытой форточку, через которую вломятся в ваш объект и поломают его.
Поэтому инкапсуляция - это не просто закрытие полей для изменения. Инкапсуляция - это контроль за своим состоянием. А его не всегда можно добиться, поэтому если объект не может что-то контролировать, то он не считает это частью себя. Это важная концепция, подумайте над ней.
Всё, что мы не можем контролировать в рамках типа, становится часть другого типа.
Ах да, ещё, если вы закроете на изменение MaxWidth, объект всё равно можно поломать. Кто скажет как?
К слову, на моём новом курсе “Напильник” мы целую неделю посвятим вопросам “правильного” ООП, где на практике разберём особенность инкапсуляции и прочих столпов. Записывайтесь - https://ijunior.ru/napilnik?utm_source=telega&utm_medium=social&utm_campaign=promo05
Gist
medium8-1-3.cs
GitHub Gist: instantly share code, notes, and snippets.
👍2
Конечно же, если просто приватить всё до чего дотягиваются вашу руки, то инкапсуляцию вы не достигните.
В предыдущей задаче конечно же ничего не решится если просто сделать поля приватными.
Сегодня выпущу большое видео с детальным разбором как достигается инкапсуляция на основе иммутабельности, ограничивающих интерфейсов и агрегатов из DDD.
В предыдущей задаче конечно же ничего не решится если просто сделать поля приватными.
Сегодня выпущу большое видео с детальным разбором как достигается инкапсуляция на основе иммутабельности, ограничивающих интерфейсов и агрегатов из DDD.
👍2
Ищем 3D моделера на проектную работу
Мы разрабатываем Hypercasual игры в которых нужна точечная работа над контентом. Ищем человека Middle+ уровня и готовы предложить ставку в 1000-1500 рублей в час.
В основном нам нужно делать гуманоидных персонажей и риг к ним + бывает надо накидать анимации.
Работа на full-time, мы подсоединяем вас к нашей команде и от них прилетают тикеты на те или иные задачи, по факту выполнения мы оплачиваем на основе почасовой ставки так, что можно совмещать работу.
Оформление возможно как по ГПХ так и самозанятых, если заинтересует full-time то делаем полное ТК.
Требования:
1) Большое количество работ в Toon стиле;
2) Умение делать риг и залипательные анимации.
Пишите в ЛС или на почту - [email protected]
В письмо пожалуйста сразу указывайте портфолио и сколько ожидаете ставку в час.
Мы разрабатываем Hypercasual игры в которых нужна точечная работа над контентом. Ищем человека Middle+ уровня и готовы предложить ставку в 1000-1500 рублей в час.
В основном нам нужно делать гуманоидных персонажей и риг к ним + бывает надо накидать анимации.
Работа на full-time, мы подсоединяем вас к нашей команде и от них прилетают тикеты на те или иные задачи, по факту выполнения мы оплачиваем на основе почасовой ставки так, что можно совмещать работу.
Оформление возможно как по ГПХ так и самозанятых, если заинтересует full-time то делаем полное ТК.
Требования:
1) Большое количество работ в Toon стиле;
2) Умение делать риг и залипательные анимации.
Пишите в ЛС или на почту - [email protected]
В письмо пожалуйста сразу указывайте портфолио и сколько ожидаете ставку в час.
👍2
Мой новый курс максимально авторский, в конце каждой записи думаю что бы ещё рассказать и рассказываю.
Конечно не хочется раздувать всё в 1000 лекций которые не осилить в обозримом будущем. Стараюсь себя ограничивать, но не всегда получается.
На каждую тему вспоминаю десятки проектов, историй и исходники которые не ленюсь показывать.
Курс так сказать для своих - https://ijunior.ru/napilnik
Конечно не хочется раздувать всё в 1000 лекций которые не осилить в обозримом будущем. Стараюсь себя ограничивать, но не всегда получается.
На каждую тему вспоминаю десятки проектов, историй и исходники которые не ленюсь показывать.
Курс так сказать для своих - https://ijunior.ru/napilnik
👍2
167 мыслей по книге "Чистый код"
Собираю конспекты по книгам которые я использую в новом курсе "Напильник"
Старт кстати уже послезавтра, кто не успел тот сильно пожалел.
Вместе с редактором и дизайнером превратим конспекты в удобночитаемую мини-книгу к которому можно обращаться.
В конспект я высказываю свои мысли по чтению, иногда я не согласен, иногда я понимаю неправильно, но в любом случае это авторская выжимка.
К курсу постараюсь сделать несколько таких конспектов но уже к следующим потокам. Пока будет доступен 1-2. Курс хоть и идёт 1 месяц но доступ к материалу пожизненный так, что если будут обновления - вы их получите. 1 месяц идут только проверки домашек.
Записаться на курс - https://ijunior.ru/napilnik
Собираю конспекты по книгам которые я использую в новом курсе "Напильник"
Старт кстати уже послезавтра, кто не успел тот сильно пожалел.
Вместе с редактором и дизайнером превратим конспекты в удобночитаемую мини-книгу к которому можно обращаться.
В конспект я высказываю свои мысли по чтению, иногда я не согласен, иногда я понимаю неправильно, но в любом случае это авторская выжимка.
К курсу постараюсь сделать несколько таких конспектов но уже к следующим потокам. Пока будет доступен 1-2. Курс хоть и идёт 1 месяц но доступ к материалу пожизненный так, что если будут обновления - вы их получите. 1 месяц идут только проверки домашек.
Записаться на курс - https://ijunior.ru/napilnik
👍2
Открылись продажи ограниченной коллекции моих кофт.
Всего мы сделали в сотрудничестве с дизайнером 25 штук, 5 подарили лучшим сотрудникам моей студии разработки.
Сейчас вы можете купить худи с 50% скидкой - https://ijunior.ru/wear
Всего мы сделали в сотрудничестве с дизайнером 25 штук, 5 подарили лучшим сотрудникам моей студии разработки.
Сейчас вы можете купить худи с 50% скидкой - https://ijunior.ru/wear
👍2
Сейчас у нас трудоустроено около 33 человека наших учеников.
13 человек находится на full-time и ещё 20 на проектной основе.
Я очень рад, что мы наконец-то начали собирать ребят в офиса в разных городах. Сейчас открылся офис на 6 человек в Питере и я не хочу на этом останавливаться.
Надеюсь к концу года мы уже будем в трёх городах и не меньше чем с 40 разработчиками в full-time.
Это необычное чувство когда проходишь по коридорам и видишь людей которые учились у тебя и теперь они крепкие специалисты, которые исполнили свою мечту и стали разработчиками игр.
Им это далось нелегко, часто они не верили в себя и опускали руки, но те кто смогли это преодолеть теперь здесь и сейчас.
Присоединяйся к нам, научим с нуля и гарантируем трудоустройство - https://ijunior.ru/unity-start
13 человек находится на full-time и ещё 20 на проектной основе.
Я очень рад, что мы наконец-то начали собирать ребят в офиса в разных городах. Сейчас открылся офис на 6 человек в Питере и я не хочу на этом останавливаться.
Надеюсь к концу года мы уже будем в трёх городах и не меньше чем с 40 разработчиками в full-time.
Это необычное чувство когда проходишь по коридорам и видишь людей которые учились у тебя и теперь они крепкие специалисты, которые исполнили свою мечту и стали разработчиками игр.
Им это далось нелегко, часто они не верили в себя и опускали руки, но те кто смогли это преодолеть теперь здесь и сейчас.
Присоединяйся к нам, научим с нуля и гарантируем трудоустройство - https://ijunior.ru/unity-start
👍2
Открыл студию разработки игр в Питере | Заселяемся в офис
https://www.youtube.com/watch?v=IhNi3vKPlbE&feature=youtu.be
https://www.youtube.com/watch?v=IhNi3vKPlbE&feature=youtu.be
YouTube
Открыл студию разработки игр в Питере | Заселяемся в офис
Для меня это важный шаг который я долго не решался делать. Теперь мы всё больше становимся студией разработки игр нежели школой.
Обучение разработке игр с нуля с гарантией трудоустройства - https://ijunior.ru/unity-start?utm_source=youtube&utm_medium=v…
Обучение разработке игр с нуля с гарантией трудоустройства - https://ijunior.ru/unity-start?utm_source=youtube&utm_medium=v…
👍3
Делаю большое исследование про архитектурные подходы в Unity и варианты решения проблемы с отсутствующим конструктором.
Любители ECS могут идти пососаться за другими гаражами, здесь увлечённо теребят пенисы любители ООП. Прошу нам не мешать.
В курсе Напильник будет целая глава на эту тему, хотя я не собирался её добавлять. Люди просят, а мне не жалко.
Чуть позже и на канал общие мысли запишу.
Курс к сожалению покинуло три человека, им не понравилась подача материала + что курс не полностью опубликован. Я их понимаю, деньги мы им вернули, проблем никаких нет.
Сейчас первый поток и я курс пишу по ходу дела от обратной связи. По этому когда я вижу, что ребятам интересная какая-то тема, я еду в студию, провожу ресёрч, включаю микрофон и начинается...
В общем предлагаю занять места ушедших - https://ijunior.ru/napilnik
Открыл запись на курс для трёх первых человек. Не успеете придётся ждать следующего потока, который будет аж в сентябре.
Любители ECS могут идти пососаться за другими гаражами, здесь увлечённо теребят пенисы любители ООП. Прошу нам не мешать.
В курсе Напильник будет целая глава на эту тему, хотя я не собирался её добавлять. Люди просят, а мне не жалко.
Чуть позже и на канал общие мысли запишу.
Курс к сожалению покинуло три человека, им не понравилась подача материала + что курс не полностью опубликован. Я их понимаю, деньги мы им вернули, проблем никаких нет.
Сейчас первый поток и я курс пишу по ходу дела от обратной связи. По этому когда я вижу, что ребятам интересная какая-то тема, я еду в студию, провожу ресёрч, включаю микрофон и начинается...
В общем предлагаю занять места ушедших - https://ijunior.ru/napilnik
Открыл запись на курс для трёх первых человек. Не успеете придётся ждать следующего потока, который будет аж в сентябре.
👍2
Сходил на закрытую тусу разработчиков игр и на конференцию WN Conf
https://www.youtube.com/watch?v=vYMj7UHnqUM&feature=youtu.be
https://www.youtube.com/watch?v=vYMj7UHnqUM&feature=youtu.be
YouTube
Сходил на закрытую тусу разработчиков игр и на конференцию WN Conf
Ещё день из жизни нашей студии в Питере, попал на конференцию и на разные тусовки GameDev.
Обучение разработке игр с нуля с гарантией трудоустройства - https://ijunior.ru/unity-start?utm_source=youtube&utm_medium=video&utm_campaign=description&utm_content=blog2…
Обучение разработке игр с нуля с гарантией трудоустройства - https://ijunior.ru/unity-start?utm_source=youtube&utm_medium=video&utm_campaign=description&utm_content=blog2…
👍2
Я на интервью согласился только из большого уважения к человеку который его брал.
Мне сказать нечего.
Сейчас моя студия в положение, что впринципе мы самоокупаемые и у нас есть деньги, но пока ещё не выпустили ничего значимого.
И я ставлю перед собой цель сконцентрироваться на работе и выпустить что-нибудь разрывное.
Мы используем продуктовый подход, он странный и многим из вас кажется еб**утым.
Лучшей его защитой будет когда мы заработаем много бумажных денег.
Всё остальное пердеть в лужу.
Мне сказать нечего.
Сейчас моя студия в положение, что впринципе мы самоокупаемые и у нас есть деньги, но пока ещё не выпустили ничего значимого.
И я ставлю перед собой цель сконцентрироваться на работе и выпустить что-нибудь разрывное.
Мы используем продуктовый подход, он странный и многим из вас кажется еб**утым.
Лучшей его защитой будет когда мы заработаем много бумажных денег.
Всё остальное пердеть в лужу.
👍2
Короче я нашёл более 20 противоречащих друг другу описания паттерна MVC.
Это часть моей исследовательской работы для курса Напильник кстати.
Там я показываю РЕАЛЬНЫЕ примеры использования MVC, MVP, Presentation Model, Passive View, Supervising Controller и MVVM в Unity. Кайф? Кайф.
И я просто в диком охуенезе от статей безграмотных идиотов и на русском и на английском, которые пытаются описать паттерн по названию сущностей.
Вот как можно трактовать контроллер как "Ну он контролирует".
Да это ещё ладно. Но как можно было модель превратить в "Ну там запросы к базе данных".
50 лет назад умные люди в лабораториях Xerox всё уже придумали, последующие годы не менее умные люди вполне конкретно это всё развивали и конкретно описывали.
Ну вот впадлу найти первоисточник и прочитать, что такое Controller и какое отношение он имеет Input\Output Segregation?
Вы же замечали, что при описание MVC и MVP в разных статьях полупокеры могут одинаковую схему нарисовать? Я уже месяц просматриваю всё это творчество и я буквально натыкаюсь на одну и ту же схему и один автор рисовал её для MVP а второй для MVVM.
Печально это конечно.
Совет могу дать на последок.
Перед тем как вникать в архитектурные паттерны научитесь хорошо моделировать предметную область хотя бы через тот же DDD. Когда хорошо поймёте что такое модель и её концептуальные границы вам будет уже легче разобраться чем отличается Passive View от Supervising Controller.
Это часть моей исследовательской работы для курса Напильник кстати.
Там я показываю РЕАЛЬНЫЕ примеры использования MVC, MVP, Presentation Model, Passive View, Supervising Controller и MVVM в Unity. Кайф? Кайф.
И я просто в диком охуенезе от статей безграмотных идиотов и на русском и на английском, которые пытаются описать паттерн по названию сущностей.
Вот как можно трактовать контроллер как "Ну он контролирует".
Да это ещё ладно. Но как можно было модель превратить в "Ну там запросы к базе данных".
50 лет назад умные люди в лабораториях Xerox всё уже придумали, последующие годы не менее умные люди вполне конкретно это всё развивали и конкретно описывали.
Ну вот впадлу найти первоисточник и прочитать, что такое Controller и какое отношение он имеет Input\Output Segregation?
Вы же замечали, что при описание MVC и MVP в разных статьях полупокеры могут одинаковую схему нарисовать? Я уже месяц просматриваю всё это творчество и я буквально натыкаюсь на одну и ту же схему и один автор рисовал её для MVP а второй для MVVM.
Печально это конечно.
Совет могу дать на последок.
Перед тем как вникать в архитектурные паттерны научитесь хорошо моделировать предметную область хотя бы через тот же DDD. Когда хорошо поймёте что такое модель и её концептуальные границы вам будет уже легче разобраться чем отличается Passive View от Supervising Controller.
👍2
Извиняюсь перед всеми за то, что оскорбили книженьки по программированию.
https://www.youtube.com/watch?v=Iv4m6RDzcrM
https://www.youtube.com/watch?v=Iv4m6RDzcrM
YouTube
Как правильно учить программирование новичку? Советы #ОтПрофессионала
Извиняюсь перед всеми за то, что оскорбили книженьки по программированию.
Обучение разработке игр с нуля с гарантией трудоустройства - https://ijunior.ru/unity-start?utm_source=youtube&utm_medium=video&utm_campaign=description&utm_content=dontreadbooks
…
Обучение разработке игр с нуля с гарантией трудоустройства - https://ijunior.ru/unity-start?utm_source=youtube&utm_medium=video&utm_campaign=description&utm_content=dontreadbooks
…
👍2
Абрахам, я думал мы друзья.
Кто как не друг тебе скажет, что ты делаешь хрень полную? Твои враги - это твои подсосы, которые за много лет убедили тебя, что ты хороший программист.
Ведь давай честно, у тебя же задницу рвёт из-за того, что твой привычный шаблон сломался? Всю жизнь тебя пряником сладким называли, а теперь оказывается что ты говнокодер. И не по мнению злого гринча который украл рождество, а по объективным стандартам индустрии.
Что же тебе это не сказали твои "друзья" сеньоры? Они боялись обидеть их принцеску-дойную корову.
Вот и весь расклад, всю жизнь был топовым блогером и гениальным программистом, а я тебе глазки твои заплывшие открыл, что разработчик ты посредственный и местами даже ужасный. Хватит примазываться к профессионалам индустрии, записывай весёлые видосики, народ смешить у тебя пока получается лучше.
Кто как не друг тебе скажет, что ты делаешь хрень полную? Твои враги - это твои подсосы, которые за много лет убедили тебя, что ты хороший программист.
Ведь давай честно, у тебя же задницу рвёт из-за того, что твой привычный шаблон сломался? Всю жизнь тебя пряником сладким называли, а теперь оказывается что ты говнокодер. И не по мнению злого гринча который украл рождество, а по объективным стандартам индустрии.
Что же тебе это не сказали твои "друзья" сеньоры? Они боялись обидеть их принцеску-дойную корову.
Вот и весь расклад, всю жизнь был топовым блогером и гениальным программистом, а я тебе глазки твои заплывшие открыл, что разработчик ты посредственный и местами даже ужасный. Хватит примазываться к профессионалам индустрии, записывай весёлые видосики, народ смешить у тебя пока получается лучше.
👍2