Обновить
256K+

JavaScript *

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

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

IMaskjs — 3 года в Open Source

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

Всем привет!

Прошло 3 года с тех пор, как я начал работу над библиотекой imaskjs. Хотя opensource — это бесконечный процесс, но можно сказать что в целом работа закончена и перешла в вялотекущий багфикс. На данный момент я сделал все что хотел, других идей нет, разве тесты пописать, но лень.

Это был нелегкий путь: много раз я хотел все бросить, и много раз считал, что все уже идеально. Сейчас все успокоилось и я могу со спокойной душой и чистой совестью вспомнить как это было и пофилософствовать на тему стоило ли оно того и зачем.
Читать дальше →

Игра фреймворков: тренды JavaScript в 2019

Время на прочтение6 мин
Охват и читатели13K
TypeScript против ES6, React против Angular, Jest против Mocha… Не хуже нашумевшего сериала, эти «битвы» держат поклонников JavaScript в напряжении, заставляя их задумываться: «Что же учить дальше?» К тому же, армии пользователей каждой из технологий приводит настолько убедительные аргументы, что выбор стека технологий для дальнейшего изучения становится очень сложной задачей :)

Наш анализатор резюме CV Compiler еженедельно обрабатывает десятки резюме JS-разработчиков. Поэтому мы тоже следим за «Игрой фреймворков», регулярно анализируя требования работодателей. Эта статья основана на одном из таких анализов, и посвящена трендам в языке JavaScript в 2019 году.
Читать дальше →

Мост из мира .NET в мир JavaScript

Время на прочтение5 мин
Охват и читатели8.4K
Хочу поделиться интересной находкой — Bridge.net. Если в двух словах, это фреймворк, позволяющий транслировать C# код в JavaScript. Идея, которая движет командой разработчиков очень проста и понятна — транслировать логику настолько идентично, насколько это возможно. Что радует, если вспомнить все различия и специфику этих языков.


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

Создание многопользовательской веб-игры в жанре .io

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

Вышедшая в 2015 году Agar.io стала прародителем нового жанра игр .io, популярность которого с тех пор сильно возросла. Рост популярности игр .io я испытал на себе: за последние три года я создал и продал две игры этого жанра..

На случай, если вы никогда раньше не слышали о таких играх: это бесплатные многопользовательские веб-игры, в которых легко участвовать (не требуется учётная запись). Обычно они сталкивают на одной арене множество противоборствующих игроков. Другие знаменитые игры жанра .io: Slither.io и Diep.io.

В этом посте мы будем разбираться, как с нуля создать игру .io. Для этого достаточно будет только знания Javascript: вам нужно понимать такие вещи, как синтаксис ES6, ключевое слово this и Promises. Даже если вы знаете Javascript не в совершенстве, то всё равно сможете разобраться в большей части поста.
Читать дальше →

Замыкания в JavaScript: базовое руководство

Время на прочтение3 мин
Охват и читатели7.6K
Представляем вашему вниманию перевод статьи Parathan Thiyagalingam, опубликованной на сайте medium.freecodecamp.org. Хотите узнать, как работают замыкания в JavaScript? Загляните под кат!


Фото Austin Distel с Unsplash

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

Перед тем как начать разбираться с понятием замыканий, рассмотрим, что такое цепочки областей видимости в JavaScript.
Читать дальше →

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

Время на прочтение8 мин
Охват и читатели53K
Автор материала, перевод которого мы публикуем, говорит, что в мире разработки программного обеспечения «архитектурным проектированием» можно назвать процесс конструирования приложения, в ходе которого его стремятся сделать качественным, надёжным и хорошо поддающимся поддержке. При этом паттерны (шаблоны) проектирования позволяют оперировать понятиями, представляющими собой подходы к решению распространённых проблем. Эти решения могут варьироваться от абстрактных, концептуальных, до предельно конкретных. Их знание позволяет разработчикам эффективно друг с другом общаться.

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

image

Цель этой статьи заключается в том, чтобы заинтересовать читателей чем-то вроде формального представления знаний в сфере разработки программного обеспечения, продемонстрировав им идею паттернов проектирования и описав несколько паттернов, которые интересны тем, что они нашли применение в современной JavaScript-Разработке.
Читать дальше →

«У меня только один метод обучения: просто работать» — интервью с Ryan Dahl (Node.js, Deno)

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


27 мая исполнится 10 лет с того момента, как Ryan Dahl выпустил самую первую версию Node.js. За прошедшее десятилетие проект стал более чем успешен, но сам Райан уже переключился на другие вещи. Чем он занимается теперь? Чем его новый проект может помочь JavaScript-разработчикам? Что он думает о разных языках, образовании и смене поколений?

25 мая, за два дня до круглой даты, Райан выступит в Санкт-Петербурге на нашей конференции HolyJS. А пока что участники программного комитета HolyJS Евгений bunopus Кот и Дмитрий dmitrymakhnev Махнёв расспросили его подробно обо всём перечисленном. На Medium мы опубликовали англоязычную версию интервью, а для Хабра сделали русскоязычный вариант.
Читать дальше →

Что нового в RxJS v6.5

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


В этом посте мы поговорим о новых возможностях и доработках последней версии RxJS 6.5.0.

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

ControlValueAccessor и contenteditable в Angular

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

Вы когда-нибудь задумывались, как работает связка форм Angular и HTML элементов, через которые пользователь заносит данные?


