HTML Diff
2 added 2 removed
Original 2026-01-01
Modified 2026-02-26
1 <p><strong>Рассказываем, как устроен бэкенд на JavaScript, стоит ли изучать Node.js, когда есть PHP и Python, какое будущее у этой технологии и сколько платят программистам на Node.js.</strong></p>
1 <p><strong>Рассказываем, как устроен бэкенд на JavaScript, стоит ли изучать Node.js, когда есть PHP и Python, какое будущее у этой технологии и сколько платят программистам на Node.js.</strong></p>
2 <h2>Содержание</h2>
2 <h2>Содержание</h2>
3 <ul><li><a>Что такое Node.js</a></li>
3 <ul><li><a>Что такое Node.js</a></li>
4 <li><a>Краткая история Node.js</a></li>
4 <li><a>Краткая история Node.js</a></li>
5 <li><a>Где используется Node.js</a></li>
5 <li><a>Где используется Node.js</a></li>
6 <li><a>Зачем изучать Node.js</a></li>
6 <li><a>Зачем изучать Node.js</a></li>
7 <li><a>Чем бэкенд на JavaScript отличается от PHP и Python</a></li>
7 <li><a>Чем бэкенд на JavaScript отличается от PHP и Python</a></li>
8 <li><a>Сколько зарабатывают Node.js-разработчики</a></li>
8 <li><a>Сколько зарабатывают Node.js-разработчики</a></li>
9 <li><a>Как установить Node.js</a></li>
9 <li><a>Как установить Node.js</a></li>
10 <li><a>Пишем первый код на Node.js</a></li>
10 <li><a>Пишем первый код на Node.js</a></li>
11 <li><a>Эксперты о перспективах Node.js</a></li>
11 <li><a>Эксперты о перспективах Node.js</a></li>
12 </ul><h2>Что такое Node.js</h2>
12 </ul><h2>Что такое Node.js</h2>
13 <p>Node.js - это среда выполнения кода JavaScript вне браузера, которая позволяет писать серверный код для веб-страниц и веб-приложений, а также для программ командной строки.</p>
13 <p>Node.js - это среда выполнения кода JavaScript вне браузера, которая позволяет писать серверный код для веб-страниц и веб-приложений, а также для программ командной строки.</p>
14 <p>Node.js - не отдельный язык программирования, а платформа для использования JavaScript на стороне сервера. С помощью платформы можно работать с файлами, сетью, базами данных и другими системными ресурсами на сервере.</p>
14 <p>Node.js - не отдельный язык программирования, а платформа для использования JavaScript на стороне сервера. С помощью платформы можно работать с файлами, сетью, базами данных и другими системными ресурсами на сервере.</p>
15 <p>Если говорить о языке, то как для фронтенда, так и для бэкенда используется один и тот же JavaScript. Разница только в наборе API, которые используют фронтендеры и бэкендеры. Браузерный JavaScript использует Web API, которые обеспечивают доступ к DOM и пользовательскому интерфейсу страниц и веб-приложений. Серверный JavaScript использует API, обеспечивающие доступ к файловой системе приложений, HTTP-запросам, потокам.</p>
15 <p>Если говорить о языке, то как для фронтенда, так и для бэкенда используется один и тот же JavaScript. Разница только в наборе API, которые используют фронтендеры и бэкендеры. Браузерный JavaScript использует Web API, которые обеспечивают доступ к DOM и пользовательскому интерфейсу страниц и веб-приложений. Серверный JavaScript использует API, обеспечивающие доступ к файловой системе приложений, HTTP-запросам, потокам.</p>
16 <h2>Краткая история Node.js</h2>
16 <h2>Краткая история Node.js</h2>
17 <p>Платформа Node.js была представлена в 2009 году - ее создал инженер Райан Дал, а спонсором разработки выступила компания Joyent. Она известна поддержкой опенсорсных проектов, включая Node.js, Illumos, SmartOS.</p>
17 <p>Платформа Node.js была представлена в 2009 году - ее создал инженер Райан Дал, а спонсором разработки выступила компания Joyent. Она известна поддержкой опенсорсных проектов, включая Node.js, Illumos, SmartOS.</p>
18 <p>Для создания Node.js Райан Дал использовал движок V8. Платформа реализована с низкоуровневой неблокирующей моделью ввода/вывода, которая построена на событийно-ориентированной модели. Это означает, что Node.js может обрабатывать несколько запросов одновременно, без блокировки других операций.</p>
18 <p>Для создания Node.js Райан Дал использовал движок V8. Платформа реализована с низкоуровневой неблокирующей моделью ввода/вывода, которая построена на событийно-ориентированной модели. Это означает, что Node.js может обрабатывать несколько запросов одновременно, без блокировки других операций.</p>
19 <p>В конце 2014 года инженер Федор Индутный, который входил в основную команду разработчиков платформы, создал популярный форк Node.js - io.js. Форк появился из-за недовольства разработчиков политикой компании Joyent.</p>
19 <p>В конце 2014 года инженер Федор Индутный, который входил в основную команду разработчиков платформы, создал популярный форк Node.js - io.js. Форк появился из-за недовольства разработчиков политикой компании Joyent.</p>
20 <p>Платформа io.js превосходила Node.js в производительности, но создатели форка уже в 2015 году решили воссоединиться с Node.js, чтобы влиять на развитие основной платформы. В настоящее время разработкой формально руководит<a>Node.js Foundation</a>.</p>
20 <p>Платформа io.js превосходила Node.js в производительности, но создатели форка уже в 2015 году решили воссоединиться с Node.js, чтобы влиять на развитие основной платформы. В настоящее время разработкой формально руководит<a>Node.js Foundation</a>.</p>
21 <h2>Где используется Node.js</h2>
21 <h2>Где используется Node.js</h2>
22 <h3>Создание серверных приложений</h3>
22 <h3>Создание серверных приложений</h3>
23 <p>Node.js позволяет разрабатывать мощные и масштабируемые серверные приложения. Платформу используют для создания веб-серверов, API, приложений реального времени, других серверных приложений, SSR для React и других фронтенд-фреймворков.</p>
23 <p>Node.js позволяет разрабатывать мощные и масштабируемые серверные приложения. Платформу используют для создания веб-серверов, API, приложений реального времени, других серверных приложений, SSR для React и других фронтенд-фреймворков.</p>
24 <h3>Веб-разработка</h3>
24 <h3>Веб-разработка</h3>
25 <p>С помощью Node.js создавать полноценные веб-приложения, работать с базами данных, управлять маршрутизацией и обработкой запросов от клиентов.</p>
25 <p>С помощью Node.js создавать полноценные веб-приложения, работать с базами данных, управлять маршрутизацией и обработкой запросов от клиентов.</p>
26 <p>Node.js хорошо подходит для разработки Real Time Applications - веб-приложений, реагирующих на действия пользователя в режиме реального времени. Например, это может быть онлайн-редактор типа Google Docs, который позволяет работать над одним документом нескольким пользователям одновременно.</p>
26 <p>Node.js хорошо подходит для разработки Real Time Applications - веб-приложений, реагирующих на действия пользователя в режиме реального времени. Например, это может быть онлайн-редактор типа Google Docs, который позволяет работать над одним документом нескольким пользователям одновременно.</p>
27 <h3>Потоковая передача данных</h3>
27 <h3>Потоковая передача данных</h3>
28 <p>Node.js отлично справляется с потоковой передачей данных, особенно при работе с большими объемами данных или в режиме реального времени. Это делает платформу полезной для разработки систем обработки потоков данных, стримингового видео, чатов и других приложений, требующих эффективной передачи данных.</p>
28 <p>Node.js отлично справляется с потоковой передачей данных, особенно при работе с большими объемами данных или в режиме реального времени. Это делает платформу полезной для разработки систем обработки потоков данных, стримингового видео, чатов и других приложений, требующих эффективной передачи данных.</p>
29 <h3>Инструменты разработки</h3>
29 <h3>Инструменты разработки</h3>
30 <p>Node.js также используется для создания сборщиков модулей, сред разработки, средств автоматизации задач (например, сборки проекта, запуска тестов) и других инструментов, упрощающих разработку и работу с JavaScript-кодом.</p>
30 <p>Node.js также используется для создания сборщиков модулей, сред разработки, средств автоматизации задач (например, сборки проекта, запуска тестов) и других инструментов, упрощающих разработку и работу с JavaScript-кодом.</p>
31 <h3>Интернет вещей (IoT)</h3>
31 <h3>Интернет вещей (IoT)</h3>
32 <p>Node.js предоставляет возможности для связи с устройствами, обработки данных с датчиков, управления и мониторинга устройств, а также интеграции с облачными сервисами. Для этого есть программная среда<a>Espruino</a>, с помощью которой можно разрабатывать встраиваемые системы и интернет вещей (IoT) на базе микроконтроллеров. Она также основана на языке JavaScript.</p>
32 <p>Node.js предоставляет возможности для связи с устройствами, обработки данных с датчиков, управления и мониторинга устройств, а также интеграции с облачными сервисами. Для этого есть программная среда<a>Espruino</a>, с помощью которой можно разрабатывать встраиваемые системы и интернет вещей (IoT) на базе микроконтроллеров. Она также основана на языке JavaScript.</p>
33 <h3>Командная строка</h3>
33 <h3>Командная строка</h3>
34 <p>Node.js также может быть использован для создания командных инструментов и скриптов на сервере. Платформа предоставляет доступ к системным ресурсам и позволяет автоматизировать задачи в командной строке.</p>
34 <p>Node.js также может быть использован для создания командных инструментов и скриптов на сервере. Платформа предоставляет доступ к системным ресурсам и позволяет автоматизировать задачи в командной строке.</p>
35 <h3>Микросервисная архитектура</h3>
35 <h3>Микросервисная архитектура</h3>
36 <p>Node.js подходит для построения микросервисных архитектур, где отдельные компоненты системы могут быть реализованы как отдельные сервисы, взаимодействующие друг с другом через API.</p>
36 <p>Node.js подходит для построения микросервисных архитектур, где отдельные компоненты системы могут быть реализованы как отдельные сервисы, взаимодействующие друг с другом через API.</p>
37 <h2>Зачем изучать Node.js</h2>
37 <h2>Зачем изучать Node.js</h2>
38 <p>Выбор серверного JavaScript для бэкенда обеспечивает проекту ряд преимуществ:</p>
38 <p>Выбор серверного JavaScript для бэкенда обеспечивает проекту ряд преимуществ:</p>
39 <ul><li>JavaScript входит в число самых популярных языков программирования, а изучив Node.js у вас будет возможность использовать язык не только для создания веб-страниц, но и для разработки серверных приложений.</li>
39 <ul><li>JavaScript входит в число самых популярных языков программирования, а изучив Node.js у вас будет возможность использовать язык не только для создания веб-страниц, но и для разработки серверных приложений.</li>
40 <li>Рост эффективности разработки благодаря использованию одного языка для фронтенда и бэкенда и возможности переиспользования кода.</li>
40 <li>Рост эффективности разработки благодаря использованию одного языка для фронтенда и бэкенда и возможности переиспользования кода.</li>
41 <li>В Node.js есть возможность использовать<a>npm</a>- самый большой пакетный менеджер.</li>
41 <li>В Node.js есть возможность использовать<a>npm</a>- самый большой пакетный менеджер.</li>
42 <li>Node.js использует асинхронную модель выполнения, что позволяет эффективно обрабатывать множество запросов одновременно (до<a>10000 активных соединений</a>) без блокировки.</li>
42 <li>Node.js использует асинхронную модель выполнения, что позволяет эффективно обрабатывать множество запросов одновременно (до<a>10000 активных соединений</a>) без блокировки.</li>
43 <li>Node.js позволяет создавать мощные серверные приложения, которые могут обрабатывать запросы от клиентов, работать с базами данных, обрабатывать файлы и многое другое.</li>
43 <li>Node.js позволяет создавать мощные серверные приложения, которые могут обрабатывать запросы от клиентов, работать с базами данных, обрабатывать файлы и многое другое.</li>
44 </ul><h2>Чем бэкенд на JavaScript отличается от PHP и Python</h2>
44 </ul><h2>Чем бэкенд на JavaScript отличается от PHP и Python</h2>
45 <p>Если в браузере JavaScript тотально доминирует, и конкурентов этого языка на фронтенде не видно даже на горизонте, то в бэкенд-разработке ситуация другая. Здесь JS конкурирует с PHP, Python и другими языками.</p>
45 <p>Если в браузере JavaScript тотально доминирует, и конкурентов этого языка на фронтенде не видно даже на горизонте, то в бэкенд-разработке ситуация другая. Здесь JS конкурирует с PHP, Python и другими языками.</p>
46 <p>Бэкенд на JavaScript уступает PHP в популярности. На PHP написаны самые популярные системы управления контентом, включая WordPress, Joomla!, Drupal. Только на WordPress работает<a>около трети всех сайтов в интернете</a>.</p>
46 <p>Бэкенд на JavaScript уступает PHP в популярности. На PHP написаны самые популярные системы управления контентом, включая WordPress, Joomla!, Drupal. Только на WordPress работает<a>около трети всех сайтов в интернете</a>.</p>
47 <p>PHP не позволяет из коробки писать асинхронный код, поэтому для каждого клиента запускается отдельный процесс. В Node.js с этим проще - благодаря асинхронной модели можно обрабатывать по несколько запросов в базу данных одновременно.</p>
47 <p>PHP не позволяет из коробки писать асинхронный код, поэтому для каждого клиента запускается отдельный процесс. В Node.js с этим проще - благодаря асинхронной модели можно обрабатывать по несколько запросов в базу данных одновременно.</p>
48 <p>Python считается одним из лучших языков для изучения программирования.<a>Python универсальный</a>: его используют как в веб-разработке, так и в Data Science, Machine Learning и других сферах. Node.js более "заточен" под веб-разработку, особенно под создание серверных приложений, веб-сервисов и API.</p>
48 <p>Python считается одним из лучших языков для изучения программирования.<a>Python универсальный</a>: его используют как в веб-разработке, так и в Data Science, Machine Learning и других сферах. Node.js более "заточен" под веб-разработку, особенно под создание серверных приложений, веб-сервисов и API.</p>
49 <p>Если вам принципиальна скорость обработки данных и необходимо обрабатывать сложные вычисления, стоит выбирать Python, так как у него лучше производительность. Для более быстрой обработки Python использует мощные библиотеки, вроде NumPy и Pandas.</p>
49 <p>Если вам принципиальна скорость обработки данных и необходимо обрабатывать сложные вычисления, стоит выбирать Python, так как у него лучше производительность. Для более быстрой обработки Python использует мощные библиотеки, вроде NumPy и Pandas.</p>
50 <h2>Сколько зарабатывают Node.js-разработчики</h2>
50 <h2>Сколько зарабатывают Node.js-разработчики</h2>
51 <p>По<a>данным</a>сервиса "Хабр Карьера" на вторую половину 2022 года, медианная зарплата JavaScript разработчика составляет 150 тыс. рублей в месяц. В эту статистику входят зарплаты как фронтенд-, так и бэкенд-разработчиков на JS.</p>
51 <p>По<a>данным</a>сервиса "Хабр Карьера" на вторую половину 2022 года, медианная зарплата JavaScript разработчика составляет 150 тыс. рублей в месяц. В эту статистику входят зарплаты как фронтенд-, так и бэкенд-разработчиков на JS.</p>
52 <p>В июле 2023 года при запросе Node.JS на hh.ru<a>выдается</a>около 1100 вакансий в России. 400 вакансий предлагают зарплату от 100 тыс. рублей до 200 тыс. рублей. Еще 164 вакансии - с зарплатой до 330 тыс. рублей, 88 вакансий - до 430 тыс. рублей, 50 - до 500 тыс. рублей и 26 вакансий - с заработной платой более 500 тыс. рублей в месяц.</p>
52 <p>В июле 2023 года при запросе Node.JS на hh.ru<a>выдается</a>около 1100 вакансий в России. 400 вакансий предлагают зарплату от 100 тыс. рублей до 200 тыс. рублей. Еще 164 вакансии - с зарплатой до 330 тыс. рублей, 88 вакансий - до 430 тыс. рублей, 50 - до 500 тыс. рублей и 26 вакансий - с заработной платой более 500 тыс. рублей в месяц.</p>
53 <h2>Как установить Node.js</h2>
53 <h2>Как установить Node.js</h2>
54 <ol><li>Перейдите на страницу загрузки на официальном веб-сайте<a>Node.js</a></li>
54 <ol><li>Перейдите на страницу загрузки на официальном веб-сайте<a>Node.js</a></li>
55 <li>Здесь вы увидите два варианта: LTS и Current. Рекомендуем выбрать версию LTS (Long-Term Support), так как она более стабильная и имеет длительную поддержку.</li>
55 <li>Здесь вы увидите два варианта: LTS и Current. Рекомендуем выбрать версию LTS (Long-Term Support), так как она более стабильная и имеет длительную поддержку.</li>
56 <li>Далее необходимо выбрать версию для той операционной системы, которая вам подходит: Windows, macOS, Linuх. Либо есть возможность скачать официальный Node.js Docker Image, а также использовать Node.js c дополнительными платформами, например, Linux on Power LE Systems.</li>
56 <li>Далее необходимо выбрать версию для той операционной системы, которая вам подходит: Windows, macOS, Linuх. Либо есть возможность скачать официальный Node.js Docker Image, а также использовать Node.js c дополнительными платформами, например, Linux on Power LE Systems.</li>
57 - <li>После выбора версии начнется загрузка установочного файл Node.js. Дождитесь завершения загрузки, запустите установочный файл и следуйте инструкциям мастера установки.</li>
57 + <li>После выбора версии начнется загрузка установочного файл Node.js. Дождитесь завершения загрузки, запустите установочны файл и следуйте инструкциям мастера установки.</li>
58 <li>После завершения установки откройте терминал и в командной строке введите команду node -v. Если Node.js успешно установлен, вы увидите версию Node.js, например, v20.2.0 (номер версии может отличаться).</li>
58 <li>После завершения установки откройте терминал и в командной строке введите команду node -v. Если Node.js успешно установлен, вы увидите версию Node.js, например, v20.2.0 (номер версии может отличаться).</li>
59 </ol><p>Мы также написали более подробную инструкцию по установке Node.js, посмотреть ее можно<a>в GitHub</a>.</p>
59 </ol><p>Мы также написали более подробную инструкцию по установке Node.js, посмотреть ее можно<a>в GitHub</a>.</p>
60 <h2>Пишем первый код на Node.js</h2>
60 <h2>Пишем первый код на Node.js</h2>
61 <p>Давайте попробуем создать очень простую программу на Node.js. Для начала создайте новую папку под ваш проект. Далее откройте любой текстовый редактор и создайте файл с расширением js. Например, hello.js.</p>
61 <p>Давайте попробуем создать очень простую программу на Node.js. Для начала создайте новую папку под ваш проект. Далее откройте любой текстовый редактор и создайте файл с расширением js. Например, hello.js.</p>
62 <p>Откройте файл hello.js в текстовом редакторе и напишите следующий код:</p>
62 <p>Откройте файл hello.js в текстовом редакторе и напишите следующий код:</p>
63 <p>После этого сохраните файл с кодом, который у вас получился.</p>
63 <p>После этого сохраните файл с кодом, который у вас получился.</p>
64 <p>Далее откройте командную строку и перейдите в папку вашего проекта. В командной строке введите следующую команду для выполнения программы:</p>
64 <p>Далее откройте командную строку и перейдите в папку вашего проекта. В командной строке введите следующую команду для выполнения программы:</p>
65 <p>После выполнения команды вы увидите вывод "Hello, World!" в консоли.</p>
65 <p>После выполнения команды вы увидите вывод "Hello, World!" в консоли.</p>
66 <h2>Эксперты о перспективах Node.js</h2>
66 <h2>Эксперты о перспективах Node.js</h2>
67 <p>Мы поговорили с тремя экспертами Node.js и выяснили их мнение о том, как долго будет популярна платформа, почему стоит ее изучать и сколько времени нужно учиться бэкенду с нуля до джуниора.</p>
67 <p>Мы поговорили с тремя экспертами Node.js и выяснили их мнение о том, как долго будет популярна платформа, почему стоит ее изучать и сколько времени нужно учиться бэкенду с нуля до джуниора.</p>
68 <h3>Игорь Камышев: судя по тенденциям, Node.js станет только популярнее</h3>
68 <h3>Игорь Камышев: судя по тенденциям, Node.js станет только популярнее</h3>
69 <p><em>Игорь Камышев, разработчик веб-приложений в Aviasales. Разрабатывает экосистему библиотек для Node.js<a>Solid Soda</a>.</em></p>
69 <p><em>Игорь Камышев, разработчик веб-приложений в Aviasales. Разрабатывает экосистему библиотек для Node.js<a>Solid Soda</a>.</em></p>
70 <p><strong>Почему стоит изучать Node.js</strong>. Node.js - необычная технология. Современная экосистема JavaScript создавалась непрограммистами, из-за этого в ней очень много свежих и необычных идей. Начать писать приложения на Node.js проще, чем на Java, Ruby или PHP. Плюс, это достаточно зрелая платформа, многие проблемы уже решены, а лучшие подходы известны и описаны.</p>
70 <p><strong>Почему стоит изучать Node.js</strong>. Node.js - необычная технология. Современная экосистема JavaScript создавалась непрограммистами, из-за этого в ней очень много свежих и необычных идей. Начать писать приложения на Node.js проще, чем на Java, Ruby или PHP. Плюс, это достаточно зрелая платформа, многие проблемы уже решены, а лучшие подходы известны и описаны.</p>
71 - <p><strong>Перспективы бэкенда на JavaScript</strong>. Любой бэкенд может быть написан на любом языке. Вопрос только в скорости разработки и надежности этого решения. Приложения для Node.js можно быстро писать, но для обеспечения надежности нужно постараться. Важно понимать, что JavaScript - это язык со слабой динамической типизацией, чтобы это компенсировать, нужно заранее продумать архитектуру приложения и потратить больше времени на написаие тестов.</p>
71 + <p><strong>Перспективы бэкенда на JavaScript</strong>. Любой бэкенд может быть написан на любом языке. Вопрос только в скорости разработки и надежности этого решения. Приложения для Node.js можно быстро писать, но для обеспечения надежности нужно постараться. Важно понимать, что JavaScript - это язык со слабой динамической типизацией, чтобы это компенсировать, нужно заранее продумать архитектуру приложения и потратить больше времени на написание тестов.</p>
72 <p>На мой взгляд, Node.js подойдет для очень широкого класса бэкендов. Начиная от интернет-магазинов и заканчивая образовательными сервисами. Судя по тенденциям роста, Node.js будет становиться только популярнее. Сложно оценить, когда этот рост прекратится, но сейчас - это факт.</p>
72 <p>На мой взгляд, Node.js подойдет для очень широкого класса бэкендов. Начиная от интернет-магазинов и заканчивая образовательными сервисами. Судя по тенденциям роста, Node.js будет становиться только популярнее. Сложно оценить, когда этот рост прекратится, но сейчас - это факт.</p>
73 <p><strong>За какое время можно изучить Node.js</strong>. Node.js - супер-минималистичная платформа. По сути, чтобы разобраться с ней, достаточно выучить JavaScript и прочитать 10 страниц документации Node.js. Я полагаю, если вы никогда прежде не сталкивались с программированием, то за 5-6 месяцев можно освоить все что необходимо и стать полноправным членом команды".</p>
73 <p><strong>За какое время можно изучить Node.js</strong>. Node.js - супер-минималистичная платформа. По сути, чтобы разобраться с ней, достаточно выучить JavaScript и прочитать 10 страниц документации Node.js. Я полагаю, если вы никогда прежде не сталкивались с программированием, то за 5-6 месяцев можно освоить все что необходимо и стать полноправным членом команды".</p>
74 <h3>Андрей Мелихов: рынок сейчас остро нуждается в грамотных сильных разработчиках с бэкграундом из других языков</h3>
74 <h3>Андрей Мелихов: рынок сейчас остро нуждается в грамотных сильных разработчиках с бэкграундом из других языков</h3>
75 <p><em><a>Андрей Мелихов</a>, программист-эксперт в компании Yandex Cloud, ведущий подкаста<a>"Девшахта"</a></em></p>
75 <p><em><a>Андрей Мелихов</a>, программист-эксперт в компании Yandex Cloud, ведущий подкаста<a>"Девшахта"</a></em></p>
76 <p><strong>Почему стоит изучать Node.js</strong>Как бы не хотели многие, сайты все еще требуют серверного рендеринга. Это не только SEO-задачи, но и мобильный трафик. Если мы не хотим усложнять себе жизнь и используем один и тот же код на сервере и клиенте, то наш практически единственный выбор - это JavaScript.</p>
76 <p><strong>Почему стоит изучать Node.js</strong>Как бы не хотели многие, сайты все еще требуют серверного рендеринга. Это не только SEO-задачи, но и мобильный трафик. Если мы не хотим усложнять себе жизнь и используем один и тот же код на сервере и клиенте, то наш практически единственный выбор - это JavaScript.</p>
77 <p>Конечно, есть и различная экзотика, компилируемая в JS, но за исключением TypeScript, все это пока достаточно сложно воспринимать серьезно. Итак, нам нужен JS на сервере, и тут основной игрок - Node.js. Да, стоит напомнить, что есть и другие решения, позволяющие исполнять JS за пределами браузера, но на фоне Node.js их доля незаметна. Это первое.</p>
77 <p>Конечно, есть и различная экзотика, компилируемая в JS, но за исключением TypeScript, все это пока достаточно сложно воспринимать серьезно. Итак, нам нужен JS на сервере, и тут основной игрок - Node.js. Да, стоит напомнить, что есть и другие решения, позволяющие исполнять JS за пределами браузера, но на фоне Node.js их доля незаметна. Это первое.</p>
78 <p>Второе - в какой-то момент необходимо работать с данными, хранимыми на сервере. Мне кажется, что любой веб-разработчик хотя бы на базовом уровне должен понимать, как это все устроено. И здесь Node.js отличный выбор, он позволяет создать полноценный веб-сервер с минимальным порогом вхождения.</p>
78 <p>Второе - в какой-то момент необходимо работать с данными, хранимыми на сервере. Мне кажется, что любой веб-разработчик хотя бы на базовом уровне должен понимать, как это все устроено. И здесь Node.js отличный выбор, он позволяет создать полноценный веб-сервер с минимальным порогом вхождения.</p>
79 <p>Третье. Несмотря на все насмешки и недоверие, Node.js дорос до состояния практически взрослого инструмента и продолжает развиваться. Сегодня мы наконец-то имеем приличный инструментарий, статическую типизацию и даже один хороший фреймворк (Nest). Можно смело рекомендовать Node.js в качестве серверного решения для больших долгоживущих нагруженных проектов.</p>
79 <p>Третье. Несмотря на все насмешки и недоверие, Node.js дорос до состояния практически взрослого инструмента и продолжает развиваться. Сегодня мы наконец-то имеем приличный инструментарий, статическую типизацию и даже один хороший фреймворк (Nest). Можно смело рекомендовать Node.js в качестве серверного решения для больших долгоживущих нагруженных проектов.</p>
80 <p><strong>Перспективы бэкенда на JavaScript.</strong>Если говорить именно о языке, то мы видим, что JS постепенно становится целью сборки, а не языком, на котором пишут код. И в случае Node.js главная причина тут TypeScript, так как в отличие от браузера нам не нужно транспилировать JS в JS - мы полностью контролируем среду исполнения. Однако те возможности, которые нам дает TypeScript, гораздо больше, чем просто синтаксический сахар.</p>
80 <p><strong>Перспективы бэкенда на JavaScript.</strong>Если говорить именно о языке, то мы видим, что JS постепенно становится целью сборки, а не языком, на котором пишут код. И в случае Node.js главная причина тут TypeScript, так как в отличие от браузера нам не нужно транспилировать JS в JS - мы полностью контролируем среду исполнения. Однако те возможности, которые нам дает TypeScript, гораздо больше, чем просто синтаксический сахар.</p>
81 <p>И если взять современные инструменты, такие как Nest, то они эти возможности активно используют. Современный проект на Node.js - это статическая типизация, Dependency Injection, паттерны проектирования. Возможно, за этим теряется простота и легкость JavaScript, но вместо этого приходит надежность и упрощение разработки и поддержки в больших проектах.</p>
81 <p>И если взять современные инструменты, такие как Nest, то они эти возможности активно используют. Современный проект на Node.js - это статическая типизация, Dependency Injection, паттерны проектирования. Возможно, за этим теряется простота и легкость JavaScript, но вместо этого приходит надежность и упрощение разработки и поддержки в больших проектах.</p>
82 <p>Неожиданно, но JavaScript стал языком для всего. Сервер, браузер, мобильные телефоны, десктопные приложения, IoT - везде JavaScript неплохо себя чувствует. Совершенно новым направлением оказались AWS-лямбды (serverless), в которых JavaScript тоже отлично себя проявил. Так что да, разработчики будут востребованы. Но если говорить о сервере, то мне кажется, рынок сейчас остро нуждается в грамотных сильных разработчиках с бэкграундом из других языков.</p>
82 <p>Неожиданно, но JavaScript стал языком для всего. Сервер, браузер, мобильные телефоны, десктопные приложения, IoT - везде JavaScript неплохо себя чувствует. Совершенно новым направлением оказались AWS-лямбды (serverless), в которых JavaScript тоже отлично себя проявил. Так что да, разработчики будут востребованы. Но если говорить о сервере, то мне кажется, рынок сейчас остро нуждается в грамотных сильных разработчиках с бэкграундом из других языков.</p>
83 <p><strong>С чего начать изучать Node.js</strong>. Начать стоит с изучения UNIX и в целом основ работы компьютерных сетей. После этого можно попробовать написать простое приложение на Node.js, лучше без фреймворков (в том числе без Express). Поняв, что такое TCP/UDP и HTTP/HTTPS, можно уже попробовать написать полноценный бэкенд на Express, отдающий данные по AJAX и шаблонизирующий HTML. Также, конечно, придется разобраться с Nginx или HAProxy, понять, что такое балансировка. Очень неплохо хотя бы на минимальном уровне понять, что такое Docker и зачем он нужен.</p>
83 <p><strong>С чего начать изучать Node.js</strong>. Начать стоит с изучения UNIX и в целом основ работы компьютерных сетей. После этого можно попробовать написать простое приложение на Node.js, лучше без фреймворков (в том числе без Express). Поняв, что такое TCP/UDP и HTTP/HTTPS, можно уже попробовать написать полноценный бэкенд на Express, отдающий данные по AJAX и шаблонизирующий HTML. Также, конечно, придется разобраться с Nginx или HAProxy, понять, что такое балансировка. Очень неплохо хотя бы на минимальном уровне понять, что такое Docker и зачем он нужен.</p>
84 <p>Следующим шагом я бы порекомендовал погрузиться в TypeScript и попробовать Nest. Неплохим вариантом является изучение связки Angular + Nest, так как Nest создан под сильным влиянием Angular и реализует сходные концепции.</p>
84 <p>Следующим шагом я бы порекомендовал погрузиться в TypeScript и попробовать Nest. Неплохим вариантом является изучение связки Angular + Nest, так как Nest создан под сильным влиянием Angular и реализует сходные концепции.</p>
85 <p>Строго рекомендую книгу Node.js Design Patterns от Mario Casciaro.</p>
85 <p>Строго рекомендую книгу Node.js Design Patterns от Mario Casciaro.</p>
86 <h3>Алексей Золотых: на рынке труда не хватает разработчиков на Node.js</h3>
86 <h3>Алексей Золотых: на рынке труда не хватает разработчиков на Node.js</h3>
87 <p><em><a>Алексей Золотых</a>, тимлид в МойОфис, соорганизатор конференции<a>HolyJS</a></em></p>
87 <p><em><a>Алексей Золотых</a>, тимлид в МойОфис, соорганизатор конференции<a>HolyJS</a></em></p>
88 <p><strong>Почему стоит изучать Node.js</strong>. В последнее время Node.js становится все более взрослой технологией. Появляются серьезные инструменты для отладки, трейсинга и выявления других проблем. В сообществе накапливается экспертиза. Движение в сторону микросервисов нивелирует недостатки в отсутствие статической типизации путем уменьшения сложности. И да, для больших проектов у нас все еще есть TypeScript.</p>
88 <p><strong>Почему стоит изучать Node.js</strong>. В последнее время Node.js становится все более взрослой технологией. Появляются серьезные инструменты для отладки, трейсинга и выявления других проблем. В сообществе накапливается экспертиза. Движение в сторону микросервисов нивелирует недостатки в отсутствие статической типизации путем уменьшения сложности. И да, для больших проектов у нас все еще есть TypeScript.</p>
89 <p>Думаю, что у Node.js точно есть будущее, и точно есть куда расти. Вместе с тем порог входа очень низкий. Это позволяет не думать про технологии и сложность, а просто сосредоточиться на продукте.</p>
89 <p>Думаю, что у Node.js точно есть будущее, и точно есть куда расти. Вместе с тем порог входа очень низкий. Это позволяет не думать про технологии и сложность, а просто сосредоточиться на продукте.</p>
90 <p><strong>Перспективы бэкенда на JavaScript.</strong>Я изначально против привязки к технологиям. Хороший инженер должен выбирать технологию под задачу, а не пытаться быть парнем с молотком, для которого все вокруг гвозди. На данный момент у ноды приличная скорость в некоторых аспектах, низкий порог входа, высокая популярность и куча библиотек для всего. С другой стороны, не решены многие вопросы. Но думаю, что это звучит как вызов.</p>
90 <p><strong>Перспективы бэкенда на JavaScript.</strong>Я изначально против привязки к технологиям. Хороший инженер должен выбирать технологию под задачу, а не пытаться быть парнем с молотком, для которого все вокруг гвозди. На данный момент у ноды приличная скорость в некоторых аспектах, низкий порог входа, высокая популярность и куча библиотек для всего. С другой стороны, не решены многие вопросы. Но думаю, что это звучит как вызов.</p>
91 <p><strong>За какое время можно изучить Node.js.</strong>Все индивидуально. Если вы любопытны и въедливы, то думаю, что не менее полугода.</p>
91 <p><strong>За какое время можно изучить Node.js.</strong>Все индивидуально. Если вы любопытны и въедливы, то думаю, что не менее полугода.</p>