Серебрянная коллекция: 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 ответный - отличный план, ждём-с! А вот… если на регулярный, ежепятничный замахнётесь - то и у джаваскриптеров появится реальный шанс… выйти в программисты)))
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 Завершаем
К своему стыду только недавно нашел и начал погружаться в кроличью нору Мурыча, тип вещает про крайне интересные аспекты, дякую за науку. Был бы рад разнообразию в более коротких жанрах. Я конечно понимаю, авторский формат, но не всегда есть время/мозгоресурс на этот лекс фридман подкаст, а тяга слушать есть. Желаю автору міцного козацького, натхнення та доброї команди міленіалів, щоб різать це все не шортси.
Стрим интересный, но хотелось бы иметь ссылку на ресурс, который отражает текущее состояние по "best" практикам работы с элементами javascript под Node.js. Потому что раньше определённые конструкции были нежелательны, а со временем оптимизатор учится с ними работать. Т.е не существует какого-то абстрактного правильного подхода, а лишь текущая ситуация. Если такое желание (ссылка) слишком опимистичное и подобные знания не аккумулированы в компактном виде, то как вариант, был бы интересен стрим с профилированием какого-то кода, включающего разные подходы и можно было бы наглдяно посмотреть процесс, оценку и выкладку по производительности. Не исключаю, что итог может показать бессмысленность (малозначительность) оптимизации на проектах, которые не состоят из миллионов строк кода.
@@climenty Можно брать за пример реализации паттернов у меня в гитхабе How Programming Works, как Вы видели на стриме, они дают приемлимую оптимизацию при несложном и прозрачном подходе
DDD - Dва Dушных Dеда)) Два часа поговорили за жизнь (мемасики, шутейки), два часа разбирали два паттерана (adapter, flyweight). Спасибо, но хотелось бы стрим "о паттернах GRASP, SOLID, GoF для JavaScript" ;)
А каким таким образом работает pop() под капотом, что он приводит к проблемам? Я думал там просто размер уменьшается на 1 и далее при добавлении нового можно перезаписать память где ранее был убранный элемент Конкатенация строки постоянно перевыделяет память? Там не выделяется заранее буфер N размера?
В районе 3:21:00 говорится про то, что строковые константы выгоднее "инлайнить", нежели заводить под них отдельный идентификатор. Но с точки зрения паттернов такой подход называется magic string/number. Это не было упомянуто, но интересно, что вы с мурычем думаете по этому поводу :)
@@KopoLPedov Magic они только тогда, когда непонятно что они значат и почему там та или иная строка или число да и булеан или дата тоже. Чтоб это не было magic, можно сделать const PORT = 1080; и сразу на следующей строке использовать PORT. Это имеет цену, но очень маленькую, почти неразличимую. Или делать объектом { port: 1080 } и передавать его в аргументы вместо просто числа. Но вот со строками иначе, если написано 'SIGINT' то это не меджик, даже если никуда не присваиваем, потому, что всем понятно, что это, как и названия событий .on('error'... например, все, что читается и понятно - не меджик
@@TimurShemsedinov ну мб на маленьких примерах не так это видно. Сложно показать то, что я имею в виду, без примера на старом продукте с объемным доменом, где описывающие его функции оперируют по сути константными строками, но для основного кода они будут динамичными. Ну и в целом можно очень просто закладывать бомбы, та же строка "error" ломается как еrror(кириллическая е). Если такие строки уносим в единую константу, то вместо magic string мы получаем single source of truth
В си класс с одним интом весит как один инт, в js класс с одним числом сами понимаете сколько весит В си спокойно можно заводить константы во внешней области видимости. При компиляции они все равно заинлайнятся В js, интерпретируемом языке, они будут храниться в служебных структурах, а цепочке окружений
@@artyomboyko8219 Речь шла о динамической природе языка JavaScript. Чем больше она используется, тем сложнее оптимизатору привести такой код к эффективной форме, потому как оптимизированный код - находится в предельно статичной форме, где какая-либо динамика противопоказана.
Обережно, не тут головне розрізнити для себе для чого автомати підходять добре, а для чого погано. Окрім того, у нас нема автоматиної архітектури машин, а на фоннейманоській архітектурі реалізація автоматів дає оверхед
2:45:10 инженеры v8 это такие же программисты - неожиданный аванс от Мурыча в сторону аудитории. Ну или он слишком оторвался от нас с вами. Нет. Если бы мы могли находить ошибки в v8, в ноде, в хроме - мы бы работали в этих компаниях, а не в сраных веб-студиях...
Было очень интересно, но ничего не понятно, один говорил про чай и какой-то легаси код, второй все рассказывал про какой-то неведомый v8 вообще из головы 😂
Серебрянная коллекция:
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 Лао Цзи
@@vladburko9238 ключевые моменты стрима, спасибо!
Самый ламповый стрим на канале, однако…
👍👋🙏
Скоро сделаем у меня ответный гостевой стрим )
@@TimurShemsedinov ответный - отличный план, ждём-с!
А вот… если на регулярный, ежепятничный замахнётесь - то и у джаваскриптеров появится реальный шанс… выйти в программисты)))
Отличный стрим! Колабы от Тимура и Максима великолепны))
Супер, я давно ждал этот стрим. Вот если бы это было в формате "Каждая Пятнца - интересные заметки" на часик или часик++
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 Завершаем
Спасибо. Огонь !
К своему стыду только недавно нашел и начал погружаться в кроличью нору Мурыча, тип вещает про крайне интересные аспекты, дякую за науку.
Был бы рад разнообразию в более коротких жанрах. Я конечно понимаю, авторский формат, но не всегда есть время/мозгоресурс на этот лекс фридман подкаст, а тяга слушать есть. Желаю автору міцного козацького, натхнення та доброї команди міленіалів, щоб різать це все не шортси.
Хлопцы! ну 4 гадзіны - ну пашкадуйце апошн выхадны)))) Дзякуй вялікі) вельмі цікава
Good video ✔
Супер.дякую
Большое спасибо. Как всегда интересно, весело и познавательно
Стрим интересный, но хотелось бы иметь ссылку на ресурс, который отражает текущее состояние по "best" практикам работы с элементами javascript под Node.js. Потому что раньше определённые конструкции были нежелательны, а со временем оптимизатор учится с ними работать. Т.е не существует какого-то абстрактного правильного подхода, а лишь текущая ситуация. Если такое желание (ссылка) слишком опимистичное и подобные знания не аккумулированы в компактном виде, то как вариант, был бы интересен стрим с профилированием какого-то кода, включающего разные подходы и можно было бы наглдяно посмотреть процесс, оценку и выкладку по производительности. Не исключаю, что итог может показать бессмысленность (малозначительность) оптимизации на проектах, которые не состоят из миллионов строк кода.
@@climenty Можно брать за пример реализации паттернов у меня в гитхабе How Programming Works, как Вы видели на стриме, они дают приемлимую оптимизацию при несложном и прозрачном подходе
DDD - Dва Dушных Dеда)) Два часа поговорили за жизнь (мемасики, шутейки), два часа разбирали два паттерана (adapter, flyweight). Спасибо, но хотелось бы стрим "о паттернах GRASP, SOLID, GoF для JavaScript" ;)
А каким таким образом работает pop() под капотом, что он приводит к проблемам? Я думал там просто размер уменьшается на 1 и далее при добавлении нового можно перезаписать память где ранее был убранный элемент
Конкатенация строки постоянно перевыделяет память? Там не выделяется заранее буфер N размера?
great video
Куда пропал мурыч
Позовите Илья Климова, будет еще интереснее
Илья позван к Тимуру на сегодня - сдедите за анонсами.
А вот интереснее, это навряд-ли - увлечение бизнесом бесследно для сеньоров не проходит.
Так сегодня ж
Где можно найти код из видео?
2:59:10 функции и промисы в json.stringify дают [Object function/promise]
Так что как Тимур написал работать не будет
начало в 20:35
Можно задавать вопросы тут
як у вас справи?
@@dmitriy4204 норм, сьогодні третій день поспіль стрім, цього разу у Іллі на каналі, трохи втомився
В районе 3:21:00 говорится про то, что строковые константы выгоднее "инлайнить", нежели заводить под них отдельный идентификатор. Но с точки зрения паттернов такой подход называется magic string/number. Это не было упомянуто, но интересно, что вы с мурычем думаете по этому поводу :)
@@KopoLPedov Magic они только тогда, когда непонятно что они значат и почему там та или иная строка или число да и булеан или дата тоже. Чтоб это не было magic, можно сделать const PORT = 1080; и сразу на следующей строке использовать PORT. Это имеет цену, но очень маленькую, почти неразличимую. Или делать объектом { port: 1080 } и передавать его в аргументы вместо просто числа. Но вот со строками иначе, если написано 'SIGINT' то это не меджик, даже если никуда не присваиваем, потому, что всем понятно, что это, как и названия событий .on('error'... например, все, что читается и понятно - не меджик
@@TimurShemsedinov ну мб на маленьких примерах не так это видно. Сложно показать то, что я имею в виду, без примера на старом продукте с объемным доменом, где описывающие его функции оперируют по сути константными строками, но для основного кода они будут динамичными. Ну и в целом можно очень просто закладывать бомбы, та же строка "error" ломается как еrror(кириллическая е). Если такие строки уносим в единую константу, то вместо magic string мы получаем single source of truth
«чем больше код js похож на код на c, тем он быстрей работает»
К это фразе нужно подходить осознанно, ибо в куче случаев она ложна
В си класс с одним интом весит как один инт, в js класс с одним числом сами понимаете сколько весит
В си спокойно можно заводить константы во внешней области видимости. При компиляции они все равно заинлайнятся
В js, интерпретируемом языке, они будут храниться в служебных структурах, а цепочке окружений
@@artyomboyko8219 Речь шла о динамической природе языка JavaScript. Чем больше она используется, тем сложнее оптимизатору привести такой код к эффективной форме, потому как оптимизированный код - находится в предельно статичной форме, где какая-либо динамика противопоказана.
@@demimurych1 Да, я так и понял)
а где про GRASP и SOLID?
Скобочки убрали, и поехали😂
Я вивчаю написання на автоматах. Я в захваті.
Обережно, не тут головне розрізнити для себе для чого автомати підходять добре, а для чого погано. Окрім того, у нас нема автоматиної архітектури машин, а на фоннейманоській архітектурі реалізація автоматів дає оверхед
Тимур на собеседовании у мурыча
...args - rest?
Ссылка на бот с задачами: t.me/JavaScriptPatternsBot?start=AsForJS
Максим, не хотите заинлайнить чай с Тимуром по пятницам?
Болоту мамкиных коучей срочно требуются капли датского короля…
Настоятельно прошу Вас рассмотреть возможность продолжения банкета на регулярной основе!
2:45:10 инженеры v8 это такие же программисты - неожиданный аванс от Мурыча в сторону аудитории. Ну или он слишком оторвался от нас с вами. Нет. Если бы мы могли находить ошибки в v8, в ноде, в хроме - мы бы работали в этих компаниях, а не в сраных веб-студиях...
2:23:45
3:50:23
3:59:30
Было очень интересно, но ничего не понятно, один говорил про чай и какой-то легаси код, второй все рассказывал про какой-то неведомый v8 вообще из головы 😂
Куда пропал наш дед?
Мурыч сильно болеет уже не один месяц. Сейчас очередной кризис.
@@demimurych1 Пусть выздоравливает, крепкого здоровья ему. Ждем его 🥰
@@demimurych1с ним точно все хорошо?
@@WorkerThreads мы еще поборемся
Конечные автоматы state machine - OpenGL иже с ними… си рулит…
9:30
&t=1282 текущая скорость 3.2558050278873742
Большое спасибо. Как всегда интересно, весело и познавательно