С самого начала для этого использовали ControlValueAccessor — специальный интерфейс, состоящий всего из 4 методов:


interface ControlValueAccessor {
  writeValue(value: any): void
  registerOnChange(fn: (value: any) => void): void
  registerOnTouched(fn: () => void): void
  setDisabledState(isDisabled: boolean)?: void
}

Из коробки, Angular имеет несколько таких аксессоров: для чекбоксов и радиокнопок, для инпутов и селектов. Однако, если вы разрабатываете чат, в котором вам нужно дать возможность писать курсивом, делать текст жирным или, допустим, вставлять смайлики — вы, скорее всего, воспользуетесь атрибутом contenteditable для создания содержимого с форматированием.


В Angular нет поддержки использования форм вместе с contenteditable, поэтому написать её придётся самим.


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

Оказывает ли React плохое влияние на Angular?

Время на прочтение6 мин
Охват и читатели10K
Автор материала, перевод которого мы сегодня публикуем, предлагает поразмышлять о будущем веб-разработки. По мере того, как тренды популярности технологий начинают смещаться в сторону библиотеки React, легко ощутить важность вопроса о том, насколько актуальным, через некоторое время, окажется фреймворк Angular. Ясно, что в итоге первое место достанется лишь одной технологии, и это заставляет веб-разработчиков, в особенности тех, которые только начинают свой путь, задаваться вопросом о том, что выбрать.


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

Интро Newton Protocol: что можно уместить в 4 килобайта

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

Недавно я участвовал соревнованиях демосцены Revision 2019 в категории «PC 4k intro», и моё интро выиграло первое место. Я занимался кодингом и графикой, а dixan сочинял музыку. Основное правило соревнования — необходимо создать исполняемый файл или веб-сайт, имеющий размер всего 4096 байта. Это означает, что всё приходится генерировать с помощью математики и алгоритмов; никаким другим способом не получится ужать изображения, видео и аудио в такой крошечный объём памяти. В этой статье я расскажу о конвейере рендеринга своего интро Newton Protocol. Ниже можно посмотреть готовый результат, или нажать сюда, чтобы посмотреть как оно выглядело вживую на Revision, или зайти на pouet, чтобы прокомментировать и скачать участвовавшее в конкурсе интро. О работах конкурентов и об исправлениях можно прочитать здесь.

Дайджест свежих материалов из мира фронтенда за последнюю неделю №363 (29 апреля — 5 мая 2019)

Время на прочтение3 мин
Охват и читатели11K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


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

Метапрограммирование в JavaScript и TypeScript

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

Пролог


Хочу представить на Ваш суд ряд мини статеек, в которых будут описаны приемы и основы метапрограммирования. В основном я буду писать об использовании тех или иных техник в JavaScript либо в TypeScript
Эта первая (и надеюсь не последняя) статья из серии.


Так что же такое метапрограммирование


Metaprogramming is a programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyze or transform other programs, and even modify itself while running. In some cases, this allows programmers to minimize the number of lines of code to express a solution, in turn reducing development time.

Довольно запутанное описание, но основная польза от метапрограммирования вполне понятна:


… это позволяет программистам минимизировать количество строк кода для имплементации решения, что в свою очередь сокращает время разработки

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

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

Архитектура SPA-приложения биржи в 2019 году

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

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


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


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

Что нового в Node 12

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

Недавно вышла Node 12 с кодовым именем Erbium, долгосрочная поддержка которой (LTS) продлится с октября 2019 по апрель 2022.


В новой версии много вкусностей и улучшений рантайма. Помимо этого, учитывая, что под капотом V8, нода также получит все улучшения движка.



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

Валидация по TypeScript interface с использованием Joi

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

История о том, как потратить два дня на многократное переписывание одного и того же кода.


Joi & TypeScript. A love story

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

Oops, I did it again: отладка распространенных ошибок в JavaScript

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


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

JavaScript: 7 полезных мелочей

Время на прочтение4 мин
Охват и читатели23K
Автор заметки, перевод которой мы сегодня публикуем, говорит, что в JavaScript, как и в любом другом языке программирования, можно обнаружить множество маленьких хитростей, предназначенных для решения самых разных задач, как простых, так и довольно сложных. Некоторые из подобных приёмов широко известны, а другие, не такие распространённые, могут приятно удивить тех, кто о них не знает. Сейчас мы рассмотрим 7 полезных приёмов программирования на JavaScript.


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

Основы реактивного программирования с использованием RxJS. Часть 3. Higher Order Observables

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


В данной статье мы рассмотрим, как можно в одном потоке обрабатывать другой, для чего это нужно, и как нам в этом помогут операторы Higher Order Observables (дальше HOO).

Серия статей «Основы реактивного программирования с использованием RxJS»:



При работе с потоками часто возникает ситуация, когда необходимо в качестве значения одному потоку передать результаты работы другого. Например, мы хотим выполнить ajax запрос и его ответ обработать в текущем потоке, или запустить несколько параллельных запросов, реализовать pooling. Думаю, многие привыкли решать подобные задачи, используя такой механизм как promise. Но можно ли решать их используя RxJS? Конечно, и все куда проще чем вы думаете!
Читать дальше →

Дайджест свежих материалов из мира фронтенда за последнюю неделю №362 (22 — 28 апреля 2019)

Время на прочтение3 мин
Охват и читатели10K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


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