Обновить
128K+

Node.JS *

Среда для запуска JavaScript-приложений

21,64
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Приглашаем на JavaScript Meetup SuperJob 10 октября

Время на прочтение1 мин
Охват и читатели1.6K
10 октября в офисе SuperJob состоится встреча JavaScript-разработчиков.

Специалисты SuperJob поделятся своим опытом оптимизации приложений на React/Redux, использования статических типов с Flow и работы с Node.js.
Традиционно в программе бургеры и неформальное общение.

Дата и время: 10 октября c 19:00 до 21:30
Адрес: Москва, Малая Дмитровка, дом 20
Регистрация: superjob-meetup.timepad.ru/event/1063170/

image
Читать дальше →

Лучшие методики тестирования в JavaScript и Node.js

Время на прочтение49 мин
Охват и читатели66K

Это исчерпывающее руководство по обеспечению надёжности в JavaScript и Node.js. Здесь собраны десятки лучших постов, книг и инструментов.

Сначала разберитесь с общепринятыми методиками тестирования, которые лежат в основе любого приложения. А затем можно углубиться в интересующую вас сферу: фронтенд и интерфейсы, бэкенд, CI или всё перечисленное.

Первое рабочее место или как начать разработку API на Node.js

Время на прочтение12 мин
Охват и читатели22K

Введение


В данной статье хотел бы поделиться своими эмоциями и приобретенными навыками в разработке первого REST API на Node.js с использованием TypeScript, как говорится, с нуля. История достаточно банальная: «Закончил университет, получил диплом. Куда же пойти работать?» Как можно было догадаться меня проблема не обошла стороной, пусть думать особо и не пришлось. Позвал к себе на стажировку разработчик (выпускник той же специальности). Полагаю, что это достаточно распространенная практика и существует множество подобных историй. Я, недолго думая, решил попробовать свои силы и пошел…

image

День первый. Знакомство с Node.js


Пришёл я на back-end разработку. В данной IT-компании используют платформу Node.js, с которой я абсолютно не был знаком. Я немного убежал вперед, забыв рассказать читателю, что никогда и ничего не разрабатывал на JavaScript (за исключением пары скриптов с копированным кодом). Алгоритм работы и архитектуру веб-приложений в целом я понимал, так как разрабатывал CRUD на Java, Python и Clojure, но этого было недостаточно. Поэтому первый день я полностью посвятил изучению Node.js, очень помог этот скринкаст.

Параллельно изучая веб-фреймворк Express, менеджер пакетов npm, а также такие файлы как package.json и tsconfig.json, голова просто шла кругом от количества информации. Очередной урок, что усвоение всего материала одновременно задача близкая к невозможной. К концу дня я все же справился с настройкой окружения и смог запустить express веб-сервер! Но радоваться было рано, потому что уходил домой с полным ощущением непонимания. Чувство, что я утопал в огромном мире JS не покидало меня ни на минуту, поэтому необходима была перезагрузка.

Читать дальше →

Ssh-chat

Время на прочтение5 мин
Охват и читатели22K

Привет, Хабр. Console chat отличная вещь, но для фронтендеров, а что если вы хотите такой же, но для бэкэнда. Если да, то эта статья для вас. Но какой инструмент часто используют в бэкенде? Правильно ssh, так что представляю sshchat.

Читать дальше →

Docker: На старт. Внимание. Деплой

Время на прочтение5 мин
Охват и читатели34K
Как часто вам приходилось настраивать окружения сервера для деплоя вашего приложения (например веб-сайта)? Наверняка чаще чем хотелось бы.

В лучшем случае, у вас был скрипт, который все это делал автоматически. В худшем случае, это могло выглядеть вот так:

  • установить базу данных D версии x.x.x
  • установить веб сервер N версии x.x и т.д.

Управление окружением, сконфигурированное подобным образом, со временем становится очень ресурсозатратным. Любое, даже незначительное изменение в конфигурации означает как минимум:

  • что каждый разработчик должен быть в курсе данных изменений
  • все эти изменения должны быть безболезненно добавлены в продакшн среду

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

Выше я описал то, что называется vendor lock-in. Для разработки приложений, в частности серверного типа, это явление становится большой проблемой. В данной статье мы рассмотрим одно из возможных решений — Docker. Вы узнаете, как создать, задеплоить и запустить приложение на его основе.


