JavaScript Паттерны. Шаблоны проектирования. 17 Примеров

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ต.ค. 2024

ความคิดเห็น • 421

  • @VladilenMinin
    @VladilenMinin  5 ปีที่แล้ว +33

    Ребят, у кого выдает ошибку
    static list = {
    ^
    SyntaxError: Unexpected token =
    Обновите версию NodeJS до последней

    • @denisdavydoff7863
      @denisdavydoff7863 5 ปีที่แล้ว

      не работает на посл версии, браузер говорит я дебил, bad method definition

    • @user-ch76tcye4vvuu8
      @user-ch76tcye4vvuu8 5 ปีที่แล้ว +1

      @@denisdavydoff7863 В браузере и не должно работать.

    • @pavelgramenitsky925
      @pavelgramenitsky925 4 ปีที่แล้ว +1

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

    • @fitnesshacker_
      @fitnesshacker_ 4 ปีที่แล้ว

      Спасибо, помогло!

    • @АндрейКрестовников-б5ы
      @АндрейКрестовников-б5ы 4 ปีที่แล้ว

      Тоже хотел спросить про этот момент: по спецификации ES6 через static определяются только методы, не свойства. Это новая спецификация или что? Явно не работает в стабильной ноде, зачем вы это используете?

  • @DmitryPupinin
    @DmitryPupinin 2 ปีที่แล้ว +16

    Есть несколько спорных моментов в понимании автором паттернов:
    1. Декоратор. Автор описал скорее порождающий паттерн, похожий на Прототип. Основная особенность декоратора - возможность навесить на объект несколько штук одновременно, при этом каждый из них будет расширять возможности базового класса. Например: на стандартный вывод лога в файл можно навесить декораторы отправляющий данные по почте, в телеграм, в слак. Причем повесить можно динамически в любой комбинации.
    2. Фасад. Описана скорее Фабрика. Пример фасада: вы берете некую библиотеку (например компрессия видео) в которой милион методов, параметров и т.п. Но вам это все не нужно, поэтому вы делаете фасад с одним методом compress(filename, format) и уже внутри настраиваете сжатие или даже выполняете его в несколько проходов.
    3. Flyweight. Здесь автор на верном пути, но пример не показывает самого главного - паттерн нужен для экономии памяти. Пример: нужно отобразить большой список автомобилей (объект Car) и рядом с каждой отобразить логотип. Логотип - это картинка, которая повторяется у разных объектов, но при этом занимает больше всего памяти. И вот картинку и нужно выделить из Car и хранить отдельно и уникально. Тогда отображая даже тысячу объектов нам возможно придется хранить только 1-2 картинки.
    4. Chain of Responsibility. Тут автор дал маху и описал Method chaining, ничего общего с заявленным паттерном не имеющий.
    5. Command. Похоже что автор вывернул шаблон на изнанку... :) т.к. обычно объект вызывает команду, а не команда объект. Смысл паттерна в том, чтобы унифицировать интерфейс команды и облегчить динамическое связывание объектов с разными командами. Например: ajax сохранение документа (как в Google Docs) можен происходить по нажатию на кнопку, по комбинации клавиш и по таймеру. Все эти элементы связываются с одной командой и вызывают ее метод execute. Таким образом алгоритм сохранения находится в одном месте - в команде. Но главное - нет никаких трудностей в присоединении этой же команды, например, к жесту мышью (gesture).
    6. State. Здесь автор не решил проблему, а наоборот ее создал. Представим себе большое количество состояний, которые еще и меняются в зависимости от роли пользователя. Метод change сразу превращается в жестокий набор десятков if и даже хуже. Так вот паттерн State как-раз и предназначен решить создаваемую автором проблему. А решает он ее тем, что как-раз state определяет какое состояние будет следующим! Т.е. именно GreenLight должен решать какой свет будет после него и менять состояние светофора. Кстати, обратите внимание, что у автора после зеленого сигнала включается красный, хотя должен быть желтый.
    7. Strategy. В целом автор все описал правильно, за исключение одного, однако же, принципиального момента: стратегия должна храниться внутри контекста (Commute). Здесь нужно понимать, что стратегия - это то, что выбирается и какое-то время используется в основном алгоритме. В нужно время стратегию можно изменить. Таким образом Commute как-раз и предназначен для того, чтобы вызвать стратегию, не упоминая ее саму (Commute.travel()). Тоесть в приложении будет всего несколько мест где стратегия будет выбираться или изменяться, во всех остальных (сотнях) мест мы вызываем ее опосредованно через контекст (Commute). И вот это как-раз и является целью данного паттерна.
    8. Template. Такой поведенческий паттерн мне не известен, однако известен "Template Method". В данной части автор рассматривает простое наследование классов, не имеющее к поведенческим паттернам никакого отношения.
    Автору спасибо за возможность вспомнить и повторно проанализировать цели использования паттернов! :)

    • @АндрейИльин-д6ж
      @АндрейИльин-д6ж ปีที่แล้ว +1

      откуда автору то это знать?

    • @ДмитрийМалюгин-ч6к
      @ДмитрийМалюгин-ч6к ปีที่แล้ว +1

      @@АндрейИльин-д6ж А зачем рассказывать многотысячной аудитории, если не знаешь, что рассказываешь или не уверен в том, что рассказываешь правильно?

    • @АндрейИльин-д6ж
      @АндрейИльин-д6ж ปีที่แล้ว +1

      как зачем? а рекламу тогда куда пихать?@@ДмитрийМалюгин-ч6к

    • @POEOneLove
      @POEOneLove 8 หลายเดือนก่อน

      Дай бог вам здоровья. Я думал я один идиот и не вдуплил почему фабрика и фасад в этом примере одно и тоже почти, темплейт просто обычное наследование и так далее. Только начинаю погружаться в особенности паттернов в js, трудно найти живые примеры. Вы в 1 комментарии объяснили часть вопросов, которые возникали в процессе видео. 👍

  • @rostyslav5334
    @rostyslav5334 5 ปีที่แล้ว +190

    Господи, СПАСИБО, Владилен!!!!
    Нету такого контента на ютубе!

    • @VladilenMinin
      @VladilenMinin  5 ปีที่แล้ว +25

      Я считаю важным свещать более продвинутые, тем не менее базовые темы)

    • @NazarLesyuk
      @NazarLesyuk 5 ปีที่แล้ว +9

      @@VladilenMinin верно, продолжайте Владилен, я очень нуждался в объяснении патернов проектирования. Благодарю Вас!

    • @bitmainuser4028
      @bitmainuser4028 5 ปีที่แล้ว

      да пздц, жлобы одни.

    • @karodar
      @karodar 4 ปีที่แล้ว

      К книге Швец А. "Погружение в паттерны проектирования", отличное дополнение

    • @stanfarshtei1291
      @stanfarshtei1291 4 ปีที่แล้ว

      refactoringDOTguru ----> Тут ВСЁ есть!!!!!!!!!! НО конечно, не так как у Владилена.

  • @demidovmaxim1008
    @demidovmaxim1008 5 ปีที่แล้ว +157

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

    • @VladilenMinin
      @VladilenMinin  5 ปีที่แล้ว +8

      Благодарю за такой отзыв.
      Дает понимание, что выбранный вектор корректен)

    • @TakemuraGoro
      @TakemuraGoro 3 ปีที่แล้ว +1

      У него куча ошибок, не надо такому следовать.

    • @igorkugaudo8212
      @igorkugaudo8212 3 ปีที่แล้ว

      @@TakemuraGoro например?

    • @TakemuraGoro
      @TakemuraGoro 3 ปีที่แล้ว +3

      @@igorkugaudo8212
      Другая логика. В слушателе, он сделал какой-то узконаправленный код, который не универсальный.
      Ниже ссылка на вики, можно сравнить (внизу es6).
      С синглтоном вообще ужасное объяснение, слышал звон, не знает где он. Синглтон нужен, приминительно к бд (как у него), что бы не создавать лишних подключений. Про это ни слова. И так во всем. Код у него работает, конечно. но шаблоны - это прежде всего понимание задачи которую он решает, грамотное применение для оптимизации, не дублирования и так далее.
      ru.wikipedia.org/wiki/%D0%9D%D0%B0%D0%B1%D0%BB%D1%8E%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

    • @quantum-t
      @quantum-t 2 ปีที่แล้ว

      zabut pro “runet” kak pro strawni son

  • @VladilenMinin
    @VladilenMinin  5 ปีที่แล้ว +150

    Creational Design Patterns
    Constructor 4:57
    Factory 10:15
    Prototype 20:09
    Singleton 23:31
    Structural Design Patterns
    Adapter 29:09
    Decorator 35:40
    Façade 41:26
    Flyweight 50:39
    Proxy 57:15
    Behavioral Design Patterns
    Chain of Responsibility 1:03:13
    Command 1:06:58
    Iterator 1:11:58
    Mediator 1:18:24
    Observer 1:26:00
    State 1:36:15
    Strategy 1:43:40
    Template 1:47:30

    • @denisdavydoff7863
      @denisdavydoff7863 5 ปีที่แล้ว +24

      Ещё и тайминг сделал, вот ты машина

    • @VladilenMinin
      @VladilenMinin  5 ปีที่แล้ว +28

      @@denisdavydoff7863 Думаю с ними удобно)

    • @user-ch76tcye4vvuu8
      @user-ch76tcye4vvuu8 5 ปีที่แล้ว +9

      Не понял в чем принципиальная разница между фабрикой и фасадом? И там и там создается и возвращается объект указанного типа (вместо класса).

    • @SomeoneInNet
      @SomeoneInNet 4 ปีที่แล้ว +1

      @@user-ch76tcye4vvuu8 в данном видео - никакой.Вместо паттерна фасад была реализована фабрика.

    • @ЕвгенийГаврилов-ю9о
      @ЕвгенийГаврилов-ю9о 4 ปีที่แล้ว

      Спасибо!!! Очень круто

  • @ДмитрийГришанов-ы4е
    @ДмитрийГришанов-ы4е 4 ปีที่แล้ว +11

    Обычно паттерны, это ты смотришь на статью и после нескольких строк кода отпадает желание читать.
    А изучить нужно)
    Здесь настолько очевидные примеры, написаные на es6, что инфа сама влетает в голову.
    Причем все подходы начинают казаться очевидными. Ловишь себя на мысле, что так логично делать.
    Правда, видео смотрел на 1.5 скорости, но это никак не минус)
    Спасибо!

  • @technical777
    @technical777 3 ปีที่แล้ว

    Паттерны по программированию Constructor, Factory, Prototype, Singleton, Adapter, Decorator, Façade, Flyweight, Proxy, Chain of Responsibility, Command, Iterator, Mediator, Observer, State, Strategy, Template.
    Для меня это взрыв мозга, их нужно выучить или просто знать об их существовании, есть вещи которые просто не укладываются в голове.
    Владилен Спасибо Тебе.

  • @davidbaghdasaryan2486
    @davidbaghdasaryan2486 5 ปีที่แล้ว +44

    Вы лучший. 💪
    Можно еще про Алгоритмы сортировки

  • @ПавелЗ-ь3п
    @ПавелЗ-ь3п 5 ปีที่แล้ว +7

    Видео от Владилена - это лучшей it контент на youtube! Спасибо!

  • @АлексейСурков-ю3н
    @АлексейСурков-ю3н 9 หลายเดือนก่อน

    Спасибо Владилен за твои титанические труды. Ты крут

  • @maximminchenko7633
    @maximminchenko7633 5 ปีที่แล้ว +4

    Владилен! Выражающаю огромную признательность за твой труд! Лучший!

  • @seoonlyRU
    @seoonlyRU 2 ปีที่แล้ว +1

    чотко, спасибо))) с ходу жирный лайк от его величества кодера - СЕООНЛИ

  • @romanmelnichenko1365
    @romanmelnichenko1365 3 ปีที่แล้ว +1

    Такой объем информации лучше делить на части. Смотрел два дня ))
    Спасибо за труд!

  • @dan.gorbunov
    @dan.gorbunov 5 ปีที่แล้ว +7

    Твоя продуктивность зашкаливает!)) Спасибо

  • @karfagen86
    @karfagen86 5 ปีที่แล้ว +5

    Эх, где ты был лет 6 назад, когда я этого ничего не понимал... :(
    Мне на фоне интересно было послушать, спасибо за видео!

    • @VladilenMinin
      @VladilenMinin  5 ปีที่แล้ว +3

      6 лет назад активно работал и сам узнавал про все это)

    • @stanfarshtei1291
      @stanfarshtei1291 4 ปีที่แล้ว

      @@VladilenMinin то-есть надо 6 лет что бы стать профи? :)

    • @frizar999
      @frizar999 3 ปีที่แล้ว

      @@stanfarshtei1291 надо практика, а не время. важно сколько ты вкладываешь часов в свое дело, а не лет.

  • @nikolai4100
    @nikolai4100 3 ปีที่แล้ว +1

    СПАСИБО, Владилен!!!! Прям супер как вовремя, все что нужно! Всех благ тебе

  • @igor_cojocaru
    @igor_cojocaru 5 ปีที่แล้ว +143

    Понравилось как в твоём IDE автоматом выводит название переданных параметров в функции. Если кому интересно как так сделать в VS Code просто установите расширение JS Parameter Annotations.

    • @thisreal
      @thisreal 4 ปีที่แล้ว +13

      если нужно изменить цвет названия этих параметров под вашу тему:
      то просто в settings.json добавьте нужный цвет:
      "workbench.colorCustomizations": {
      "jsannotations.annotationForeground": "#697098"
      },

    • @РоманВоловик-з3д
      @РоманВоловик-з3д 4 ปีที่แล้ว

      Все делает за вас редактор. Не понимаю почему это вам так нравится?

    • @странствие
      @странствие 4 ปีที่แล้ว +12

      @@РоманВоловик-з3д а тебе больше нравится печатать, чем программировать?

    • @РоманВоловик-з3д
      @РоманВоловик-з3д 4 ปีที่แล้ว +1

      Больше нравится пользоватся нормальным редактором!

    • @странствие
      @странствие 4 ปีที่แล้ว +14

      @@РоманВоловик-з3д а нормальный это какой? Который не экономит твое время путем автокомплита?

  • @madfish5605
    @madfish5605 5 ปีที่แล้ว +1

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

    • @VladilenMinin
      @VladilenMinin  5 ปีที่แล้ว +1

      Обязательно досмотри)

  • @lllltheollll
    @lllltheollll 5 ปีที่แล้ว +2

    спасибо огромное!!!
    давно ждал внятного разбора на эту тему

    • @VladilenMinin
      @VladilenMinin  5 ปีที่แล้ว

      Приятного просмотра)

  • @WebSP-q7e
    @WebSP-q7e 3 ปีที่แล้ว +5

    Спасибо за видео! Будет здорово, если на канале появится видео про утечки памяти, особенно про то, как их отследить)

  • @ДмитрийС-ш9б
    @ДмитрийС-ш9б 3 ปีที่แล้ว +6

    Я то думал, что это просто способы решения каких-то задач, а их паттернами назвали?)
    Спасибо, было интересно!

    • @tuen8070
      @tuen8070 2 ปีที่แล้ว

      паттерны - это и есть способы решения каких-то задач.

  • @steel1004
    @steel1004 5 ปีที่แล้ว +2

    Очередной годный ролик под конспект. спасибо бро!

  • @kirillgavrilov9681
    @kirillgavrilov9681 4 ปีที่แล้ว +5

    Как обычно, спасибо за видео)
    Но Chain of responsibility - это явно что-то другое. На мой взгляд, в этом видеоролике просто показан fluent API в классе MySum, основанный на method chaining

  • @alenalel1267
    @alenalel1267 5 ปีที่แล้ว +2

    УУу что-то очень годное подъехало, в прочем как обычно :3

  • @egolege
    @egolege 3 ปีที่แล้ว

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

  • @АндрейБороздин-ф7ъ
    @АндрейБороздин-ф7ъ 5 ปีที่แล้ว +1

    Отличное видео! Такого подробного видео я не видел

  • @Дагестанец-ч2х
    @Дагестанец-ч2х 5 ปีที่แล้ว +2

    Владилен, ты Бог Javascripta

  • @alllligator
    @alllligator ปีที่แล้ว

    Владилен, это нереально полезный урок для меня. Спасибо огромное!

  • @ЕгорШереметов-л4э
    @ЕгорШереметов-л4э 4 ปีที่แล้ว +17

    Это очень круто, но хотелось бы более реальные примеры использования этих паттернов.

    • @dimalukashenko4865
      @dimalukashenko4865 8 หลายเดือนก่อน

      Никто не знает с чем столкнется в реальности. Все примеры уникальные, по опыту скажу, что далеко не всегда реальный пример может помочь в дальнейшем. Среди проектов куча легаси и костылей. Так что такие примеры как бальзам на душу.

  • @The14Some1
    @The14Some1 ปีที่แล้ว +1

    Chain of responsibility, показанный тут, на самом деле является паттерном под названием "Builder". "Chain of responsibility" сам по себе подразумевает, что у нас есть разные классы, совместно выполняющие какую-то сложную задачу, и реализован механизм передачи данных от одного класса к другому по мере обработки данных.

  • @StanislavKadyrov
    @StanislavKadyrov 2 ปีที่แล้ว

    Огромное спасибо за видео! Как всегда все четко, понятно и доступно! Удачи и успехов!

  • @alexanderzhalyuk8590
    @alexanderzhalyuk8590 3 ปีที่แล้ว

    Прекрасная работа! Спасибо огромное за проделанный труд!

  • @igor_cojocaru
    @igor_cojocaru 5 ปีที่แล้ว +1

    Спасибо тебе. Очень нужная информация

  • @hub1347
    @hub1347 2 ปีที่แล้ว

    Эта тема настолько редкая, что заслуживает ЛайкШер даже без просмотра!

  • @aleksey1965
    @aleksey1965 4 ปีที่แล้ว

    Владлен, у тебя талант! Смотрю только твои ролики, даже курс купил по Node JS)

  • @ReAgent003
    @ReAgent003 3 ปีที่แล้ว

    Очень крутое видео, часто сюда заглядываю чтобы освежить знания, спасибо!

  • @jocoders6560
    @jocoders6560 4 ปีที่แล้ว

    Красавелла Владилен! Спасибо огромнейшее)))

  • @НектоНеизвестный-л5ч
    @НектоНеизвестный-л5ч 5 ปีที่แล้ว +1

    Это очень качественное и нужное видео. Спасибо

  • @ДмитрийКаширин-о8п
    @ДмитрийКаширин-о8п 4 ปีที่แล้ว +2

    Отличные уроки на темы которые давно надо было осветить в таком ключе. Такой контент беспорно очень тяжело готовить и объяснять. Я бы только предложил во время объяснения чего-либо давать чуть больше реальных примеров из жизни, где это можно было бы применить, давай больше кейсов чтоли.
    Такая проблема у всех, кто объясняет JS - часто примеры оторваны от реальности, пока сам 40 раз не напишешь - не поймешь.
    Т.е. я смотрю к примеру про прокси, да это круто и волшебно, но как встроить в текущую работу - не очень понятно. Тоже с паттернами, давно хотел ознакомится с ними подробнее и из видео к сожалению не очень понял, как мне здесь и сейчас использовать некоторые из них. А так все видео - 5 баллов и это лучший контент, что я видел на данную тему. На днях куплю курс по Fullstack разработке. Большое спасибо и успехов!

    • @ДмитрийКаширин-о8п
      @ДмитрийКаширин-о8п 4 ปีที่แล้ว

      Было бы отлично увидеть паттерны для библиотек/фреймворков, начиная с Vue.js. Спасибо.

  • @johnbaretty9725
    @johnbaretty9725 2 ปีที่แล้ว

    Yo,Vladilen спасибо!

  • @viktopxio3739
    @viktopxio3739 5 ปีที่แล้ว +1

    ТОП КОНТЕНТ!!! Благодарю!

  • @евгенийшевченко-э6ц
    @евгенийшевченко-э6ц 4 ปีที่แล้ว

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

  • @yevgenylevin8381
    @yevgenylevin8381 3 ปีที่แล้ว

    Супер контент Владилен ;)

  • @ДеткиеНочники
    @ДеткиеНочники 3 ปีที่แล้ว

    Интересно, спасибо за инфу!

  • @DanReksar
    @DanReksar 5 ปีที่แล้ว +10

    Спасибо) Желаю скорее набрать 10к)

  • @igixprffikiberg2636
    @igixprffikiberg2636 2 ปีที่แล้ว

    Круто Владилен

  • @developer433
    @developer433 4 ปีที่แล้ว

    Отличное полезное видео, спасибо! (пара ремарок по английскому: vehicle - читается как "Виикл", light - свет, цвет будет color)

  • @СергейЛомако-п8о
    @СергейЛомако-п8о 3 ปีที่แล้ว +1

    Во Flyweight еще нужно использовать ограничение кеша до определенного размера, иначе можно сделать memory leak.

  • @mariashamonova6636
    @mariashamonova6636 2 ปีที่แล้ว

    Спасибо за полезные видео!)

  • @vitaliksgaferg6252
    @vitaliksgaferg6252 3 ปีที่แล้ว +15

    Было бы очень интересно посмотреть в каком то реальном мини проекте или в процессе создании очередного велосипеда

    • @eugenenovikov671
      @eugenenovikov671 3 ปีที่แล้ว +1

      загугли fizz buzz enterprise edition

  • @editxvc
    @editxvc 5 ปีที่แล้ว

    то что мне так не хватало, спасибо

  • @o.voytyn
    @o.voytyn 5 ปีที่แล้ว +2

    Спасибо за твои видео, на ютубе много курсов по базовому ЖС а вот по такому продвинотуму намного меньше (если вообще есть), продолжай делать такие видосики) и еще по продвинотому ангуляру (практикум какой то), спасибою

    • @VladilenMinin
      @VladilenMinin  5 ปีที่แล้ว

      По ангуляру в ближайшее время будет еще пара материалов)

  • @Yevhenii_wnd
    @Yevhenii_wnd 4 ปีที่แล้ว +1

    Огромное спасибо за такой плезный контент! ПРОСЬБА: запиши видео по Reflect.

  • @CorleoneMikele
    @CorleoneMikele 5 ปีที่แล้ว +1

    Спасибо, круто, супер, продолжай в то же духе. 👍

  • @maksimmaliauka3026
    @maksimmaliauka3026 3 ปีที่แล้ว

    Круто) Очередной лайк.

  • @doomymax577
    @doomymax577 5 ปีที่แล้ว +1

    Спасибо тебе Владилен

  • @OpalGooDog
    @OpalGooDog 4 ปีที่แล้ว

    очень здорово!!!!Однозначно лайк и подписка!

  • @viktorzimmermann7813
    @viktorzimmermann7813 5 ปีที่แล้ว +2

    кстати было бы прикольно видео (там даже получилась бы серия видосов если многое охватывать) по алгоритмам и так же по юнит тестированию в частности Jest и Enzyme к примеру запилить... Народу понравилось бы точно

    • @VladilenMinin
      @VladilenMinin  5 ปีที่แล้ว +2

      Будет такой материал

  • @dispeltr1183
    @dispeltr1183 5 ปีที่แล้ว +1

    Владилен, лучший!!!

  • @shilza8336
    @shilza8336 2 ปีที่แล้ว

    Спасибо! Отличное видео

  • @gazdhikhartumov1159
    @gazdhikhartumov1159 4 ปีที่แล้ว

    Лучшее объяснение паттернов в рунете

  • @musoverda
    @musoverda 4 ปีที่แล้ว

    Вы хорошо стартанули, Владилен. Если не остановитесь - через год Вы будете №1 на площадке TH-cam IT Russian )

  • @daniilukraine3611
    @daniilukraine3611 4 ปีที่แล้ว

    Думал смотреть долго , не буду ... Думал почитаю топ 10 паттернов и дело в шляпе , ну и примерчики посмотрю и все ... НО после первого паттерна я понял что нужно искать тетрадку и записывать все по его словам , потому что этот человек приводит жизненные примеры которые ну очень важны ! Удачи тебе Vladilen !

  • @Snegurjan
    @Snegurjan 4 ปีที่แล้ว +1

    Так нравится ,что Сенсей нас называет "Господа"))))

  • @DevOpsKaz
    @DevOpsKaz 2 ปีที่แล้ว

    Круто. Спасибо

  • @denisdavydoff7863
    @denisdavydoff7863 5 ปีที่แล้ว

    Ну тут жирный лайк, очень хорошая работа!

  • @РусланАскаров-ч4р
    @РусланАскаров-ч4р 3 ปีที่แล้ว +1

    Спасибо большое за видео.
    Планирую курс по vue у вас приобрести.

  • @eydeveloper
    @eydeveloper 4 ปีที่แล้ว

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

    • @ИльяИваник-ф8ф
      @ИльяИваник-ф8ф 4 ปีที่แล้ว +2

      как новичок, могу сказать, что лично мне в данном видео тоже нихера не понятно, как это все может быть использовано в реальности.
      Зачем создавать 3 класса, а потом создавать 4й, который будет разруливать косяки первых трех, если ... можно было изначальн сделать просто 1 нормальный класс?))
      Зачем мутить какую-то дичь с observer, чтобы плюсануть циферку на 1?

  • @serhiimaliuha69
    @serhiimaliuha69 3 ปีที่แล้ว +3

    Можете навести примеры шде и как можно использовать эти патерны в контексте разработки на React?

  • @321123580
    @321123580 3 ปีที่แล้ว

    Спасибо за видео, очень полезно

  • @fortuna184
    @fortuna184 2 ปีที่แล้ว

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

  • @OstPVk
    @OstPVk 4 ปีที่แล้ว +1

    Все ок, Единственное, просьба или уменьшить шрифт кода, или в качестве резюме показать весь код

  • @olgaibragimova3913
    @olgaibragimova3913 5 ปีที่แล้ว

    Видео отличное! То, что нужно, для подготовки к собесу. Удивили комменты в стиле "а где точка с запятой?" "а не говорите нам 'господа'" - вы правда из видео только это смогли подчерпнуть?! а че не спрашиваете 'почему отступ в 2 пробела, а не 4' ?
    Владилен, терпения Вам и не терять мотивацию для создания нового контента.
    Ну, и 1000 лайков на 16000 просмотров - камон, ребята, вам лень нажать на "пальчик"? Будьте щедрее на лайки)))

  • @powpowpow666
    @powpowpow666 5 ปีที่แล้ว +1

    просто лучший 👍👍👍👍👍👍
    спасибо!)
    желаю обогнать Хауди Хо

  • @romanleliuk773
    @romanleliuk773 3 ปีที่แล้ว +1

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

  • @aleksandrlepin248
    @aleksandrlepin248 3 ปีที่แล้ว +3

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

  • @AsVit
    @AsVit 5 ปีที่แล้ว +1

    Большое спасибо!!!

  • @SlavaCh
    @SlavaCh 5 ปีที่แล้ว +3

    О, как и заказывал, благодарствую!)

  • @oinn6216
    @oinn6216 4 ปีที่แล้ว

    Спасибо за примеры.

  • @biovawan
    @biovawan 3 ปีที่แล้ว

    Спасибо за видео!
    В 14_observer можно добавить отписку. Позволит в ручную удалить подписчиков вместе с уничтожаемым классом/компонентой. В результате - чистая память (или без утечек памяти, aka memory leak) без бесхозных подписчиков.

  • @scorppetrovich8052
    @scorppetrovich8052 5 ปีที่แล้ว

    Круто! Еще бы такой же урок по ООП в js es6 на примерах

    • @VladilenMinin
      @VladilenMinin  5 ปีที่แล้ว +1

      Есть ролик на канале

  • @АлексейДмитриев-ы4т
    @АлексейДмитриев-ы4т 5 ปีที่แล้ว +1

    Огонь!

  • @РусланМирзеагаев
    @РусланМирзеагаев 4 ปีที่แล้ว

    Владилен, спасибо за видео!
    Интересно было бы про паттерны в React и Express (если таковые есть)

  • @ilikecola378
    @ilikecola378 4 ปีที่แล้ว

    Совет всем кому трудно запускать простые скрипты js в консоли. Устанавливаем NodeJs, sublime text 3(размер инсталятора 10мб), ставим плагин для sublime который называется NodeJS(Preferences->Package Control->Package Install вводим NodeJs нажимаем инсталл) для удобного доступа к файлам можно использовать сайдбар(View -> Sidebar -> Show Sidebar) в который можно перетаскивать папки. Далее открываем из этого сайдбара нужный скрипт нажимаем ALT+R текущий файл скрипта запустится в консоли. Всем хорошего кодинга!

  • @mishagarkach
    @mishagarkach 3 ปีที่แล้ว

    Взрыв мозга, особенно медиатор поразил :)

  • @strikerorion5290
    @strikerorion5290 2 ปีที่แล้ว

    Хорошее толкование.

  • @wisehannel9190
    @wisehannel9190 5 ปีที่แล้ว +1

    Когда вышел очередной годный ролик от Владилена

    • @VladilenMinin
      @VladilenMinin  5 ปีที่แล้ว +1

      Приятного просмотра)

  • @wildemax
    @wildemax 2 ปีที่แล้ว +1

    Спасибо за видео, полезноно! Но все же ; лучше ставить в конце команд, меньше ошибок будет! Это как книгу писать без разделительных знаков!

  • @iGotton
    @iGotton 5 ปีที่แล้ว +1

    Как всегда топ

  • @амирханшамгонов-р5д
    @амирханшамгонов-р5д ปีที่แล้ว

    СПАСИБО!

  • @Shkur777
    @Shkur777 4 ปีที่แล้ว +2

    1:24:00 правильно произносить - Айгор :)
    На ускоренной не правильно можно услышать :)

  • @cncinstaller6708
    @cncinstaller6708 5 ปีที่แล้ว +1

    Класс 👍

  • @АсланКосшанов
    @АсланКосшанов 3 ปีที่แล้ว

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

  • @mukhammadrustambayev2051
    @mukhammadrustambayev2051 5 ปีที่แล้ว +1

    жду от вас видео про SOLID

  • @egorpobylets6597
    @egorpobylets6597 4 ปีที่แล้ว

    Спасибо огромное!!!!!!!!!!!

  • @DzhigurdaAnton
    @DzhigurdaAnton 4 ปีที่แล้ว +2

    Судя по опыту цепочка обязанностей не так реализуется. Её цель отделить привязку отправителя запроса и его получателя. Проверьте пожалуйста.

  • @ratnev
    @ratnev 4 ปีที่แล้ว

    ...только не "Вехикл", плиз, а так просто обалденное видео. Спасибо огромное за такой труд!

  • @kirillgavrilov9681
    @kirillgavrilov9681 4 ปีที่แล้ว

    1:49:40 то чувство, когда backquote рядом с буквой Z 😭. Как всегда, полезное видео. Спасибо!

  • @xxxxPomaHxxxx
    @xxxxPomaHxxxx 5 ปีที่แล้ว +27

    Прототип не верная реализация, прототип это посути просто добовление методов клон к своим объектам и всё, не больше не меньше, смысл в том чтобы созданием клона занимался сам объект.
    Про фабрику можно было добавить, что когда мы в фабрике ставим новые свойства это уже патерн строитель, тое ваша реализация это комбинация 2х паттернов.
    Chain of Responsibility вообще не то, цепочка обязанностей это когда у нас классы с большой вложенностью, дочерний вызывает какой нибудь эрор, и все классы по цепочке вызывают эрор у себя и у родителя, и каждый на своем уровне что то делает, ну или не делает, а потом просто вызывает родительский super.error(...arg), то есть в этом патерне метод который цепочный обязательно должен быть у всех классов потомков, а то что вы показали это просто каррирование на классе.
    Паттерн команда, а описываете стратегию, команда это по сути просто небольшой рефакторинг когда мы класс "кнопка удаления" делаем просто "кнопка" более универсальная штука, с полем команда в которую засунули нашу функцию как поле класса, которая что то удаляет.
    В медиаторе нужно было добавить, что его смысл в том что юзеры друг с другом вообще не взаимодействуют у них нет никакого механизма общения и всё они делают через посредника, это основная его задача для наглядности обычно делают 3 класса разных чтобы было понятно, что 1 общается с 3 тока через 2. Это реально важно потому что этот паттерн реализуют обычно когда уже у нас зоопарк сущностный связанных друг с другом хз как и чтобы как то упорядочить делают всех связанными только с одним медиатором а он уже разруливает.
    Стратегия у вас это просто наследование хз я патерна не 1 из существующих не уловил.
    В целом интересно было посмотреть, и вообще пофиг как что называется главное это помнить сам паттерны а не названия, мне например знание названий тока на собесе помогло)

    • @ДмитрийНормов-ю6ц
      @ДмитрийНормов-ю6ц 4 ปีที่แล้ว +1

      Интересно, что скажет по поводу замечаний сам автор))))
      Че т он молчит.

    • @andreystarostin1350
      @andreystarostin1350 4 ปีที่แล้ว +1

      Патер приспособленец, неверно описан, суть его разделение состояния на характерное для текущего контекста использование и на базовое не изменяемое.

    • @maksimsergeevich5939
      @maksimsergeevich5939 3 ปีที่แล้ว

      Посоветуйте тогда информацию где паттерны правильнее описаны, желательно на js/ts. Пожалуйста

    • @rayman1780
      @rayman1780 3 ปีที่แล้ว

      Меня еще в реализации паттерна "состояние" смущеает, что светофор знает про все свои состояния и управляет логикой их переключения (например, если он в состоянии "желтый", он знает, что нужно переключиться в состояние "зеленый"). Я не уверен, возможно такие варианты исполнения тоже существуют, но тогда смысл от всех этих классов с состояниями? Они же призваны убрать логику из основного класса, а не просто хранить в себе кусочки кода.

  • @alexbuki
    @alexbuki 5 ปีที่แล้ว +1

    интересно посмотреть применяемые паттерны с vue js