<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Производительность on Digitable courses</title>
    <link>https://courses.digitable.life/tags/%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C/</link>
    <description>Recent content in Производительность on Digitable courses</description>
    <generator>Hugo</generator>
    <language>ru-RU</language>
    <lastBuildDate>Sat, 01 Aug 2026 00:12:59 +0300</lastBuildDate>
    <atom:link href="https://courses.digitable.life/tags/%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CDN и edge: как работает раздача, инвалидация, географическая маршрутизация</title>
      <link>https://courses.digitable.life/post/networking/11-cdn-and-edge/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/networking/11-cdn-and-edge/</guid>
      <description>Почему скорость света делает CDN обязательной, как устроен многоуровневый кэш от edge PoP до origin shield, из чего собирается ключ кэша, чем anycast отличается от DNS GSLB, как инвалидировать контент без обрушения origin и чем всё это отлаживать — с живым выводом dig, curl, traceroute и tcpdump.</description>
    </item>
    <item>
      <title>CSS с нуля: каскад, специфичность, наследование, единицы измерения</title>
      <link>https://courses.digitable.life/post/frontend/03-css-fundamentals/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/frontend/03-css-fundamentals/</guid>
      <description>Как объявление в таблице стилей становится пикселем на экране: стадии значения, каскад и слои, специфичность, наследование, кастомные свойства, единицы измерения и цена стилей для производительности.</description>
    </item>
    <item>
      <title>DOM и события: работа с деревом, делегирование, всплытие, наблюдатели</title>
      <link>https://courses.digitable.life/post/frontend/06-dom-and-events/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/frontend/06-dom-and-events/</guid>
      <description>DOM как API, а не как разметка: живые и статические коллекции, батчинг мутаций, layout thrashing, три фазы события, делегирование, кастомные события, четыре наблюдателя и утечки памяти — с измерениями в DevTools.</description>
    </item>
    <item>
      <title>Frontend: карта трека и как устроена современная веб-разработка</title>
      <link>https://courses.digitable.life/post/frontend/00-overview/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/frontend/00-overview/</guid>
      <description>Что такое фронтенд как инженерная дисциплина: слои платформы, путь от URL до пикселя, стратегии рендеринга и гидратация, Core Web Vitals, честное сравнение фреймворков и карта трека.</description>
    </item>
    <item>
      <title>HTTP: методы, коды, заголовки, кэширование, эволюция 1.1 → 2 → 3</title>
      <link>https://courses.digitable.life/post/networking/06-http/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/networking/06-http/</guid>
      <description>Полный разбор HTTP как инженерного инструмента: анатомия сообщения до байта, семантика методов и кодов, заголовки, которые реально решают судьбу запроса, модель кэширования с ETag и Vary, и честное сравнение 1.1, 2 и 3 — с выводом curl -v, tcpdump, openssl s_client и разбором того, что видно в Wireshark.</description>
    </item>
    <item>
      <title>Microsoft SQL Server и Oracle: корпоративный мир, лицензии, особенности</title>
      <link>https://courses.digitable.life/post/databases/04-ms-sql-and-oracle/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/databases/04-ms-sql-and-oracle/</guid>
      <description>Архитектура Oracle Database и Microsoft SQL Server, их отличия от открытых СУБД, честный разбор лицензий и стоимости владения, планы выполнения, диагностика и типичные аварии в проде.</description>
    </item>
    <item>
      <title>React: компоненты, JSX, состояние, жизненный цикл, реконсиляция</title>
      <link>https://courses.digitable.life/post/frontend/08-react-fundamentals/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/frontend/08-react-fundamentals/</guid>
      <description>Как React превращает JSX в DOM: элементы против компонентов, состояние как снимок, реконсиляция по key, дерево Fiber, фазы render и commit — и почему приложение тормозит.</description>
    </item>
    <item>
      <title>System design: как проектировать систему под нагрузку от и до</title>
      <link>https://courses.digitable.life/post/architecture-patterns/12-system-design/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/architecture-patterns/12-system-design/</guid>
      <description>Полный маршрут проектирования нагруженной системы: от уточнения требований и оценок на салфетке до модели данных, схемы записи и чтения, узких мест, деградации и плана эволюции — на сквозном примере новостной ленты.</description>
    </item>
    <item>
      <title>TCP: установка соединения, надёжность, окна, управление перегрузкой</title>
      <link>https://courses.digitable.life/post/networking/03-tcp/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/networking/03-tcp/</guid>
      <description>Как из ненадёжных датаграмм получается надёжный поток байтов: рукопожатие и очереди accept, конечный автомат соединения и загадка TIME_WAIT, SACK и RACK, окно получателя против окна перегрузки, slow start, CUBIC и BBR, bufferbloat и ECN — с реальным выводом tcpdump, ss, nstat и Wireshark и с тюнингом, который действительно окупается.</description>
    </item>
    <item>
      <title>Zed, Sublime Text, Atom-подобные и новая волна редакторов</title>
      <link>https://courses.digitable.life/post/editors/08-modern-editors/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/editors/08-modern-editors/</guid>
      <description>Что появилось после VS Code и зачем: устройство Zed на Rust и GPUI, философия и Python-API Sublime Text, урок Atom и его наследники, Helix и Lapce, волна AI-форков — с рабочими конфигами, честными замерами и разбором стоимости перехода.</description>
    </item>
    <item>
      <title>Архитектура стилей: БЭМ, CSS-modules, CSS-in-JS, Tailwind, дизайн-системы</title>
      <link>https://courses.digitable.life/post/frontend/05-css-architecture/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/frontend/05-css-architecture/</guid>
      <description>Как перестать бояться собственных стилей: изоляция имён, каскадные слои, CSS Modules, zero-runtime CSS-in-JS, Tailwind, дизайн-токены и цена стилей в рантайме.</description>
    </item>
    <item>
      <title>Асимптотика, амортизация и модель памяти: как на самом деле считать стоимость</title>
      <link>https://courses.digitable.life/post/data-structures/01-complexity-and-memory/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/data-structures/01-complexity-and-memory/</guid>
      <description>Строгий разбор O-нотации, трёх методов амортизированного анализа и модели памяти — почему O(1) бывает в сто раз медленнее O(log n) и как считать стоимость структуры данных так, чтобы прогноз совпадал с продакшеном.</description>
    </item>
    <item>
      <title>Бенчмаркинг честно: разогрев, шум, статистика, типичные самообманы</title>
      <link>https://courses.digitable.life/post/performance/02-benchmarking/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/02-benchmarking/</guid>
      <description>Как построить бенчмарк, которому можно верить: разогрев до стационарного режима, подавление шума, устойчивая статистика вместо «среднее ± сигма» и разбор классических самообманов — от устранения мёртвого кода до coordinated omission.</description>
    </item>
    <item>
      <title>Большие репозитории и монорепо: submodules, subtree, sparse-checkout, LFS</title>
      <link>https://courses.digitable.life/post/git/09-monorepo/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/git/09-monorepo/</guid>
      <description>Репозиторий растёт по трём независимым осям — глубина истории, ширина дерева, вес содержимого — и каждая ось лечится своим механизмом. Разбираем submodules и subtree как два способа склеить репозитории, sparse-checkout и partial clone как два способа взять только нужную часть, LFS как способ вынести бинарники, и обслуживание, без которого монорепо перестаёт работать.</description>
    </item>
    <item>
      <title>Ввод-вывод: блокирующий и асинхронный, syscalls, буферизация</title>
      <link>https://courses.digitable.life/post/performance/06-io-and-syscalls/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/06-io-and-syscalls/</guid>
      <description>Что на самом деле стоит системный вызов, почему буферизация даёт больше, чем любая замена библиотеки, как устроены epoll и io_uring, где живут лишние копии данных и как честно измерять ввод-вывод, не обманываясь page cache и burst-кредитами облака.</description>
    </item>
    <item>
      <title>Графы: представления, свойства и выбор структуры</title>
      <link>https://courses.digitable.life/post/data-structures/10-graphs-representation/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/data-structures/10-graphs-representation/</guid>
      <description>Как хранить граф в памяти: список рёбер, матрица и списки смежности, CSR; чем они различаются по времени, памяти и локальности, как извлекать базовые свойства графа и как выбирать представление под реальную нагрузку.</description>
    </item>
    <item>
      <title>Дерево отрезков и дерево Фенвика</title>
      <link>https://courses.digitable.life/post/data-structures/12-segment-and-fenwick-trees/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/data-structures/12-segment-and-fenwick-trees/</guid>
      <description>Как отвечать на запросы к произвольным отрезкам массива за O(log n), когда массив всё время меняется: биты дерева Фенвика, каноническое разбиение дерева отрезков, отложенные операции и честное сравнение того, что выбирать в проде.</description>
    </item>
    <item>
      <title>Иерархия памяти: регистры, кэш, RAM, диск и почему это важно</title>
      <link>https://courses.digitable.life/post/computer-science/06-memory-hierarchy/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/computer-science/06-memory-hierarchy/</guid>
      <description>Почему память компьютера — не плоское поле байтов, а пирамида из регистров, кэшей, ОЗУ и диска; как кэш и локальность прячут медленность памяти, и почему знание этой иерархии ускоряет код в десятки раз без единой новой строки логики</description>
    </item>
    <item>
      <title>Измерение: метрики, перцентили, latency vs throughput, USE и RED</title>
      <link>https://courses.digitable.life/post/performance/01-measuring/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/01-measuring/</guid>
      <description>Как получить число, которому можно верить: чем задержка отличается от пропускной способности, почему среднее бесполезно, как считать и не считать перцентили, что такое coordinated omission и хвостовая амплификация, и как методы USE и RED превращают панику в диагностику.</description>
    </item>
    <item>
      <title>ИИ в продакшене: латентность, кэширование, роутинг моделей, стоимость, наблюдаемость</title>
      <link>https://courses.digitable.life/post/ai-engineering/13-production-and-cost/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/ai-engineering/13-production-and-cost/</guid>
      <description>Что меняется, когда LLM-прототип становится сервисом с SLO и счётом за инференс: из чего складывается латентность и как её резать, как считать и ловить деньги на кэшировании и роутинге, чем батч отличается от онлайна, как переживать 429 и 529, и что именно логировать, чтобы диагностировать деградацию качества.</description>
    </item>
    <item>
      <title>Индексы и планы выполнения: B-tree, hash, GIN, покрывающие индексы</title>
      <link>https://courses.digitable.life/post/databases/06-indexes-and-query-plans/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/databases/06-indexes-and-query-plans/</guid>
      <description>Как устроены индексы разных типов, как планировщик выбирает путь доступа и как читать EXPLAIN так, чтобы находить настоящую причину медленного запроса, а не угадывать.</description>
    </item>
    <item>
      <title>Как работает браузер: парсинг, DOM, CSSOM, рендер, композитинг</title>
      <link>https://courses.digitable.life/post/frontend/01-how-browser-works/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/frontend/01-how-browser-works/</guid>
      <description>Полный путь от URL до пикселя: процессы браузера, парсинг HTML и CSS, style, layout, paint, композитинг, event loop и бюджет кадра — и как всё это измерять.</description>
    </item>
    <item>
      <title>Кэши и локальность: почему одинаковый по сложности код работает в 10 раз медленнее</title>
      <link>https://courses.digitable.life/post/performance/05-cache-and-locality/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/05-cache-and-locality/</guid>
      <description>Как устроена кэш-иерархия и почему два цикла с одинаковым O(n) отличаются по времени на порядок: кэш-линии, наборы и конфликты, предвыборка, TLB, раскладка данных, тайлинг — и чем всё это измерять вместо того, чтобы гадать.</description>
    </item>
    <item>
      <title>Кэширование и масштабирование: уровни, инвалидация, шардирование</title>
      <link>https://courses.digitable.life/post/architecture-patterns/08-caching-and-scaling/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/architecture-patterns/08-caching-and-scaling/</guid>
      <description>Как система выдерживает рост нагрузки: закон масштабируемости и куб масштабирования, уровни кэша от процесса до CDN, стратегии записи и инвалидации, лечение stampede и горячих ключей, реплики и лаг чтения, консистентное хеширование и шардирование с реальными формулами и кодом.</description>
    </item>
    <item>
      <title>Кэширование: уровни, инвалидация, cache stampede, hit rate</title>
      <link>https://courses.digitable.life/post/performance/09-caching/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/09-caching/</guid>
      <description>Кэш как измеримая ставка на повторяемость: арифметика hit rate, кривая промахов, уровни от браузера до буферного пула, стратегии инвалидации, защита от cache stampede и разбор того, почему бенчмарки кэша врут особенно нагло.</description>
    </item>
    <item>
      <title>Ленивость, бесконечные структуры и потоки данных</title>
      <link>https://courses.digitable.life/post/functional-programming/11-laziness-and-streams/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/11-laziness-and-streams/</guid>
      <description>Ленивое вычисление — это не экзотика Haskell, а способ разделить «что мы порождаем» и «сколько нам нужно». Разбираем thunk и call-by-need, генераторы, бесконечные списки, потоки, backpressure и честную цену: space leak, непредсказуемую память и сломанный порядок эффектов.</description>
    </item>
    <item>
      <title>Наблюдаемость и производительность ОС: /proc, strace, perf, eBPF, ftrace</title>
      <link>https://courses.digitable.life/post/operating-systems/14-observability-and-performance/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/operating-systems/14-observability-and-performance/</guid>
      <description>Как узнать, что на самом деле делает система: счётчики в /proc и PSI, методологии USE и off-CPU, трассировка вызовов через ptrace, выборка стеков через PMU и perf, ftrace и hist-триггеры, eBPF и bpftrace — и чем всё это отличается в BSD, macOS и Windows.</description>
    </item>
    <item>
      <title>Нагрузочное тестирование: k6, JMeter, профили нагрузки, чтение результатов</title>
      <link>https://courses.digitable.life/post/testing/09-performance-testing/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/testing/09-performance-testing/</guid>
      <description>Как поставить вопрос о производительности так, чтобы на него можно было ответить: профили нагрузки, открытая и закрытая модели, перцентили вместо среднего, рабочие скрипты на k6, JMeter и Locust, запуск в CI и честный разбор результата до узкого места.</description>
    </item>
    <item>
      <title>Нагрузочное тестирование: профили нагрузки, k6, чтение результатов</title>
      <link>https://courses.digitable.life/post/performance/11-load-testing/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/11-load-testing/</guid>
      <description>Как превратить «а выдержим ли мы» в измеримый эксперимент: выбор профиля нагрузки, открытая и закрытая модель, закон Литтла, рабочие скрипты k6, построчный разбор отчёта и каталог способов, которыми нагрузочный тест врёт.</description>
    </item>
    <item>
      <title>Память: аллокации, фрагментация, утечки, влияние GC</title>
      <link>https://courses.digitable.life/post/performance/04-memory/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/04-memory/</guid>
      <description>Почему аллокация стоит дороже своих наносекунд, как читать heap-профили в Go, JVM, .NET, Python и браузере, чем внутренняя фрагментация отличается от внешней, как отличить утечку от роста рабочего набора и какими двумя рычагами реально управляется сборщик мусора.</description>
    </item>
    <item>
      <title>Персистентные структуры данных и их реальная стоимость</title>
      <link>https://courses.digitable.life/post/functional-programming/12-persistent-data-structures/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/12-persistent-data-structures/</guid>
      <description>Как устроены внутри персистентные векторы, HAMT, finger tree и зипперы, почему амортизация ломается под персистентностью и сколько на самом деле стоят неизменяемые коллекции в проде.</description>
    </item>
    <item>
      <title>Практическая оптимизация: кэш, ветвления, профилирование, SIMD</title>
      <link>https://courses.digitable.life/post/algorithms/18-practical-optimization/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/algorithms/18-practical-optimization/</guid>
      <description>Что происходит с алгоритмом, когда он встречается с реальным процессором: иерархия памяти, предсказание переходов, векторизация, профилирование и дисциплина измерений.</description>
    </item>
    <item>
      <title>Производительность БД: планы запросов, индексы, пул соединений, N&#43;1</title>
      <link>https://courses.digitable.life/post/performance/08-database-performance/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/08-database-performance/</guid>
      <description>Как измерять базу данных вместо того чтобы гадать: pg_stat_statements как профайлер нагрузки, честное чтение EXPLAIN ANALYZE с BUFFERS, ошибки кардинальности, индексы и их цена на запись, пул соединений как очередь и N+1, который не виден ни в одном плане.</description>
    </item>
    <item>
      <title>Производительность конкурентного кода: контеншн, false sharing, закон Амдала</title>
      <link>https://courses.digitable.life/post/performance/07-concurrency-performance/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/07-concurrency-performance/</guid>
      <description>Почему добавление потоков перестаёт помогать и начинает вредить: закон Амдала как арифметика потолка, универсальный закон масштабируемости с разворотом кривой вниз, анатомия контеншна на мьютексе, false sharing на кэш-линии — и инструменты, которые всё это показывают: mutex-профили, perf lock, perf c2c, off-CPU flame graphs.</description>
    </item>
    <item>
      <title>Производительность мобильного: старт, плавность, батарея, трафик</title>
      <link>https://courses.digitable.life/post/mobile/09-performance/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/mobile/09-performance/</guid>
      <description>Четыре бюджета мобильного приложения — время старта, время кадра, энергия и трафик — и как их измерять в поле, а не на флагмане разработчика: анатомия холодного старта, jank и главный поток, память как ресурс времени жизни процесса, физика радиомодуля, честное сравнение натива и кроссплатформы по производительности и защита от регрессий в CI.</description>
    </item>
    <item>
      <title>Производительность фронтенда: Core Web Vitals, бюджеты, ленивая загрузка</title>
      <link>https://courses.digitable.life/post/frontend/14-web-performance/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/frontend/14-web-performance/</guid>
      <description>Почему интерфейс тормозит на самом деле, что меряют LCP, INP и CLS, как собрать полевые данные с атрибуцией, поставить бюджеты в CI и лениво грузить всё, что можно — без карго-культа.</description>
    </item>
    <item>
      <title>Производительность: карта трека и методика «измерь, потом чини»</title>
      <link>https://courses.digitable.life/post/performance/00-overview/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/00-overview/</guid>
      <description>Что такое производительность как инженерная дисциплина, почему угадывание всегда проигрывает измерению, какие инструменты что показывают, как врут бенчмарки и в каком порядке читать остальные статьи трека.</description>
    </item>
    <item>
      <title>Профилирование CPU: сэмплирование, flame graphs, горячие пути</title>
      <link>https://courses.digitable.life/post/performance/03-cpu-profiling/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/03-cpu-profiling/</guid>
      <description>Как устроен сэмплирующий профайлер изнутри — от прерывания PMU до развёрнутого стека, как честно читать flame graph и не обмануться шириной кадра, чем профайлеры Go, Python, JVM, Node и .NET отличаются по смещению и что делать, когда CPU-профиль оказался пустым.</description>
    </item>
    <item>
      <title>Работа с данными: fetch, React Query, кэширование, оптимистичные обновления</title>
      <link>https://courses.digitable.life/post/frontend/11-data-fetching/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/frontend/11-data-fetching/</guid>
      <description>Серверное состояние против клиентского: честный fetch с отменой и ретраями, гонки в useEffect, устройство кэша запросов, staleTime против gcTime, инвалидация, оптимистичные обновления с откатом и измерение водопадов в DevTools.</description>
    </item>
    <item>
      <title>Рабочий процесс оптимизации: бюджеты, регрессии в CI, когда остановиться</title>
      <link>https://courses.digitable.life/post/performance/12-optimization-workflow/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/12-optimization-workflow/</guid>
      <description>Как превратить разовые ускорения в процесс: бюджет производительности как критерий готовности, эшелоны защиты от регрессий в CI, статистика порогов, триаж красного бенчмарка, экономика остановки и журнал решений.</description>
    </item>
    <item>
      <title>Роутинг и стратегии рендеринга: SPA, SSR, SSG, ISR, гидратация</title>
      <link>https://courses.digitable.life/post/frontend/13-routing-and-rendering/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/frontend/13-routing-and-rendering/</guid>
      <description>Как URL превращается в экран: History API и матчинг маршрутов, каскады запросов и loader&amp;rsquo;ы, CSR/SSR/SSG/ISR/PPR, стриминг с Suspense, механика гидратации и её цена, острова, RSC и resumability — с кодом и способами всё это измерить.</description>
    </item>
    <item>
      <title>Сбалансированные деревья: AVL, красно-чёрные, B-деревья</title>
      <link>https://courses.digitable.life/post/data-structures/07-balanced-trees/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/data-structures/07-balanced-trees/</guid>
      <description>Как заставить дерево поиска не вырождаться: повороты как базовый примитив, строгий баланс AVL, слабый баланс красно-чёрных деревьев, многопутевые B и B+ деревья для дисков и кешей, а также честный разбор того, что и когда выбирать в проде.</description>
    </item>
    <item>
      <title>Сборка мусора: подсчёт ссылок, mark-sweep, поколения, паузы</title>
      <link>https://courses.digitable.life/post/compilers/10-garbage-collection/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/compilers/10-garbage-collection/</guid>
      <description>Как рантайм решает, что память больше не нужна: достижимость против живости, подсчёт ссылок и его циклы, трассирующая сборка и трёхцветный инвариант, копирование по Чейни, поколения и барьеры записи, конкурентные сборщики и природа пауз — с работающим mark-sweep и копирующим сборщиком для ВМ языка Mini.</description>
    </item>
    <item>
      <title>Сборка фронтенда: Vite, бандлеры, tree-shaking, code splitting, dev-server</title>
      <link>https://courses.digitable.life/post/frontend/07-build-tooling/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/frontend/07-build-tooling/</guid>
      <description>Зачем нужен бандлер, если браузер умеет ESM: конвейер сборки, dev-сервер и HMR, tree-shaking и его провалы, разбиение на чанки, водопады загрузки, кэш-хэши, бюджеты в CI и честное сравнение Vite, webpack, Rspack и Turbopack.</description>
    </item>
    <item>
      <title>Сетевая производительность: RTT, keep-alive, сжатие, батчинг</title>
      <link>https://courses.digitable.life/post/performance/10-network-performance/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/performance/10-network-performance/</guid>
      <description>Почему в сети время тратит не код, а количество round-trip&amp;rsquo;ов: как разложить запрос на DNS/TCP/TLS/TTFB приборами curl и ss, чем keep-alive дешевле любой оптимизации, когда сжатие вредит, как батчинг превращает N×RTT в один RTT и почему бенчмарк на localhost врёт про всё сразу.</description>
    </item>
    <item>
      <title>Структуры данных: карта трека и как выбирать структуру под задачу</title>
      <link>https://courses.digitable.life/post/data-structures/00-overview/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/data-structures/00-overview/</guid>
      <description>Обзорная статья трека: что такое структура данных как инженерный выбор, по каким осям структуры различаются, как выбирать под конкретный профиль нагрузки — и как устроен весь трек из пятнадцати статей.</description>
    </item>
    <item>
      <title>Управление памятью: виртуальная память, страницы, TLB, swap, аллокаторы</title>
      <link>https://courses.digitable.life/post/operating-systems/04-memory-management/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/operating-systems/04-memory-management/</guid>
      <description>Как ядро превращает виртуальные адреса в физические, зачем нужны TLB и huge pages, как работают page fault, reclaim, swap и OOM-killer, и что на самом деле делает malloc() — с командами, /proc, кодом на C и различиями Linux, BSD, macOS и Windows.</description>
    </item>
    <item>
      <title>Управление состоянием: локальное, контекст, Redux, Zustand, сигналы</title>
      <link>https://courses.digitable.life/post/frontend/10-state-management/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/frontend/10-state-management/</guid>
      <description>Виды состояния и где им место: useState и useReducer, честная модель React Context, внешние сторы на useSyncExternalStore, Redux Toolkit, Zustand, Jotai, сигналы и машины состояний — с профилированием и разбором, почему приложение тормозит.</description>
    </item>
    <item>
      <title>Хеш-таблицы: хеш-функции, коллизии, открытая адресация</title>
      <link>https://courses.digitable.life/post/data-structures/05-hash-tables/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/data-structures/05-hash-tables/</guid>
      <description>Как из массива и одной функции получается словарь с O(1) доступом: устройство хеш-функций, разрешение коллизий цепочками и открытой адресацией, load factor и рехеширование, Robin Hood и SwissTable, HashDoS и типичные ошибки.</description>
    </item>
    <item>
      <title>Хуки и паттерны React: useState, useEffect, мемоизация, композиция</title>
      <link>https://courses.digitable.life/post/frontend/09-react-hooks-and-patterns/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/frontend/09-react-hooks-and-patterns/</guid>
      <description>Как на самом деле работают хуки: слоты в fiber, снимки рендера, эффекты как синхронизация, честная цена мемоизации, кастомные хуки и паттерны композиции компонентов.</description>
    </item>
  </channel>
</rss>
