Парадигма ООП в Factorio, или как натянуть сову на глобус

Поделиться
HTML-код
  • Опубликовано: 29 сен 2024
  • В последнее время стало модно ходить на всякие курсы и учить погромирование. Для помощи непонимающим приводим в ролике пояснение концепций объедко-ориентированного погромирования на примерах из игры Factorio.
    Всё сказанное является частным мнением автора. Всем тем кто несогласен, рекомендую записать свой собственный ролик и сидеть с важным видом на диване, а я его покомментирую.
    ПОДПИСАТЬСЯ НА КАНАЛ - goo.gl/fBUPy1
    DISCORD: / discord
    ТЕЛЕГА: t.me/fed1sPlay
    ГРУППА ВКОНТАКТЕ: fed1splay
    Прямая поддержка канала и комплименты:
    www.donationale...
    Поддержка на регулярной основе:
    boosty.to/fed1...

Комментарии • 358

  • @fed1splay
    @fed1splay  6 месяцев назад +37

    Парни. Кого не устраивает вольная трактовка отношений между объектами в вопросах наследования и ассоциации, можете предложить свой вариант, КАК это можно показать через игровые средства, пусть даже это будет точно также притянуто за уши. Только пожалуйста, давайте такие примеры, которые поймёт даже мой кот :)
    UML схемы прилагать необязательно. Спасибо :)

    • @seaways404
      @seaways404 6 месяцев назад +8

      Сложна, сложна блять! Нихуя не понимаю!

    • @ВладПавлюк-х1б
      @ВладПавлюк-х1б 6 месяцев назад

      ну наследование лучше на примере печки, типа вот обычные печки в них нужно ложить уголь, вот печка получше, она тоже потребляет ресурс и выдаёт результат, но подключается уже проводом, а вообще сложно )

    • @fed1splay
      @fed1splay  6 месяцев назад +4

      Да нет в игре объектов, отвечающих отношению предок-потомок :) Разные тиры объектов - это вариант полиморфизма. Размеченный, и позже расставленный блюпринт - это интерфейс и реализация.
      Чистого наследования нет. Ближайшая/родственная аналогия - то, что приведено в ролике.
      Можно было бы вообще эрзац-наследование в форме ассоциаций не рассматривать, но тут в комментах тогда полыхало бы ярче тысячи солнц. Да даже без этого иногда вспыхивает 😂 А я не настолько жесток)

    • @seaways404
      @seaways404 6 месяцев назад +3

      @@fed1splay ты просто понтуешься сложными терминами, признай это.

    • @MrBkorel
      @MrBkorel 6 месяцев назад +3

      @@fed1splay Есть наследование! например у тебя есть сборщик первого тира и ты его апгрейдишь на сборщик второго тира. Все продолжает работать рецепт тот же, но немного быстрее и появляются сокеты для модулей.
      Или например апгрейд белтов. Как стоял желтый белт/был изогнут - так и стал изогнут новый белт. Унаследовал предыдущие настройки (в т.ч. например фильтрацию или логику) от старого белта

  • @steveq1938
    @steveq1938 6 месяцев назад +72

    Вот рецепт, как получить новое видео от Федора:
    1) Делаем ролик о программировании, в котором несем дичь.
    2) Отправляем в обязательные рекомендации Федору.
    3) Наслаждаемся новым видосом.

  • @ИгорьТомилов-й7д
    @ИгорьТомилов-й7д 6 месяцев назад +2

    Что-то на сложном

  • @endoradai
    @endoradai 6 месяцев назад

    Это интересно, ещё можно попробовать перенести какие то архитектурные паттерны в факторку. Я пробовал на ситиблоках 20х20 сделать слои как в clean архитектуре, но в итоге получилось очень не эффективно из-за ограниченной пропускной способности железной дороги.
    data - в моей реализации это была как бы база данных/сундуки, в которой были ситиблоки с производимыми и добываемыми ресурсами.
    domain - тут находились ситиблоки с производственными фабриками . ситиблок запрашивает ресурс из data слоя, обрабатывает его и отправляет обратно в data слой производимый ресурс.
    ui - это был абстрактный слой , который выводил количество ресурсов из data слоя, я это заменил модом для интерфейса.
    Но в итоге получилось очень не эффективно, большие проблемы с поездами и ltn модом. Еще пострадал геймплей, так не особо интересно играть, больше похоже на работу, но продумывать это все было интересно.

  • @АлександрПокровский-к4ь
    @АлександрПокровский-к4ь 6 месяцев назад

    Давай ещё уроки!

  • @АлексейМехонцев-щ2д
    @АлексейМехонцев-щ2д 6 месяцев назад

    Уважаемый Федор, здравствуйте! Зачем при объяснении, сути полиморфизма, была вставлена картинка Владимира, да ещё в купе с фразой, "в общих чертах"? Я пока ржал, не понял сути полиморфизма. По крайней мере, не понял ваших объяснений! Шутка зачётная! Спасибо за толковый контент!

  • @rar24
    @rar24 6 месяцев назад +2

    композиция и агрегация это про отношения экземпляров, а наследование - про переиспользование
    в видосе произошло натягивание)

  • @СерегаЗлой-с3х
    @СерегаЗлой-с3х 6 месяцев назад

    я специально строю базу как ботан, чтобы ее потом перестраивать, типа эволюция!

  • @darkfrei2
    @darkfrei2 6 месяцев назад

    О, я видел это видео, спасибо за обзор на него!

  • @pronub9743
    @pronub9743 6 месяцев назад +1

    Ура-ура, новые ролики, ведущие за собой потоки праведных рек гнева!

    • @fed1splay
      @fed1splay  6 месяцев назад +2

      Порождать ненависть - это наша работа!

  • @krnrostov
    @krnrostov 6 месяцев назад

    Хвала Императору аве Ляпин)))) 😂

  • @wingdings1476
    @wingdings1476 6 месяцев назад +2

    Прикольно конечно, но всё равно них*я не понятно, где это нужно.

  • @ЕвгенийЛизогуб-и4ч
    @ЕвгенийЛизогуб-и4ч 5 месяцев назад

    А призраки объектов к какому принципу можно отнести?

    • @fed1splay
      @fed1splay  5 месяцев назад

      Интерфейс/абстрактный класс

  • @mikhail_dudek
    @mikhail_dudek 6 месяцев назад

    Все еще сложно. Лучше, что в том ролике, но если б я всего этого не знал, то все равно мало что понял бы.

    • @fed1splay
      @fed1splay  6 месяцев назад

      Имхо, проще на игровых аналогиях уже не разжевать практически

  • @emilio88regis
    @emilio88regis 6 месяцев назад

    Я что-то не понял, где интеграция со SkillFactory?! Это же явно рекламный ролик!!!

  • @milanvasiliev9354
    @milanvasiliev9354 6 месяцев назад

    нихуя не понял но очень интересно

  • @КирсанЗодбаев
    @КирсанЗодбаев 6 месяцев назад

    Я думал новый сезон какой-то, лучше поспал

  • @captaincap1173
    @captaincap1173 6 месяцев назад

    а это будет на экзамене?

    • @fed1splay
      @fed1splay  6 месяцев назад +1

      На зачёте будет

  • @loliligame4099
    @loliligame4099 6 месяцев назад +1

    Ты случаем не учитель?

  • @АлександрШкуренков-м5ы
    @АлександрШкуренков-м5ы 6 месяцев назад

    Абстракция вообще мимо. как можно абстракции, назначать функцию? Она абстракция...она не может иметь функцию.

    • @fed1splay
      @fed1splay  6 месяцев назад

      Имеешь право снять свой ролик, а я приду к тебе в комменты и со значением напишу, что там мимо :)

    • @АлександрШкуренков-м5ы
      @АлександрШкуренков-м5ы 6 месяцев назад

      Ты очень, урезаешь смысл абстракци. Я только это хотел сказать. В факторке сложно сделать абстракцию.

    • @fed1splay
      @fed1splay  6 месяцев назад

      @@АлександрШкуренков-м5ы да тут много чего сложно сделать. но как-то же надо хотябы попытаться суть донести)

    • @auboarti2623
      @auboarti2623 6 месяцев назад

      Абстракция - это на столько общее понятие, что может быть чем угодно. Уровнем познания, предметной областью, отделом, целой фабрикой по отношению к внешнему потребителю, псевдо-классом, включая абстрактные функции.
      Абстракция - это просто способ скрыть (пока ещё не раскрытую) сложность.

    • @fed1splay
      @fed1splay  6 месяцев назад

      @@auboarti2623 но если мы рассматриваем некое действие "произвести" в рамках некоторого абстрактного производства, то это и будет абстрактный метод/функция.
      А при конкретной реализации абстракция конкретизируется.
      В печке это переплавка, в ассемблере - сборка. В химзаводе крекинг :)
      Вроде всё логично

  • @adjearld
    @adjearld 6 месяцев назад

    Нихуя ты баклажан, а на деле сказанное показать не?

    • @fed1splay
      @fed1splay  6 месяцев назад +1

      Так кинескоп включи. Там кроме звука картинка есть, ало

  • @bebra._.228
    @bebra._.228 6 месяцев назад +82

    Как программист, подтверждаю всё сказанное. Сова на глобус натянута успешно

    • @dima_on
      @dima_on 6 месяцев назад +6

      Да ладно. Про наследование херню же сказал.

    • @fed1splay
      @fed1splay  6 месяцев назад +2

      Я для всех экспертов в наследовании; для сдавших контрольную по ООП, для айтишников с 40-летним стажем и всех прочих переживающих за терминологию специальный закреплённый коммент оставил.
      Возможно, кто-то даже преисполнится и осознает, что натягивание сов на глобус сопряжено с конфликтами определений и понятий, и неизбежными компромисами между корректной формулировкой и донесением смыслов.
      С большим интересом посмотрю на пример "в фабриках и конвейерах", который нормальное наследование покажет 😂

    • @ДмитрийПавлюк-у2э
      @ДмитрийПавлюк-у2э 6 месяцев назад

      Про наследования фигня.

    • @shynekomaid
      @shynekomaid 6 месяцев назад

      @@fed1splay Ну так всегда так, не возможно точно и детально объяснить X через сопоставление с Y. То же тупое объяснение ООП через машину. Но для начала этого хватит, а если человек захочет, то получит опыт и разберется сам.

    • @decker08
      @decker08 6 месяцев назад +1

      @@fed1splay наследование можно на примере жуков использовать.Да и в принципе все понятия ООП. Само понятие "жуки" - это абстракция, базовый абстрактный класс. Абстрактные классы реализации не имеют, соответственно и в игре просто "жука" не увидишь. Есть кусаки и плеваки - это наследники базового класса, имеют методы базового класса "ползти" и "ломать". Нам неизвестно, как они ползают, какими лапками перебирают в какой последовательности и по какому алгоритму, Это инкапсуляция. А вот как "ломают" - вблизи или издали - это уже полиморфизм.

  • @EgoricNoc
    @EgoricNoc 6 месяцев назад +158

    Когда нумеруешь элементы списка с нуля: -да я пограммист-

    • @olegzorin3911
      @olegzorin3911 6 месяцев назад +2

      Просто абстракцию ввели относительно недавно. В далеких 90х у нас было только три пункта 1-3. Так что вполне справедливо, что там 0 ). Для расширения кругозора могу ещё предложить посмотреть на вариацию solid. Не трудно догадаться, что тут аж 5 принципов.

    • @fed1splay
      @fed1splay  6 месяцев назад +12

      Я бы сказал, формализовали, а не ввели, наверное. Мы же любой класс рассматриваем всегда как абстракцию, а это самая основа. И кстати, на том же msdn у майков, или как они там его щас в learn переименовали, в обучающем разделе давным давно ооп с абстракции рассматривают :)
      А про солид. Я, честно говоря, даже хз как на примере факторио можно инверсию зависимостей показать. Остальное вроде как-то даже можно притянуть за уши 😂

    • @olegzorin3911
      @olegzorin3911 6 месяцев назад +2

      @@fed1splayДа, у нас абстракция была как само собой разумеющееся. Поэтому в отдельный пункт не выделяли.

    • @olegzorin3911
      @olegzorin3911 6 месяцев назад +1

      @@fed1splayПосмотрел оригинал. Все правильно сделал, что снял этот ролик ))

    • @sylphur2320
      @sylphur2320 6 месяцев назад +4

      Ну, является ли абстракция отдельным принципом - тот еще холивар. Основная претензия - абстракция не является именно ООПшной темой, она так или иначе применяется во всех парадигмах программирования. Этакий общий концепт

  • @zhanluka
    @zhanluka 6 месяцев назад +130

    Все: что-то там про 8-е марта.
    Федис: чисто мужицкое пояснение за ООП

    • @Prizrak_Leonis
      @Prizrak_Leonis 6 месяцев назад +6

      Пятница, цифра 8 упала на бок возле дня недели и получилось "ооп"

  • @zman7738
    @zman7738 2 месяца назад +1

    Федя, что случилось? Чем-то другим занялся?

  • @World_Spectrator
    @World_Spectrator 6 месяцев назад +40

    Всегда верил, что толковые идеи и мысли приходят в голову, либо сидя под яблоней, либо сидя на толчке😂

    • @КонстантинБахарев-ш1щ
      @КонстантинБахарев-ш1щ 6 месяцев назад +3

      Можно и на толчке под яблоней

    • @Prizrak_Leonis
      @Prizrak_Leonis 6 месяцев назад +1

      А под кокосовой пально мысли еще быстрее приходят, если мыслитель хорошо знаком с законом всемирного тяготения, особенно когда на эту пальму полез 🦀

  • @StrategySphere-n2b
    @StrategySphere-n2b 6 месяцев назад +46

    Так так, а я думал только у меня котлетки испорченые попались! Федя добро пожаловать в клуб))

    • @RA7581
      @RA7581 6 месяцев назад

      надо почаще его испорченными котлетками кормить. :)

  • @oleksii7899
    @oleksii7899 6 месяцев назад +2

    факторево это как раз таки пример функционального программирования с монадизацией и композициями. автор джунской дичи нагнал, насследование переплавщика обьектом массив переплавки.. шта, список это типа дочерний класс от обьекта элемента списка? канешна мда

    • @fed1splay
      @fed1splay  6 месяцев назад

      Держи и не благодари :)
      [llllllllllll]=V

  • @agusha-gejmer
    @agusha-gejmer 6 месяцев назад +43

    О, мне буквально сегодня ролик этот попадался по ООП и факторку) полная шляпа

  • @BRICKonYourHead
    @BRICKonYourHead 6 месяцев назад

    He is a live! He is a live!
    Скучаю по насыщенным полезными фишки и сарказмом видосам по факторке...

  • @white73h4
    @white73h4 6 месяцев назад

    Норм)) давай теперь принципы SOLID))

  • @LE0p01d
    @LE0p01d 4 месяца назад

    7:50 Это Владимир! И он чертовски хорошо выглядит!

  • @zelldor2719
    @zelldor2719 4 месяца назад

    Наследование != Ассоциация -> Агрегация, Композиция.
    Даже в языке UML это разные виды связей.

  • @sklyanskiy
    @sklyanskiy 6 месяцев назад

    У понятиях, в нулевом элементе, ты написал "абсракция")))

  • @hedgehogsch.7270
    @hedgehogsch.7270 6 месяцев назад

    Молодец, а теперь поясни за функциональную парадигму в Факторио)

  • @timbeopwonloginov3648
    @timbeopwonloginov3648 6 месяцев назад

    *коммент для продвижения в алгоритмах ютуба* и благодарочка за отличное пояснение =^__^=

  • @Дружняев
    @Дружняев 6 месяцев назад

    Кекнул с "Если говорить в общих ЧЕРТАХ". АВХХАХАХАХ

  • @inreck
    @inreck 6 месяцев назад +1

    Genius...

  • @79cjiaba
    @79cjiaba 6 месяцев назад

    Зачем вообще могло понадобиться подобное объяснение? Покажите мне этого "человека"!

  • @uis246
    @uis246 6 месяцев назад

    Проблема в том, что factorio больше похоже на разработку интегральных схем, чем на программирование. Ну или на data-oriented programming.

  • @afourz_z
    @afourz_z 6 месяцев назад

    Нихера непонятно. Но, чтобы скрыть свою тупость, я, как все умные, пролайкал ролик🤓👍

  • @Ostrov1010
    @Ostrov1010 6 месяцев назад

    Молодец!Не опустился до маргинализации и примитивизации темы,а мажоризировал до специальной терминологии😂

  • @ПапачСергей
    @ПапачСергей 3 месяца назад

    Сижу на МКС. Вижу зарево, у кого-то полыхнуло, а потом перевожу взгляд, а там кто-то сову на глобус натягивает методом объекте ориентированного программирования. Мне даже и в голову не пришло, что эти два события связанны.

  • @кенгордор
    @кенгордор 6 месяцев назад +1

    Сделай гайд по жд и LTN

  • @avalon1000
    @avalon1000 6 месяцев назад

    🤣🤣🤣🤣🤣🤣🤣🤣Феде реально пукан Бомбануло!первый раз доведённым вижу!

  • @rinko6406
    @rinko6406 6 месяцев назад

    Что я тут делаю? Я же даже не программист... Но всё равно было занятно поглядеть и послушать разъяснения термина, что услышал впервые.

  • @sluchainik
    @sluchainik 6 месяцев назад

    К сожалению, получилось отличное объяснение, которое будет просто понять лишь программистам и, одновременно, опытным игрокам в факторио. Домохозяйка и человек-сосед грустно проходят мимо.

  • @justkrybik
    @justkrybik 6 месяцев назад

    Натянул сову на глобус предварительно смазав вазелином)) В целом, натянулась неплохо))) В оригинальном видео вазелина не было и сова испортилась

  • @АлексейАльтапов-ь3ъ
    @АлексейАльтапов-ь3ъ 6 месяцев назад

    Итак посмотрев это видео, как человек далекий от ООП, я не смог определиться я сова или глобус)))

  • @rusmur2996
    @rusmur2996 6 месяцев назад

    Приятного аппетита! Через 3 сек я пошел посрать... очень приятно!

  • @АлександрСкородилов-у6д
    @АлександрСкородилов-у6д 6 месяцев назад

    Ахаха тоже вчера попался этот ролик посмотрел послушал промотал ни х я не понял забил сегодня посмотрел тоже от нормального факторщика и сразу как все понял😂😂

  • @evgeniyevgeniy1372
    @evgeniyevgeniy1372 6 месяцев назад

    У меня есть более экзотический пример. Рандомный чел из интернета советовал мне Факторио, чтобы разобраться с конкурентностью и параллелизмом в языках программирования

  • @ВикторРеспектик
    @ВикторРеспектик 6 месяцев назад

    Ну блин опять неправильно, всё же просто, обьектно ориентированое программирование > программирование ориентированое на объект, ну просто же😂

  • @Ilvrak
    @Ilvrak 6 месяцев назад

    в том видео речь не о том, как объяснить ООП на примере факторио, а о том, как применить принципы ООП в дизайне заводов.

  • @antont2239
    @antont2239 4 месяца назад

    ничего умнее не смог,
    1.45
    Описка в листе. у слова под нумером нуль)

  • @dyvniy_vershitel
    @dyvniy_vershitel 6 месяцев назад

    Где сама факторио, только в фоне? Я думал ты построишь в ней более толковые узлы. А не будешь тут бумажками трясти.
    На мой взгляд факторка - это сладующий шаг вслед за Visual Script Language и блупринтами в анриале. Да, несовершенная, но ещё более наглядная. Ей не хватает лишь масштабируемости - чтобы написать что-то сложное ты задолжаешься ждать, пока дроны всё расставят.

  • @Ilvrak
    @Ilvrak 6 месяцев назад

    к дизайну заводов в факторио хорошо было бы применено не ООП, а общие принципы дизайна систем - масштабирование, вертикальное, горизонтальное, автоскейлинг, кэширование, мониторинг, логгирование)
    это же собственно и есть игра про System Design
    тут ещё можно было бы снять ролик на примере аналогии факторио и книги по Теории Ограничений Систем (Элияху Голдратта) )

  • @esusplay7127
    @esusplay7127 6 месяцев назад

    Благое дело, инженер! С мракобесием боришься, просвещение в массы несёшь. Всеотец велел тебе грамоту выписать!

  • @Maki-gz3ec
    @Maki-gz3ec 6 месяцев назад

    Лол, когда у других летсплейщиков горит жопа они идут и выливают тонны дерьма, когда жопа горит у летсплейщиков Факторки он решает сесть и выдать базу на уровни лексий из уника.

  • @DERJNDZE
    @DERJNDZE 6 месяцев назад

    О, я смотрел тот видос, на скорости x2, быгыгы. Да, действительно, факторка там будто для кликбейта, чисто в конце, да и наследование странно визуализировано, хоть и сам аффтар ремарку сделал. Но для объяснения тем, кто не шарит, такое недопустимо

  • @muskonobim9477
    @muskonobim9477 6 месяцев назад

    У меня тоже появлялась мысль, что между логистическими играми и программированием есть что-то общее (даже больше чем с играми где нужно писать код). Прикольно что есть люди, которые разделяют мои беды с башкой. Спасибо за видео!
    Теперь бессмысленный поток текста который можно не читать (:
    Даже среди программистов ведутся срачи про ООП (особенно про наследование).
    Немного отсебятины:
    Абстракция - это абстрагирование от лишнего.
    Практический пример: Нам нужно написать программу, которая сортирует яблоки по весу. Для этого программе НЕ нужно знать цвет яблока, размер, форму, где вырос, откуда привезли, сорт. Нам нужно знать только вес, от всего остального мы абстрагируемся. Это и есть абстракция в контексте программирования. Звучит банально и очевидно. Именно по этой причине большинство программистов игнорируют этот принцип и говорят что ООП состоит из 3 принципов, а не из 4.
    Определение абстракции из видео это скорее определение самого ООП, чем абстракции.
    Инкапсуляция. Это не простая тема. На практике может иметь не очевидные подводные камни из-за которых этот принцип очень легко нарушить.
    Инкапсуляция - это защита целостности данных.
    Есть проблема: у нас есть функция/процедура/метод который работает с данными. При чем данные могут быть не только поступающие из вне, но и внутренние, необходимые для работы метода. Если мы будем из вне менять внутренние данные метода, то это может привести к ошибке/поломке/неправильной работе метода. Одной из причин которая может привести к этой проблеме - глобальные переменные/данные. По этому, глобальные переменные запрещены.
    Главная цель инкапсуляции - защита целостности данных. Что, как говорилась ранее, не такая простая задача.
    Однажды нарушение инкапсуляции (из-за глобальных переменных) чуть не привело к войне. Ложно сработала система защиты. Так же была проблема в бортовом компьютере авто, когда блокировалась педаль тормоза.
    Определение инкапсуляции из видео в целом верная, но это тонкая грань, где легко нарушить инкапсуляцию и стереть грань между классом и структурой данных. Разница между классом и структурой - в классе, методы меняющие внутренние переменные/данные/состояния обязаны обладать сложной логикой, в ином случае это будет нарушением инкапсуляции и это будет уже скорее структурой, чем классом, ведь в таком методе нет никакого смысла.
    Пример: класс кошелек. Метод меняющий количество денег в кошельке обязан обладать сложной логикой проверяющей что: кошелек не может иметь отрицательное значение, иногда кошелек может иметь максимальное значение и т.д. В случае провала проверки метод обязан либо "кидать исключение"(ошибку), либо, если ситуация типичная, возвращать "код ошибки". В программировании коды ошибок запрещены, вместо них использую boolean(да, нет), либо enum(именованные коды ошибок). В таком случает метод должен именоваться с Try. Возвращать null(ничего) запрещено.
    Наследование. Популярная тема для срачей. Популярная трактовка наследования устарела и "правильное" определение будет звучать так:
    Наследование - конкретная реализация таких двух принципов как: полиморфизм и DRY (Запрет на дубляж/KopyPaste).
    Есть 2 проблемы:
    1. Дубляж кода. Чтобы исправить одну ошибку, нужно сделать изменение в нескольких местах, что иногда бывает невозможно.
    2. Дубляж кода в if-else. В программировании if-else почти запрещены, почти от всех них можно избавиться с помощью полиморфизма.
    Главная цель наследования - борьба с дубляжем. Наследование это скорее не принцип ООП, а конкретная реализация двух других принципов.
    У наследования есть альтернативы: интерфейсы; композиция/агрегация; в языке Go (Golang) есть альтернатива - "Встраивание"; в языке Rust - трейты.
    Так же есть принцип, который гласит "Composition over inheritance" (Композиция важнее наследования). Это отдельная тема для срачей. Мое мнение, "истина где-то посередине". В большинстве случаев использовать композицию, но не отказываться от наследования (хотя, если отказаться, ничего страшного не должно произойти, ведь есть альтернативы). Наследование - это очень сложный инструмент, неправильное использование которого может привести к проблемам, но в правильных руках проблем быть не должно.
    Определение наследование из видео вроде верная, но мне кажется что реализовать наследование в Факторио не возможно, если только через чертежи можно натянуто реализовать, а так это вроде возможно реализовать на уровне механик, идея для мода: вносишь изменение в чертеж(класс), и изменение автоматически применяется в дочерних чертежах(производных классах) и дроны начинают автоматически перестраивать старые заводы(объекты) реализующие чертеж. (Говорю как человек никогда не игравший в Факторио)
    Полиморфизм - способность метода работать с данными разных типов.
    Есть проблема описанная ранее - дубляж кода. Цель полиморфизма - борьба с ним.
    Тут мне сказать нечего. В видео все вроде верно.

  • @billgrover3130
    @billgrover3130 6 месяцев назад

    А где стрим чёрного экрана? Я чет найти не могу. Знаю, что Федя обещал. Не мог же он не выполнить обещание!

  • @Grynya
    @Grynya 6 месяцев назад

    Первые 30 секунд видоса это прям жиза но конкретно с этим видео, но исход увы другой, все понятно и даже слишком наглядно🥺, сообщество вкатунов в программирование не заслужило чего-то лучше инфоцыган на ютубе

  • @LanGeDoks
    @LanGeDoks 6 месяцев назад

    Это исключительно моё ИМХО, но...
    Если человек хорошо разбирается в теме, он без труда это переносит на другие темы.
    То есть если ты разбираешься в теме (и в фактории, и в программировании) - для тебя не составляет труда создать нормальные, понятные, простые алегории. Если же ты в чем-то не разбираешься - у тебя будет мешанина из слова практически непридатна к восприятию.

  • @Desotterro
    @Desotterro 6 месяцев назад

    Жду объяснение всего с++ на примере факторки за 2 часа от ждуна до сеньора

  • @eirpile
    @eirpile 6 месяцев назад

    Бальдэжное видэо. Хороший стримлер бамбид на интернет + интересный контент. Мог бы даже потеребонькать, но самовнушением приписал руке свойство абстракции и теперь она не стыкуется с реальными предметами. Буду теперь думать как это исправить. Главное - в процессе не приписать подобное свойство мозгу, а то ещё выйду из матрицы раньше времени, и не смогу пронаблюдать сей дурдом до логичного финала.

  • @ruzarh
    @ruzarh 6 месяцев назад

    Хотел сначала похейтить, когда увидел тайтл видео, но скажу, что сова натянута на глобус. Правда мне кажется, что те кто не знаком с темой, все же вряд ли что то поняли. Мне понравилось, спасибо, улыбнуло!

  • @Rossinante_Tachi
    @Rossinante_Tachi 6 месяцев назад

    Ну у каждого языка свой ООП, и тут непонятки то и могут возникать. И еще почему на факторио? Почему не использовать машина как во всех языках учат, да на худой конец виды грызунов или червей. Блин зачем так заморачиваться 😅 да и вообще для трудно усваимаевых все ответы в названии ООП😊 да и вообще программирование это по сути пуляния одним объектом в другой тупо текстом😂

  • @romangolumbevskiy7268
    @romangolumbevskiy7268 6 месяцев назад

    За 11 минут раскидал по понятиям лучше, чем всякие гуру Пайтона и JS. 😎

  • @alexfrozen
    @alexfrozen 6 месяцев назад

    Мне тоже попался тот ролик. Я подгорел от этой наркоманской бредятины. На всякий случай запомнил наркомана в лицо, чтобы случаем не нанять его в команду. Это трындец просто. Про сову и глобус идеальное сравнение с тем роликом.

  • @multiprogramm
    @multiprogramm 6 месяцев назад

    На наследовании моя сова начала кричать и отбрыкиваться, но в целом годно, натянул :D

    • @fed1splay
      @fed1splay  6 месяцев назад +1

      А я хз, как чистое наследование как иерархию отношений на чисто игровых примерах показать) Кому надо - обратится к теории, и разберётся в различиях 😂

  • @roflin4ik
    @roflin4ik 6 месяцев назад

    классом я бы назвал чертежи, по которым мы строим цеха и прочее, а вот то, что мы построили по этим чертежам - объекты/экземпляры

  • @Pan__bratella
    @Pan__bratella 6 месяцев назад

    зашел посмотреть 11 минутный ролик с непонятным названием, потому как это самый короткий ролик за последнее время, как итог: я не дебил, но так и не понял как это мне поможет, по пунктам все понятно и логично, а в целом выглядит как урок по необязательному предмету, который ты проходишь, чтобы получить свою оценку и выкинуть из головы все что было получено

  • @groomgo
    @groomgo 6 месяцев назад +10

    короче что могу сказать, не зря я накатил 3 по 50, хотя бы с умным видом посидел и покивал, как будто что - то в этом шарю😆

  • @endy587
    @endy587 3 месяца назад

    У меня вопрос, перерыл весь инет, не нашел еормальной информации как установить чертежи с инета в факторио

  • @RA7581
    @RA7581 6 месяцев назад

    вот, что происходит, когда живёшь со скотом. :)

  • @garretshadow152
    @garretshadow152 6 месяцев назад

    Вот тоже видел тот ролик, и тоже он мне не понравился, хотя такого бугурта он у меня, конечно, не вызвал) а тут все намного понятнее.
    Можно же, если захотеть...

  • @Ghalleot
    @Ghalleot 6 месяцев назад

    Отлично, пояснил. Даже чет понял вот. Но вопрос: На**я это тут? 🤨

  • @WladySpb
    @WladySpb 6 месяцев назад

    О, я тоже видел упомянутый ролик😁

  • @Just-York
    @Just-York 6 месяцев назад

    Блин, только сейчас увидел это видео) Тоже видел этого парня и решил сделать свое видео, но ты сделал это быстрее :((

  • @ИванОсинин-с7и
    @ИванОсинин-с7и 6 месяцев назад

    Огонь, по сравнению с роликом ставшим поводом

  • @IYBeats
    @IYBeats 6 месяцев назад +2

    Раскидал по фактам! Тоже выдавало в рекомендации программирование в Факторке

  • @skierf1985
    @skierf1985 6 месяцев назад

    Эм, класс в классе? Библиотекой бы назвал😮

  • @ReeZee15
    @ReeZee15 6 месяцев назад

    11/10 =))

  • @RA7581
    @RA7581 6 месяцев назад

    хорошая презентация, в повер поинт :)

  • @batpro7564
    @batpro7564 6 месяцев назад +8

    Как же я люблю шутки (черту владимиру привет) в подобных видосах

    • @Lexys3230
      @Lexys3230 6 месяцев назад

      И Юре профессионалу))

  • @КомандаОтбитые
    @КомандаОтбитые 6 месяцев назад +14

    Это однозначно лайк. Хотя логику с логистикой путаю. Просто Федино творчество нравится. Он хороший)

    • @СашаНеизвестный-о2м
      @СашаНеизвестный-о2м 6 месяцев назад +1

      логика логично будет основой умозаключений, сорян за тавтологию но тут она нужна.
      логистика - это как доставить умозаключение от мозга к языку

    • @rar24
      @rar24 6 месяцев назад +1

      главное столбы с опорами не путай

  • @mertviy_games
    @mertviy_games 6 месяцев назад

    кажется я понял какой видос ты посмотрел xD

  • @Adder_ai
    @Adder_ai 6 месяцев назад +7

    А методичка будет? А сдача когда?

    • @fed1splay
      @fed1splay  6 месяцев назад +2

      Ты контрольную вначале сдай!

  • @blezzrot4115
    @blezzrot4115 6 месяцев назад

    теперь нужна парадигма ФП (функциональное программирование) в factorio

    • @СергейКапралов-и6ш
      @СергейКапралов-и6ш 6 месяцев назад

      Вся фабрика суть - одна большая do-нотация, перелопачивающая на потоке монады-ресурсы?

  • @tla_yt
    @tla_yt 2 месяца назад

    Где видео!

  • @Евгений_Пилявский
    @Евгений_Пилявский 6 месяцев назад

    1:45 "абсТракция".

  • @sergeyb1253
    @sergeyb1253 6 месяцев назад

    Так что же такое 0: Абсракция?

  • @madvUA
    @madvUA 3 месяца назад

    Зачетная травка попалась ))

  • @lord_lelik3973
    @lord_lelik3973 6 месяцев назад

    Вроде понятно получилось.

  • @qwertymangames1800
    @qwertymangames1800 6 месяцев назад

    Factorio использует язык lua для модов и основного контента.
    Тем временем ютуберы: зачем-то нумеруют всё с нуля.

    • @fed1splay
      @fed1splay  6 месяцев назад

      Я в следующий раз с -1 всё пронумерую :)

  • @Triariy89
    @Triariy89 6 месяцев назад +3

    Композиция и агрегация - это паттерны программирования... Наследование то тут с какого перепугу? Наследование предполагает класс родителя и класс наследника (дочерний класс). Наследник "наследует" поведение родителя, добавляя или изменяя поведение родителя. Наследованием тут лучше сказать так - есть печь. Наследником для печи будет стальная печь, потому как делает тоже самое, но в два раза быстрее. Наследником для стальной печи можно сделать электрическую печь, т.к. она потребляет электроэнергию, а не уголь.
    Композиция и агрегация - это специальные приемы комбинирования различных парадигмов ООП (наследование, полиморфизм и инкапсуляция + SOLID).
    Абстракция тоже паттерн, если на то пошло, вы тут называете её принципом единственности ответственности из SOLID

    • @fed1splay
      @fed1splay  6 месяцев назад

      "Как давно вы варите наркотики?" :)
      Композиция и агрегация - это вид ассоциации. Наравне с наследованием (а при должном натягивании совы на глобус, это можно даже рассмотреть как некое "наследование", что и сделано) ассоциации позволяют строить иерархии отношений типов/классов.
      Классическое наследование невозможно представить игровыми способами. Приведённый пример с печками - это чистой воды полиморфизм. Наследованием тут будет некоторая печка (любого грейда), как потомок, и базовый класс для печки, как предок, который существует ТОЛЬКО на уровне api игры.
      Стальная печь не является потомком каменной печи. Электропечь не является потомком стальной. Это просто вариации на тему. Они все потомки одного базового класса - базовой абстрактной печки.
      Абстракция - это формализованный подход, предполагающий описание необходимых атрибутов и взаимодействий сущностей в рамках некоторой системы, для её абстрактного представления. Например, формирование классов и их отношений/взаимосвязей.
      Никакого отношения к паттернам абстракция не имеет.
      При чём тут солид, тоже непонятно. Солид - это набор рекомендаций (принципов), чтобы код как можно меньше походил на винегрет.

    • @Triariy89
      @Triariy89 6 месяцев назад

      @@fed1splay шишечным вареньем вообще представлять какие то сложные механизмы игры примитивными терминами... Тут даже банальная железная руда уже является сложной иерархической сущностью (экземпляром класса) конкретной абстракцией и агрегацией отдельных свойств (тип, спрайт, время выплавки и прочего). Тот, кто первоначально задался идеей "абстрагировать" саму игру, её верхнеуровневые компоненты, до уровней знаний языка программирования... 😭😭 Лучше бы матчасть учил.. не надо так людей пугать. А то будут одни гуманитарии

  • @andrewxd5705
    @andrewxd5705 6 месяцев назад

    Вот уж натянул сову так натянул... 11 натянутых сов из 10...
    1. Абстракция это не архитектура от слова "совсем". Лучший пример абстракции в факторке это чертеж. Есть чертеж и на основе его можно делать уже конкретные цеха. Но я вообще не знаю накуя зумеры добавили это определение в ООП. Без него было лучше, мороженое вкуснее, а трава зеленее..
    2. Описание инкапсуляции сойдет для сельской местности :)
    3. Тема наследования не раскрыта и наследование никак не связано с агрегацией и композицией. На примере факторки: можно создать чертеж на базе другого чертежа и дорисовать в нем какой-нибудь дополнительный функционал.
    4. Агрегация и композиция описаны худшим образом) Автор взял пример человека.. Так вот композиция на примере человека - это когда у тебя есть рука и она стационарная)) Ее нельзя убрать или поставить что-то другое, а без руки ты будешь грустным инвалидом. Агрегация это когда у тебя в плечевом суставе USB разъем и ты можешь подключить туда хоть руку, хоть ногу, хоть чайник, хоть флешку.. Короче все с таким же разъемом) На примере факторки и конкретно печи с модулями, то я бы сказал что там действительно имеет место быть агрегация (можно вставить модуль скорости, а можно модуль эффективности и т.д.). Композицию можно было бы представить на примере той же печи, если учесть что ей нужна энергия для работы (электрическая или топливная). Без энергии печь не может печь и всё тут, но это еще одна сова на глобусе)
    5. Описание полиморфизма с пивком пойдет) Меня всегда прикалывает то, что не все программисты в курсе, что бывает разный полиморфизм :)

    • @fed1splay
      @fed1splay  6 месяцев назад

      Наследование не показать обычными игровыми средствами. Поэтому подмена понятий. Хотя не все это видят.
      Чертёж скорее описывает понятие интерфейса.
      А про абстракцию... Любая теория развивается. Имхо нужен был базис, из которого будут выводиться определения классов, типов и прочего. Появился.
      На msdn в учебных материалах майкрософт, например, давно ООП рассматривается в том числе и через абстракцию.
      Мы конечно можем всё ООП свести по Мартину, чисто к полиморфизму и конкретно - к инверсии зависимостей.
      Но как тогда сов на глобус натягивать?)

  • @volodya185
    @volodya185 6 месяцев назад

    Так кажется я понял о каком видео ты говоришь... Я с него поржал)
    Погнали:
    Принципы ООП это инкапсюляция, наследование и полиморфизм, абстракция это вытекающее и скорее свойство.
    Абстракция скорее ЖД, когда разные поезда (по размеру) могут приходить на одну станцию и загружать/выгружать разные предметы. Абстракция и архитектура разное, архитектура способ построения, а абстракция - возможность выводить что-то на уровень не связанный с простым... Сказанул... В общему абстрацией над лупой может быть круг, потому, что она круглая. В твоём примере ты больше затронул наследование чем абстракцию, так как разные "слои абстракции" похожи на мир на земле, под водой и в космосе. То есть слои не связанные, но в них есть что-то, чтобы пытается быть сразу везде.
    Инкапсуляция работа по принципу чёрного ящика (верно объяснил)
    Наследование. Композиция (wat?) Братиш, ты умный, я знаю, но изучал ты это у какого-то курильщика!
    Агрегация. Вообще не шарю, как это относится к наследованию.... Я могу согласиться с сутью являться, мы можем узнать, является ли один класс наследником другого класса или интерфейса. Но содержание... Это уже попахивает рефлексией, но это не к ооп.
    Наследование это когда ты собираешь что-то из чего-то, и получаешь новый объект, который унаследовал свойства своих составляющих, а факторке нет примера, может за исключение зелёных, красных и синих микросхем, красная и зелёная дают более мощную микросхему синюю (пусть она и называется процессором).
    Полиморфизм... Ну, давай разбираться, тут всё просто) Да, первое, это перегрузка, цех по переплавки не сможет молча переплавлять две руды, но если у цеха будет несколько разных входов, тогда разные подцехи будут спокойно справляться с задачей переплавки разных руд. Параметрический в факторке отсутствует. С примером в целом согласен, но но не полностью. Всё таки полиморфностью в факторио могут обладать только цеха по производству сложных компонентов, когда цех может сделать отдин и тот же продукт с помощью основных составляющих или, например, из сырья (руды). То есть цех должен иметь по итогу полный цикл обработки всех ресурсов начиная с руды, так же может спокойно работать с другими составляющими (долго описывать пример, если надо будет подробнее описать напишите мне, я оставлю ответ.
    Полиморфизм подтипов. Есть "базовый" класс или иначе говоря абстрактный класс или интерфейс, которые имеют методы без реализации, а их наследники обязаны знать, как выполняются эти метода, это похоже на что-то типа... Есть круглое отверстие, туда может войти шар, сфероит. В целом апгрейд в факторке похож на то, о чём ты говоришь.
    Итог:
    Абстракция идёт в пень, так как это не принцип! Инкапсуляция - цех что-то получает и что-то выдаёт, как - плевать (принцип чёрного ящика). Наследование - скорее отсутствует в факторке, пример с чертежами самый лучший, когда один чертёж включаеи в себя другой, но это за уши притянуто. (вообще на чертежах легче объяснять программирование). Полиморфизм - когда есть куча разных входов или способов взаимодействия, при которых мы получаем один и тот же результат.

    • @fed1splay
      @fed1splay  6 месяцев назад

      Ты видимо суть не уловил) Это сова, натянутая на глобус.
      Примера наследования нет, поэтому и рассмотрены близкие по смыслу отношения в виде ассоциации. Подрыв пуканов вызвало, да. Ну и наследоваться же могут не только объекты, но и абстракции. Те же абстрактные классы и интерфейсы. У них не бывает объектов.
      А про абстракцию... очередной холивар)
      Пацаны из майкрасофта, например, это давно в своих обучалках с мсдн в отдельный принцип выделяют, как некую "базу". Тут одно из двух. Либо там в лёрнинг центре тупые, либо все остальные. Истина как всегда посередине.

  • @sergeysamoylenko5110
    @sergeysamoylenko5110 6 месяцев назад

    0. Абсракция
    Лол