Обновить
256K+

JavaScript *

Прототипно-ориентированный язык программирования

263,58
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Export to Excel from JS

Время на прочтение2 мин
Охват и читатели73K

Введение


Всем привет! Сегодня я опишу довольно тривиальную, но нигде не освещенную тему экспорта из страницы данных в Excel. На мое удивление сам процесс не описан нигде в полной мере. Итак, приступим.
Читать дальше →

9 советов по улучшению качества кода React-приложений

Время на прочтение9 мин
Охват и читатели23K
Библиотека React значительно облегчает жизнь разработчиков, которым приходится создавать сложные пользовательские интерфейсы. Программисту достаточно подготовить простые описания графических представлений для состояний приложения, а React, при изменении данных, будет эффективно обновлять и перерисовывать только те компоненты, на которые повлияли эти изменения. Однако, для того, чтобы создавать качественные проекты на React, программисту нужно приложить усилия, направленные на освоение этой библиотеки и вспомогательных средств разработки.

image

Автор статьи, перевод которой мы сегодня публикуем, хочет поделиться с аудиторией React-разработчиков девятью полезными советами, направленными на повышение качества кода. Эти советы затрагивают довольно широкий диапазон тем — от инструментальных средств до стиля программирования.
Читать дальше →

Сложный колл-центр на JavaScript

Время на прочтение4 мин
Охват и читатели8.4K

Хорошо сделанный колл-центр приносит пользу: подтверждает заказы, напоминает о конференциях и доставке готовой еды. У нас в Voximplant есть модуль ACD и концепция очередей, с их помощью на платформе можно за пару часов собрать простое решение для распределения звонков. Почему «простое»? Действительно сложные решения сильно отличаются друг от друга, невозможно сделать модуль, который бы подошел «всем и сразу из коробки». Однако есть проверенная в бою схема, по которой клиенты реализуют логику очередей на своем бэкенде, а наше облако помогает с маршрутизацией входящих звонков и аналитикой. Под катом небольшая пошаговая инструкция: как и зачем делать колл-центры на сотню операторов «под себя». «Схема рабочая, инфа 100%» (с)
Читать дальше →

SvelteJS: Релиз второй версии

Время на прочтение6 мин
Охват и читатели13K
Буквально вчера вышла 2-я версия молодого, но весьма многообещающего фреймворка SvelteJS. Версия мажорная, а значит содержит не только новые фичи и исправленные баги, но и соответствующие «breaking changes». Что новенького предлагает разработчикам новая версия и почему Svelte стал еще лучше, читайте под катом.
image
Читать дальше →

Ещё один инструмент для проверки ваших npm зависимостей — wtfwith

Время на прочтение6 мин
Охват и читатели9K
Вы как-нибудь задумывались, сколько версий одной и той же библиотеки затягивает ваша клиентская или серверная сборка? Мне вот в какой-то момент стало интересно. Навскидку найти для этого готовый инструмент не получилось, а смотреть глазами package-lock слишком утомительно. Как мы знаем — в любой непонятной ситуации нужно писать свой npm пакет, поэтому я именно это и сделал… Дальше в посте я рассмотрю результат анализа живого проекта и сделаю пару спорных выводов.

Ну и никак нельзя обойтись без этой классической картинки:

Читать дальше →

Асинхронные циклы и Stream API в Node.js 10

Время на прочтение4 мин
Охват и читатели23K


В этом месяце выходит десятая версия Node.js, в которой нас ждет изменение поведения потоков (readable-stream), вызванное появлением асинхронных циклов for-await-of. Давайте разберемся что это такое и к чему нам готовиться.

Читать дальше →

Dagaz: Ищем таланты

Время на прочтение18 мин
Охват и читатели3.3K
imageДелай с нами,
делай, как мы,
делай лучше нас!

Телепередача 80-ых


Должен признаться, я не очень хорош в разработке ботов. Уверен, есть люди, умеющие это делать гораздо лучше меня. И я бы очень хотел, чтобы такие люди присоединились к проекту. В плане материального поощрения, предложить я могу немногое. Dagaz был задуман как бесплатная и общедоступная альтернатива Zillions of Games. Сам я не против его коммерческого использования, просто пока не придумал, как это можно сделать.

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

