Рубрика «node.js» - 101

Предисловие

18 февраля вышел релиз Grunt v0.4.0, с чем всех и поздравляю. Если вы еще не знакомы с Грантом — прошу пройти на официальный сайт или почитать ознакомительную статью на Хабре. Вкратце, Грант позволяет автоматизировать склеивание и минификацию js-файлов, запуск тестов, проверку кода с помощью JSHint и многое другое.

Данная статья — история миграции одного приложения с Гранта v0.3.9 на вышедшую v0.4.0. Версии несовместимы и переезд оказался не таким простым делом, как я изначально предполагал. Полная инструкция по миграции на английском находится здесь, она подробнее чем мое описание.

Зачем я использую Grunt

Как любому ленивому frontend-разработчику, мне нужен был инструмент, который автоматизирует рутинные задачи, позволяя сосредоточиться непосредственно на разработке. Так я нашел Грант, который делал за меня следующее:

  • компиляция stylus в css;
  • склеивание js-файлов;
  • проверка JavaScript линтером;
  • минификация склеенных js-файлов;
  • запуск unit-тестов (qUnit);
  • отслеживание изменений исходных файлов и автоматический перезапуск вышеперечисленных задач.

Читать полностью »

Не так давно была статья о выходе js-yaml 2.0.0, который был полностью написан на JS и при этом работал весьма быстро. И только недавно я узнал, насколько же все хорошо на самом деле :). А началось все с того, что знакомый пожаловался на руби, который долго парсил 7-мегабайтный yaml-файл. Это было довольно странно, потому что руби использует биндинги к libyaml. Мы написали несколько примитивных тестов для руби с питоном, и получили такие результаты, что я заподозрил ошибку.

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

Мотиватция

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

Итак идея — сделать сервис удаленного планирования, посредством техники Planning Poker, так популярной в agile мире. А также чуть лучше разобраться с тем как работает socket.io и сопутствующие технологии.

Читать полностью »

Вообще-то у меня PhpStorm, но, думаю, все будет работать и в WebStorm.

Запускаем в командной строке

cd <path to Gruntfile>
node --debug-brk=64005 $(which grunt) img2base64

Где img2base64 — название нужного задания. Можно опустить этот параметр, чтобы запустились все задания.
Получаем debugger listening on port 64005

Далее в настройках WebStorm: Run → Edit configurations… → + → Node JS Remote Debug. Задаем название конфигурации (например, grunt), Host: 127.0.0.1, Debug port: 64005 (порт можно задавать любой от 1025 до 65535, главное везде один и тот же). Нажимаем OK. Задаем точку останова (breakpoint) и нажимаем кнопку Debug.
Отладка Grunt задания в WebStorm
Профит!
Читать полностью »

Полезные советы в работе с Meteor

Совсем недавно мне на глаза попался очень амбициозный проект Meteor. Меня подкупила его простота и скорость разработки приложений на нем. В этой статье будут показаны некоторые «хитрости» и полезные советы такие как: установка кастомных пакетов, добавление в проект плагинов jquery, развертывание проекта на боевом сервере и прочее.

Этот пост предназначен для тех кто уже имеет минимальный опыт в работе с Meteor.
Читать полностью »

Сегодня — немного практических советов по работе с WebStorm.

Вначале пишем совсем простой HTML, После color: нажимаем <Ctrl-пробел> и получаем список цветов.

image

КО подсказывает: во всех IDE от JetBrains <Ctrl-пробел> — это контекстная подсказка.

Как только мы выбрали цвет, на вертикальной полоске слева от текста тут же появляется маленький квадрат такого же цвета. Теперь можно кликнуть по нему, и откроется палитра, из которой можно выбрать вообще любой цвет.

Секреты быстрого кодинга в WebStorm

А теперь представим себе проект посложнее, небольшое приложение под node.js.
Читать полностью »

image Наверно каждый веб-разработчик слышал о шаблонизаторе Smarty (php). Но так как я частенько увлекаюсь JavaScript'ом, то решено было найти подобный шаблонизатор для этого языка, но серверного (node.js, ага). Первые ссылки в поисковике выдают такие шаблонизаторы, как: ECT, JUST, Mu. Все они, естественно, не подходили для меня, т.к. слишком далеко были от синтаксиса Smarty.

Чтож, раз хочется, а решений нет — то сделай. Выискивая время на работе и иногда получая по «шапке», родился проект NodeSmarty, который, в будущем, будет частично копировать синтаксис Smarty.

Читать полностью »

в 15:14, , рубрики: node.js, promises, метки: ,

Добрый день, Хабрахабр.

Предисловие

Была довольно простая задача: получить набор документов из базы, каждый документ преобразовать и отправить пользователю все преобразованные документы, порядок их менять нельзя, для обработки документа используется асинхронная функция. Если на каком-то документе вылезла ошибка — документы мы не отправляем, только ошибку и заканчиваем обработку документов.
Для решения задачи была выбрана библиотека Q, так как сам поход Promise мне симпатичен. Но возникла одна загвоздка, вроде бы элементарная задача, а выполняется больше секунды, а точнее 1300 мс, вместо ожидаемых 50-80 мс. Дабы разобраться, как все устроено и проникнуться асинхронностью было решено написать специализированный «велосипед» под данную задачу.

Читать полностью »

в 10:20, , рубрики: javascript, node.js, yaml, метки: , ,

Для любителей красивых конфигов — вышел JS-YAML 2.0.0, с новыми плюшками:

  • ОЧЕНЬ высокая скорость (за счет полной переделки архитектуры)
  • Добавлена возможность не только читать, но и записывать YAML-файлы
  • Поддержка спецификаций YAML 1.1 проапгрейжена до YAML 1.2

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

Читать полностью »

Между регулярными выражениями в JavaScript и регулярными выражениями PCRE (употребляющимися в Perl и в PHP) есть ряд различий, главнейшим из которых, вероятно, является отсутствие lookbehind (ретроспективной проверки) в JavaScript.

Естественной задачею программистов, раздражённых этими различиями, является внедрение PCRE в JavaScript.

На движке Node к концу нынешнего января Брайан Уайт (Brian White) решил эту задачу, создав модуль node-pcre, служащий обёрткою вокруг движка PCRE.

Этому можно порадоваться, и порадуемся.

Однако node-pcre,Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js