magla
magla
  • Видео 32
  • Просмотров 387 683
Ответы на вопросы ролика "Вся суть ООП на примере Factorio"
00:00:00 - Вступление
00:04:50 - но ведь в примере в конце нарушен по сути базовый приинцип "Don't repeat yourself". причем настолько грубо, насколько это вообще возможно )) а так игра великолепна )
00:08:05 - Как ни странно, но объяснение из вики о том, что "всё должно быть на объектах" гораздо точнее описывает суть ооп чем остальные 99% этого ролика.
00:09:14 - а можно играть на "микросервисной архитектуре", на так назывемых сити блоках. каждый ситиблок это территория, огражденная железной дорогой, например квадратики 100 на 100 рельм. ...
00:12:04 - Честно говоря... это полный бред. Принципы ООП ложатся на данный пример из факторио не "удивительно хорошо", а чертовски криво и при...
Просмотров: 829

Видео

Суть Объектно Ориентированного Программирования на примере Factorio
Просмотров 75 тыс.3 года назад
#ООП #программирование #factorio
among us - идеальный убийца (by SmiT)
Просмотров 1523 года назад
among us - идеальный убийца (by SmiT)
Sakura moon w12 (Total restore in 6 min)
Просмотров 1003 года назад
Sakura moon w12 (Total restore in 6 min)
Car Mechanic Simulator 2015 - Sakura GT20 Drag V8
Просмотров 1103 года назад
Car Mechanic Simulator 2015 - Sakura GT20 Drag V8
Nashorn (мастер под DnB)
Просмотров 1329 лет назад
Nashorn (мастер под DnB)
Держи сдачу 2!
Просмотров 11610 лет назад
Пытаюсь методично ковырнуть семерку. В этот момент без засвета в бок влетает плюха от вафли, стирая остатки свеже нанесенной краски на корпус моего любимого е50. Мы ей это дело не прощаем! Забываем про бедную семерку и начинаем вычислять откуда прилетела плюха вафли. Принюхиваемся... Определяем направление... Поправка на ветер, и-и-и-и.....
SmiT - E50 Master (Extended cut)
Просмотров 13910 лет назад
SmiT - E50 Master (Extended cut)
E50 MASTER
Просмотров 9910 лет назад
Катался пол года на е50, и вот только сейчас получил мастера. Объясню пару моментов. Я смотался с горы, поскольку дело явно пахло керосином. Там в подавляющем большинстве противники тупо нас раздавили бы. Я решил, что более эффективно будет не держать эту позицию, а попытался зайди врагам в тыл, собственно, что и сделал. Ссылка на рэплэй. wotreplays.ru/site/1966565#zimniy_himmel_sdorf-cj_smit-e-50
Паркур на Bat Chatillon 25 t
Просмотров 6910 лет назад
Паркур на Bat Chatillon 25 t
Kerbal Space Program (KSP) Гибридный самолет способный слетать на луну и обратно! СТОК!
Просмотров 1,1 тыс.10 лет назад
Видео по началу лагает из-за перегруза. Через мин 15 будет нормально. Взлетел только с третьего раза. Редактировать видео было лень :-)
WOT как правильно встречать на жемчужной реке (Tiger II, мастер)
Просмотров 6210 лет назад
WOT как правильно встречать на жемчужной реке (Tiger II, мастер)
E50. Мастер?
Просмотров 6610 лет назад
Есть куски с хреновым качеством видео. Это реал запись, а не реплей.
Без названия
Просмотров 1710 лет назад
Без названия
Держи сдачу!
Просмотров 6811 лет назад
Держи сдачу!
Slon - Lorraine 155 51 (8К дамага, воин)
Просмотров 9211 лет назад
Slon - Lorraine 155 51 (8К дамага, воин)
Хэлкеты в рандоме. Збитие захвата на нулевой секунде (2 vs 5)
Просмотров 6611 лет назад
Хэлкеты в рандоме. Збитие захвата на нулевой секунде (2 vs 5)
My Moments in WOT (by SmiT)
Просмотров 18511 лет назад
My Moments in WOT (by SmiT)
Местечко для хэлкета на эльхалуфе
Просмотров 16111 лет назад
Местечко для хэлкета на эльхалуфе
Е50 (таран китайца на 937HP)
Просмотров 26311 лет назад
Е50 (таран китайца на 937HP)
Feel like ninja (удобное местечко для хэлкета на ласвиле)
Просмотров 7411 лет назад
Feel like ninja (удобное местечко для хэлкета на ласвиле)
M18 (I Can Fly)
Просмотров 8511 лет назад
M18 (I Can Fly)
КВ2 не снайпер? ХА!
Просмотров 6311 лет назад
КВ2 не снайпер? ХА!
Хэлкеты в рандоме. 8 фрагов (на взвод 11)
Просмотров 4011 лет назад
Хэлкеты в рандоме. 8 фрагов (на взвод 11)
Хэлкеты в рандоме. 11 фрагов на взвод
Просмотров 3811 лет назад
Хэлкеты в рандоме. 11 фрагов на взвод
WOT пять ваншотов подряд на КВ2
Просмотров 2 тыс.11 лет назад
WOT пять ваншотов подряд на КВ2
WOT Т49 vs СУ26 (должен остаться только один)
Просмотров 13411 лет назад
WOT Т49 vs СУ26 (должен остаться только один)
LockOn Трюк посадка на СУ-33
Просмотров 306 тыс.11 лет назад
LockOn Трюк посадка на СУ-33

