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

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

Timur Shemsedinov

Timur Shemsedinov

5 жыл бұрын

Примеры кода: github.com/HowProgrammingWork...
Курс «100 лекций по программированию» habr.com/post/427799/
#javascript #лекции #кпи #программирование #js

Пікірлер: 30
@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 Обобщение
@user-vx9ug1nb2t
@user-vx9ug1nb2t 4 жыл бұрын
Мне очень нравятся такие абстракции, аж мурашки по коже!!!)
@timashoff
@timashoff Жыл бұрын
Спасибо большое! давно для себя заметил, что примеры с reduce как то легче читаются, код компактнее и лаконичнее выглядит, все рядом
@romanserebrov4718
@romanserebrov4718 2 жыл бұрын
Тимур спасибо Вам огромное, отличные примеры, работа с данными одна из самых интересных тем для меня лично ))
@Andrey-qf8uw
@Andrey-qf8uw 4 жыл бұрын
Круто як завжди!
@serjio8781
@serjio8781 Жыл бұрын
Топ контент, спасибо!
@Karmazins
@Karmazins 4 жыл бұрын
medium.com/javascript-scene/lenses-b85976cb0534 Мне помогло допонять линзы :)
@user-yu7gm4df3f
@user-yu7gm4df3f 3 жыл бұрын
Ни@я не понял , но оочень интересно ! ))
@uaplatformacomua
@uaplatformacomua 2 жыл бұрын
Тимуре, який ти класний препод 👍
@TimurShemsedinov
@TimurShemsedinov 2 жыл бұрын
Дякую, все для вас)
@TheTexPro
@TheTexPro 2 жыл бұрын
Спасибо большое!
@Antonio-fm1sq
@Antonio-fm1sq 2 жыл бұрын
Спасибо
@antonanton22743
@antonanton22743 5 жыл бұрын
Спасибо )
@user-ci6uh4xj6j
@user-ci6uh4xj6j 4 жыл бұрын
Заковырка какая то примерчик с редьюсами с метаданными .. сложная абстракция... Это в вызове первый аргумент - методанные из партиал с , а второй аргумент (obj) откудова из мэпа получается приходит ? и этот obj приходит через рест параметры . так что ли ?
@romankovalchuk8648
@romankovalchuk8648 5 жыл бұрын
Спасибо еще раз (случайно удалил предидущий коментарий) . Вот код разширеный 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; }
@victormog
@victormog 3 ай бұрын
Что-то я не понял, а не проще сделать класс, в который передавать объект, а его конструктор отберёт и преобразует, если нужно, любые нужные поля.
@TimurShemsedinov
@TimurShemsedinov 3 ай бұрын
Не проще, с классом в каждом случае нужно писать императивный код, а с проекцией просто декларативную структуру, она и нагляднее и пишется проще и тестировать ее не нужно, по сути это схема, а не код
@victormog
@victormog 3 ай бұрын
@@TimurShemsedinov поверю Вам на слово, т.к. ещё, видимо, не дорос до такого... Я DTO через класс организовываю... Попробую осмыслить это видео. Спасибо!
@RK-gm4pd
@RK-gm4pd 6 ай бұрын
тяажкувато сприймається... доки в консоль не виведеш проміжні результати, важко слідкувати. і консолів треба не мало
@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 огромных массивов.
@bodfxua7698
@bodfxua7698 2 жыл бұрын
Не спорю все круто но чисто для мене важко навчатись в такому режимі перегляду слайдів дуже багато чого не зрозуміло((
@randomtron
@randomtron 3 жыл бұрын
> JavaScript выработает скрытый класс. Вообще-то движок, в нашем случае V8, выработает скрытый класс.
@snippetdev8456
@snippetdev8456 2 жыл бұрын
как же ты хорош, указал автору на его ошибку
@RisDeep
@RisDeep 4 жыл бұрын
Сложно написанный код. Несколько заходов, всё ещё не досмотрел.
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Ну это же не первая лекция, нужно начинать с простого
Proxy и Symbol в JavaScript
48:29
Timur Shemsedinov
Рет қаралды 10 М.
МАМА И STANDOFF 2 😳 !FAKE GUN! #shorts
00:34
INNA SERG
Рет қаралды 3,8 МЛН
Khóa ly biệt
01:00
Đào Nguyễn Ánh - Hữu Hưng
Рет қаралды 20 МЛН
Children deceived dad #comedy
00:19
yuzvikii_family
Рет қаралды 6 МЛН
Типизированные массивы в JavaScript
39:43
Timur Shemsedinov
Рет қаралды 8 М.
Redis за 20 минут
23:22
suchkov tech
Рет қаралды 104 М.
Коллекции, множества, хештаблицы в JavaScript
50:42
😱 Как стать программистом с нуля? Без курсов самому.
24:43
Хауди Хо™ - Просто о мире IT!
Рет қаралды 325 М.
МАМА И STANDOFF 2 😳 !FAKE GUN! #shorts
00:34
INNA SERG
Рет қаралды 3,8 МЛН