Обновить
128K+

Node.JS *

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

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

Comedy. Акторы в Node.JS для гибкого масштабирования

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

Привет, хабравчане! В этой статье я познакомлю вас с фреймворком Comedy — реализацией акторов в Node.JS. Акторы позволяют масштабировать отдельные модули вашего Node.JS приложения без изменения кода.

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

Аутентификация в Node.js. Учебные руководства и возможные ошибки

Время на прочтение12 мин
Охват и читатели44K
Однажды я отправился на поиск учебных руководств по аутентификации в Node.js/Express.js, но, к сожалению, не смог найти ни одного, которое меня бы полностью устроило. Некоторые были неполными, некоторые содержали ошибки в сфере безопасности, вполне способные навредить неопытным разработчикам.

Сразу скажу, что я всё ещё нахожусь в поиске надёжного, всеобъемлющего решения для аутентификации в Node/Express, которое способно составить конкуренцию Devise для Rails. Однако, удручающая ситуация в сфере руководств подвигла меня на подготовку этого материала. Тут я разберу некоторые наиболее распространённые ошибки в области аутентификации и расскажу о том, как их избежать.

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

Вредоносный код в npm-пакетах и борьба с ним

Время на прочтение7 мин
Охват и читатели23K
В начале августа в нескольких десятках npm-пакетов был обнаружен вредоносный код. Администрация npmjs.com оперативно на это отреагировала и тут же подготовила отчёт о предпринятых мерах. Позже Доминик Кундел из twilio.com поделился советами о том, как найти проекты, «заражённые» подобными пакетами. Представляем вашему вниманию рассказ об этих событиях.

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

JavaScript как мыслевирус

Время на прочтение8 мин
Охват и читатели52K
Вообще я стараюсь не писать статьи и комментарии не на технические темы, но коль скоро появились не совсем технические по духу статьи «JavaScript как явление» и «JavaScript как праздник», я счел нужным принять участие в дискуссии.
Читать дальше →

JavaScript как праздник

Время на прочтение9 мин
Охват и читатели40K
Эта пятничная статья будет ответом на статью JavaScript как явление, в которой автор изложил необоснованную критику на JavaScript. Лично я пишу на JavaScript уже 15 лет и искренне считаю его одним из самых мощных ЯП на сегодняшний день. В статье будет, по возможности, аргументированная позиция относительно основных тезисов критики, так как у новичков действительно часто возникают проблемы с JavaScript. Вводит в заблуждение приставка Script и несерьёзный имидж языка, а на деле обнаруживается, что язык применяется от front-end и back-end до дескопных и мобильных приложений, программирования интегральных микросхем, обработки видео и в множестве других сфер. Я давно хотел раскрыть частые заблуждения про JavaScript, а тут как раз появился повод, поэтому welcome под кат.
Читать дальше →

Новый V8 и скорость Node.js: техники оптимизации сегодня и завтра

Время на прочтение19 мин
Охват и читатели28K
Node.js, с момента появления, зависит от JS-движка V8, который обеспечивает исполнение команд языка, который мы все знаем и любим. V8 — это виртуальная машина JavaScript, написанная Google для браузера Chrome. С самого начала V8 создавали для того, чтобы сделать JavaScript быстрым, по крайней мере — обеспечить большую скорость, чем конкурирующие движки. Для динамического языка без строгой типизации достижение высокой производительности — задача непростая. V8 и другие движки развиваются, всё лучше решая эту задачу. Однако, новый движок — это не просто «рост скорости исполнения JS». Это — и необходимость в новых подходах к оптимизации кода. Не всё то, что было сегодня самым быстрым, будет радовать нас максимальной производительностью в будущем. Не всё, что считалось медленным, останется таким.

Как характеристики TurboFan V8 повлияют на то, как будут оптимизировать код? Как техники, считающиеся оптимальными сегодня, покажут себя в недалёком будущем? Как ведут себя «убийцы производительности V8» в наши дни, и чего от них можно ожидать? В этом материале мы постарались найти ответы на эти и многие другие вопросы.

Перед вами — плод совместного труда Дэвида Марка Клементса и Маттео Коллины. Материал проверили Франциска Хинкельманн и Бенедикт Мейрер из команды разработчиков V8.


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

JavaScript как явление

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


Сообщество nodejs безумно, и судя по тому что в 2016-2017 годах в различных рейтингах JavaScript брал первое место по популярности вытеснив оттуда с небольшим отрывом Java — безумие в последнее время действительно станосится массовым. Казалось бы — не хочешь не кушай, пиши на своём любимом Elixir / Erlang / Lisp / Haskell / любом другом языкое с хорошим дизайном и в ус не дуй, но в текущей ситуации к сожалению это правило перестаёт работать и приходится прилагать некоторые усилия чтобы его соблюдать.

