all-threads-bot

Frontender`s Spectre

[Timur Shemsedinov] 🧑‍💻 JavaScript: AI для оптимизации структур данных — Stack, Deque, Queue, LinkedList, Iterable

18 июля 2026 г., 07:20

🧑‍💻 Автор: https://github.com/tshemsedinov 👉 Продакшен код: https://github.com/metarhia/metautil 👉 Учебный код: https://github.com/HowProgrammingWorks/List 👉 Попасть на созвоны можно тут: https://www.patreon.com/c/tshemsedinov Продолжаем писать базовые структуры данных c AI Разбираем, почему Deque можно использовать как единственную физическую реализацию для Stack и Queue, а остальные структуры представить как специализированные интерфейсы и обёртки. Обсуждаем синхронные и асинхронные итераторы, алгоритмическую сложность и разделение абстрактного типа данных и его внутреннего представления. Рассматриваем circular list и практический сценарий его применения для переиспользования ограниченного количества буферов, соединений, таймеров и других ресурсов. Обсуждаем, почему в MetaUtil должны попадать только реально используемые структуры, почему tree shaking плохо совместим с динамическими схемами и метапрограммированием, а также какие проверки нужны при подготовке pull request: тесты, typings, changelog и линтеры. В конце рассматриваем Cons и возможность реализовать его через универсальный Record вместо отдельного класса. 00:00 Deque как основа для Stack и Queue 01:12 Асинхронные итераторы без лишних генераторов 01:50 Состояние структур данных в MetaUtil 02:23 ADT, физическая реализация и сложность операций 03:08 Перенос Result из MetaCom в MetaUtil 04:55 Односвязные и двухсвязные списки 05:49 Устройство circular list 07:11 Практическое применение circular list 09:33 Какие структуры стоит добавлять в MetaUtil 10:27 Dead code и сборка библиотек для frontend 11:16 Почему tree shaking мешает метапрограммированию 12:44 Тесты, typings и checklist для pull request 15:30 Реализация Cons через класс Record