Все материалы по структурам данных, ссылки, которые я обещал, объявления о новых стримах и мастер-классах будут в боте: https://t.me/next_tick_bot?start=6a6b57b3b1565393f9084f07?utm_source=timur_youtube_efir&utm_medium=botefir&utm_campaign=timur_youtube_efir
Структуры данных в JavaScript обычно объясняют через их внутреннее устройство, API и оценку сложности Big O. А мы пойдем от реальных инженерных проблем: написание бизнес-логики, кода на JavaScript и TypeScript для backend и frontend, типовые проблемы в разработке: коррапт глобальных данных, гонку состояния, очереди, кеширование, история изменений, управление памятью и ресурсами.
Мы разберем, почему каждая структура решает определенную проблему, и уже как следствие, то что она что-то запрещает и чем за это приходится платить, но и какие плюсы мы получаем. От обычных Array, Object, Map и Set до Linked List, Persistent List, Heap, Circular buffer, Bloom filter, Stack, Queue, Append-only, Immutable lists and Records. Отдельно классифицируем структуры для доменного, продуктового, платформенного и системного кода.
➜ Исходники и примеры использования структур из metautil: https://github.com/metarhia/metautil
➜ Struct и иммутабельные структуры: https://github.com/HowProgrammingWorks/Immutable
➜ Префиксное дерево Trie: https://github.com/HowProgrammingWorks/Trie
➜ Примеры разных списков: https://github.com/HowProgrammingWorks/List
➜ Очереди https://github.com/HowProgrammingWorks/Queue
➜ Конкурентная очередь: https://github.com/HowProgrammingWorks/ConcurrentQueue
➜ Double ended queue: https://github.com/HowProgrammingWorks/Dequeue
00:00:00 Введение: зачем нужны структуры данных
00:01:54 Проблема стандартной библиотеки JavaScript
00:03:28 Наивные списки, аллокации и Garbage Collector
00:07:03 Физическое расположение структур данных в памяти
00:09:15 process.nextTick, FixedQueue и Unrolled List в Node.js
00:14:02 Почему нельзя оптимизировать всё внутри продукта
00:14:46 Стандартная библиотека и сменные реализации
00:18:10 Интерфейс структуры данных и физическая реализация
00:23:01 Автоматический выбор реализации под нагрузку
00:24:14 Использовать структуры или разрабатывать их
00:25:01 ConsList: идеи Lisp в JavaScript и ООП
00:27:06 Опасности мутабельных массивов и объектов
00:32:38 Persistent List вместо копирования данных
00:33:28 Ветвление транзакций и переиспользование памяти
00:38:25 Реализация ConsList в JavaScript
00:40:37 ConsList в бизнес-логике корзины
00:45:09 Мутабельные объекты внутри иммутабельного списка
00:48:11 Record: мутабельные и иммутабельные объекты
00:50:25 Update, Fork и Branch
00:56:48 Типизация динамических Record-классов
00:57:05 Как ConsList и Record ограничивают ошибки AI
01:00:09 Владение в Rust и Symbol.dispose в JavaScript
01:02:00 Другие интерфейсы и сценарии структур данных
01:04:10 История изменений, ревизии и совместное редактирование
01:05:31 Round Robin: алгоритм и структура под капотом
01:06:36 Saga и структура компенсаций
01:10:00 Зацепление модулей через общие данные
01:13:44 Асинхронный коллектор данных
01:17:02 Главные выводы основной части
01:18:17 Ответы на вопросы
01:18:30 Бенчмарки и возможный вклад в Node.js
01:19:42 Схема выбора структур данных для LLM
01:27:11 AI-ассистент по базе созвонов и материалов
01:35:10 Языковая независимость и мультипарадигменность
01:39:17 Stack Trace и структуры данных Record
01:41:48 Разница между ConsList и Trie
01:43:47 Очередь в памяти или RabbitMQ и BullMQ
01:46:02 Почему разработчику нужно знать JavaScript
01:48:40 Бесконечный скролл: Round Buffer и Unrolled List
01:52:12 Три контура разработки
01:58:46 Книги и учебные материалы по структурам данных
02:00:30 Большая кодовая база и работа с AI
02:01:06 Как архитектура сокращает расход токенов
02:05:04 Релиз и документация Metautil
02:06:11 Заключение и приглашение к контрибьютингу
#javascript #nodejs #datastructures #softwarearchitecture #programming #ai
Структуры данных в JavaScript обычно объясняют через их внутреннее устройство, API и оценку сложности Big O. А мы пойдем от реальных инженерных проблем: написание бизнес-логики, кода на JavaScript и TypeScript для backend и frontend, типовые проблемы в разработке: коррапт глобальных данных, гонку состояния, очереди, кеширование, история изменений, управление памятью и ресурсами.
Мы разберем, почему каждая структура решает определенную проблему, и уже как следствие, то что она что-то запрещает и чем за это приходится платить, но и какие плюсы мы получаем. От обычных Array, Object, Map и Set до Linked List, Persistent List, Heap, Circular buffer, Bloom filter, Stack, Queue, Append-only, Immutable lists and Records. Отдельно классифицируем структуры для доменного, продуктового, платформенного и системного кода.
➜ Исходники и примеры использования структур из metautil: https://github.com/metarhia/metautil
➜ Struct и иммутабельные структуры: https://github.com/HowProgrammingWorks/Immutable
➜ Префиксное дерево Trie: https://github.com/HowProgrammingWorks/Trie
➜ Примеры разных списков: https://github.com/HowProgrammingWorks/List
➜ Очереди https://github.com/HowProgrammingWorks/Queue
➜ Конкурентная очередь: https://github.com/HowProgrammingWorks/ConcurrentQueue
➜ Double ended queue: https://github.com/HowProgrammingWorks/Dequeue
00:00:00 Введение: зачем нужны структуры данных
00:01:54 Проблема стандартной библиотеки JavaScript
00:03:28 Наивные списки, аллокации и Garbage Collector
00:07:03 Физическое расположение структур данных в памяти
00:09:15 process.nextTick, FixedQueue и Unrolled List в Node.js
00:14:02 Почему нельзя оптимизировать всё внутри продукта
00:14:46 Стандартная библиотека и сменные реализации
00:18:10 Интерфейс структуры данных и физическая реализация
00:23:01 Автоматический выбор реализации под нагрузку
00:24:14 Использовать структуры или разрабатывать их
00:25:01 ConsList: идеи Lisp в JavaScript и ООП
00:27:06 Опасности мутабельных массивов и объектов
00:32:38 Persistent List вместо копирования данных
00:33:28 Ветвление транзакций и переиспользование памяти
00:38:25 Реализация ConsList в JavaScript
00:40:37 ConsList в бизнес-логике корзины
00:45:09 Мутабельные объекты внутри иммутабельного списка
00:48:11 Record: мутабельные и иммутабельные объекты
00:50:25 Update, Fork и Branch
00:56:48 Типизация динамических Record-классов
00:57:05 Как ConsList и Record ограничивают ошибки AI
01:00:09 Владение в Rust и Symbol.dispose в JavaScript
01:02:00 Другие интерфейсы и сценарии структур данных
01:04:10 История изменений, ревизии и совместное редактирование
01:05:31 Round Robin: алгоритм и структура под капотом
01:06:36 Saga и структура компенсаций
01:10:00 Зацепление модулей через общие данные
01:13:44 Асинхронный коллектор данных
01:17:02 Главные выводы основной части
01:18:17 Ответы на вопросы
01:18:30 Бенчмарки и возможный вклад в Node.js
01:19:42 Схема выбора структур данных для LLM
01:27:11 AI-ассистент по базе созвонов и материалов
01:35:10 Языковая независимость и мультипарадигменность
01:39:17 Stack Trace и структуры данных Record
01:41:48 Разница между ConsList и Trie
01:43:47 Очередь в памяти или RabbitMQ и BullMQ
01:46:02 Почему разработчику нужно знать JavaScript
01:48:40 Бесконечный скролл: Round Buffer и Unrolled List
01:52:12 Три контура разработки
01:58:46 Книги и учебные материалы по структурам данных
02:00:30 Большая кодовая база и работа с AI
02:01:06 Как архитектура сокращает расход токенов
02:05:04 Релиз и документация Metautil
02:06:11 Заключение и приглашение к контрибьютингу
#javascript #nodejs #datastructures #softwarearchitecture #programming #ai
- Категория
- Заработок на AI
Выполните вход или зарегистрируйтесь для отправки комментария.
Комментариев нет.
