Проекции и отображения наборов данных в JavaScript

  Рет қаралды 5,727

Timur Shemsedinov

Timur Shemsedinov

Күн бұрын

Пікірлер: 30
@timashoff
@timashoff Жыл бұрын
Спасибо большое! давно для себя заметил, что примеры с reduce как то легче читаются, код компактнее и лаконичнее выглядит, все рядом
@romanserebrov4718
@romanserebrov4718 2 жыл бұрын
Тимур спасибо Вам огромное, отличные примеры, работа с данными одна из самых интересных тем для меня лично ))
@serjio8781
@serjio8781 2 жыл бұрын
Топ контент, спасибо!
@anatolykobzisty9827
@anatolykobzisty9827 5 жыл бұрын
00:00:00 Введение 00:01:50 Простая проекция набора данных 00:09:23 Расширенная проекция набора данных 00:19:00 Расширенная проекция набора данных с кэшированием списка ключей 00:20:27 Оптимизация проекции набора данных с помощью императивного программирования 00:23:11 Линзы из функционального программирования 00:32:29 Сложная проекция набора данных ( проекция изнутри и снаружи ) 00:39:08 Сложная проекция набора данных с помощью декларативного программирования 00:41:57 Оптимизация сложной проекции 00:51:36 Синтаксис фильтрации 00:53:25 Вывод 00:58:08 Оптимизация 01:00:00 Обобщение
@Andrey-qf8uw
@Andrey-qf8uw 4 жыл бұрын
Круто як завжди!
@МаксимКоковин-и9к
@МаксимКоковин-и9к 4 жыл бұрын
Мне очень нравятся такие абстракции, аж мурашки по коже!!!)
@TheTexPro
@TheTexPro 2 жыл бұрын
Спасибо большое!
@uaplatformacomua
@uaplatformacomua 2 жыл бұрын
Тимуре, який ти класний препод 👍
@TimurShemsedinov
@TimurShemsedinov 2 жыл бұрын
Дякую, все для вас)
@Antonio-fm1sq
@Antonio-fm1sq 3 жыл бұрын
Спасибо
@Karmazins
@Karmazins 5 жыл бұрын
medium.com/javascript-scene/lenses-b85976cb0534 Мне помогло допонять линзы :)
@ИванПетров-б8в6щ
@ИванПетров-б8в6щ 3 жыл бұрын
Ни@я не понял , но оочень интересно ! ))
@antonanton22743
@antonanton22743 6 жыл бұрын
Спасибо )
@ЙййЙйй-п8б
@ЙййЙйй-п8б 4 жыл бұрын
Заковырка какая то примерчик с редьюсами с метаданными .. сложная абстракция... Это в вызове первый аргумент - методанные из партиал с , а второй аргумент (obj) откудова из мэпа получается приходит ? и этот obj приходит через рест параметры . так что ли ?
@victormog
@victormog 8 ай бұрын
Что-то я не понял, а не проще сделать класс, в который передавать объект, а его конструктор отберёт и преобразует, если нужно, любые нужные поля.
@TimurShemsedinov
@TimurShemsedinov 8 ай бұрын
Не проще, с классом в каждом случае нужно писать императивный код, а с проекцией просто декларативную структуру, она и нагляднее и пишется проще и тестировать ее не нужно, по сути это схема, а не код
@victormog
@victormog 8 ай бұрын
@@TimurShemsedinov поверю Вам на слово, т.к. ещё, видимо, не дорос до такого... Я DTO через класс организовываю... Попробую осмыслить это видео. Спасибо!
@vsuschenko
@vsuschenko 5 жыл бұрын
какая рекурсия в projection? где вы ее увидели?
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
на какой минуте?
@vsuschenko
@vsuschenko 5 жыл бұрын
@@TimurShemsedinov 7:25
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
@@vsuschenko а, ну конечно, reduce приводит к косвенной рекурсии или непрямой рекурсии. В reduce передается колбэк, и по завершению этого колбэка reduce его повторно вызывает. Это все равно, что рекурсия.
@vsuschenko
@vsuschenko 5 жыл бұрын
@@TimurShemsedinov там то же самое, что и в методе map. или forEach. просто передается результат который колбек вернул на предыдущей итерации. причем тут рекурсия? developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce почитайте описание. там внизу и полифил есть для старых браузеров. как видно - никакой рекурсии. обычный цикл.
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
@@vsuschenko сори, это я функциональным программированием перезанимался, классический функциональный reduce он рекурсивный, потому, что нельзя циклы писать, вот он: const reduce = (fn, acc, [cur, ...rest]) => cur === undefined ? acc : reduce(fn, fn(acc, cur), rest); Я согласен, что у Array.prototype.reduce действительно сделан на циклах, но это видно не из-за полифила, он все же написан на C++ внутри V8, а понятно это из-за того, что не случается переполнения стека на reduce огромных массивов.
@RK-gm4pd
@RK-gm4pd 11 ай бұрын
тяажкувато сприймається... доки в консоль не виведеш проміжні результати, важко слідкувати. і консолів треба не мало
@romankovalchuk8648
@romankovalchuk8648 6 жыл бұрын
Спасибо еще раз (случайно удалил предидущий коментарий) . Вот код разширеный projection для работы с вложеными дикшинари, без оборачивания в класс. Вы совершенно верно заметили, что просто так этого делать не нужно. const projection = (meta) => { const keys = Object.keys(meta); // debugger; const mapper = obj => { const hash = {}; for (const key of keys) { const def = meta[key]; const [name, transform] = def; let val = obj[name]; if (val !== void 0) { if (transform) { const cls = Object.prototype.toString().call(transform).slice(8,-1); switch(cls){ case 'Function': val = transform(val);break; case 'Object': val = projection(transform)(val);break; case 'Array': val = val.map(projection(transform));break; } } hash[key] = val; } } return hash; }; return mapper; }
@bodfxua7698
@bodfxua7698 3 жыл бұрын
Не спорю все круто но чисто для мене важко навчатись в такому режимі перегляду слайдів дуже багато чого не зрозуміло((
@randomtron
@randomtron 3 жыл бұрын
> JavaScript выработает скрытый класс. Вообще-то движок, в нашем случае V8, выработает скрытый класс.
@Cheetaqueue
@Cheetaqueue 2 жыл бұрын
как же ты хорош, указал автору на его ошибку
@RisDeep
@RisDeep 4 жыл бұрын
Сложно написанный код. Несколько заходов, всё ещё не досмотрел.
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Ну это же не первая лекция, нужно начинать с простого
SIZE DOESN’T MATTER @benjaminjiujitsu
00:46
Natan por Aí
Рет қаралды 7 МЛН
How many people are in the changing room? #devil #lilith #funny #shorts
00:39
Proxy и Symbol в JavaScript
48:29
Timur Shemsedinov
Рет қаралды 10 М.
Реактивное программирование на JavaScript
36:59
JWT авторизация. Основы JWT - механизма.
6:45
Хочу вАйти
Рет қаралды 18 М.
«Осень». Самая большая загадка Windows XP
14:36
Девять десятых
Рет қаралды 1,4 МЛН
Типизированные массивы в JavaScript
39:43
Timur Shemsedinov
Рет қаралды 9 М.
7 Лет Опыта в IT | Что я Понял?
19:56
Vlad Mishustin
Рет қаралды 233 М.