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

RESTful Visual Editor - 1

Всем привет!
Хочу представить вам собственную разработку для создания API-документации. Она еще немного «сыровата», поскольку я уделил ей всего неделю, кроме того, я не являюсь веб-разработчиком. Однако на данном этапе, с целью написания API-документации для своего будущего проекта, она меня полностью устраивает.

Сама разработка находится на GitHub: github.com/gatools/restful-visual-editor

Заинтересовавшихся — милости прошу под кат.
Читать полностью »

1. C чего всё началось

Недавно у меня возникла необходимость написать очередную утилиту, обрабатывающую текстовый файл в формате, похожем на упрощённый BBCode, а именно в формате исходников для словарей ABBYY Lingvo — DSL (Dictionary Specification Language). (Не путать с другим DSL (Domain-specific language) — интересный случай, когда гипоним является омонимом к гиперониму).

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

Одной из задач утилиты было как раз нахождение этих тегов с исключением экранированных сочетаний.

Поскольку в регулярных выражениях JavaScript с недавнего времени можно пользоваться lookbehind assertions (в личных целях), я подумал, нельзя ли реализовать поиск при помощи этого средства, — тем более что в данной разновидности lookbehind можно использовать выражения переменной длины. Читать полностью »

Последние полгода всем знакомый интерфейс поисковой выдачи Яндекса (Search Engine Result Page — SERP) переезжает на новую архитектуру, с которой разработка неспецифичных фич становится очень быстрой, а разработка специфичных фич — прогнозируемой. Для большой распределенной команды из 40 фронтендеров это большой успех. Когда все было почти готово и новый код начали обкатывать в production экспериментах, оказалось, что серверная JS-шаблонизация в новой архитектуре ощутимо замедлилась.

Профилирование JS-кода из функций. Опыт Яндекса - 1

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

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

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

Привет!

Мы на Хекслете закончили полный цикл курсов по обучению PHP-программистов и переключились на стек JavaScript. Первые два курса новой программы уже доступны, и они бесплатные!

Курс «Основы программирования» — это знакомство с миром разработки и языком JavaScript. Курс рассчитан на новичков без опыта в программировании, но будет полезен и многим практикующим программистам, потому что покрывает таки темы как рекурсивные и итеративные процессы, чистые функции и побочные эффекты, автоматические тесты и модульное тестирование.

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

image

Не так давно наткнулся на детище GitHub'а — Atom. И сразу заинтересовался тем, какие технологии использовались для создания этого редактора. И, как выяснилось, в основе основ лежит Electron — Chromium и node.js в одной коробке. Естественно, решил посмотреть что это за зверь такой, зацепив при этом еще парочку технологий, неведомых для меня на тот момент — TypeScript, SASS и Jade (ныне Pug). Над идеей для приложения даже не думал — это будет консольная версия всем известного сервиса — Todoist.

Кому интересно — добро пожаловать под кат.

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

Новая конференция для всех, кому интересен JavaScript - 1

Всем привет.

5 июня мы вместе с SPb Frontend проведем в Питере большую конференцию по JavaScript во всех его проявлениях: клиентский и серверный, библиотечный и сам-по-себе, олдскульный и авангардный.

Конференция называется HolyJS (неплохо, правда?).

Сайт конференции: http://holyjs.ru

Докладов будет около 20, параллельных залов — 3.

Среди подтвержденных докладов:

  • Известный технический блогер, фанат Clojure и автор DataScript Никита tonsky Прокопов сделает доклад о том, как организовать работу с состоянием и данными приложения в условиях распределенности, плохой связи и сложной структуры;
  • Легенда ASP.NET Дино Эспозито объяснит о том, как аккуратно (умнее, чем через user agent) определять клиентские устройства, чтобы адаптировать под них UI/UX;
  • Руководитель фронтенд-разработки в Avito и автор basis.js Роман Дворнов сделает доклад о CSSO — инструменте для минификации CSS;
  • Виктор Грищенко расскажет про Swarm — инструмент для синхронизации данных между разными устройствами;
  • Денис Мишунов расскажет о психологических и технических приемах и примерах, позволяющих управлять восприятием пользователя и помогают сделать ваш сайт «быстрым» в юзерском понимании.

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