Читать дальше →

Генерация документов с помощью ONLYOFFICE DocumentBuilder

Время на прочтение9 мин
Охват и читатели9.7K


Привет, Хабр.


Я хочу рассказать об утилите под названием DocumentBuilder, которая позволяет генерировать документы, таблицы и презентации, а также показать, как можно его использовать для решения ваших задач, на примере создания резюме из шаблонов.


Работает билдер следующим образом: вы пишете код на js, используя специальные методы из документации, отдаете его утилите, а она собирает документ. Или не собирает, если есть ошибки.

Читать дальше →

Выход из зоны комфорта: с nodejs на dlang

Время на прочтение5 мин
Охват и читатели4.9K

В 2017м году я начал писать проект на nodejs — реализацию протокола ObjectServer от Weinzierl для доступа к значениям KNX. В процессе написания было изучено: работа с бинарными протоколами, представление данных, работа с сокетами(unix sockets в частности), работа с redis базой данных и pub/sub каналами.


Проект достиг стабильной версии. В это время я потихоньку ковыряю другие языки, в частности Dart и Flutter как его приложение. На полке пылится без действия купленный во времена студенчества справочник Г.Шилдта.


Настойчивая мысль переписать проект на C поселилась в голове. Рассматриваю варианты Go, Rust, отталкивающие иными синтаксическими конструкциями. Начать никак не получается, идея откладывается на время.

Читать дальше →

Алиса приобретает навык

Время на прочтение4 мин
Охват и читатели13K
Яндекс Алиса

В этой статье речь пойдёт о голосовых интерфейсах (Voice User Interface — VUI), а также будет показано, как на Node.js можно создать приложение (навык — в терминологии платформы Яндекс.Диалоги) для голосового помощника Алисы. С помощью стороннего API наше приложение будет получать цитаты известных людей и передавать Алисе, а та, в свою очередь, зачитывать их пользователям. Также рассмотрим и один из немногих способов монетизации таких приложений — создание кнопки донации (donation — пожертвование). В общем, все должны остаться довольными.
Читать дальше →

«Основы программирования» набор на бесплатный курс с примерами на JavaScript

Время на прочтение4 мин
Охват и читатели47K


Дорогие товарищи инженеры и будущие инженеры, сообщество Метархия открывает набор на бесплатный курс «Основы программирования», который будет доступен на youtube и github без всяких ограничений. Часть лекций уже записана в конце 2018 и начале 2019 года, а часть будет прочитана в Киевском политехническом институте осенью 2019 года и сразу же доступна на канале курса. Начало курса 3 сенября. Опыт предыдущих 5 лет, когда я делал более сложные лекции, показал необходимость лекций и для самых начинающих. В этот раз, по многочисленным просьбам студентов, я постараюсь добавить много материалов по основам программирования и, по возможности, абстрагировать курс от JavaScript. Конечно большинство примеров останутся на JavaScript, но теоретическая часть будет гораздо шире, и не ограничится синтаксисом и API языка. Часть примеров будет на TypeScript и C++. Это не курс по голому JavaScript, но фундаментальный курс по основам программирования, включая основные концепции и шаблоны проектирования для разных парадигм, функционального, процедурного, объектно-ориентированного, обобщенного, асинхронного, реактивного, параллельного, мультипарадигменного и метапрограммирования, а так же основы структур данных, тестирования, принципы построения структуры и архитектуры проектов.

Читать дальше →

Асинхронное программирование в JavaScript (Callback, Promise, RxJs )

Время на прочтение10 мин
Охват и читатели48K

Всем привет. На связи Омельницкий Сергей. Не так давно я вел стрим по реактивному программированию, где рассказывал про асинхронность в JavaScript. Сегодня я бы хотел законспектировать этот материал.



Но перед тем как начать основной материал нам нужно сделать вводную. Итак, давайте начнем с определений: что такое стек и очередь?


Стек — это коллекция, элементы которой получают по принципу «последний вошел, первый вышел» LIFO


