Рубрика «javascript» - 223

Всем привет, уважаемые читатели.

Многие из вас так или иначе имели дело с Node.js. Наверное, не имеет смысла рассказывать о том, какие преимущества есть у JavaScript и у его серверной реализации в частности. В настоящий момент я много всего делаю на JS, начиная от простых консольных скриптов и заканчивая API, сервисами и сайтами. Современный стандарт EcmaScript принес значительные изменения в язык: он не только исправил некоторые древние «косяки» JS, но и добавил новые возможности, позволив, в частности, красиво избавиться от Callback Hell.

Когда передо мной в очередной раз встала задача развернуть простой сайт, состоящий из нескольких десятков страничек, мне захотелось сделать это при помощи какой-нибудь легковесной, но современной CMS, основанной на Node. Оценив обстановку, я понял, что ничего подходящего до сих пор нет. Мой старый и добрый Taracot оказался для этой задачи слишком тяжелым, к тому же, он не работает с современными версиями Node и перегружен функционалом.
Читать полностью »

image

Поток — это концепция, которая была сначала реализована в UNIX системах для передачи данных из одной программы в другую в операциях ввода/вывода. Это позволяет каждой программе быть очень специализированной в том, что она делает — быть независимым модулем. Сочетание таких простых программ помогает в создании более сложных систем путем «объединения» их в цепочку вызовов.

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

Распространенная задача — парсинг файла большого объема. Например, в текстовом файле с данными логов нужно найти строку, содержащую определенный текст. Вместо того, чтобы файл полностью загрузить в память, и потом начать разбирать в нем строки в поисках нужной, мы можем его считывать небольшими порциями. Тем самым не занимаем память сверх необходимого, а лишь столько памяти, сколько нужно для буферизации считанных данных. Как только найдем требуемую запись, сразу прекратим дальнейшую работу. Или можем передать найденную запись в другой поток по цепочке, например, для преобразование в другой формат, или сохранения в другой файл.

Модуль stream предоставляет базовый API по работе с потоками в Node.JS. Документации Node.JS вполне достаточно, чтобы разобраться в данном вопросе, но мы попытаемся составить что-то вроде шпаргалки с пояснениями некоторых моментов.
Читать полностью »

Выбор JavaScript-фреймворка для вашего веб-приложения может оказаться не простой задачей. Не так давно у таких популярных фреймворков, как Angular и React, появился завоевывающий сердца разработчиков конкурент – VueJS. И что самое главное: это далеко не полный список существующих фреймворков.

Тогда, спросите вы: «И как же нам быть, ведь большинство статей, в которых приводятся недостатки и преимущества фреймворков – это дело субъективное». В данной статье я постарался дать как можно более объективное мнение.

Наши участники: Angular, React и Vue

Сравниваем Angular, React и Vue в 2017 году - 1

Во-первых, мне бы хотелось рассмотреть жизненный цикл и стратегические критерии фреймоворков. Далее мы перейдем к их особенностям и принципам работы. Ну и в завершении сделаем выводы и проголосуем за свой выбор.

Вот примерный список вопросов:

  • Насколько «зрелыми» являются данные фреймворки/библиотеки?
  • Насколько велика вероятность того, что они останутся на плаву в ближайшее время?
  • Насколько их комьюнити большие и будут ли они полезными?
  • Насколько просто найти разработчиков, использующих данные фреймворки/библиотеки?
  • Каковы принципы программирования для каждого из них?
  • Насколько просто применять данные фреймворки для разработки большихмаленьких приложений?
  • Сколько времени займет изучение каждого?
  • Какая производительность?
  • Насколько просто начать разрабатывать приложения с их помощью?

Готовы? Тогда начинаем!
Читать полностью »

iOS Safari 11 теперь умеет WebRTC - 1

Пару недель назад состоялся релиз новых айфонов и iOS 11, который невозможно было не заметить. C релизом произошло еще одно, безусловно важное для разработчиков, событие: в браузере Safari появилась долгожданная поддержка WebRTC.

