Страницы

воскресенье, 6 ноября 2016 г.

MongoDB Linked List

На этой неделе появилась версия MongoDB 3.4.0 Release Candidate 2 с кучей вкусняшек на борту, которые хочется попробовать уже сейчас. Предлагаю провести дегустацию одного из самых вкусных блюд предстоящего релиза - пайпа по имени $graphLookup - с помощью которого можно выполнять поиск по коллекции рекурсивно. Напишем запрос к коллекции, документы которой имплементируют связный список. Реализация подобной структуры в текущем стабильном релизе на мой взгляд вообще не вариант, и я рад что уже совсем скоро смогу рассчитывать на нее в процессе проектирования.

вторник, 1 ноября 2016 г.

суббота, 1 октября 2016 г.

Что еще почитать по JavaScript

С момента предыдущей публикации по теме мне удалось прочитать следующую литературу по JavaScript: Functional Programming in JavaScript by Luis AtencioFunctional Programming in JavaScript by Dan Mantyla и Professor Frisby's Mostly Adequate Guide to Functional Programming. Кроме того: High Performance Browser Networking - "must read" мануал для веб-разработчика, Out of the Tar Pit - вкуснейшая статья на холиварную тему "imperative vs. declarative" и Designing Data-Intensive Applications - я прочитал так называемый "Early Release" т.к. книга пока еще не издана, когда выйдет в тираж обязательно познакомлюсь с материалом не вошедшим в "раннее издание".

суббота, 3 сентября 2016 г.

VS Code Node.js Debugging

В VS Code есть встроенный дебаггер, но не смотря на то, что я использую этот инструмент уже давно, Node.js код я дебажу с помощью node-inspector. Сначала запускаю дебаггер: node-inspector --web-port 8088 --save-live-edit true --preload false, затем приложение: node --debug app или node --debug-brk app (по ситуации), после чего открываю в браузере интерфейс дебаггера по адресу http://127.0.0.1:8088/?ws=127.0.0.1:8088&port=5858. Расскажу как я пытался перейти на встроенный дебаггер VS Code.

пятница, 19 августа 2016 г.

Node.js HTTP/2

На прошлой неделе среди разработчиков Node.js началось обсуждение реализации протокола HTTP/2. Ждать появления HTTP/2 в Node.js core еще очень долго, но уже сейчас можно затестить фичи этого протокола с помощью модуля node-spdy, который работает как с протоколом SPDY - предшественником HTTP/2, который кстати Google Chrome больше не поддерживает, так и с HTTP/2, обязательно поверх TLS. Расскажу как я тестил фичу по имени HTTP/2 Server Push.

вторник, 9 августа 2016 г.

JavaScript trampolining

Самой ожидаемой фичей ES6 для меня остается proper tail calls (уже рассказывал об этом), которая на сегодня в V8 так и не реализована. Далее покажу один из способов эмуляции "правильного" вызова tail-recursive функций с помощью одного приема по имени trampolining. Название не очень отражает суть, я бы назвал эту технику "развинчивание стэка вручную". Для примера возьмем "традиционную" рекурсивную реализацию функции, возвращающей факториал:

четверг, 4 августа 2016 г.

JavaScript curry

Случилось мне недавно каррировать функцию. Наверное проще было бы заимствовать уже готовый вариант у специально предназначенных для подобных практик инструментов - Lodash или Rambda, но мне этот вопрос показался тривиальным и вряд ли заслуживающим более 30 секунд времени на реализацию. Высказывание уважаемого Douglas Crockford отражает суть: "The making of good software takes time. If you try to make it take less time, it will take more time.".

суббота, 9 июля 2016 г.

VS Code with Tabs

Свершилось чудо! Вчера вышла версия 1.3 текстового редактора Visual Studio Code с поддержкой вкладок! Я использую VS Code уже около года, и отсутствие вкладок было единстенным неудобством этого инструмента. Конец моим страданиям и разочарованиям. Из расширений у меня установлены ESLint и Go, что позволяет вполне комфортно работать с Node.js и Go, в случае необходимости можно найти еще. В общем мелкомягким зачет, хороший инструмент, мне нравится.

пятница, 8 июля 2016 г.

ES6 split unicode string

Вчера увидел пост о том, как разбить строку в массив символов юникода с помощью регулярного выражения. Хотел было предложить автору попробовать использовать спред, но он волшебным образом меня опередил и в постскриптуме привел результаты своих тестов, которые показывают более высокую производительность регулярного выражения против спреда. По теме производительности JavaScript хочу предложить пару на мой взгляд наивкуснейших материалов: блог Вячеслава Егорова, а также свежее видео его доклада на конференции HolyJS 2016.