В чём причина популярности такого реально хренового языка как JavaScript? В принципе в том же в чём и причина популярности Java, да и вообще почти всех явлений культуры и общества
Читать дальше →

Почему Node.js в качестве основы фронтенда – это круто [обновлено]

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


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


Несколько лет назад в Яндекс.Деньгах назрела смена платформы для серверной прослойки фронтенда: имевшаяся была внутренней проприетарной разработкой и постепенно умирала от слабой поддержки и проседания скорости работы. Вместе с медленной работой в рантайме и отсутствием развития XSLT, на котором работало API, этот «черный ящик» с множеством ограничений настала пора заменить.


Под «фронтендом» мы понимаем не только выполняемый в браузере код, но и серверную прослойку по сбору данных и генерации HTML. Хорошей заменой для имевшейся логики стал Node.js.

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

CASL. Авторизация для JavaScript приложения

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

CASL JavaScript В наше время почти каждое приложение имеет понятие прав доступа и предоставляет различные функции для разных групп пользователей (например, admin, member, subscriber и т.д.). Эти группы обычно называются "роли".


По своему опыту скажу, что логика прав доступа большинства приложений построена вокруг ролей (проверка звучит так: если пользователь имеет эту роль, то он может что-то сделать) и в конечном итоге имеем массивную систему, с множеством сложных проверок, которую трудно поддерживать. Эту проблему можно решить при помощи CASL.

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

Skype-бот с человеческим лицом (на Microsoft Bot Framework V3 и Slack API)

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


Skype – отличный канал для оперативной коммуникации с клиентами. Он есть у всех и обеспечивает быстрое живое общение без лишних телодвижений и затрат (например, на телефонную связь). Однако, когда количество клиентов исчисляется тысячами, преимущества Skype начинают превращаться в недостатки. В этой статье мы расскажем о нашем Skype-боте, по сути, выполняющем роль телефонистки начала 20-го века: он соединяет клиента со свободным менеджером и поддерживает эту связь до решения вопроса.
Читать дальше →

Книга «Front-end. Клиентская разработка для профессионалов. Node.js, ES6, REST»

Время на прочтение5 мин
Охват и читатели19K
image В книге рассмотрены все важнейшие навыки работы с JavaScript, HTML5 и CSS3, требующиеся разработчику, чтобы преуспеть в создании современного клиентского кода. Изучая эту книгу, вы напишете четыре веб-приложения. Каждому приложению посвящена отдельная часть книги, а каждая глава добавляет в создаваемое приложение новые функциональные возможности. Создание этих четырех веб-приложений даст вам возможность изучить все технологии, требуемые для создания клиентской части.

Ottergram. Наш первый проект посвящен веб-фотогалерее. Создание Ottergram научит вас основам программирования для браузеров с помощью языка разметки HTML, таблиц стилей CSS и языка программирования JavaScript. Вы вручную создадите пользовательский интерфейс и узнаете, как браузер загружает и визуализирует контент.

CoffeeRun. Частично форма заказа кофе, частично — список заказов. CoffeeRun познакомит вас с множеством методов языка программирования JavaScript, включая написание модульного кода, использование преимуществ замыканий и взаимодействие с удаленным сервером с помощью технологии Ajax.

Далее под катом...
Читать дальше →

Microsoft Bot Framework на Linux под Node.JS

Время на прочтение2 мин
Охват и читатели5.4K
Чтобы создать и запустить наш первый чат бот с использованием Microsoft’s Bot Framework Microsoft’s Bot Framework под Linux нам нужно установить следующие компоненты:

  • Node JS
  • Bot Framework Emulator
  • Visual Studio Code (не обязательный параметр)

После создания простейшего бота мы разберём как можно запускать и отлаживать его.
Читать дальше →

npm link на стероидах

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

npm link + steroids = npmy


Думаю многие из вас уже сталкивались с локальной разработкой npm-пакетов. Обычно никаких трудностей это не вызывает: создаём папку, запускаем npm init, пишем тесты, дальше используем npm link (либо просто симлинк) и «шлифуем» api до полной готовности.


Звучит просто… только если вы не используете Babel, Rollup, Webpack и т.п. Иными словами, всё хорошо, пока проект не нужно собрать перед публикацией, да ещё с модификацией исходного кода. Кроме того, одновременно разрабатываемых пакетов может быть больше чем один, что в разы усложняет «жизнь». Чтобы исправить эту ситуацию, пришлось сделать маленькую утилиту npmy, под катом небольшая статья с описанием тех. процесса работы и пример использования.

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

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

Доработки шаблонизатора DoT.js

Время на прочтение12 мин
Охват и читатели5.7K
Время зоопарка шаблонизаторов миновало, теперь вокруг бегают динозаврики MVC, а в них используются встроенные шаблонизаторы и билдеры компонентов. Но для замены старых менее удобных шаблонизаторов в Knockout и Backbone иногда нужны они, в основном, остановившиеся в развитии на уровне около 2014 года.

