По словам Марка Хинкля, исполнительного директора Node Foundation, 2017 был знаменательным годом для Node.js, и мы не могли с этим согласиться. Node.js занимает завидное положение в мире технологий: ежедневно в сети находится более 8,8 миллионов экземпляров узлов, и их число значительно выросло за последний год. Количество участников Node.js увеличилось с 1100 до 1500 за последний год, а каждую неделю происходит 3 миллиарда загрузок npm.

Индустрия узлов явно процветает.

2017 год был богатым на события и для RisingStack. Этот год был для нас богат на обучение, и мы постарались создать множество новых руководств, нацеленных не только на новичков, но и на продвинутых разработчиков Node. Мы также рассмотрели микросервисы и новые функции Node. Мы очень рады видеть, что более 1,5 миллиона пользователей чему-то научились у нас в 2017 году.

Это также означает, что количество разработчиков, которые полагаются на блог RisingStack при изучении Node.js, за последний год увеличилось вдвое.

У нас есть много новых идей, о которых стоит написать в 2018 году; захватывающие руководства, подробные тематические исследования, новые функции Node и многое другое. Однако, чтобы подготовиться к предстоящим испытаниям и как следует попрощаться с 2017 годом, мы собрали наши лучшие статьи за этот год.

Мы использовали достоверные данные, такие как просмотры страниц, публикации и результаты поиска, чтобы определить самые популярные статьи, которые мы создали в 2017 году. Вот они:

1. 10 лучших практик для написания REST API для Node.js

В нашей статье номер один за 2017 год рассказывается о 10 лучших практиках написания REST API. Вы узнаете, как правильно использовать методы HTTP, маршруты API и статус HTTP. Мы также поможем протестировать ваши REST API для Node.js и выбрать для этого подходящую платформу.

Аутентификация, использование условных запросов, ограничение скорости и создание документации по API также являются важными факторами при написании API REST для Node.js, и все они описаны в этой коллекции.

2. Вопросы и ответы на собеседовании по Node.js (издание 2017 г.)

Планируете ли вы собеседование с разработчиком Node.js? Или вы разработчик Node, который собирается пройти собеседование? У нас есть хорошие новости для вас обоих!

Мы обновили наши предыдущие вопросы и ответы по узлам, добавив актуальную информацию за 2017 год. Эта обновленная версия включает обещания, пряжу, способы защиты файлов cookie HTTP от атак XSS и способы обеспечения безопасности ваших зависимостей.

С помощью этой обширной коллекции вопросов и ответов вы можете быстро пересмотреть наиболее важные темы Node.

3. Проектирование архитектуры микросервисов на случай сбоя

Основываясь на опыте консалтинга и разработки Node.js, который мы приобрели в RisingStack за последние 4 года, мы собрали наиболее распространенные методы и шаблоны архитектуры, которые мы рекомендуем использовать, если вы хотите создавать и управлять высокодоступными микросервисами.

Обмен данными по сети вместо вызовов в памяти привносит дополнительную задержку и сложность в систему микросервисов, которая требует взаимодействия между несколькими физическими и логическими компонентами. Очень важно наладить это сотрудничество, поэтому в этой статье мы обсудим риск внедрения микросервисов и шаблонов, которые помогут вам обнаруживать, изолировать и решать проблемы.

4. Освоение Async / Await в Node.js

Асинхронные конструкции уже давно используются в других языках. С выпуском Node.js 8 долгожданные асинхронные функции также попали в Node.js.

В этой статье вы узнаете, как можно упростить приложение Node.js на основе обратного вызова или обещания с помощью асинхронных функций (async / await).

Если вам понравились старые добрые концепции if-else условных операторов и for/while циклов, или если вы считаете, что try-catch блок - это способ обработки ошибок, вы отлично проведете время, переписав свои службы с использованием async/await.

5. Пример Node.js + MySQL: обработка сотен гигабайт данных

В этом примере проекта Node.js и MySQL вы можете узнать, как эффективно обрабатывать миллиарды строк данных, которые занимают сотни гигабайт дискового пространства. Мы рассмотрим разделение таблицы на примере и покажем вам, как добавлять и удалять данные из вашей базы данных.

Эта статья доказывает, что ACID-совместимые СУБД, такие как MySQL, можно использовать при работе с большими объемами данных, поэтому вам не обязательно отказываться от функций транзакционных баз данных.

6. Пряжа против npm - состояние менеджеров пакетов в Node.js

Npm 4 стал менеджером пакетов по умолчанию с Node 7.4, но в то же время Facebook также запустил собственный менеджер пакетов под названием Yarn.

Давайте посмотрим на состояние менеджеров пакетов Node.js, на то, что они могут сделать для вас, и когда вы должны выбрать, какой из них!

7. Лучшие практики асинхронного использования Node.js и предотвращение ада обратного вызова

Обязательно избегайте презренного ада обратных вызовов! Мы собрали лучшие инструменты и методы для обработки асинхронных операций: async.js, promises, управление потоком на основе генератора и асинхронные функции.

Придерживайтесь этих правил, чтобы все было гладко:

  • Предпочитайте асинхронный API-интерфейс синхронизации, потому что использование неблокирующего подхода дает более высокую производительность по сравнению с синхронным сценарием.
  • Всегда используйте наиболее подходящий регулятор потока или их сочетание, чтобы сократить время ожидания завершения ввода-вывода.

8. Важные функции и исправления Node.js версии 8

Долгожданный Node 8 был выпущен 30 мая. Он прибыл с множеством новых функций и улучшений, и в этом посте мы рассмотрим самые важные из них. Давайте пересмотрим API асинхронных хуков, N-API и другие заметные изменения в Node 8.

Кроме того, в течение года были и другие выпуски, о которых мы писали в нашем блоге.

