[{"data":1,"prerenderedAt":151},["ShallowReactive",2],{"$fMCDQqeqPK5a8HIzzU3p_tmpduL0-k3ZYbhJBP92SYNA":3},{"article":4,"similarArticles":17,"tagCounts":147},{"slug":5,"content":6,"notes":7,"groupedNotes":8,"title":9,"date":10,"description":11,"tags":12,"author":16},"simpson-kyle-you-don-t-know-js-async-performance-2015","\u003Ch4 id=\"1-общее-описание\">1. Общее описание\u003C\u002Fh4>\n\u003Cp>Эта книга посвящена глубокому изучению того, как в JavaScript выражается и управляется поведение программы, распределенное во времени, а также способам повышения её производительности. Она рассчитана на разработчиков, уже знакомых с основами языка, но стремящихся достичь \u003Cstrong>истинного мастерства\u003C\u002Fstrong> и понимания внутренних механизмов работы JS. Освоив материал, читатель научится эффективно использовать современные паттерны асинхронности (Promises и Generators), избегать типичных ошибок проектирования и грамотно проводить бенчмаркинг своего кода.\u003C\u002Fp>\n\u003Ch4 id=\"2-структура\">2. Структура\u003C\u002Fh4>\n\u003Cp>Материал организован по принципу \u003Cstrong>постепенного усложнения абстракций\u003C\u002Fstrong>: от базовых понятий событийного цикла до сложных систем взаимодействия параллельных процессов. Главы 1 и 2 закладывают фундамент, подробно разбирая теорию асинхронности и недостатки традиционных callback-функций. Главы 3 и 4 детально фокусируются на «спасительных» технологиях — Промисах и Генераторах, которые решают проблемы доверия и последовательности кода. Завершающие главы 5 и 6 переходят от паттернов написания кода к вопросам производительности на макро- (Web Workers) и микро-уровнях (бенчмаркинг и оптимизация движков). Темы вроде SIMD и asm.js упоминаются как перспективные инструменты для специфических высоконагруженных задач.\u003C\u002Fp>\n\u003Ch4 id=\"3-описание-разделов\">3. Описание разделов\u003C\u002Fh4>\n\u003Ch5 id=\"основы-асинхронности-и-событийный-цикл-глава-1\">Основы асинхронности и событийный цикл (Глава 1)\u003C\u002Fh5>\n\u003Cp>Автор начинает с разъяснения фундаментальной концепции: любая нетривиальная программа на JS состоит из частей, выполняющихся \u003Cstrong>«сейчас»\u003C\u002Fstrong> и \u003Cstrong>«потом»\u003C\u002Fstrong>. Ключевым механизмом здесь является \u003Cstrong>Event Loop (событийный цикл)\u003C\u002Fstrong> — очередь, из которой движок JS берет задачи на исполнение по одной за раз. Важно понимать, что сам JS долгое время не имел встроенного понятия времени и полностью полагался на хост-среду (браузер или Node.js) для планирования событий.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Параллелизм vs Асинхронность:\u003C\u002Fstrong> Асинхронность — это про разрыв во времени между «сейчас» и «потом», а параллелизм — про одновременное выполнение задач на разных ядрах\u002Fпотоках. В JS функции выполняются до завершения (\u003Cstrong>run-to-completion\u003C\u002Fstrong>), что делает их атомарными относительно друг друга в рамках одного потока, но не исключает состояния гонки на уровне общих данных.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Jobs (Микрозадачи):\u003C\u002Fstrong> В ES6 появилось понятие очереди микрозадач (Job Queue), которая прикрепляется к концу текущего «тика» событийного цикла, обеспечивая выполнение задачи «как можно скорее», что критично для работы Промисов.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch5 id=\"проблема-обратных-вызовов-глава-2\">Проблема обратных вызовов (Глава 2)\u003C\u002Fh5>\n\u003Cp>Callbacks признаются фундаментальным, но крайне ограниченным способом управления асинхронностью. Основные претензии автора:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Нелинейность мышления:\u003C\u002Fstrong> Человеческий мозг планирует задачи последовательно, а вложенные callback-функции заставляют прыгать по коду, что ведет к «callback hell» (проблема не в отступах, а в сложности отслеживания потока управления).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Инверсия управления:\u003C\u002Fstrong> Передавая callback сторонней библиотеке, вы отдаете ей контроль над выполнением вашей программы. Это порождает \u003Cstrong>проблемы доверия\u003C\u002Fstrong>: callback может быть вызван слишком рано, слишком поздно, слишком много раз или вообще никогда.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch5 id=\"промисы-восстановление-доверия-глава-3\">Промисы: восстановление доверия (Глава 3)\u003C\u002Fh5>\n\u003Cp>Промисы предлагают «развернуть» инверсию управления. Вместо того чтобы ждать вызова вашей функции кем-то другим, вы получаете объект-обещание, который извещает вас о завершении задачи.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Состояния и неизменность:\u003C\u002Fstrong> Промис может быть выполнен (fulfilled) или отклонен (rejected) только один раз, после чего его состояние становится неизменным. Это гарантирует, что никакая внешняя сила не изменит результат асинхронной операции после её завершения.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>API и цепочки:\u003C\u002Fstrong> Подробно разбираются методы \u003Ccode>.then()\u003C\u002Fcode>, \u003Ccode>.catch()\u003C\u002Fcode>, а также статические методы \u003Ccode>Promise.all()\u003C\u002Fcode> (ожидание всех) и \u003Ccode>Promise.race()\u003C\u002Fcode> (первый завершившийся побеждает). Особое внимание уделено функции \u003Ccode>Promise.resolve()\u003C\u002Fcode>, которая позволяет нормализовать любое значение (включая then-объекты) в настоящий доверенный Промис.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch5 id=\"генераторы-глава-4\">Генераторы (Глава 4)\u003C\u002Fh5>\n\u003Cp>Генераторы вводят в JS возможность приостановки функции в середине выполнения без блокировки основного потока.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Итераторы и двусторонний обмен:\u003C\u002Fstrong> С помощью ключевого слова \u003Ccode>yield\u003C\u002Fcode> генератор может не только отдавать значения, но и принимать их извне при возобновлении.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Синхронный вид асинхронного кода:\u003C\u002Fstrong> Главная ценность генераторов — в связке с Промисами. Если \u003Ccode>yield\u003C\u002Fcode> выдает Промис, а внешний исполнитель (runner) возобновляет генератор результатом этого Промиса, мы получаем асинхронный код, который выглядит и читается как последовательный синхронный, включая обработку ошибок через стандартный \u003Ccode>try..catch\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch5 id=\"производительность-программы-главы-56\">Производительность программы (Главы 5–6)\u003C\u002Fh5>\n\u003Cul>\n\u003Cli>\u003Cstrong>Web Workers:\u003C\u002Fstrong> Рассматривается способ выноса тяжелых вычислений в отдельные потоки. Обсуждаются ограничения (отсутствие доступа к DOM) и методы передачи данных, такие как Transferable Objects, позволяющие избежать дорогостоящего копирования памяти.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Бенчмаркинг:\u003C\u002Fstrong> Автор критикует наивные замеры времени через \u003Ccode>new Date().getTime()\u003C\u002Fcode> и призывает использовать библиотеку \u003Cstrong>Benchmark.js\u003C\u002Fstrong>, учитывающую статистические погрешности и особенности оптимизации движков.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Оптимизация:\u003C\u002Fstrong> Важное замечание — не стоит пытаться «перехитрить» движок JS микро-оптимизациями (вроде \u003Ccode>++i\u003C\u002Fcode> против \u003Ccode>i++\u003C\u002Fcode>). Вместо этого следует фокусироваться на критических путях программы и использовать возможности вроде Tail Call Optimization (TCO) в ES6, позволяющей писать бесконечную рекурсию без переполнения стека.\u003C\u002Fli>\n\u003C\u002Ful>",[],{},"You Don't Know JS: Async &#x26; Performance (2015)","2026-07-22","Асинхронность и производительность в JavaScript — событийный цикл, промисы, генераторы, Web Workers и практики бенчмаркинга.",[13,14,15],"Javascript","Frontend","Программирование","Simpson, Kyle",[18,24,30,35,43,49,55,62,68,78,83,88,94,99,107,113,120,127,133,141],{"slug":19,"title":20,"date":10,"author":21,"tags":22,"searchText":23},"mdn-contributors-css-performance-optimization-2025","CSS performance optimization (2025)","MDN Contributors",[14,15],"css performance optimization (2025) оптимизация css для быстрого рендера — блокировка отрисовки, reflow, анимации на gpu, шрифты и css containment. mdn contributors frontend программирование",{"slug":25,"title":26,"date":10,"author":27,"tags":28,"searchText":29},"stemmler-khalil-client-side-architecture-basics-i","Client-Side Architecture Basics: I. Architecture (2020)","Stemmler, Khalil",[14,15],"client-side architecture basics: i. architecture (2020) проблемы mvc и mvp во фронтенде и путь к клиентской архитектуре — разделение домена, приложения и инфраструктуры. stemmler, khalil frontend программирование",{"slug":31,"title":32,"date":10,"author":27,"tags":33,"searchText":34},"stemmler-khalil-client-side-architecture-basics-ii","Client-Side Architecture Basics: II. Principles (2020)",[14,15],"client-side architecture basics: ii. principles (2020) принципы cqs и разделения ответственности для фронтенда — чтение и запись, вертикальные срезы и выбор инструментов. stemmler, khalil frontend программирование",{"slug":36,"title":37,"date":38,"author":39,"tags":40,"searchText":42},"notashelf-taste-is-all-that-s-left-2026","Taste Is All That's Left (2026)","2026-08-10","notashelf",[41,15],"AI","taste is all that's left (2026) когда генеративный ии обнуляет стоимость воплощения, вкус остаётся единственным дефицитом — трение ученичества, кураторство и отказ от «slop». notashelf ai программирование",{"slug":44,"title":45,"date":10,"author":46,"tags":47,"searchText":48},"brooks-frederick-p-jr-the-mythical-man-month-essays-on","The Mythical Man-Month: Essays on Software Engineering (1995)","Brooks, Frederick P., Jr.",[15],"the mythical man-month: essays on software engineering (1995) классика управления разработкой — мифический человеко-месяц, хирургические бригады, концептуальная целостность и отсутствие серебряной пули. brooks, frederick p., jr. программирование",{"slug":50,"title":51,"date":10,"author":52,"tags":53,"searchText":54},"spolsky-joel-the-law-of-leaky-abstractions-2002","The Law of Leaky Abstractions (2002)","Spolsky, Joel",[15],"the law of leaky abstractions (2002) закон дырявых абстракций — почему любое упрощение в программировании рано или поздно просачивается и не освобождает от изучения основ. spolsky, joel программирование",{"slug":56,"title":57,"date":58,"author":59,"tags":60,"searchText":61},"kholmatova-alla-design-systems-a-practical-guide-to","Design Systems: A practical guide to creating design languages for digital products","2026-07-16","Kholmatova, Alla",[15],"design systems: a practical guide to creating design languages for digital products практическое руководство по созданию и поддержке дизайн-систем для цифровых продуктов — от теоретических основ к процессам. kholmatova, alla программирование",{"slug":63,"title":64,"date":58,"author":65,"tags":66,"searchText":67},"martin-robert-c-clean-code-a-handbook-of-agile-software","Clean Code: A Handbook of Agile Software Craftsmanship (2025)","Martin, Robert C.",[15],"clean code: a handbook of agile software craftsmanship (2025) практическое руководство по ремеслу разработки: читаемый код, рефакторинг и дисциплины тестирования в agile-среде. martin, robert c. программирование",{"slug":69,"title":70,"date":71,"author":72,"tags":73,"searchText":77},"frothingham-a-l-kniga-ierofeya-stefana-bar-sudaili-i","Оригенизм и «Книга Иерофея» Стефана бар Судаили и оригенизм (из Frothingham, 1886)","2026-09-27","Frothingham, A. L.",[74,75,76],"Ориген","Сирия","Ареопагит","оригенизм и «книга иерофея» стефана бар судаили и оригенизм (из frothingham, 1886) связь «книги иерофея» с оригенистским возрождением vi века: параллели в доктрине апокатастасиса и сирийском мистическом пантеизме. frothingham, a. l. ориген сирия ареопагит",{"slug":79,"title":80,"date":71,"author":72,"tags":81,"searchText":82},"frothingham-a-l-kniga-svyatogo-ierofeya-o-sokrovennykh","Книга святого Иерофея о сокровенных тайнах Божества (конспект из Frothingham, 1886)",[75,74,76],"книга святого иерофея о сокровенных тайнах божества (конспект из frothingham, 1886) конспект сирийского трактата стефана бар судаили: происхождение мира, восхождение ума, отождествление со христом и апокатастический финал. frothingham, a. l. сирия ориген ареопагит",{"slug":84,"title":85,"date":71,"author":72,"tags":86,"searchText":87},"frothingham-a-l-stephen-bar-sudaili-the-syrian-mystic-and","Stephen bar Sudaili the Syrian Mystic, and the Book of Hierotheos (1886)",[75,76,74],"stephen bar sudaili the syrian mystic, and the book of hierotheos (1886) филологическое и богословское исследование «книги иерофея» как псевдоэпиграфа стефана бар судаили и проблемы корпуса псевдо-дионисия. frothingham, a. l. сирия ареопагит ориген",{"slug":89,"title":90,"date":71,"author":91,"tags":92,"searchText":93},"guillaumont-antoine-bogoslovsko-kosmologicheskaya-sistema","Богословско-космологическая система «Képhalaia gnostica» в контексте оригенизма IV века (из Guillaumont, 1962)","Guillaumont, Antoine",[74,75],"богословско-космологическая система «képhalaia gnostica» в контексте оригенизма iv века (из guillaumont, 1962) протология и космология «гностических глав» евагрия: хенада разумных духов, «первое движение» и место трактата в оригенизме iv века. guillaumont, antoine ориген сирия",{"slug":95,"title":96,"date":71,"author":91,"tags":97,"searchText":98},"guillaumont-antoine-les-kephalaia-gnostica-d-evagre-le","Les «Képhalaia gnostica» d’Évagre le Pontique et l’histoire de l’origénisme chez les Grecs et chez les Syriens (1962)",[74,75],"les «képhalaia gnostica» d’évagre le pontique et l’histoire de l’origénisme chez les grecs et chez les syriens (1962) монография о «гностических главах» евагрия и оригенистских спорах iv–vi веков; открытие нецензурированной сирийской версии s2. guillaumont, antoine ориген сирия",{"slug":100,"title":101,"date":71,"author":102,"tags":103,"searchText":106},"levy-oscar-prefatory-letter-to-the-world-significance-of","Prefatory Letter to The World Significance of the Russian Revolution (1920)","Levy, Oscar",[104,105],"Политика","История","prefatory letter to the world significance of the russian revolution (1920) философско-исторический разбор победы большевизма: еврейский идеализм, либеральная демократия и мессианские ожидания в контексте революции 1917 года. levy, oscar политика история",{"slug":108,"title":109,"date":71,"author":102,"tags":110,"searchText":112},"levy-oscar-the-idiocy-of-idealism-1940","The Idiocy of Idealism (1940)",[111,104],"Ницше","the idiocy of idealism (1940) памфлет леви о кризисе европы: ницшеанская критика идеализма и попытка объяснить нацизм и большевизм через моральные и религиозные идеи. levy, oscar ницше политика",{"slug":114,"title":115,"date":71,"author":116,"tags":117,"searchText":119},"limonov-eduard-distsiplinarnyi-sanatorii-1993","«Дисциплинарный санаторий» (1993)","Лимonov, Эдуард",[118],"Литература","«дисциплинарный санаторий» (1993) социально-философское эссе о «санатории» постиндустриального общества: смена прямого насилия мягким контролем, медиакратия и инфантилизация масс. лимonov, эдуард литература",{"slug":121,"title":122,"date":71,"author":123,"tags":124,"searchText":126},"louth-andrew-the-reception-of-dionysius-up-to-maximus-the","The Reception of Dionysius up to Maximus the Confessor (2008)","Louth, Andrew",[76,125],"Христианство","the reception of dionysius up to maximus the confessor (2008) ранний приём псевдо-дионисиевского корпуса в византийской традиции до максима исповедника: переводы, комментарии и богословские адаптации. louth, andrew ареопагит христианство",{"slug":128,"title":129,"date":71,"author":130,"tags":131,"searchText":132},"malone-alice-elisabeth-s-nietzsche-2024","Elisabeth’s Nietzsche (2024)","Malone, Alice",[111],"elisabeth’s nietzsche (2024) критика мифа «заговора элизабет»: сравнение её правок с прижизненными текстами и переоценка ответственности самого ницше за расистскую рецепцию. malone, alice ницше",{"slug":134,"title":135,"date":71,"author":136,"tags":137,"searchText":140},"obraz-boga-v-gimne-kleanfa","Образ Бога в гимне Клеанфа","Claude",[138,139],"Теология","Стоицизм","образ бога в гимне клеанфа богословский разбор гимна клеанфа: зевс как κοινὸς λόγος, имманентная царственность, провидение и этика участия в общем νόμος. claude теология стоицизм",{"slug":142,"title":143,"date":71,"author":144,"tags":145,"searchText":146},"ramelli-ilaria-the-christian-doctrine-of-apokatastasis-a","The Christian Doctrine of Apokatastasis. A Critical Assessment from the New Testament to Eriugena (2013)","Ramelli, Ilaria",[74,125,76],"the christian doctrine of apokatastasis. a critical assessment from the new testament to eriugena (2013) систематическая реконструкция христианского учения об апокатастасисе от новозаветных текстов до иоанна скота эриугены. ramelli, ilaria ориген христианство ареопагит",{"Javascript":148,"Frontend":149,"Программирование":150},1,4,9,1790540349729]