Классическое наследование в JavaScript. Разбор реализации в Babel, BackboneJS и Ember

Время на прочтение11 мин
Охват и читатели15K
В этой статье мы поговорим о классическом наследовании в JavaScript, распространённых шаблонах его использования, особенностях и частых ошибках применения. Рассмотрим примеры наследования в Babel, Backbone JS и Ember JS и попытаемся вывести из них ключевые принципы объектно-ориентированного наследования для создания собственной реализации в EcmaScript 5.

Статья для тех, кто знаком с наследованием в других языках и сталкивался с попытками эмулировать подобное поведение в JavaScript, а также для тех, кому интересно заглядывать «под капот» различных библиотек и фреймворков, сравнивая их реализацию. Оказывается, простую функцию extend можно реализовать очень по-разному. Нередко при этом допускаются ошибки (см. пункт «Самая распространённая ошибка» ниже).
Читать дальше →

Побег из ада async/await

Время на прочтение6 мин
Охват и читатели43K
Совсем недавно конструкция async/await в JavaScript выглядела как отличное средство для избавления от ада коллбэков. Однако неосмотрительное использование async/await привело к появлению нового ада.

Читать дальше →

JavaScript, Java, какая теперь разница?

Время на прочтение12 мин
Охват и читатели32K



На прошлом JPoint пообещал написать статью про использование GraalVM для смешивания Java и JS. Вот она.


В чем проблема? В повседневной практике часто встречаются приложения, состоящие из двух частей: JavaScript-фронтенд и Java-бэкенд. Организация интеропа между ними требует усилий. Как правило, делают их люди с разных сторон баррикад, и при попытке залезть в чужую область они начинают страдать. Еще есть фуллстек веб-разработчики, но про них всё понятно: они должны страдать всегда.


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

Читать дальше →

Бешеные псы: Angular 2 vs React

Время на прочтение19 мин
Охват и читатели26K
Встречайте, противостояние двух фреймворков: Angular и React в формате поединка на примере конкретного простого приложения. За Angular выступает Евгений Гусев (@bunopus), за React — Илья Таратухин (@ilfa). Чтобы сделать честные выводы, они сначала поменялись технологиями и попробовали развернуть базовый проект. Старт на React породил множество проблем, а вот с Angular дело обстояло гораздо проще, потому что это идеальное приложение для человека, который не особенно работал с фронтендом. Но, конечно, это было только начало, дальше пошел настоящий спор, все этапы которого под катом


Оптимизируем (debounce) срабатывание событий в React

Время на прочтение1 мин
Охват и читатели8.4K

Вышел перевод видео с канала Manorism. В этот раз ничего нового. Наоборот, вспоминаем "старое" и оптимизируем частоту срабатывания событий с помощью "дебаунс" (debounce).


Читать дальше →

[Екатеринбург, анонс] UralJS #7 — три доклада о React Native, удобной навигации в SPA и принципах работы с DateTime

Время на прочтение2 мин
Охват и читатели1.9K

image


В четверг 19 апреля в 19:00 в лофте «Титры» пройдет седьмой митап UralJS. Обсудим, как React Native открыл JavaScript-программистам мир мобильной разработки, а потом отвлечемся от конкретных технологий и порассуждаем, что такое хорошая навигация, и как разработчики на самом деле должны работать с датами и временем.


Вот подробное описание докладов:

Читать дальше →

Ближайшие события

[1] + [2] — [3] === 9!? Исследование внутренних механизмов приведения типов в JavaScript

Время на прочтение7 мин
Охват и читатели19K
JavaScript позволяет выполнять преобразование типов. Если это делают намеренно, то перед нами — явное приведение типов (type casting или explicit coercion). В том случае, когда это производится автоматически, при попытке выполнения каких-либо операций над значениями различных типов, это называют неявным приведением типов (coercion или implicit coercion).
Автор материала, перевод которого мы сегодня публикуем, предлагает взглянуть на то, как выглядит явное и неявное приведение типов на низком уровне. Это позволит всем желающим лучше понять процессы, скрытые в недрах JavaScript и поможет дать аргументированный ответ на вопрос о том, почему [1] + [2] — [3] === 9.

