Робимо проект на Node.js з використанням Mongoose, Express, Cluster. Частина 2.1

Введення
Здраствуйте, дорогі хабровчане! Сьогодні у нас в основному будуть маленькі зміни, але багато змін. У цій частині ми будемо:
  • Створювати свій логгер
  • Записувати в лог запити і час їх обробки
  • Виправляти помилки, які ми допустили в першій частині.
  • Розбиратися з авторизациеей
  • Розбиратися з деякими класами
  • Конфіги!

Читати далі →

42 рядка коду для виходу з лімба

Ви ж знаєте, як це буває: великий проект довго проектується, довго пишеться, часом вимучується і зрештою здається. Проходить місяць іншої «гарячої налагодження», і після настає побожна тиша. Від замовника нічого не чути. І не тому що він розорився завдяки вашим зусиллям; рахунки за телефон у нього не оплачені, а інтернет давно відключений, немає) Просто у нього все працює в штатному режимі.

Але в один прекрасний день…
Читати далі →

Номенклатура JavaScript (в контексті Node.js і Web API)

I. Передісторія
Я багато років використовую UltraEdit як редактор на різні випадки життя. Одна з основних причин — швидка робота з гігабайтними файлами без завантаження їх у пам'ять. Для програмування на JavaScript він теж досить зручний, ось тільки з одним істотним недоліком: автодоповнення в ньому грунтується на досить бідному, жорстко заданому списку ключових слів і глобальних змінних, до того ж відстає від розвитку мови. Як-то я задався питанням, чи можна поповнити цей список повним переліком всіх готових властивостей і методів, які тільки можна ввести в контексті Node.js і Web API (браузера). Де б такий список можна роздобути? Мені приходили в голову такі варіанти:
  1. Готовий перелік, ким-то складається та оновлюється для загального користування, на зразок бібліотеки globals, але повніше.
  2. Парсинг документації (специфікація ECMAScript, сайти MDN і Node.js тощо), вручну або програмно.
  3. Отримання списку метапрограммированием.

Читати далі →

Пишемо свій перший плагін для Brackets

Brackets — це безкоштовний редактор від Adobe з відкритим кодом, який полюбився веб-розробникам із-за своєї кілер-фічі Extract з PSD-файлів. Brackets підтримує систему плагінів-розширень на основі JS. Про процес розробки одного з таких плагінів я й хотів би розповісти.
Читати далі →

Я заглянув у теку node_modules, і ви не повірите, що сталося

Історія left-pad пробрала JavaScript-співтовариство до самих кісток. В той час, як набряклий код продовжує сповільнювати наші сайти, садити наші батареї і робити наш npm install повільним, багато розробники вирішили провести ретельний аудит залежностей, які вони привносять у свої проекти. Настав час, щоб ми як спільнота встали і сказали: досить! Це співтовариство належить всім нам, а не тільки жменьці JavaScript-розробників з шикарними довгими волоссям.
Я вирішив описати свій досвід в області аудиту залежностей мого проекту, і я сподіваюся, що ця інформація буде корисною.
Читати далі →

Телепатія на стероїдах в js/node.js

imageЕтап підтримки продуктів забирає багато сил і нервів. Шлях від «я натискаю а воно не працює» до вирішення проблеми, навіть у першокласного телепата, може займати багато часу. Часу, протягом якого клієнт/начальник буде злий і невдоволений.

Щоб скоротити час рішення проблеми потрібно оперативно дізнаватися про помилки, мати як можна більш точну інформацію про те, що до неї призвело і, бажано, збирати всі разом.

Про своє рішення я і розповім під катом.

Читати далі →

До дня народження Далай-лами

Вчора я йшов кудись по місту і раптом замислився, як можна реалізувати на JavaScript поділ рядка з символів за допомогою регулярного виразу і з повним урахуванням Юнікоду.

Після переходу від Perl до JavaScript багато років тому, я відчував за свій новий мову певний комплекс неповноцінності через недостатню підтримку Юнікоду. За весь той час, поки JavaScript робив у цьому напрямку свій великий стрибок (при переході від ES5 до ES6), у мене в закладках залишилося кілька хороших статей.

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
JavaScript has a Unicode problem
Unicode-aware regular expressions in ECMAScript 6
ES6 Strings (and Unicode ) in Depth

В останній з них пропонувався рецепт розбиття рядка на символи з урахуванням Unicode за допомогою нового оператора
...

Читати далі →

Мова опису шаблонів Snakeskin

Snakeskin
This is Frank, a snake-cowboy who loves templates.


Привіт! Хочу розповісти про свою розробку   мовою програмування текстових шаблонів «Snakeskin». Проектом більше трьох років, всіма дитячими хворобами, я гадаю, він благополучно перехворів (і вилікувався), тому хочу поділитися результатом.
Демка
Основний репозиторій
Документація
Плагіни для Gulp, Grunt, Webpack і інше
Gitter   тут можна задати будь-яке питання
Читати далі →

Jii: Масштабований комет сервер і клієнт

Продовжую серію статей про Jii Framework. Сьогодні настав момент релізу комета, про яке я розповім в цій статті.



Jii-comet — це масштабований, готовий до високих навантажень і поганого інтернету транспорт, реалізує постійний зв'язок між клієнтом і сервером для миттєвого обміну даними.

Jii-comet надає набір компонентів і класів, які спрощують обмін повідомленнями між каналами, передплати на них, обміну даними між серверами і так далі. Сам модуль не вміє доставляти повідомлення на клієнт і назад, але в ньому закладена абстракція, щоб це можна було робити будь-який з існуючих популярних бібліотек (наприклад, socket.io, sockjs), а так само щоб це було надійно і масштабируемо.

Читати далі →

Jii: Повноцінне додаток з архітектурою Yii2 в браузері

Привіт всім хабровчанам, любителям Yii та Node.js. Продовжую серію статей про Jii, цього разу настала черга розповісти про те, що Jii можна використовувати в браузері.


Уявіть, вже зараз всі структури фреймворку, такі як програми, компоненти, контролери, модулі, моделі, подання доступні в браузері!

Читати далі →