Беседа с Тимуром Шемсединовым о переосмыслении паттернов GRASP, SOLID, GoF в JavaScript

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

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

  • @vladburko9238
    @vladburko9238 2 หลายเดือนก่อน +10

    Серебрянная коллекция:
    01:06:35 Тимур запретил срать
    01:40:05 Анекдот от Мурыча
    01:45:05 Тимур: Кого вы хотели обмануть?
    02:02:30 Поддержка TS
    02:22:45 Мем про классы в JS
    02:24:10 Мем про промисы
    03:59:25 Никому не верь
    04:04:00 Лао Цзи

    • @TimurShemsedinov
      @TimurShemsedinov 2 หลายเดือนก่อน +1

      @@vladburko9238 ключевые моменты стрима, спасибо!

  • @RTFMurych
    @RTFMurych 2 หลายเดือนก่อน +17

    Самый ламповый стрим на канале, однако…
    👍👋🙏

    • @TimurShemsedinov
      @TimurShemsedinov 2 หลายเดือนก่อน +7

      Скоро сделаем у меня ответный гостевой стрим )

    • @RTFMurych
      @RTFMurych 2 หลายเดือนก่อน +6

      @@TimurShemsedinov ответный - отличный план, ждём-с!
      А вот… если на регулярный, ежепятничный замахнётесь - то и у джаваскриптеров появится реальный шанс… выйти в программисты)))

  • @honeymontana
    @honeymontana 2 หลายเดือนก่อน +19

    Отличный стрим! Колабы от Тимура и Максима великолепны))

  • @aleksandrm3466
    @aleksandrm3466 2 หลายเดือนก่อน +9

    Супер, я давно ждал этот стрим. Вот если бы это было в формате "Каждая Пятнца - интересные заметки" на часик или часик++

  • @vladburko9238
    @vladburko9238 2 หลายเดือนก่อน +3

    00:00:00 Музыка
    00:01:40 Настройка звука
    00:04:00 Вступление
    00:47:00 Паттерн адаптер. Asyncify
    00:50:20 Про бота
    00:51:50 Люди стесняются показывать код
    00:55:15 Продолжение - Asyncify
    01:08:05 Про внешние апи и преподавание языка
    01:12:30 Про call apply
    01:13:40 Про курсы Тимура
    01:14:35 Продолжение - Asyncify
    01:18:50 Как определить четность числа
    01:19:00 Promisify
    01:36:55 Разбираем пример Promisify
    01:41:00 Смотрим реализацию Promisify в Node.js
    02:16:35 Callbackify
    02:19:00 Timarable
    02:24:50 Про Bun
    02:27:50 Кто такие дети
    02:29:30 Продолжение - Timarable
    02:32:15 "Предварительная оптимизация - корень всех зол". Разговор про оптимизации.
    02:45:50 Про AI
    02:48:20 Продолжение - Timarable
    02:57:25 Ремарка по созданию объектов
    03:01:20 Задачи/паттерны и что за ними стоит
    03:08:15 TryToHackMyJs
    03:09:40 Как шевелятся мозги в ChatGPT
    03:13:00 TargetIterator
    03:21:00 Про var
    03:24:15 Как создавать константы в V8
    03:26:30 Тимур про самописный движок электронных таблиц
    03:33:00 Про прототипное наследование/скрытые классы
    03:35:20 Про оптимизации V8
    03:36:15 Паттерн Flyweight
    03:59:25 Завершаем

  • @artem_travlo
    @artem_travlo 21 วันที่ผ่านมา

    Спасибо. Огонь !

  • @a-z-n-b-a-i
    @a-z-n-b-a-i 2 หลายเดือนก่อน +1

    К своему стыду только недавно нашел и начал погружаться в кроличью нору Мурыча, тип вещает про крайне интересные аспекты, дякую за науку.
    Был бы рад разнообразию в более коротких жанрах. Я конечно понимаю, авторский формат, но не всегда есть время/мозгоресурс на этот лекс фридман подкаст, а тяга слушать есть. Желаю автору міцного козацького, натхнення та доброї команди міленіалів, щоб різать це все не шортси.

  • @hvedar-nabilkin
    @hvedar-nabilkin 2 หลายเดือนก่อน +1

    Хлопцы! ну 4 гадзіны - ну пашкадуйце апошн выхадны)))) Дзякуй вялікі) вельмі цікава

  • @blackbirdchannel-c7b
    @blackbirdchannel-c7b 20 วันที่ผ่านมา

    Good video ✔

  • @sergioeo2035
    @sergioeo2035 2 หลายเดือนก่อน

    Супер.дякую

  • @stanislavsamgin9405
    @stanislavsamgin9405 2 หลายเดือนก่อน +5

    Большое спасибо. Как всегда интересно, весело и познавательно

  • @climenty
    @climenty 2 หลายเดือนก่อน +2

    Стрим интересный, но хотелось бы иметь ссылку на ресурс, который отражает текущее состояние по "best" практикам работы с элементами javascript под Node.js. Потому что раньше определённые конструкции были нежелательны, а со временем оптимизатор учится с ними работать. Т.е не существует какого-то абстрактного правильного подхода, а лишь текущая ситуация. Если такое желание (ссылка) слишком опимистичное и подобные знания не аккумулированы в компактном виде, то как вариант, был бы интересен стрим с профилированием какого-то кода, включающего разные подходы и можно было бы наглдяно посмотреть процесс, оценку и выкладку по производительности. Не исключаю, что итог может показать бессмысленность (малозначительность) оптимизации на проектах, которые не состоят из миллионов строк кода.

    • @TimurShemsedinov
      @TimurShemsedinov 2 หลายเดือนก่อน +3

      @@climenty Можно брать за пример реализации паттернов у меня в гитхабе How Programming Works, как Вы видели на стриме, они дают приемлимую оптимизацию при несложном и прозрачном подходе

  • @DimitarRad
    @DimitarRad 2 หลายเดือนก่อน +13

    DDD - Dва Dушных Dеда)) Два часа поговорили за жизнь (мемасики, шутейки), два часа разбирали два паттерана (adapter, flyweight). Спасибо, но хотелось бы стрим "о паттернах GRASP, SOLID, GoF для JavaScript" ;)

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

    А каким таким образом работает pop() под капотом, что он приводит к проблемам? Я думал там просто размер уменьшается на 1 и далее при добавлении нового можно перезаписать память где ранее был убранный элемент
    Конкатенация строки постоянно перевыделяет память? Там не выделяется заранее буфер N размера?

  • @narek7281
    @narek7281 2 หลายเดือนก่อน

    great video

  • @alexms8508
    @alexms8508 หลายเดือนก่อน +2

    Куда пропал мурыч

  • @powerrampage
    @powerrampage 2 หลายเดือนก่อน +3

    Позовите Илья Климова, будет еще интереснее

    • @RTFMurych
      @RTFMurych 2 หลายเดือนก่อน +4

      Илья позван к Тимуру на сегодня - сдедите за анонсами.
      А вот интереснее, это навряд-ли - увлечение бизнесом бесследно для сеньоров не проходит.

    • @TimurShemsedinov
      @TimurShemsedinov 2 หลายเดือนก่อน +2

      Так сегодня ж

  • @menceyh
    @menceyh 2 หลายเดือนก่อน

    Где можно найти код из видео?

  • @FrankBakulov
    @FrankBakulov 2 หลายเดือนก่อน

    2:59:10 функции и промисы в json.stringify дают [Object function/promise]
    Так что как Тимур написал работать не будет

  • @Сергей-у3к8й
    @Сергей-у3к8й 2 หลายเดือนก่อน +1

    начало в 20:35

  • @TimurShemsedinov
    @TimurShemsedinov 2 หลายเดือนก่อน

    Можно задавать вопросы тут

    • @dmitriy4204
      @dmitriy4204 2 หลายเดือนก่อน

      як у вас справи?

    • @TimurShemsedinov
      @TimurShemsedinov 2 หลายเดือนก่อน

      @@dmitriy4204 норм, сьогодні третій день поспіль стрім, цього разу у Іллі на каналі, трохи втомився

    • @KopoLPedov
      @KopoLPedov 2 หลายเดือนก่อน +1

      В районе 3:21:00 говорится про то, что строковые константы выгоднее "инлайнить", нежели заводить под них отдельный идентификатор. Но с точки зрения паттернов такой подход называется magic string/number. Это не было упомянуто, но интересно, что вы с мурычем думаете по этому поводу :)

    • @TimurShemsedinov
      @TimurShemsedinov 2 หลายเดือนก่อน +1

      @@KopoLPedov Magic они только тогда, когда непонятно что они значат и почему там та или иная строка или число да и булеан или дата тоже. Чтоб это не было magic, можно сделать const PORT = 1080; и сразу на следующей строке использовать PORT. Это имеет цену, но очень маленькую, почти неразличимую. Или делать объектом { port: 1080 } и передавать его в аргументы вместо просто числа. Но вот со строками иначе, если написано 'SIGINT' то это не меджик, даже если никуда не присваиваем, потому, что всем понятно, что это, как и названия событий .on('error'... например, все, что читается и понятно - не меджик

    • @KopoLPedov
      @KopoLPedov 2 หลายเดือนก่อน

      @@TimurShemsedinov ну мб на маленьких примерах не так это видно. Сложно показать то, что я имею в виду, без примера на старом продукте с объемным доменом, где описывающие его функции оперируют по сути константными строками, но для основного кода они будут динамичными. Ну и в целом можно очень просто закладывать бомбы, та же строка "error" ломается как еrror(кириллическая е). Если такие строки уносим в единую константу, то вместо magic string мы получаем single source of truth

  • @artyomboyko8219
    @artyomboyko8219 2 หลายเดือนก่อน

    «чем больше код js похож на код на c, тем он быстрей работает»
    К это фразе нужно подходить осознанно, ибо в куче случаев она ложна

    • @artyomboyko8219
      @artyomboyko8219 2 หลายเดือนก่อน

      В си класс с одним интом весит как один инт, в js класс с одним числом сами понимаете сколько весит
      В си спокойно можно заводить константы во внешней области видимости. При компиляции они все равно заинлайнятся
      В js, интерпретируемом языке, они будут храниться в служебных структурах, а цепочке окружений

    • @demimurych1
      @demimurych1 2 หลายเดือนก่อน

      @@artyomboyko8219 Речь шла о динамической природе языка JavaScript. Чем больше она используется, тем сложнее оптимизатору привести такой код к эффективной форме, потому как оптимизированный код - находится в предельно статичной форме, где какая-либо динамика противопоказана.

    • @artyomboyko8219
      @artyomboyko8219 2 หลายเดือนก่อน

      @@demimurych1 Да, я так и понял)

  • @Сергей-у3к8й
    @Сергей-у3к8й 2 หลายเดือนก่อน

    а где про GRASP и SOLID?

  • @ivan-d192
    @ivan-d192 2 หลายเดือนก่อน

    Скобочки убрали, и поехали😂

  • @ОлександрПетров-щ5ч
    @ОлександрПетров-щ5ч 2 หลายเดือนก่อน +2

    Я вивчаю написання на автоматах. Я в захваті.

    • @TimurShemsedinov
      @TimurShemsedinov 2 หลายเดือนก่อน

      Обережно, не тут головне розрізнити для себе для чого автомати підходять добре, а для чого погано. Окрім того, у нас нема автоматиної архітектури машин, а на фоннейманоській архітектурі реалізація автоматів дає оверхед

  • @Скыбыдыщь
    @Скыбыдыщь 27 วันที่ผ่านมา

    Тимур на собеседовании у мурыча

  • @xD-hu3gw
    @xD-hu3gw หลายเดือนก่อน

    ...args - rest?

  • @AsForJS
    @AsForJS  2 หลายเดือนก่อน +1

    Ссылка на бот с задачами: t.me/JavaScriptPatternsBot?start=AsForJS

    • @RTFMurych
      @RTFMurych 2 หลายเดือนก่อน +3

      Максим, не хотите заинлайнить чай с Тимуром по пятницам?
      Болоту мамкиных коучей срочно требуются капли датского короля…
      Настоятельно прошу Вас рассмотреть возможность продолжения банкета на регулярной основе!

  • @FrankBakulov
    @FrankBakulov 2 หลายเดือนก่อน

    2:45:10 инженеры v8 это такие же программисты - неожиданный аванс от Мурыча в сторону аудитории. Ну или он слишком оторвался от нас с вами. Нет. Если бы мы могли находить ошибки в v8, в ноде, в хроме - мы бы работали в этих компаниях, а не в сраных веб-студиях...

  • @СергейЛукашевский-п2щ
    @СергейЛукашевский-п2щ 2 หลายเดือนก่อน

    2:23:45
    3:50:23
    3:59:30

  • @locktar-o-dark5664
    @locktar-o-dark5664 2 หลายเดือนก่อน

    Было очень интересно, но ничего не понятно, один говорил про чай и какой-то легаси код, второй все рассказывал про какой-то неведомый v8 вообще из головы 😂

  • @WorkerThreads
    @WorkerThreads 2 หลายเดือนก่อน

    Куда пропал наш дед?

    • @demimurych1
      @demimurych1 2 หลายเดือนก่อน

      Мурыч сильно болеет уже не один месяц. Сейчас очередной кризис.

    • @WorkerThreads
      @WorkerThreads 2 หลายเดือนก่อน

      @@demimurych1 Пусть выздоравливает, крепкого здоровья ему. Ждем его 🥰

    • @WorkerThreads
      @WorkerThreads 23 วันที่ผ่านมา

      @@demimurych1с ним точно все хорошо?

    • @demimurych1
      @demimurych1 23 วันที่ผ่านมา +1

      @@WorkerThreads мы еще поборемся

  • @КириллЧе-я5ы
    @КириллЧе-я5ы 2 หลายเดือนก่อน +1

    Конечные автоматы state machine - OpenGL иже с ними… си рулит…

  • @celestian-verse
    @celestian-verse หลายเดือนก่อน

    9:30

  • @qulinxao
    @qulinxao 2 หลายเดือนก่อน

    &t=1282 текущая скорость 3.2558050278873742

  • @opo795
    @opo795 2 หลายเดือนก่อน +3

    Большое спасибо. Как всегда интересно, весело и познавательно