Просто о ООП (Парадигмы ООП)

Поділитися
Вставка
  • Опубліковано 22 гру 2024

КОМЕНТАРІ • 184

  • @lis_petrovskij
    @lis_petrovskij 3 роки тому +29

    Так вот какое видео об ООП я ждал все это время... Ютуб чик, подключай алгоритмы - годно та.

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому +4

      Хотелось бы надеяться, что подключит)

  • @leksts7701
    @leksts7701 3 роки тому +36

    Большая тебе благодарность! Приятно смотреть: всё просто, понятно. Пожалуйста, продолжай! Ты делаешь нашу жизнь лучше: я углубился в понимании ООП)

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому +3

      Спасибо большое за поддержку!)

    • @Алексей-ъ2ч8э
      @Алексей-ъ2ч8э 3 роки тому +1

      @@YauhenKavalchuk будет просто о алгоритмах и структурах данных?

  • @serhiilytvyn8753
    @serhiilytvyn8753 3 роки тому +9

    Евгений, как всегда просто и понятно о сложных вещах, у Вас талант!!!

  • @aleksp7486
    @aleksp7486 Рік тому +1

    Очередной раз убедился, что ты один из немногих, который действительно может доступно, доходчиво и главное интересно объяснить! Спасибо огромное, за то что ты делаешь!

    • @YauhenKavalchuk
      @YauhenKavalchuk  Рік тому

      Спасибо большое за поддержку

  • @ИринаТоболич-х6н
    @ИринаТоболич-х6н 3 роки тому +6

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

  • @Kozmo969
    @Kozmo969 3 роки тому +2

    Сколько я видео пересмотрел об ООП, твоё самое лучшее, понимание приходит просто моментально! Спасибо тебе огромное!

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому +1

      Спасибо большое за отзыв!)

  • @dilyafruzik
    @dilyafruzik 2 роки тому +4

    В очередной раз благодарю за педагогически доходчивую подачу материала 👌

  • @masaladosa6
    @masaladosa6 3 роки тому +5

    Шикарное объяснение! ООП стало еще понятней. Лайк, репост!

  • @vr4836
    @vr4836 3 роки тому +6

    Оказывается ООП еще надо подучить ))) огромное спасибо за материал!!

  • @SM-xp8tw
    @SM-xp8tw Рік тому

    Один из лучших видосов про ооп, коротко, понятно, без лишней воды и тягомотины. Автору спасибо !

  • @dimalukashenko4865
    @dimalukashenko4865 3 роки тому +2

    Спасибо, давно ждал такого хорошего урока по ООП на примере JavaScript.

  • @Mix-op9if
    @Mix-op9if 3 роки тому +4

    Отлично, от тебя и ждал так как все понятно и просто обесняешь)

  • @xdtrip
    @xdtrip 5 місяців тому

    Браво👏

  • @SobolevMsta
    @SobolevMsta 9 місяців тому

    Спасибо за старания! У тебя талант не только в разработке, но и к преподаванию.

    • @YauhenKavalchuk
      @YauhenKavalchuk  9 місяців тому

      Спасибо большое за отзыв

  • @vitaliilushyn9854
    @vitaliilushyn9854 3 роки тому +1

    В примере с наследованием на 8:30 после переопределения this.model = `${model} Model`; и вызвав родительский метод teslaAuto.getAutoType() мы получим
    //Tesla 3 Model - 2019, а не //Tesla 3 - 2019 как на скрине у ТС.
    Видео класс, спасибо автору.

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому

      Спасибо за отзыв, да отпечатался в выводимом результате

  • @alexanderalexander7722
    @alexanderalexander7722 3 роки тому +10

    Спасибо за твои труды! Шикарное видео!
    Как все просто на самом деле! Столько разных роликов на эту тему и книг, а понять что-либо из них крайне тяжело. Все заумно и запутанно. А здесь и просто, и понятно.
    Евгений, у тебя явно талант преподавания! Может стоит этим заняться профессионально?
    PS: очень не хватает именно твоих уроков по алгоритмам и структурам данных, желательно на примере JavaScript. Уверен: желающих на эту тему будет немало.

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому +2

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

  • @Kiddjan
    @Kiddjan 3 роки тому +1

    Очень долго ждал подобное видео с твоей подачей, спасибо большое)

  • @konstantin6524
    @konstantin6524 3 роки тому +7

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

  • @Evgenij_Toporkov
    @Evgenij_Toporkov 9 місяців тому

    Действительно - простое и доходчивое объяснение!

  • @oleksandrvoron_ko580
    @oleksandrvoron_ko580 2 роки тому

    Принципи ООП класно описано, але в кінці, то вже hight level! Дякую за контент!

  • @yaroslavoz
    @yaroslavoz 3 роки тому +1

    Супер! Спасибо! Наглядно очень

  • @mgblstmgblst3236
    @mgblstmgblst3236 3 роки тому +1

    Шикарное видео, приятно от каждого слова! =)

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому

      Спасибо большое за отзыв!

  • @arcadiibabici7655
    @arcadiibabici7655 Рік тому

    Спасибо за твои труды!

  • @Signtone
    @Signtone 3 роки тому

    То что нужно! Спасибо Евгений!

  • @valeramitar9022
    @valeramitar9022 3 роки тому

    Вперёд в топы, отлично все объяснено!)

  • @pavelluck3973
    @pavelluck3973 3 роки тому

    Как же это вовремя) заранее спасибо!) приступаем к просмотру)

  • @ХайнарбайСардарбеков

    Түсіне алмай жүр едім, мен үшін қиын болып еді,керемет түсіндіріп бердің,үлкен рахмет!

  • @iskendev
    @iskendev 2 роки тому

    Респект, спасибо за качественный материал.

  • @evan_kirk
    @evan_kirk Рік тому

    4:40 А как же перегрузка конструктора? В C# такое есть.

  • @swayze_0
    @swayze_0 2 роки тому

    9:14 При обращению к классу подобным образом консоль выводит undefined (за исключением Auto.name = "Auto" имя класса), в TS вообще так обратиться нельзя. А даже если найдется пользователь который через инструменты разработчика найдет наш класс и что-то там поменяет, какая разница ведь при перезагрузке страницы все сбросится. То же самое если пользователь нажмет f12 и начнет удалять теги.
    Концепция инкапсуляции занятна, но разве она широко относится к JavaScript? Может что-то не понимаю, но по ощущениям вся инкапсуляция в js сводится к не использованию метода eval в пользовательском вводе.
    Полиморфизм - зачем нам создавать несколько дочерних классов с одним и тем-же методом и из них брать метод родительского? Можно на основе класса Auto создать объекты, скидать их в массив и так же проитерироваться по элементам с вызовом функции. Эффект тот же, кода и путаницы меньше. Или это своего рода диверсификация активов?)

    • @alex_k2024
      @alex_k2024 2 роки тому

      Через имя класса можно обратиться к статическим свойствам и методам.

  • @555522ish
    @555522ish 3 роки тому +1

    Спасибо, было очень доступно

  • @Albert_Hall
    @Albert_Hall 2 роки тому

    Очень очень Чётко! 🌠🛠️

  • @МаргаритаМаркова-т1м

    Супер подача, спасибо

  • @turalinov
    @turalinov Рік тому

    Очень доступно, спасибо!

  • @slavamelanko5992
    @slavamelanko5992 3 роки тому +1

    Немного отсебятины добавлю. Изначально я С++ дев и когда изучал JS, то пытался все делать через ООП. Чуть мозг не сломал 🙂 Как-то не очень получалось даже с ES6 апдейтом. В TS уже лучше. По-моему ООП стоит изучать с С++ (включая Java и C#), но это мое мнение

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому

      Да, в JS ООП очень не похоже на всё остальное, даже с учётом нового синтаксиса классов. А когда узнаешь, что под капотом прототипы, то усё…)

    • @bulsond
      @bulsond 3 роки тому

      В С++, Java,. C# - объект и инстанс класса есть одно и тоже. А для Javascript приходиться еще выделять объект в отдельную сущность из-за заложенного в этот язык прототипного наследования. Я согласен с вами полностью, чистое ООП надо начинать изучать не с JS, а именно с Java или C#, которые были изначально спроектированы под данную парадигму. А вот с C++ все сложнее, там заложено множественное наследование, и сам язык все-таки ближе к процедурности чем к ООП.

  • @geek7807
    @geek7807 2 роки тому

    Очень подробно разжёвано. Я аж даже на мгновение почувствовал себя умным)

  • @bekturmuratov7853
    @bekturmuratov7853 3 роки тому

    Отличное объяснения теперь стало ясно как работает ООП

  • @ДмитрийПригульнов
    @ДмитрийПригульнов 3 роки тому +1

    Хорошее видео. Сложная тема простым языком.

  • @mixm1572
    @mixm1572 2 роки тому

    дзякуй

  • @umrbekxudayarov2459
    @umrbekxudayarov2459 Рік тому

    Отличное видео, спасибо.

  • @TarasovFrontDev
    @TarasovFrontDev Рік тому

    Спасибо за видео! Ты смог объяснить концепции. Но примеры - тихий ужас. Вот как свойство VIN может быть приватным свойством класса, если вин должен быть уникальным у каждого инстанса?

  • @neov5055
    @neov5055 3 роки тому +1

    Очень ждём курс по js. Спасибо!!

  • @webxcryptoit7308
    @webxcryptoit7308 3 роки тому

    Спасибо, за твои уроки. С удовольствием смотрю.
    Немного уточнить хотел. На 20:27 в последней строке const mi8 = ....
    Там наверное ты хотел указать new Helicopter(... ?

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому

      Да, там должен быть класс вертолёт

  • @azil2024
    @azil2024 3 роки тому

    топчик бро, люблю смотреть твои видосики

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому

      Спасибо

    • @azil2024
      @azil2024 3 роки тому

      @@YauhenKavalchuk было б здорово еще упомянуть статические поля и модификатор доступа protected

  • @artuchka-profi
    @artuchka-profi Рік тому

    на 8:31 в последней строке будет "Tesla 3 Model - 2019"

  • @lutinik
    @lutinik 3 роки тому +1

    На 15:20, наверное, должно быть new AutoFactory

  • @olehy5000
    @olehy5000 3 роки тому

    Спасибо. Полезно.

  • @ruden6623
    @ruden6623 Рік тому

    Супер, только вот тема инкапсуляции и сокрытия, как по мне, не очень раскрыта. Точнее там используется слово, которое можно по разному трактовать(по крайней мере, я так думаю). Самое главное, что нужно запомнить: инкапсуляция обеспечивает сокрытие, но не является им!

    • @YauhenKavalchuk
      @YauhenKavalchuk  Рік тому

      Спасибо за уточнение и пояснение

  • @alexunder629
    @alexunder629 3 роки тому

    Благодарю!

  • @andygr1n1
    @andygr1n1 3 роки тому

    качественно, спасибо!

  • @alekkhalex
    @alekkhalex Рік тому

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

    • @YauhenKavalchuk
      @YauhenKavalchuk  Рік тому

      Я встречал минимум 3 разных объяснения. А то что вы описали немного похоже на Dimond problem

    • @orionpro79
      @orionpro79 Рік тому

      ну вообще да, полиморфизм в js это когда в классе родителя определён метод, и когда в дочернем классе мы переопределяем этот метод , то мы получаем результат для этого дочернего т.е. способность объекта использовать один метод для производных классов, получая разный результат

  • @ookhands3843
    @ookhands3843 3 роки тому +1

    Нормально, но (очень сильно докопался) хотелось бы четкой фразы что процедурное != функциональное программирование(подход).

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому +1

      А напишите прям комментом различия!) Думаю всем будет полезно

  • @stwebbox5691
    @stwebbox5691 2 роки тому

    Инкапсуляция - это объединение данных и функций в одном объекте, а также сокрытие данных там, где это есть. В js и python нет сокрытия данных

    • @YauhenKavalchuk
      @YauhenKavalchuk  2 роки тому

      ок

    • @princessmary5556
      @princessmary5556 Рік тому

      Нет, объединение данных и методов их обработки - это определение понятия класса, а не инкапсуляции. Кроме того, инкапсуляция ничего ни от кого не скрывыет. Нет такой задачи. Например: приватная секция классов ничего ни от кого не скрывает. Любой желающий может полюбоваться деталями реализации.

  • @shittywizzard5727
    @shittywizzard5727 3 роки тому

    Спасибо!

  • @ИгорьЖуков-ч4б
    @ИгорьЖуков-ч4б 3 роки тому

    Хорошее видео. Спасибо!
    Но почему не была затронута тема ассоциации?) Она же вроде рука об руку идёт с агрегацией.

  • @МедныйТазик
    @МедныйТазик 3 роки тому

    Мб я чего-то не знаю, но вроде как появились в жс рельса, только вроде ещё не всё поддерживает, полифил нужен

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому

      Что-то я не совсем понял о чём вы говорите(

    • @МедныйТазик
      @МедныйТазик 3 роки тому

      @@YauhenKavalchuk про модификаторы в js, # добавили

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому

      Да, добавили, только они даже пока ещё не в стандарте. В следующем году должны добавить

  • @ВадимЗубаиров-п2м
    @ВадимЗубаиров-п2м 3 роки тому

    Отличное видео

  • @rasplili129
    @rasplili129 3 роки тому

    Еще бы на английском найти такое видео , с таким хорошим обьяснением

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому

      А почему не подходит вариант на русском?

    • @rasplili129
      @rasplili129 3 роки тому

      @@YauhenKavalchuk подходит чтобы понять. Но интервью на английсом придется проходить

  • @EugeneShperl
    @EugeneShperl Рік тому

    А ты хорош

  • @huge-s
    @huge-s 3 роки тому

    Не многовато О подряд?

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому

      Многовато, но по другому никак

  • @Антон-ю2п6е
    @Антон-ю2п6е 2 роки тому +2

    Функциональное программирование и процедурное программирование не одно и тоже. Функциональное программирование возможно в JS благодаря наличию так называемых "функций первого класса".

  • @БендерЗадунайский-щ9ы

    18:55 не классы создаются а экземпляры этих классов. т.е. объекты

  • @goodman8044
    @goodman8044 3 роки тому

    Ты хороший

  • @kirillk5479
    @kirillk5479 3 роки тому

    Лойс

  • @Enterprise_IT_support
    @Enterprise_IT_support 2 роки тому

    👍

  • @fade1186
    @fade1186 10 місяців тому

    Полиморфизм показанн неправильно !
    Не была учтена перегрузка методов что является ключевым моментом в полиморфизме.

    • @YauhenKavalchuk
      @YauhenKavalchuk  10 місяців тому +1

      👍 согласен, есть такой нюанс

  • @ridl27
    @ridl27 3 роки тому

    годно!

  • @rahimkhatsiev2851
    @rahimkhatsiev2851 3 роки тому

    Годно

  • @alex_k2024
    @alex_k2024 2 роки тому

    Вроде как понятно, но запутано. 9:13 Через имя класса множно обратиться только к статическим свойствам и методам.

  • @Brinzovik
    @Brinzovik 3 роки тому

    Возможно самое понятное видео про ООП
    ООП парадигма инкапсуляция наследование полиморфизм агрегация композиция интерфейс айпскрипт Джаваскрипт js ts typeScript JavaScript

  • @zakeck
    @zakeck 3 роки тому +1

    No entendí pero sigue así xD

  • @norwinlol
    @norwinlol 3 роки тому

    Топчик

  • @JavaScriptcher
    @JavaScriptcher 3 роки тому

    #1

  • @Max-cn9po
    @Max-cn9po 3 роки тому +1

    Ничего не понял

  • @umidullo
    @umidullo 3 роки тому

    видео хорошее, но допущено 3 опечатки((
    8:30, 15:20, 20:23

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому

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

  • @arzievsultan
    @arzievsultan 3 роки тому +1

    функциональное программирование ≠ процедурное программирование

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому +1

      Об этом уже написали, но не указали отличия

  • @rin2004able
    @rin2004able 2 роки тому

    "Об ООП"

    • @YauhenKavalchuk
      @YauhenKavalchuk  2 роки тому

      Видеокаст называется «Просто О»

  • @Seacrest.
    @Seacrest. 3 роки тому

    Ну блин джаваскрипт это ж скрипт и своей терминологии скрипт это процедура. Все ооп в js это слово this и прототип

  • @unhandled_error
    @unhandled_error 3 роки тому

    об

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому +1

      Да, я знаю правила русского языка, просто сам видеокаст называется «просто о», поэтому и не стал менять

    • @unhandled_error
      @unhandled_error 3 роки тому

      @@YauhenKavalchuk я дико извиняюсь, может назвать рубрику "просто про" ?

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому +1

      Уже снято 9 выпусков, нет смысла переименовывать

  • @SerhiiAponchyk
    @SerhiiAponchyk 3 роки тому

    Видно как у всех, тупо перечитал книгу

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому +3

      Ну попробуйте рассказать то, чего нету в книгах и других аналогичных видео. Я с удовольствием посмотрю, или почитаю

  • @es-gr7qr
    @es-gr7qr 3 роки тому

    Как-то много неточностей, часто тест кода просто неправилен или написано лишнее. Дизлайк.

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 роки тому

      Пересмотрев видео я заметил только 3 неточности, это много?

    • @es-gr7qr
      @es-gr7qr 3 роки тому

      @@YauhenKavalchuk для человека, которых других обучает, это очень много.

  • @scottjenkinsjr
    @scottjenkinsjr 7 місяців тому

    в композиции у меня не работает почему-то метод start() для объекта, созданного через new Car(). пишет "undefined".
    если вызывать методы внутренних объектов по отдельности, например engine.start(), то работает.
    в чём же может быть дело?

    • @scottjenkinsjr
      @scottjenkinsjr 7 місяців тому

      понял, в чём дело. метод start() срабатывает, но никаких значений не возвращает. ожидал, что вернёт разом всё, что возвращают методы start() всех вложенных объектов: Engine is started, Wiring is started, FuelPump is started

    • @YauhenKavalchuk
      @YauhenKavalchuk  7 місяців тому

      Хорошо что разобрались самостоятельно!