Вы не знаете JS: Асинхронность и Производительность

Вы не знаете JS: Асинхронность и Производительность

Автора и серию уважаю, но книга оставила смешанные чувства. В этой части рассказывают про промисы, генераторы, немного про оптимизацию и её принципы, также зачем-то есть большой раздел про библиотеку для работы с асинхронным кодом, которую написал сам Симпсон.

В двух словах: книга вышла в 2015-м году, и какие-то её части уже успели устареть. Что-то останется актуальным навсегда (асинхронные паттерны, принципы оптимизации), а какие-то части, по моему мнению, лишние. Вещи, о которых автор писал с робкой надеждой и в будущем времени, в JavaScript уже стали реальностью.

Вначале идут рассуждения о синхронности и однопоточной природе JS, а также реализации в нём асинхронного кода. Ничего нового за первую сотню страниц я не узнал, их можно было пропустить. Далее автор углубляется в промисы, и посвящает обещаниям много места: но зачем, когда уже давно повсеместно поддерживается async/await? Отделаться от мысли «а зачем?» сложно, поскольку большая часть книги построена на выводах этой главы.

Интересно и по делу про генераторы, веб-работников и asm.js (deprecated). Сверхполезный раздел про производительность, хронометраж (бенчмарки) и оптимизацию. Про то, что не стоит тратить время на микрооптимизации вроде i++ vs ++i нужно прочитать каждому: компилятор всё равно перемолет любые циклы и объявления переменных по-своему, и скорее всего, ещё лучше, чем вручную.

Зачем читать

Разобраться с промисами и генераторами. Проветрить голову насчёт быстродействия и оптимизации кода.

Подробнее →

Вы не знаете JS. Типы и грамматические конструкции

Вы не знаете JS. Типы и грамматические конструкции

Сборник граблей и очень детальное погружение в типы и немного в грамматику JavaScript (чем отличается от синтаксиса, там написано). Как всегда, у JS есть чем удивить: какие-то старые и непонятные для меня вещи получили объяснение.

Читать интересно, воды нет, текст сжат и детален. Автор играет в адвоката дьявола и постоянно трясёт кулаком в сторону ленивых программистов, что не удосужились прочитать спеку, а обложились эзотерическими бест практиками, и просто не пишут «как не надо» и не пользуются неочевидными возможностями JavaScript. Интересная позиция.

Зачем читать

Прояснить тёмные моменты языка и понять, почему линтеры срабатывают на вроде бы безобидных участках кода. Понять JavaScript на более низком уровне.

Подробнее →