Комментарии

  • @alekseyweselow
    @alekseyweselow 29 дней назад

    30:21 Полностью согласен с автором.

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

    Потому что Yagni. Если заглядывать под капот маленьким проектам то там либо какой-то мощный фрейморк или ядро, где по сути все ООП уже написано, а программист просто создает готовые экземпляры готовых классов и пользуется готовыми методами, не раскрывая и 20% фреймоврка с которым работает, потому что в его целях это просто не нужно. На гитхабе очень сложно найти репы написанные с 0 для какой-то коммерции, так как они все закрыты. Честно говоря об ООП парадигме, она просто во многих случаях не нужна и раздувает твой код.

  • @user-eb3lz3ox8u
    @user-eb3lz3ox8u 2 месяца назад

    думаю кого мне напопинает этож Агент смит из матрицы если прищурить глаза

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

    Прекрасный актёр на главную роль для фильма Чернокнижник 4.

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

    Окстись, ты не Фёдор😂

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

      Это неправильный Фёдор и вообще не тот

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

    Чел-пили еще контент! Очень заходит.

  • @user-eb3lz3ox8u
    @user-eb3lz3ox8u 3 месяца назад

    короче надо срочно факторио пройти чтобы познать ООП

  • @user-rs9sf4oo5v
    @user-rs9sf4oo5v 3 месяца назад

    Уровень прям рофессиональный! Продолжайте в том же темпе. Хочу вам подкинуть ютифай - поможет подписчиков привлечь.

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

    Честно, вот уж приятно видеть ответы на вопросы. Хотелось бы продолжение блога

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

    Ситиблок с точки зрения программирования, кажется лучше назвать интерфейсом или абстрактным классом (зависит от того, нужны ли нам состояния и их контроль). Попробуем представить его (абстрактной) фабрикой ресурса(ов), которая: 1. Может принимать на вход ресурсы [A, B, C, ...] -> МОЖЕТ иметь станцию(станции) загрузки. 2. Имеет станцию (станции) для отгрузки ресурсов [X, Y, Z, ...]. 3. Подключено к электрической сети. И многое - многое другое, что лучше опустить для простоты. (Различные опциональные абстрактные (или не очень) методы, например, *текущей выработки* - считаем количество ресурсов, которое проходит по конвеерам в сторону разгрузки. Можем так же хранить информацию о имеющихся ресурсах и иметь связанные с этим методы. Например, при недостаче отправлять сигнал о необходимости поставок или при переполнении определять блок, как приоритетный для загрузки производимого ресурса. (Отдельный интерфейс - Композиция, наследник данного интерфейса - Наследование. Оба способа имеют право на жизнь. Зависит от языка, задачи, ситуации и, в некоторых случаях, даже от настроения и половой ориентации.) 4. Абстрактный метод produce: produce: *args -> BaseResourceType Внутри у нас происходит неинтересная, конкретная бизнес магия(логика), где мы можем из мух и суп варить, и котлеты лепить... Пример ситиблока поставляющего Уран: Для UranMinerCityBlock(CityBlock) produce: [acid: SulfuricAcid, energy: ElectricalEnergy] -> Uran А теперь возьмёмся за полиморфизм: *Опустим детали возни с углём и возьмем стразу Т3 печи, работающие на электричестве, т.к. в нашем процессе они ничего не меняют* Какие различия между ситиблоками для получения Железной/Медной пластины, Кирпича или Стали? Подаваемый и получаемый ресурс. Зачем нам 4 отдельных класса различия которых только в связке типов данных? Если нам платят не за строчки кода - не за чем. Следовательно, мы можем вместо 4-х конкретных классов (IronSmelterCityBlock, CooperSmelterCityBlock, BrickSmelterCityBlock, SteelSmelterCityBlock) создать один класс SmelterCityBlock, в produce которого возможно подать объект, подписанный на интерфейс MeltStrategy (CooperOre, IronOre, Stone, IronPlate). Наша магия полиморфизма, в данной ситуации в том, что нам не важно что мы плавим, мы получим единственный возможный для конкретного класса результат.(Паттерн стратегия) Да, очень много пробелов, как в ваших, так и в моих рассуждениях. Это, в первую очередь, связано с "кусочным" подходом, не позволяющим собрать общую, целую картину "идеальной архитектуры", которой в реализации, если и есть, то очень мало. ООП именно про модульность и самодостаточность компонентов, которые можно использовать и при необходимости изменять (чаще всего пока пользователь не видит, чем иногда повергать его в шок), а паттерны о принятых подходах (в свою очередь о том, как не повергать его в шок). З.Ы. По поводу стыда, это хорошо. Это говорит о том, что за это время имел место быть рост знаний, опыта и навыков :) А на счёт отсутствия продолжения для данного формата - жаль. Лучшего способа объяснения абстракции, чем подкрепить, через реализацию - ещё не придумали, а стандартные урезанные до одного понятия примеры в полном вакууме - не всегда показательны именно для понимания: "как это использовать в жизни". Стандартные примеры с Эмплоями в отрыве от контекста и создают людей, знающих термин, но не понимающих, как это правильно использовать

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

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

  • @user-oj9lt7zr6y
    @user-oj9lt7zr6y 3 месяца назад

    Я посмотрел от начала и до конца, ни о чем не жалею

  • @user-bm8qj7dn4n
    @user-bm8qj7dn4n 3 месяца назад

    Очень интересно слушать, надеюсь, это видео стрельнёт так же, как предыдущее.

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

    Один из видов полиморфизма -- перегрузка методов в нескольких формах, с разными аргументами и разной реализацией. В Факторио можно было бы хорошо это показать, вот несколько вариантов полиморфизма: 1. Один и тот же модуль даёт разные продукты в зависимости от поступивших аргументов. В этом видео, например, можно подавать в модуль медь и железо и получать первые (зелёные) платы, а если добавить нефть -- получатся уже вторые и третьи (красные и синие) платы. Хоть в начале на этот модуль потратишь больше ресурсов, но после появления нефти он без перестройки будет выполнять доп. функционал. В Факторио это невыгодно, а в программировании лишние строки кода есть не просят :) 2. Плавильный цех может выполнять одну функцию, но быть построен из печей разного вида. Имеем разные формы (реализации) класса, выполняющие одну функцию.

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

    При объяснении ООП всегда рассматривают 3 либо 4 принципа. Но почему-то мало где говорят, в чём вообще смысл слов "объектно-ориентированное", в чём выражается та самая "ориентированность на объекты". Есть ёмкая фраза насчёт этого, и насчёт инкапсуляции в частности. Звучит примерно так: "объединение данных и методов работы с ними". Т.е. всё, что можно делать с данными (методы, функции, операторы), описаны в одном месте (классе) с этими данными. Правда, как это переложить на Факторио -- не знаю :)

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

    Полиморфизм вообще мимо, по-моему. Появился ролик, который чётко раскладывает принципы ООП по полочкам Факторио, насколько это возможно. "Парадигма ООП в Factorio, или как натянуть сову на глобус": ruclips.net/video/N8Q9TwwsVcI/видео.html Хотя и там я не со всем согласен.

  • @user-lb2ns6zh5j
    @user-lb2ns6zh5j 3 месяца назад

    Честно говоря, я руду переплавляю в плиты прямо у месторождений. А на сборщики подаю плиты с поездов, через конвейеры. Иногда даже второй передел (плиты в проволоку) делаю у рудника, а поездами развожу. Но ролик всё равно хорош!

  • @user-sl5yj1un8o
    @user-sl5yj1un8o 3 месяца назад

    Вся суть ООП в том, что вы пишите код, который работает с абстракциями, а не напрямую с данными. Классы это шаблоны объектов, поэтому вы можете указать, что вы передаёте не некий объект, а объект соответствующий определённому шаблону. Ну и нужно понимать, что приложение это уже объект и невозможно написать программу, которая бы полностью была написана на ООП, всегда будет какаято часть императивного кожа, включая программные объекты. Завод в факторио никак не объясняет ООП, это просто работающая программа, каждый заводик это объект, а абстракции автор предлагает держать в голове, ну это не ООП подход.

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

    Блин, даже за 2 года всего 676подписчиков, у тебя отличный контент, желаю дальнейшего развития канала и продвижения контента ютубом.

  • @user-wg1pb2xn6o
    @user-wg1pb2xn6o 3 месяца назад

    За волосы охота его оттаскать. Так долго и нудно рассказывает

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

      Тюбик, за базаром следи

  • @user-wo8jg4kj2y
    @user-wo8jg4kj2y 3 месяца назад

    Спасибо🤝 Пожалуй вы 1 человек в ютьюбе кто рассказал об ООП понятно. Как говорится кто ясно мыслит тот ясно говорит.

  • @user-mw7ei2lf4h
    @user-mw7ei2lf4h 3 месяца назад

    10:16 ну вот неужели так сложно было ровно выложить рассыпку?

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

    Разбор сути этого видоса от Ляпина просто огонь "ёпта"

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

    Видимо чтобы понять надо тоже накуриться

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

    Я может процента три понял из этого видео. До смешного просто))))

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

    Это было что? Реклама малобюджетной игры?

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

    Оп обесценивает стоимость работ поэтому про него и не вспоминают

  • @OB-el5ih
    @OB-el5ih 3 месяца назад

    даун

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

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

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

    Пиши комментарии в коде с примерами краткими входящими данными и результатом что на выходе должно быть. И тогда поймет любой программист. Остальное мутные слова с заумными формулировками.

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

    Вам стоит поработать над скоростью речи для видео

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

    очень много много много много воды и пауз. В один рилз или шортз можно все уложит на 1 минуту

  • @user-nj6ol7kp8p
    @user-nj6ol7kp8p 3 месяца назад

    Можно еще EventBus построить на примере поездов 😁

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

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

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

    Спасибо. Очень классное видео, ничего не понял, зато кайфанул от просмотра как работает заводик

  • @user-pf7vv5ki5s
    @user-pf7vv5ki5s 3 месяца назад

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

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

    ООП это именно что удобство понятность и структурированность для любого пользователя чтеца или редактора кода, но никак не оптимальный способ выполнить конкретную задачу. Если у человека есть желание сделать своё "чудо", то ООП не его вариант в 80% случаев.

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

    коэффициенты в механизмах не те но видео неплохое

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

    Мда, Федор объяснил конечно намного лучше, нагляднее, но что главное более подробно из без воды на пол ролика

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

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

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

    Попытка хорошая в правильном направлении Правда мне сразу понятно (программирую больше 10 лет), что Автор не програмист Абстракция это основа проектирования любого ПО впринципе - ты когда создаешь что-то сложнее чем г*вно и палки всегда в голове представляешь какую то абстракцию системы и её модулей, как они взаимодействуют друг с другом. Также за полиморфизм не объяснил ничего толком "Использует весь функционал" - это не полиморфизм друже Поли - много. Морф - форма структура Тоесть с одним и тем же объектом можно взаимодействовать как с разными структурами: Например класс Человек - это животное но с ним можно говорить Тоесть мы можем говорить с объектом человек1 Но также этот самый объект мы можем покормить так как он является Животным (наследуется от класса Животное) Грубо говоря это и есть полиморфизм - мы можем взаимодействовать с человеком как с человеком либо как с животным. Мне кажется в факторио не получится показать полиморфизм - бо скорее всего получится спагетти фабрика :D Но как говорится всё в ваших ногах.

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

    Жалко, что в наше время молодёжь совсем разучилась писать ООП

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

    Шляпа

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

    Это безумно хорошо и наглядно. Даже мотивирует писать именно так.

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

    В полный список идеального ООП входят 9 принципов, и даже не 4

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

    5:00 интересная мысль, спасибо.

  • @Magic-oc1jk
    @Magic-oc1jk 3 месяца назад

    Занятно

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

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

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

    Да , были времена когда один в пять раскидывал, и один в три.

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

    Кв2 был хорош и в блице… Когда-то…