🧩 Паттерны GoF и принципы SOLID, GRASP для JavaScript и TypeScript, как появились и как освоить

Поделиться
HTML-код
  • Опубликовано: 24 янв 2025

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

  • @TimurShemsedinov
    @TimurShemsedinov  5 месяцев назад +10

    Кстати, на канале сейчас 44,444 подписчика

  • @СергейЛавров-б9й
    @СергейЛавров-б9й 5 месяцев назад +3

    Кстати, все эти книги читал, но не думал о паттернах в хронологическом порядке, это интересное наблюдение

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

    как думаете это нормально если сениор разрабы по 8-10 лет опыта не знают ни одного паттерна? не то чтобы реализация а просто даже наименований не знают

    • @TimurShemsedinov
      @TimurShemsedinov  5 месяцев назад +1

      Это реалии, так бывает, потому, что их эффективность измеряли люди, имеющие еще меньшую компетенцию

    • @Александр-ф9в4ю
      @Александр-ф9в4ю 5 месяцев назад

      Лучше не знать паттернов, чем напихать мост абстрактных фабрик

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

      @@Александр-ф9в4ю изучение паттернов приносит большую опасность, что хочется все сразу применить на проекте, нужно, не нужно, без разницы

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

    Меня угнетает, что паттерны можно переосмыслять, интерпретировать по-разному. Будто никто до конца не понимает что оно значит и непонятно тогда как люди что-то пишут согласно этим принципам

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

      @@dehavilland12 так и должно быть, языки разные и парадиг много, а паттерны подходят не только для ООП и даже не только для ФП, а и для процедурного и реактивного, для мультипарадигменного подхода, вот в js можно на лету классы делать и возвращать их из функций, есть замыкания и лексические контексты, а у систем модульности есть такая особенность, что они неявно порождают замыкание в котором можно хранить приватные данные модуля да ещё и каждый модуль сразу синглтон создаёт, а стратегию можно делать как коллекцию методов или коллекцию классов даже. В общем, для js паттерны совсем иначе выглядят, нужно отталкиваться не от диаграммы классов из джава-реализации, а от проблемы, которую паттрн решает и идеи, как ее решить, т.е. flyweight можно сделать через прототипное наследование, как я недавно публиковал на канале и это всего 1 класс выходит. Было бы удивительно, если бы в Java и C# люди бы писали таким же образом, там сформировалась другая культура