Так случилось и с DoT.js. Поначалу заброшенный авторами примерно на год в 2013-м, он получил их внимание ненадолго, поднявшись с версии 1.0.1 до 1.1.1, и снова был заброшен (или стабилизирован, смотря как рассуждать). В связи с этим ещё в 2013 году понадобилось (делать клон DoT.js), а теперь — и апгрейдить его.

Он — такой же быстрый, как и встроенный _.template() в Underscore/Lodash, но с улучшенным синтаксисом, при котором необходимость писать JS в шаблонах встречается нечасто, а в Underscor-овском — нужна всегда. Этим скобкам со скриптами даже придумали специальный термин: javascript encapulated sections (JES), и от них, в основном, избавились.

Что получаем дополнительно?


1. Структура шаблонизатора была переработана (в 2013-м, ссылка оттуда), чтобы лучше читалась и уменьшилось число декодирований функций;
2. Тесты показали, что быстродействие в среднем не изменилось (колебания -3% — +10% в зависимости от параметров);
3. Добавлена команда работы по структуре, аналогично работе по массиву;
Читать дальше →

Notyjs — шикарная javascript библиотека для создания уведомлений. А также готовый плагин для Vuejs

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

image


Простая, быстрая и производительная библиотека для создания none-block уведомлений для вашего сайта или приложения.

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

Стек, который позволил Medium обеспечить чтение на 2.6 тысячелетия

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

Предлагаю общественности мой перевод статьи Dan Pupius'а об архитектура сервиса Medium и используемых технологиях. Хочу особо отметить, что статья является переводом, поэтому местоимение "я", используемое в тексте далее относится к автору оригинального текста, а не к переводчику.


Фон


Medium это сеть. Это место, где обмениваются историями и идеями, которые важны — место, где вы развиваетесь, и где люди провели 1.4 миллиарда минут — 2.6 тысячелетия.


У нас более 25 миллионов уникальных читателей в месяц, и каждую неделю публикуются десятки тысяч постов. Но мы хотим, чтобы на Medium мерилом успеха было не количество просмотров, а точки зрения. Чтобы значение имело качество идеи, а не квалификация автора. Чтобы Medium был местом, где обсуждения развивают идеи, а слова по-прежнему важны.


Я руковожу инженерной командой. Раньше я работал инженером в Google, где я работал над Google+ и Gmail, а также был одним из со-основателей проекта Closure. В прошлой жизни я гонял на сноуборде, прыгал из самолёта и жил в джунглях.

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

GraphQL запросы. От простого к более сложному

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

image


Привет, Мир! Много было сказано о сути GraphQL, но гораздо меньше о самих запросах. От простого к более сложному, я раскрою тему. Заинтересованным, — добро пожаловать под кат.

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

Пишем симпатичные Node.js-API с использованием async/await и базы данных Firebase

Время на прочтение5 мин
Охват и читатели25K
Мы уже рассказывали об основах работы с async/await в Node.js, и о том, как использование этого нового механизма позволяет сделать код лучше. Сегодня поговорим о том, как создавать, используя async/await, RESTful API, взаимодействующие с базой данных Firebase. Особое внимание обратим на то, как писать красивый, удобный и понятный асинхронный код. Можете прямо сейчас попрощаться с адом коллбэков.


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

Платформа Node.js обойдёт Java в течение года

Время на прочтение9 мин
Охват и читатели37K
В конце июня сего года Микеал Роджерс (он участвовал в работе Node.js Foundation со дня основания этой организации, а теперь покидает проект) дал интервью thenewstack.io. Тогда он сказал, что платформа Node.js обойдёт Java в течение года. Тут надо уточнить, что речь идёт о том, что число программистов, которые пишут для Node.js, превзойдёт число тех, кто пишет на Java.

image

Ресурс builtinnode.com, через неделю после публикации интервью, подготовил материал, автор которого, задавшись вопросом: «Действительно ли Node.js обойдёт Java?», проанализировал ситуацию. Представляем вашему вниманию перевод интервью и аналитической статьи и предлагаем поразмыслить о перспективах Node.js и Java.
Читать дальше →

Symfony: Webpack Encore — плагин для управления ресурсами

Время на прочтение6 мин
Охват и читатели20K
Позавчера обнаружил новость о том, что команда Symfony выпустила плагин Webpack Encore для интеграции замечательного инструмента Webpack в ваше приложение. Если вы не знакомы с Webpack, то я настоятельно рекомендую ознакомиться с ним, так как он возможно решит множество вопросов связанных с управлением ресурсами в вашем проекте. В любом случае даже если вы не собираетесь его использовать, знать о том что он существует будет крайне полезным. Очень хорошо этот инструмент описан тут.
Читать дальше →