Очередь — это коллекция, элементы которой получают по принципу («первый вошел, первый вышел» FIFO


Окей, продолжим.



JavaScript — это однопоточный язык программирования. Это значит, что он имеется только один поток выполнения и один стек, в который помещаются функции в очередь на выполнение. Следовательно в один момент времени JavaScript может выполнить только одну операцию, другие операции при этом будут ждать своей очереди в стеке, пока их не вызовут.

Читать дальше →

Руководство по логированию в Node.js

Время на прочтение10 мин
Охват и читатели42K

Первая задача, с которой чаще всего сталкиваются разработчики, начинающие программировать на JavaScript, – как регистрировать события в журнале консоли с помощью метода console.log. В поисках информации по отладке кода на JavaScript вы найдёте сотни статей в блогах, а также инструкций на StackOverflow, советующих «просто» вывести данные в консоль через метод console.log. Это настолько распространённая практика, что пришлось ввести правила для контроля качества кода, подобные no-console, чтобы не оставлять случайные записи из журнала в коде для продакшена. Но что делать, если нужно специально зарегистрировать какое-нибудь событие, чтобы предоставить дополнительную информацию?

В этой статье рассматриваются различные ситуации, в которых требуется вести логи; показывается разница между методами console.log и console.error в Node.js и демонстрируется, как передать функцию логирования библиотекам, не перегружая пользовательскую консоль.
Читать дальше →

Подключаем онлайн-карты к навигатору на смартфоне. Часть 3 — OverpassTurbo

Время на прочтение8 мин
Охват и читатели3.8K

Превращаем созданный ранее скрипт в API для просмотра интерактивной карты с сайта OverpassTurbo.eu через навигационное приложение смартфона.

Читать дальше →

Подключаем онлайн-карты к навигатору на смартфоне. Часть 2 – векторные карты

Время на прочтение14 мин
Охват и читатели2.6K

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

Читать дальше →

Ближайшие события

Всё что вам нужно знать о Node.js

Время на прочтение9 мин
Охват и читатели159K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Everything you need to know about Node.js" автора Jorge Ramón.



В наши дни платформа Node.js является одной из самых популярных платформ для построения эффективных и масштабируемых REST API's. Она так же подходит для построения гибридных мобильных приложений, десктопных программ и даже для IoT.


Я работаю с платформой Node.js более 6 лет и я на самом деле люблю её. Этот пост главным образом пытается быть путеводителем по тому, как Node.js работает на самом деле.

Читать дальше →

Создание динамических PDF-файлов с использованием React и Node.js

Время на прочтение8 мин
Охват и читатели42K
Материал, перевод которого мы сегодня публикуем, посвящён созданию динамических PDF-файлов с использованием HTML-кода в качестве шаблона. А именно, речь пойдёт о том, как сформировать простой счёт на оплату неких товаров или услуг, динамические данные, включённые в который, берутся из состояния React-приложения. База React-приложения создана с помощью create-react-app, серверная часть проекта основана на Node.js, при её разработке использован фреймворк Express.



Автор этого материала отмечает, что он подготовил видео, в котором демонстрируется разработка проекта. Если вы решите и посмотреть видео, и прочитать статью, то рекомендуется поступить так. Сначала бегло просмотрите статью, потом включите видео и воссоздайте у себя рассматриваемую там систему. А после этого просто прочитайте статью.
Читать дальше →

Что такое Deno и чем этот проект отличается от Node.js?

Время на прочтение6 мин
Охват и читатели29K
Райан Даль, создатель Node.js, потратил последние полтора года на работу над проектом Deno. Это — новая среда выполнения для JavaScript, которая должна исправить проблемы, присущие Node.js.

Не поймите меня неправильно. Платформа Node.js представляет собой замечательную серверную среду для выполнения JavaScript. Своей популярностью она обязана, преимущественно, огромной экосистеме, и, собственно, поддержке JavaScript. Однако Райан Даль признаёт, что кое-чему, касающемуся Node.js, ему стоило бы уделить больше внимания. Речь, в частности, идёт о безопасности, о модулях и об управлении зависимостями.


В его защиту можно сказать то, что он не мог знать о том, насколько популярной станет платформа Node.js за довольно короткий отрезок времени. Кроме того, в 2009 году JavaScript всё ещё выглядел как ограниченный и странный язык, над которым издевались все, кому не лень. Также надо отметить то, что в те времена многих возможностей JavaScript, привычных в наши дни, ещё не существовало.
Читать дальше →

Бэкдор на Node.js: зачем, почему и как это работает

Время на прочтение11 мин
Охват и читатели8.3K
Недавно коллеги из Яндекса поделились с нами сэмплом интересного троянца, о чем мы сообщили в этой новости. Такая малварь попадается не часто, поэтому мы решили подробнее ее разобрать, а заодно поговорить о том, почему мы так редко встречаем подобные сэмплы.
Читать дальше →

Node.js или Java: производительность, ресурсы, управление потоками, популярность и личный опыт

Время на прочтение8 мин
Охват и читатели44K
Недавно мы с коллегами обсуждали вопрос популярности некоторых технологий — в частности Java и node.js. После недолгого интернет-серфинга выяснилось, что именно эти технологии используют многие информационные гиганты для разработки и поддержания своих площадок в сети. Ниже, я приведу лишь малую часть.

Компании использующие Java:

image

Компании использующие node.js:

image

He менее интересным является и то, что по данным поиска на indeed.com (28.06.2019) по запросам Java Developer (30272 вакансии) и node.js developer (7401 вакансии), специалисты по этим технологиям довольно востребованы.

image

Но все это лишь общая информация, касающаяся популярности. Информация, которая натолкнула меня на мысль углубиться в тему и порассуждать на предмет технических особенностей, что привело к написанию этой статьи.
Читать дальше →

Инструменты Node.js разработчика. Удаленный вызов процедур на веб-сокетах

Время на прочтение7 мин
Охват и читатели6.8K
О технологии websocket часто рассказывают страшилки, например что она не поддерживается веб-браузерами, или что провайдеры/админы глушат трафик websocket — поэтому ее нельзя использовать в приложениях. С другой стороны, разработчики не всегда заранее представляют подводные камни, которые имеет технология websocket, как и любая другая технология. По поводу мнимых ограничений сразу скажу, что технологию websocket сегодня поддерживают 96.8% веб-браузеров. Вы можете сказать, что оставшиеся за бортом 3,2% — это много, это миллионы пользователей. Я с Вами вполне соглашусь. Только все познается в сравнении. Тот же XmlHttpRequest, который все и уже не первый год используют в технологии Ajax, поддерживается 97.17% веб-браузеров (не сильно больше, правда?), а fetch — вообще, 93.08% веб-браузеров. В отличие от websocket, такой процент (а раньше он был еще меньше) уже давно никого не останавливает при использовании технологии Ajax. Так что использовать в настоящее время fallback на long polling не имеет никакого смысла. Хотя бы потому, что веб-браузеры, которые не поддерживают websocket — это те же самые веб-браузеры, которые не поддерживают XmlHttpRequest, и в реальности никакого fallback не произойдет.

Вторая страшилка, про бан на websocket со стороны провайдеров или админов корпоративных сетей — также необоснована, так как сейчас все используют протокол https, и понять что открыто соединение websocket (не взломав https) невозможно.

Что же касается реальных ограничений и способах их преодоления, я расскажу в этом сообщении, на примере разработки веб-админки приложения.
Читать дальше →

9 лет в монолите на Node.JS

Время на прочтение12 мин
Охват и читатели28K

монолит от https://reneaigner.deviantart.com


Неделю назад я выступал на митапе по Node.JS, и многим обещал выложить запись выступления. Уже потом я понял, что мне не удалось вместить в регламентированные полчаса некоторые интересные факты. Да и сам я больше люблю читать, а не смотреть и слушать, поэтому решил выложить выступление в формате статьи. Впрочем, видео тоже будет в конце поста в разделе ссылок.


Рассказать я решил про набившую оскомину тему — жизнь в монолите. Об этом на хабре уже есть сотни статей, тысячи копий сломаны в комментах, истина давно погибла в спорах, но… Дело в том, что у нас в OneTwoTrip есть весьма специфический опыт, в отличие от многих людей, которые пишут про некие архитектурные паттерны в вакууме:


  • Во-первых, нашему монолиту уже 9 лет.
  • Во-вторых, всю жизнь он провёл под хайлоадом (сейчас это 23 млн запросов в час).
  • А в NaN-ых, мы пишем наш монолит на Node.JS, который за эти 9 лет изменился до неузнаваемости. Да, мы начинали писать на ноде в 2010, безумству храбрых поём мы песню!

Так что всякой специфики и реального опыта у нас довольно много. Интересно? Поехали!

Читать дальше →