Регулярные выражения в JavaScript понемногу догоняют PCRE.

Недавно упомянутая возможность lookbehind перешла на стадию флага --es_staging.

Разработчики V8 также начали добавлять в регулярные выражения свойства Юникода (см. общее описание и спецификацию этой характеристики символов).

В продвижении lookbehind и character properties, на мой взгляд, есть две разницы: первая возможность вводит совсем немного нового синтаксиса по сравнению со второй, зато вторая меньше изменяет поведение всего процесса (сравните количество затрагиваемых изменениями файлов в исходниках V8 по двум упомянутым ссылкам). По сути, свойства Юникода — всего лишь удобные сокращения, синонимы для разных групп codepoint-ов, поэтому от них можно ожидать минимум подвохов при интеграции в систему.

Конечно, обе возможности не советуют применять в продукции (кроме Google Chrome, они нигде в браузерах не реализованы, а Node.js только-только переходит на соответствующую им версию V8, в которой они всё равно пока под флагами).

Но для личных нужд (утилиты по обработке текста и т.д.), мне кажется, они вполне применимы. Возможно, коду разработчиков V8, даже экспериментальному, можно порой доверять с ничуть не большим риском, чем разнообразным библиотекам на npmjs или GitHub.Читать полностью »

Раньше ты был счастливым front-end разработчиком — верстал странички, подключал к ним AngularJS и даже оседлал Gulp. Но истерия вокруг NodeJS не прошла мимо тебя и в один не очень прекрасный день ты решил сделать свой проект на Node. И все шло прекрасно, проект отлично работал по адресу localhost:3000 и это странное сладостное чувство «full stack разработчик» легким перышком щекотало твою душу. До тех пор, пока в твоей голове не возник вопрос о хостинге.
Ведь тебе никто не сказал, что мифический «full stack» должен знать не только front и back, но и уметь настроить сервер, установить нужные пакеты, задеплоить и собрать проект.
То чувство, когда тебя предали… Вытесняя тяжелые мысли ты стал искать статьи в интернете и наткнулся на этот текст.Читать полностью »

в 6:17, , рубрики: eslint, javascript, jscs, node.js, метки: ,

Мы наконец-то выпустили JSCS версии 3.0, и надо сказать, что помимо энтузиазма, мы испытываем еще и некоторую грусть. Над новой мажорной версией мы работали много и долго, это было довольно интересно и местами захватывающе. Грустно от того, что это будет последней версией JSCS.

С помощью вас, JavaScript разработчиков, которые помогали JSCS, проект смог достичь успеха. Около 5 тысяч звезд на гитхабе и более 27 тысяч скачиваний npm пакета в день. Тем не менее, мы приняли решение не выпускать новых мажорных версий и впоследствии прекратить работу над проектом.
Читать полностью »

image

Добра всем!
Electron — эта такая забавная штука, про которую мало статей на хабре(сходу нашел только habrahabr.ru/post/272075 и habrahabr.ru/post/278951). Давно хотел написать что-нибудь такое-эдакое, вот руки и дошли — заодно и одним велосипедом в мире станет больше.

Итак, если вкратце: electron — это такой гибрид node.js и chromium'а. Зачем? Очень разнообразный диапазон применений — мощное GUI(html/js/css), нехилая расширяемость(в том числе с возможностью использования других языков вроде C++ или C#), всякие приятности вроде jQuery и т.д. В-общем, удобная штука для разработки и дистрибуции standalone кроссплатформенных приложений.
Теперь о приложении. Оно реализует базовый пример расширения функционала стороннего сайта, базовые принципы работы с Raphael.js(графическая библиотека для отрисовки/анимации svg), Dancer.js(библиотека для визуализации звука, в данном случае — получения audio waveform).

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


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