Когда появился Node.js 8.4.0, мы представили наиболее важные аспекты HTTP / 2 Server Push и показали вам, как создать небольшое приложение Node.js, которое его использует.

Затем мы были в восторге от новых возможностей Node.js 8.5, поэтому мы создали еще один пост, посвященный модулям ECMAScript, хукам производительности и модулю файловой системы.

9. Создание шлюза API с использованием Node.js

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

Мы обсудим, почему так важно определить четкие обязанности для наших шлюзов API и включить только общую общую логику. Шлюзы API помогают сохранять ваши сервисы небольшими и сфокусированными на предметной области, поэтому очень важно делать их правильно.

10. Создание приложения на Node.js с помощью учебника по TypeScript

В этой статье мы создали пример проекта, в котором мы покажем вам, как создавать, структурировать, тестировать и отлаживать приложение Node.js, написанное на TypeScript. Мы обсуждаем, что такое Typescript и почему его выгодно использовать, а также как с его помощью начать проект. Мы покрываем добавление линтеров, написание тестов и отладку.

11. Получение Node.js тестирования и правильности TDD

Подумай о себе в будущем! Хотели бы вы работать с кодом, который не был должным образом протестирован? Если нет, прочтите это руководство по правильному тестированию и TDD (разработка через тестирование). Разработка через тестирование - это методология написания тестов сначала для данного модуля, а затем для фактической реализации.

Это руководство включает в себя большую часть того, что мы делаем здесь, в RisingStack с TDD:

  • написание неудачных тестов
  • написание кода, который удовлетворяет нашим тестам
  • и рефакторинг.

12. Мониторинг производительности Node.js с помощью Prometheus

В этой статье мы обсудим, что именно нужно отслеживать, когда у вас есть приложение Node.js в рабочей среде. Мы расскажем, как настроить вашу систему, что следует учитывать при выборе инструмента мониторинга и почему мы рекомендуем использовать Prometheus в качестве самостоятельного пакета мониторинга.

Мы также включили наш пример репозитория, который может помочь вам дать более подробный совет, если вы выберете этот способ мониторинга своего приложения Node.js.

13. Написание быстрых и безопасных нативных модулей Node.js на Rust

Что вы можете сделать, когда достигнете максимальной скорости, которую может предложить Node.js? Чтобы повысить производительность вашего приложения, одним из возможных решений является написание собственных модулей на Rust вместо C ++. Это отличный выбор благодаря безопасности и простоте использования.

В этой статье мы расскажем, как написать современный, быстрый и безопасный нативный модуль.

14. Тестирование контрактов, ориентированных на потребителя, с использованием пакта

В RisingStack нам нравится работать с микросервисами, поскольку такая архитектура дает нам гибкость и скорость. В этой статье мы покажем, как вы можете выполнить тестирование контрактов, ориентированное на потребителя, в архитектуре микросервисов Node.js с помощью платформы Pact.

Мы создадим макет сервера с Pact для наших клиентских модульных тестов, соберем их с помощью Pact Broker и проверим их на нашем работающем сервере, убедившись, что потребитель и провайдер находятся на одной странице.

15. Написание инфраструктуры JavaScript - маршрутизация на стороне клиента

В этом посте вы можете прочитать о маршрутизации на стороне клиента в Javascript. Мы обсудим, чем она отличается от маршрутизации на стороне сервера и почему к ней следует относиться по-другому. Этот блог - последняя часть авторской серии Написание JavaScript Framework.

Эта серия статей посвящена клиентской платформе с открытым исходным кодом под названием NX. В ходе сериала Берталан объясняет основные трудности, которые ему пришлось преодолеть при написании фреймворка.

15 + 1. Как я выжил на Bootcamp RisingStack по Node.js

Роберт Чинедж присоединился к RisingStack этим летом в качестве многообещающего и талантливого младшего разработчика, но ему все еще нужно было научиться создавать потрясающие приложения Node.js для наших клиентов.

В своей статье он рассказывает о том, как прошел Bootcamp RisingStack по Node.js, который помог ему освоиться с остальной командой. Кстати, этот учебный курс доступен для всех, кто интересуется изучением Node.js, поскольку мы открыли его исходный код на GitHub. Итак, синдром самозванца и приступай к изучению Node.js!

Другие значимые достижения 2017 года

И дело не в этом. Мы были горды тем, что организовали и спонсировали Nodeconf Budapest в январе 2017 года, который объединил самые острые умы предприятия и лучшие таланты Node.js, которые может предложить Центральная Европа. Эта конференция послужила освежающим событием для сообщества Node.

Мы были воодушевлены, увидев таких экспертов, как Дэнни Грандер, который говорил о важности написания безопасного кода или Дэниела Кхана, который поделился тем, что он узнал за свою 17-летнюю карьеру веб-разработчика; просто упомянуть несколько.

Еще одним важным событием в жизни RisingStack стало то, что к концу лета мы стали партнерами Keymetrics и объединили Trace - нашу платформу мониторинга Node.js с их решением.

Этой осенью мы тоже были заняты, так как мы начали наш европейский тур по Node.js, который включал в себя тренинги по основам Node, микросервисам и безопасности. Мы продолжим проводить тренинги с весны 2018 года, а также расширим наше портфолио за счет мероприятий React и Kubernetes.

Как видите, прошедший год был богат на события в Risingstack. Мы очень рады новому году, и у нас много планов и ожиданий на этот счет. Кроме того, спасибо, что следуете нашему пути и читаете наш блог - очень приятно иметь такую ​​прекрасную аудиторию. ❤

Следите за новостями и нашими новостями в 2018 году!

Первоначально опубликовано на blog.risingstack.com 22 декабря 2017 г.