Читать дальше →

getDerivedStateFromState – или как сделать из простой проблемы сложную

Время на прочтение6 мин
Охват и читатели47K
Я люблю Реакт. Люблю за то, как он работает. За то, что он делает вещи «правильно». HOC, Composition, RenderProps, Stateless, Stateful – миллион патернов и антипатернов которые помогают меньше косячить.

И вот совсем недавно React принес нам очередной подарок. Очередную возможность косячить меньше — getDeviredStateFromProps.

Технически — имея статический мапинг из пропсов в стейт логика приложения должна стать более проста, более понятна, тестируема и так далее. По факту многие люди начали топать ногами, и требовать prevProps обратно, не в силах (или без особого желания) переделать логику своего приложения.

В общем разверлись пучины ада. Ранее простая задача стала сложней.


Читать дальше →

Дайджест свежих материалов из мира фронтенда за последнюю неделю №310 (9 — 15 апреля 2018)

Время на прочтение3 мин
Охват и читатели17K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
Кстати, на днях дайджесту исполнилось 6 лет. Спасибо, что все еще читаете.

Читать дальше →

Совершенствуем Redux

Время на прочтение5 мин
Охват и читатели29K
Привет, Хабр! Представляю вашему вниманию перевод статьи "Redesigning Redux" автора Shawn McKay.

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

  • Вам действительно необходима библиотека для управления состоянием?
  • Заслужил ли Redux свою популярность? Почему или почему нет?
  • Можем ли мы придумать лучшее решение? Если да, то какое?

Необходима ли библиотека для управления состоянием?


Front-end разработчик не тот, кто попросту передвигает пиксели из стороны в сторону; истинное искусство в знании где хранить состояние. Это кажется сложным только на первый взгляд.

Давайте рассмотрим возможности, которые предоставляет нам React:

image
Читать дальше →

Операционная система на JavaScript? JsOS

Время на прочтение3 мин
Охват и читатели51K

Приветствую, хабровчане!


Как вы думаете, можно ли создать полноценную операционную систему на языке программирования JavaScript, с которой можно загружаться?


Правильный ответ — можно!


image


Сегодня я хочу рассказать вам про проект JsOS.

Читать дальше →

Мышление в стиле Ramda: Декларативное программирование

Время на прочтение8 мин
Охват и читатели13K
1. Первые шаги
2. Сочетаем функции
3. Частичное применение (каррирование)
4. Декларативное программирование
5. Бесточечная нотация
6. Неизменяемость и объекты
7. Неизменяемость и массивы
8. Линзы
9. Заключение

Данный пост является четвёртой частью серии о функциональном програмировании под названием «Мышление в стиле Ramda».

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

Когда мы начинаем писать маленькие функциональные строительные блоки и объединять их, мы обнаруживаем, что нам необходимо написать множество функций, которые будут оборачивать операторы JavaScript, такие как арифметика, сравнение, логика и управление потоком. Это может показаться утомительным, но мы находимся за спиной Ramda.
Читать дальше →

Блеск и нищета Java для настольных систем

Время на прочтение6 мин
Охват и читатели49K
image

Вы не поверите, но в 2018 году всё ещё нужно разрабатывать Desktop приложения.

Представьте себе такой клуб анонимных Java программистов, запойных и беспробудных, которые сидят и делятся своими проблемами.

— Здравствуйте, меня зовут Юрий, я пишу Desktop приложения в 2018 году.
— Здравствуй, Юрий, давайте ему похлопаем, он смог поделиться своей проблемой!

Да, действительно, мы всё ещё пишем Desktop приложения. Обычно, не очень хочется этим заниматься, чаще всего это legacy проекты. Но бывает, что нужно писать и новые настольные приложения.

Зачем мы всё ещё это делаем, если есть web с его новыми продвинутыми возможностями: Progressive Web Apps, Service Worker, Web RTC, Web GL и т.д?

Под катом расскажу как с этим жить и при чём тут Java.
Читать дальше →