Очередной раз убедился, что ты один из немногих, который действительно может доступно, доходчиво и главное интересно объяснить! Спасибо огромное, за то что ты делаешь!
Спасибо за твои труды! Шикарное видео! Как все просто на самом деле! Столько разных роликов на эту тему и книг, а понять что-либо из них крайне тяжело. Все заумно и запутанно. А здесь и просто, и понятно. Евгений, у тебя явно талант преподавания! Может стоит этим заняться профессионально? PS: очень не хватает именно твоих уроков по алгоритмам и структурам данных, желательно на примере JavaScript. Уверен: желающих на эту тему будет немало.
Прекрасное видео, обычно не оставляю комментарии, но здесь никак иначе, продолжайте в том же духе! п.с. из этой серии посмотрел бы такое же видео про ФП, может быть интересно
В примере с наследованием на 8:30 после переопределения this.model = `${model} Model`; и вызвав родительский метод teslaAuto.getAutoType() мы получим //Tesla 3 Model - 2019, а не //Tesla 3 - 2019 как на скрине у ТС. Видео класс, спасибо автору.
Спасибо за видео! Ты смог объяснить концепции. Но примеры - тихий ужас. Вот как свойство VIN может быть приватным свойством класса, если вин должен быть уникальным у каждого инстанса?
Спасибо, за твои уроки. С удовольствием смотрю. Немного уточнить хотел. На 20:27 в последней строке const mi8 = .... Там наверное ты хотел указать new Helicopter(... ?
Супер, только вот тема инкапсуляции и сокрытия, как по мне, не очень раскрыта. Точнее там используется слово, которое можно по разному трактовать(по крайней мере, я так думаю). Самое главное, что нужно запомнить: инкапсуляция обеспечивает сокрытие, но не является им!
Немного отсебятины добавлю. Изначально я С++ дев и когда изучал JS, то пытался все делать через ООП. Чуть мозг не сломал 🙂 Как-то не очень получалось даже с ES6 апдейтом. В TS уже лучше. По-моему ООП стоит изучать с С++ (включая Java и C#), но это мое мнение
В С++, Java,. C# - объект и инстанс класса есть одно и тоже. А для Javascript приходиться еще выделять объект в отдельную сущность из-за заложенного в этот язык прототипного наследования. Я согласен с вами полностью, чистое ООП надо начинать изучать не с JS, а именно с Java или C#, которые были изначально спроектированы под данную парадигму. А вот с C++ все сложнее, там заложено множественное наследование, и сам язык все-таки ближе к процедурности чем к ООП.
Полиморфизм - это когда наоборот. Дочерний класс наследуется от нескольких родителей, в каждом из которых есть одноименный метод с разными типами параметров. А дальше в зависимости от типа параметра выбирается метод из того родителя, где тип параметра совпадает с передаваемым.
ну вообще да, полиморфизм в js это когда в классе родителя определён метод, и когда в дочернем классе мы переопределяем этот метод , то мы получаем результат для этого дочернего т.е. способность объекта использовать один метод для производных классов, получая разный результат
Нет, объединение данных и методов их обработки - это определение понятия класса, а не инкапсуляции. Кроме того, инкапсуляция ничего ни от кого не скрывыет. Нет такой задачи. Например: приватная секция классов ничего ни от кого не скрывает. Любой желающий может полюбоваться деталями реализации.
9:14 При обращению к классу подобным образом консоль выводит undefined (за исключением Auto.name = "Auto" имя класса), в TS вообще так обратиться нельзя. А даже если найдется пользователь который через инструменты разработчика найдет наш класс и что-то там поменяет, какая разница ведь при перезагрузке страницы все сбросится. То же самое если пользователь нажмет f12 и начнет удалять теги. Концепция инкапсуляции занятна, но разве она широко относится к JavaScript? Может что-то не понимаю, но по ощущениям вся инкапсуляция в js сводится к не использованию метода eval в пользовательском вводе. Полиморфизм - зачем нам создавать несколько дочерних классов с одним и тем-же методом и из них брать метод родительского? Можно на основе класса Auto создать объекты, скидать их в массив и так же проитерироваться по элементам с вызовом функции. Эффект тот же, кода и путаницы меньше. Или это своего рода диверсификация активов?)
Функциональное программирование и процедурное программирование не одно и тоже. Функциональное программирование возможно в JS благодаря наличию так называемых "функций первого класса".
Возможно самое понятное видео про ООП ООП парадигма инкапсуляция наследование полиморфизм агрегация композиция интерфейс айпскрипт Джаваскрипт js ts typeScript JavaScript
в композиции у меня не работает почему-то метод start() для объекта, созданного через new Car(). пишет "undefined". если вызывать методы внутренних объектов по отдельности, например engine.start(), то работает. в чём же может быть дело?
понял, в чём дело. метод start() срабатывает, но никаких значений не возвращает. ожидал, что вернёт разом всё, что возвращают методы start() всех вложенных объектов: Engine is started, Wiring is started, FuelPump is started
Так вот какое видео об ООП я ждал все это время... Ютуб чик, подключай алгоритмы - годно та.
Хотелось бы надеяться, что подключит)
Большая тебе благодарность! Приятно смотреть: всё просто, понятно. Пожалуйста, продолжай! Ты делаешь нашу жизнь лучше: я углубился в понимании ООП)
Спасибо большое за поддержку!)
@@YauhenKavalchuk будет просто о алгоритмах и структурах данных?
Евгений, как всегда просто и понятно о сложных вещах, у Вас талант!!!
Спасибо
Спасибо вам огромное! Это то, что нужно! Ваше видео помогло собрать в кучу всю информацию, которая была в голове кусками.
Пожалуйста)
Сколько я видео пересмотрел об ООП, твоё самое лучшее, понимание приходит просто моментально! Спасибо тебе огромное!
Спасибо большое за отзыв!)
Очередной раз убедился, что ты один из немногих, который действительно может доступно, доходчиво и главное интересно объяснить! Спасибо огромное, за то что ты делаешь!
Спасибо большое за поддержку
Оказывается ООП еще надо подучить ))) огромное спасибо за материал!!
Спасибо за отзыв!
В очередной раз благодарю за педагогически доходчивую подачу материала 👌
Пожалуйста
Шикарное объяснение! ООП стало еще понятней. Лайк, репост!
Спасибо
Спасибо за твои труды! Шикарное видео!
Как все просто на самом деле! Столько разных роликов на эту тему и книг, а понять что-либо из них крайне тяжело. Все заумно и запутанно. А здесь и просто, и понятно.
Евгений, у тебя явно талант преподавания! Может стоит этим заняться профессионально?
PS: очень не хватает именно твоих уроков по алгоритмам и структурам данных, желательно на примере JavaScript. Уверен: желающих на эту тему будет немало.
Я не могу заниматься преподаванием профессионально, т.к. никогда не буду получать столько, сколько разработчик
Спасибо, давно ждал такого хорошего урока по ООП на примере JavaScript.
Пожалуйста
Прекрасное видео, обычно не оставляю комментарии, но здесь никак иначе, продолжайте в том же духе! п.с. из этой серии посмотрел бы такое же видео про ФП, может быть интересно
Спасибо за отзыв
Отлично, от тебя и ждал так как все понятно и просто обесняешь)
Спасибо за отзыв)
Очень долго ждал подобное видео с твоей подачей, спасибо большое)
Пожалуйста)
Один из лучших видосов про ооп, коротко, понятно, без лишней воды и тягомотины. Автору спасибо !
Пожалуйста
В примере с наследованием на 8:30 после переопределения this.model = `${model} Model`; и вызвав родительский метод teslaAuto.getAutoType() мы получим
//Tesla 3 Model - 2019, а не //Tesla 3 - 2019 как на скрине у ТС.
Видео класс, спасибо автору.
Спасибо за отзыв, да отпечатался в выводимом результате
Браво👏
Спасибо
Спасибо за старания! У тебя талант не только в разработке, но и к преподаванию.
Спасибо большое за отзыв
Супер! Спасибо! Наглядно очень
Спасибо большое
Шикарное видео, приятно от каждого слова! =)
Спасибо большое за отзыв!
Принципи ООП класно описано, але в кінці, то вже hight level! Дякую за контент!
Спасибо за отзыв)
Спасибо за видео! Ты смог объяснить концепции. Но примеры - тихий ужас. Вот как свойство VIN может быть приватным свойством класса, если вин должен быть уникальным у каждого инстанса?
Спасибо, за твои уроки. С удовольствием смотрю.
Немного уточнить хотел. На 20:27 в последней строке const mi8 = ....
Там наверное ты хотел указать new Helicopter(... ?
Да, там должен быть класс вертолёт
Как же это вовремя) заранее спасибо!) приступаем к просмотру)
👍
Спасибо за твои труды!
Всегда пожалуйста
Вперёд в топы, отлично все объяснено!)
Спасибо за поддержку
То что нужно! Спасибо Евгений!
Пожалуйста
Действительно - простое и доходчивое объяснение!
Спасибо за отзыв
Супер, только вот тема инкапсуляции и сокрытия, как по мне, не очень раскрыта. Точнее там используется слово, которое можно по разному трактовать(по крайней мере, я так думаю). Самое главное, что нужно запомнить: инкапсуляция обеспечивает сокрытие, но не является им!
Спасибо за уточнение и пояснение
Немного отсебятины добавлю. Изначально я С++ дев и когда изучал JS, то пытался все делать через ООП. Чуть мозг не сломал 🙂 Как-то не очень получалось даже с ES6 апдейтом. В TS уже лучше. По-моему ООП стоит изучать с С++ (включая Java и C#), но это мое мнение
Да, в JS ООП очень не похоже на всё остальное, даже с учётом нового синтаксиса классов. А когда узнаешь, что под капотом прототипы, то усё…)
В С++, Java,. C# - объект и инстанс класса есть одно и тоже. А для Javascript приходиться еще выделять объект в отдельную сущность из-за заложенного в этот язык прототипного наследования. Я согласен с вами полностью, чистое ООП надо начинать изучать не с JS, а именно с Java или C#, которые были изначально спроектированы под данную парадигму. А вот с C++ все сложнее, там заложено множественное наследование, и сам язык все-таки ближе к процедурности чем к ООП.
Очень подробно разжёвано. Я аж даже на мгновение почувствовал себя умным)
👍
Спасибо, было очень доступно
Пожалуйста
Түсіне алмай жүр едім, мен үшін қиын болып еді,керемет түсіндіріп бердің,үлкен рахмет!
Пожалуйста)
Респект, спасибо за качественный материал.
Спасибо за отзыв)
Хорошее видео. Спасибо!
Но почему не была затронута тема ассоциации?) Она же вроде рука об руку идёт с агрегацией.
¯\ _(ツ)_/¯
Очень доступно, спасибо!
Пожалуйста
Очень очень Чётко! 🌠🛠️
Спасибо
дзякуй
Кали ласка
Супер подача, спасибо
Пожалуйста
Отличное объяснения теперь стало ясно как работает ООП
Отлично!)
Отличное видео, спасибо.
Пожалуйста
Полиморфизм - это когда наоборот. Дочерний класс наследуется от нескольких родителей, в каждом из которых есть одноименный метод с разными типами параметров. А дальше в зависимости от типа параметра выбирается метод из того родителя, где тип параметра совпадает с передаваемым.
Я встречал минимум 3 разных объяснения. А то что вы описали немного похоже на Dimond problem
ну вообще да, полиморфизм в js это когда в классе родителя определён метод, и когда в дочернем классе мы переопределяем этот метод , то мы получаем результат для этого дочернего т.е. способность объекта использовать один метод для производных классов, получая разный результат
Нормально, но (очень сильно докопался) хотелось бы четкой фразы что процедурное != функциональное программирование(подход).
А напишите прям комментом различия!) Думаю всем будет полезно
топчик бро, люблю смотреть твои видосики
Спасибо
@@YauhenKavalchuk было б здорово еще упомянуть статические поля и модификатор доступа protected
Хорошее видео. Сложная тема простым языком.
Спасибо за отзыв)
Очень ждём курс по js. Спасибо!!
Пожалуйста
Инкапсуляция - это объединение данных и функций в одном объекте, а также сокрытие данных там, где это есть. В js и python нет сокрытия данных
ок
Нет, объединение данных и методов их обработки - это определение понятия класса, а не инкапсуляции. Кроме того, инкапсуляция ничего ни от кого не скрывыет. Нет такой задачи. Например: приватная секция классов ничего ни от кого не скрывает. Любой желающий может полюбоваться деталями реализации.
9:14 При обращению к классу подобным образом консоль выводит undefined (за исключением Auto.name = "Auto" имя класса), в TS вообще так обратиться нельзя. А даже если найдется пользователь который через инструменты разработчика найдет наш класс и что-то там поменяет, какая разница ведь при перезагрузке страницы все сбросится. То же самое если пользователь нажмет f12 и начнет удалять теги.
Концепция инкапсуляции занятна, но разве она широко относится к JavaScript? Может что-то не понимаю, но по ощущениям вся инкапсуляция в js сводится к не использованию метода eval в пользовательском вводе.
Полиморфизм - зачем нам создавать несколько дочерних классов с одним и тем-же методом и из них брать метод родительского? Можно на основе класса Auto создать объекты, скидать их в массив и так же проитерироваться по элементам с вызовом функции. Эффект тот же, кода и путаницы меньше. Или это своего рода диверсификация активов?)
Через имя класса можно обратиться к статическим свойствам и методам.
Спасибо. Полезно.
Пожалуйста
4:40 А как же перегрузка конструктора? В C# такое есть.
качественно, спасибо!
Спасибо за отзыв
Еще бы на английском найти такое видео , с таким хорошим обьяснением
А почему не подходит вариант на русском?
@@YauhenKavalchuk подходит чтобы понять. Но интервью на английсом придется проходить
Благодарю!
Пожалуйста
Отличное видео
Спасибо)
А ты хорош
Спасибо
Функциональное программирование и процедурное программирование не одно и тоже. Функциональное программирование возможно в JS благодаря наличию так называемых "функций первого класса".
👍
годно!
Спасибо
Спасибо!
Пожалуйста
Полиморфизм показанн неправильно !
Не была учтена перегрузка методов что является ключевым моментом в полиморфизме.
👍 согласен, есть такой нюанс
на 8:31 в последней строке будет "Tesla 3 Model - 2019"
да, опечатка
На 15:20, наверное, должно быть new AutoFactory
Да, опечатка(
Годно
Благодарю
Ты хороший
Спасибо
Лойс
Nice)
Мб я чего-то не знаю, но вроде как появились в жс рельса, только вроде ещё не всё поддерживает, полифил нужен
Что-то я не совсем понял о чём вы говорите(
@@YauhenKavalchuk про модификаторы в js, # добавили
Да, добавили, только они даже пока ещё не в стандарте. В следующем году должны добавить
Топчик
Спасибо
No entendí pero sigue así xD
Gracias)
Не многовато О подряд?
Многовато, но по другому никак
Вроде как понятно, но запутано. 9:13 Через имя класса множно обратиться только к статическим свойствам и методам.
🤷♂️
👍
👍
#1
#1.1
👍
Возможно самое понятное видео про ООП
ООП парадигма инкапсуляция наследование полиморфизм агрегация композиция интерфейс айпскрипт Джаваскрипт js ts typeScript JavaScript
👍
18:55 не классы создаются а экземпляры этих классов. т.е. объекты
Да, верно
Ничего не понял
¯\ _(ツ)_/¯
видео хорошее, но допущено 3 опечатки((
8:30, 15:20, 20:23
Не всегда удаётся за всем уследить, особенно в видео с большим количеством кода, да ещё с копированием, что бы создать анимацию
функциональное программирование ≠ процедурное программирование
Об этом уже написали, но не указали отличия
Ну блин джаваскрипт это ж скрипт и своей терминологии скрипт это процедура. Все ооп в js это слово this и прототип
Ну, по сути, да
"Об ООП"
Видеокаст называется «Просто О»
об
Да, я знаю правила русского языка, просто сам видеокаст называется «просто о», поэтому и не стал менять
@@YauhenKavalchuk я дико извиняюсь, может назвать рубрику "просто про" ?
Уже снято 9 выпусков, нет смысла переименовывать
Видно как у всех, тупо перечитал книгу
Ну попробуйте рассказать то, чего нету в книгах и других аналогичных видео. Я с удовольствием посмотрю, или почитаю
Как-то много неточностей, часто тест кода просто неправилен или написано лишнее. Дизлайк.
Пересмотрев видео я заметил только 3 неточности, это много?
@@YauhenKavalchuk для человека, которых других обучает, это очень много.
в композиции у меня не работает почему-то метод start() для объекта, созданного через new Car(). пишет "undefined".
если вызывать методы внутренних объектов по отдельности, например engine.start(), то работает.
в чём же может быть дело?
понял, в чём дело. метод start() срабатывает, но никаких значений не возвращает. ожидал, что вернёт разом всё, что возвращают методы start() всех вложенных объектов: Engine is started, Wiring is started, FuelPump is started
Хорошо что разобрались самостоятельно!