Вообразите на минуту, миллионы айфонов и айпадов по всему миру стали уметь реалтаймовое аудио и видео в браузере. Пользователям iOS и Mac стали доступны полнофункциональные браузерные видеочаты, воспроизведение живых трансляций с низкой (менее секунды) реалтаймовой задержкой, звонки, конференции и многое другое. К этому долго шли и наконец это случилось.
Читать полностью »

Redux — технология относительно молодая. Чётких правил что, как и где использовать нет.
Есть рекомендации, но и их не все читают. Очень многие вообще используют Redux исключительно потому что «все так делают», что зачастую сводит его полезность к нулю, или вообще просто бессмысленно усложняет приложение и добавляет ему лишних ошибок.
Возможно, то что я здесь пишу, покажется для очень многих очевидным, но лично для меня таковым это не было — до всего пришлось доходить изрядно потоптавшись по граблям. И, как я сейчас замечаю, не только для меня: в последние полгода мне пришлось доделывать или модифицировать несколько начатых другими людьми проектов на React и ReactNative, которые использовали Redux.

И, так как заботливо разложенные грабли, которые пришлось вычищать из этих проектов, были практически те же самые, мне захотелось рассказать об этом.
Читать полностью »

Недавно мы опубликовали материал «Промисы в ES6: паттерны и анти-паттерны». Он вызвал серьёзный интерес аудитории, в комментариях к нему наши читатели рассуждали об особенностях написания асинхронного кода в современных JS-проектах. Кстати, советуем почитать их комментарии — найдёте там много интересного.

image

По совету пользователя ilnuribat мы добавили к материалу опрос, целью которого было выяснить популярность промисов, коллбэков и конструкций async / await. По состоянию на 9-е сентября промисы и async / await получили примерно по 43% голосов, с небольшим перевесом async / await, коллбэкам досталось 14%. Главный вывод, который можно сделать, проанализировав результаты опроса и комментарии, заключается в том, что важны все имеющиеся технологии, однако, всё больше программистов тяготеют к async / await. Поэтому сегодня мы решили опубликовать перевод статьи про переход на async / await, которая является продолжением материала о промисах.
Читать полностью »

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

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

А нам это удобнее, т.к. номера мобильных у нас уже есть (у нас есть сотни абонентов, желающих получать уведомления :), а chat id еще найти надо, да еще и для каждого свой.

Решение: небольшой чат-бот.

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

Оптимизация ES2015 Прокси в V8 - 1

Это перевод поста из официального блога JS-движка V8. Статья короткая, текста мало, больше похоже на увлекательный рассказ о проблемах, подстерегающих ни о чём не подозревающих сотрудников Google в коде V8. Речь пойдёт об ускорении обработки ES6 Прокси в V8, которое будет доступно в Chrome 62 и Node v9.x, и совсем немного о том, как лучше применять прокси для получения максимальной скорости работы.

Введение

Прокси появились в JavaScript с принятием стандарта ES2015. Они позволяют перехватывать фундаментальные операции объектов и переопределять их поведение. Прокси являются основой таких библиотек, как jsdom или Complink RPC library. В последнее время мы приложили много усилий, чтобы улучшить производительность прокси в V8. Эта статья проливает немного света на общие подходы к улучшению производительности в V8 и для прокси в частности.

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

Как подключить WebRTC к Zoom и звонить в 2 раза дешевле - 1

Сервис Zoom штурмом взял индустрию видеоконференций — просто потому, что ребята смогли предложить хорошее качество видео и «всегда работает». У конкурентов и первое, и второе как-то не клеилось. Кто пробовал сделать в Skype или аналоге видеоконференцию на пять и более человек, меня поймет. Авторы сервиса адекватно оценивают его популярность и «премиум» возможности предлагают недешево: возможность подключать к конференциям участников с обычными телефонами стоит от 100 долларов в месяц. Зато SIP-подключение стоит в два раза дешевле. И под катом я хочу показать, как подключать к подобным сервисам Voximplant, чтобы в несколько строк JavaScript-кода получать недорогие звонки по всему миру и нашу голосовую автоматику.
Читать полностью »

В прошлой статье обещал, что эта будет про сообщества и плагины, но потом решил, что правильней будет сначала рассказать о том, как в данных фреймворках рисуются карты. Начну с Openlayers, потом Leaflet, потом его плагины.

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


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