Rediscovering JavaScript
Современный JavaScript без компромиссов
Краткое содержимое:
Введение
Книга «Rediscovering JavaScript» (автор — Venkat Subramaniam, 2018 год, 286 страниц) — это не очередной справочник по синтаксису. Это глубокое погружение в философию современного JavaScript, написанное для тех, кто уже знаком с языком, но хочет писать по-настоящему качественный, лаконичный и выразительный код. Автор, известный своими работами по функциональному программированию и языкам JVM, предлагает взглянуть на JavaScript как на мощный, мультипарадигмальный инструмент, который после стандарта ES6 (ES2015) обрёл второе дыхание. Книга ориентирована на среду выполнения Node.js, но все примеры и концепции применимы и к браузерному JavaScript.
О чём эта книга
Venkat Subramaniam последовательно раскрывает ключевые возможности современного JavaScript, начиная с основ и заканчивая продвинутыми техниками. Основной фокус — на практическом применении новых конструкций языка: стрелочные функции, деструктуризация, шаблонные строки, классы, модули, итераторы и генераторы. Однако автор не ограничивается перечислением фич. Он объясняет, почему та или иная возможность была добавлена в язык и как её использование меняет стиль программирования. Особое внимание уделяется функциональному подходу: неизменяемости данных, чистым функциям, композиции и работе с коллекциями через методы map, filter, reduce. Книга также затрагивает темы асинхронности (промисы, async/await) и модульной системы ES6.
Для кого эта книга
Книга рассчитана на разработчиков, которые уже имеют опыт работы с JavaScript (хотя бы на базовом уровне) и хотят перейти на современный стандарт. Она будет полезна:
- программистам, переходящим с ES5 на ES6+;
- разработчикам на других языках (Java, C#, Python), которые хотят понять идиоматичный JavaScript;
- тем, кто хочет писать более чистый, поддерживаемый и лаконичный код;
- всем, кто интересуется функциональным программированием в контексте JavaScript.
Что узнает читатель
После прочтения книги читатель сможет:
- уверенно использовать стрелочные функции и понимать, чем они отличаются от обычных;
- применять деструктуризацию объектов и массивов для более чистого кода;
- работать с шаблонными строками и тегированными шаблонами;
- использовать классы и наследование, понимая их прототипную природу;
- организовывать код с помощью модулей ES6 (import/export);
- писать асинхронный код с помощью промисов и async/await без коллбэков;
- использовать итераторы и генераторы для работы с последовательностями данных;
- применять функциональные методы массивов (
map,filter,reduce,findи др.) для обработки данных без мутаций; - понимать принципы неизменяемости и чистых функций;
- избегать типичных ловушек и антипаттернов.
Сильные стороны
Главное достоинство книги — её практическая направленность и глубина. Каждая глава содержит множество небольших, но показательных примеров кода, которые можно сразу опробовать в Node.js. Автор не просто показывает, как писать, но и объясняет, как не надо писать, приводя «плохие» примеры и затем исправляя их. Стиль изложения живой, с долей юмора, что делает чтение увлекательным. Книга небольшая (286 страниц), но очень плотная по содержанию — в ней нет «воды». Отдельно стоит отметить главы, посвящённые функциональному программированию: они дают чёткое понимание, как применять эти концепции в реальных проектах, не впадая в академический формализм.
Кому рекомендуется
Я настоятельно рекомендую эту книгу всем JavaScript-разработчикам, которые чувствуют, что их код стал «грязным» или что они используют устаревшие подходы. Она идеально подходит для тех, кто хочет систематизировать знания о современном стандарте и научиться писать элегантный, выразительный код. Если вы уже прочитали несколько туториалов по ES6, но чувствуете, что не до конца понимаете, как всё это работает вместе — эта книга заполнит пробелы. Для новичков книга может быть сложновата, но для опытных разработчиков она станет настоящим открытием и источником вдохновения.
Рекомендаций
Конкурентность в Swift: Полное руководство по async/await, Actors и Task
Алгоритмы и структуры данных на Go (Golang)
Тестирование JavaScript (Node.js) приложений
Python Data Science Handbook. Полное руководство по научным вычислениям, анализу данных и машинному обучению
Внедрение зависимостей в PHP
Build APIs You Won't Hate