Обработка ошибок в JS – та еще головная боль. Не ошибусь, если скажу, что ошибки – самое слабое место всего языка. При чем проблема эта составная и состоит она из двух других проблем: сложность отлова ошибки в асинхронном коде и плохо спроектированный объект Error. Вторая, на самом, деле менее очевидная, поэтому с нее и начнем.
Читать полностью »
Рубрика «node.js» - 78
Система разработки, сочетающая ExtJS и Node.JS
2014-11-26 в 15:37, admin, рубрики: javascript, node.js, open source, Библиотека ExtJS/SenchaПриветствую, уважаемых читателей, писателей (претендующих и бывалых). Кто-то из вас скучает и очередной раз разжевывает язык (программирования). Кому-то нужно удостовериться, что именно бойлерплэйт подходит лучше других фрэймворков. При этом, кто-то совсем не по профилю, но удовлетворяет «хотелки» клиентов. Или сам удовлетворяется «на коленке» подручными средствами.
После активной работы в направлении, объединяющем всё перечисленное, возникло желание высказаться и получить обратную связь. Представляю систему разработки распределённых (online, web) деловых (офисных, бизнес) приложений — enterprise web applications, которая просто сочетает ExtJS и Node.JS.
Читать полностью »
Скрипт на NodeJS для Backup-а данных: Начало
2014-11-26 в 9:34, admin, рубрики: backup, javascript, node.jsДавно искал программу для сохранения своих проектов. При этом обязательным требованием было:
1. Сохранять в хранилище только изменившиеся файлы;
2. Упаковывать изменившиеся файлы;
3. Быть бесплатной.
Однако поиск ничего не дал. Вернее, поиск дал, но обычно один из пунктов отсутствовал. Поэтому я решил написать свою, а заодно «пощупать вживую» NodeJS. За 2 дня написал. И даже прикрутил к программе шифрование. Что не вызвало особых сложностей, так как модуль шифрования входит в стандартную поставку ноды. При этом сделал модули упаковки, шифрования и работы с хранилищем расширяемыми. Чтобы можно было просто добавлять новые возможности, расширяя функционал. В текущей версии сохранение работает только в файловую систему, без упаковки, но с шифрованием.
Посмотреть справку по использованию можно тут.
На этом можно бы и закончить – дело сделано. Но есть один минус – программа работает СИНХРОННО. И хотя работает достаточно шустро (если не сохранять гигабайты информации), но всё таки нода ориентирована на АСИНХРОННУЮ работу. Так что я посмотрел Скринкаст по Node.JS и решил сделать все по «правильному», c учетом особенностей ноды.
Читать полностью »
Node.js в огне
2014-11-22 в 22:30, admin, рубрики: express, javascript, netflix, node.js, performance, performance analysis, высокая производительностьМы создаем новое поколение веб-приложения Netflix.com, использующего node.js. Вы можете узнать больше о нашем походе из презентации, которую мы представили на NodeConf.eu несколько месяцев назад. Сегодня я хочу поделиться накопленным опытом в настройке производительности нового стека нашего приложения.
Мы впервые столкнулись с проблемами, когда заметили, что задержка запроса в нашем node.js приложении со временем увеличивается. К тому же оно использовало больше ресурсов процессора, чем мы ожидали, и это коррелировало с временем задержки. Нам приходилось использовать перезагрузку как временное решение, пока мы искали причину с помощью новых инструментов и техник аналитики производительности в нашей Linux EC2 среде.
Eskimo — Node.js бойлерплэйт для создания прототипов
2014-11-18 в 16:53, admin, рубрики: javascript, less, mangoose, mongodb, node.js, nodejs, ПрограммированиеЭскимо — новый Node.js бойлерплэйт для быстрого прототайпинга (MVP).
Даже если интернет заполнен разными бойлерплэйтами и фрэймворками, на нынешний день отсутствует современный, модульный и минимальный бойлерплэйт для запуска прототипов (специально для строительства rapid minimal product-ов «RMVP's»). Проект создается с малого, одним человеком, но потом, под влиянием вкладчиков, он растет до непредсказуемых размеров. Поиск в Google и GitHub про Nodejs бойлерплэйт и Nodejs фрэймворк дает сотни результатов.
Но многие из этих запускателей проектов не имеют автоматизации для развертывания и тестирования продуктов. Некоторые игнорируют практику фронт-энда и не используют Bower, Bootstrap, Font Awesome, S3/CloudFront, clustering и LESS. И ни один бойлерплэйт или фрэймворк не внедрили инъекцию зависимостей с помощью электролита, за исключением Эскимо и проекта Джареда Хэнсона.
Читать полностью »
Размышления о стандартной библиотеке JavaScript. Core.js
2014-11-18 в 11:57, admin, рубрики: console, Dict, ecmascript 6, harmony, javascript, map, node.js, promise, setImmediate, standard library, Веб-разработка, итераторы, стандартная библиотекаОдин пацан писал все на JavaScript, и клиент, и сервер, говорил что нравится, удобно, читабельно. Потом его в дурку забрали, конечно.
— С просторов интернета
К чему это я? Занятная штука — JavaScript. Основа современного web и на фронтэнде альтернатив как таковых не имеет.
JavaScript это, в том числе, и стандартная библиотека, о которой здесь и пойдёт речь. Под стандартной библиотекой я подразумеваю модули, конструкторы, методы, что должны присутствовать на любой платформе, будь то браузер или сервер, без лишних действий со стороны программиста, не включая API, специфичный для платформы. Даже если вы пишите не на JavaScript, а на языке в него компилируемом, скорее всего, вам придется иметь дело с его стандартной библиотекой.
Ванильная стандартная библиотека JavaScript, в целом, неплоха. Это не только стандартная библиотека по спецификации языка ECMA-262 актуальных версий — от 3 до черновика 6. Часть API вынесена в отдельные спецификации, например, API интернационализации ECMA-402. Многие возможности, без которых сложно представить JavaScript, например, setTimeout, относятся к web-стандартам. Консоль не стандартизована вовсе — приходится полагаться на стандарт де-факто.
Вот только не такая уж она и стандартная — везде разная. Есть старые IE, в которых из коробки мы получаем стандартную библиотеку ES3 90-бородатого года даже без Array#forEach, Function#bind, Object.create и консоли, и есть, например, Node.js, на которой многие уже вовсю используют возможности грядущего ES6.
Хочется иметь универсальную, действительно стандартную библиотеку, как на сервере, так и в любом браузере, максимально соответствующую современным стандартам, а также реализующую необходимый функционал, что (пока?) не стандартизован. Статья посвящена библиотеке core.js — реализация моих соображений по поводу стандартной библиотеки JavaScript. Кроме того, эта статья еще и шпаргалка по современной стандартизованной стандартной библиотеке JavaScript и заметки о её перспективах.
Содержание, или что получим на выходе:
-
Подходы
-
Часть первая: Костыли
- ECMAScript 5
- ECMAScript 6
- ECMAScript 6: Символы
- ECMAScript 6: Коллекции
- ECMAScript 6: Итераторы
- ECMAScript 6: Обещания
- Mozilla JavaScript: Статические версии методов массива
- Отложенное исполнение: setTimeout, setInterval, setImmediate
- Консоль
-
Часть вторая: Велосипеды
- Классификация данных
- Словари
- Частичное применение
- Форматирование даты
- Объектное API
- Массивы
- Числа
- Экранирование спецсимволов
-
Заключение
Вселенная npm
2014-11-18 в 8:07, admin, рубрики: javascript, node.js, npm, визуализация данных, графПривет, Друзья!
Хотел поделиться с вами своим последним мини-проектом: трехмерной визуализацией всего npm. Вселенная выглядит примерно так:

Можно летать клавишами WASD, или если вы смотрите ее из телефона — просто вращая телефон вокруг (телефон должен поддерживать WebGL).
Читать полностью »
npm для простых смертных
2014-11-16 в 12:45, admin, рубрики: javascript, node.js, npm, Веб-разработка
Эта статья предназначена для тех, кто не очень дружит с Node.js, но хочет использовать приложения вроде Grunt, Gulp и тому подобные. Процесс работы с этими приложениями подразумевает редактирование файла package.json и использование команд npm, так что понимание принципов работы npm поможет вам справиться с трудностями.Читать полностью »
Изоморфные JavaScript-приложения с Catberry.js
2014-11-12 в 5:54, admin, рубрики: catberry.js, framework, isomorphic, javascript, node.js, streaming, web-разработка, Блог компании 2ГИС, Веб-разработка, Программирование 
Catberry.js — это фреймворк для разработки изоморфных JavaScript-приложений на node.js с использованием модульной архитектуры и быстрых механизмов рендеринга. Этот фреймворк позволяет написать модуль приложения один раз и использовать его как на сервере для рендеринга страниц для поисковых роботов, так и в браузере для одностраничного приложения, запрашивая только данные для шаблонов.Читать полностью »
Meteor. Разрабатываем TODO List
2014-11-11 в 20:14, admin, рубрики: javascript, JS, Meteor, Meteor.JS, Node, node.js, todolistВ данном уроке я не хочу обсуждать, почему метеор убийца веба, тем более я так не считаю, но определенную симпатию к этому фреймворку имею. Поэтому хочу показать с чего можно начать при разработке приложения на нем, какие есть пакеты и вообще, что такое этот метеор.
Сразу хочу сказать, что у меня нет большого опыта в разработке веб приложений. Я занимаюсь этим всего около двух лет, а с метеором знаком вообще лишь пару месяцев.
Еще хочу предупредить, что урок получился достаточно объемным, но кода в нем было написано в разы меньше, чем текста. Просто хочу поделиться опытом как можно использовать метеор не при создании простенького примера, и заострить внимание на различных моментах, которые я посчитал важными. Поэтому в уроке будет использоваться множество сторонних пакетов, облегчающих процесс разработки.
И еще одно предупреждение: в данном уроке будут использоваться следующие технологии для непосредственного написания примера:
- jade — html препроцессор;
- less — css препроцессор;
- coffeescript — язык программирования, компилируемый в javascript.
Видео, демонстрирующее приложение, полученное в ходе урока
И кому все еще интересно, добро пожаловать под кат.
Читать полностью »
