Обновить
512K+

JavaScript *

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

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

Эффектное программирование. Часть 1: итераторы и генераторы

Время на прочтение5 мин
Охват и читатели12K
Javascript на данный момент является самым популярным языком программирования по версиям многих площадок (например Github). Является ли при этом он самым продвинутым или самым любимым языком? В нём отсутствуют конструкции, которые для других языков являются неотъемлемыми частями: обширная стандартная библиотека, иммутабильность, макросы. Но в нём есть одна деталь, которая не получает, на мой взгляд, достаточно внимания — генераторы.

Далее читателю предложена статья, которая, в случае положительного отклика, может перерасти в цикл. В случае успешного написания мной этого цикла, а Читателем его успешного освоения, про следующий код будет понятно не только то, что он делает, но и как устроен под капотом:

while (true) {
    const data = yield getNextChunk(); // вызов асинхронной логики
    const processed = processData(data);
    try {
        yield sendProcessedData(processed);
        showOkResult();
    } catch (err) {
        showError();
    }
}

Это первая, пилотная часть: Итераторы и Генераторы.
Часть 2
Читать дальше →

Почему мы выбрали MobX, а не Redux, и как его использовать эффективнее

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

Меня зовут Назим Гафаров, я разработчик интерфейсов в Mail.ru Cloud Solutions. На дворе 2020 год, а мы продолжаем обсуждать «нововведения» ES6-синтаксиса и преимущества MobX над Redux. Существует много причин использовать Redux в своем проекте, но так как я не знаю ни одной, расскажу о том, почему мы выбрали MobX.

Почему?

Популярные npm-пакеты. Volume 1

Время на прочтение11 мин
Охват и читатели12K
Доброго времени суток, друзья!

Представляю вашему вниманию подборку из десяти популярных npm-пакетов с примерами их использования и альтернативными решениями.

Предполагается, что вы хорошо знакомы с JavaScript и, в частности, с Node.js.

В данном части представлены следующие пакеты:


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

Javascript фреймворк разработки бизнес приложений

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

Мысль о своем фреймворке зародилась когда я еще активно работал с 1С. Хотелось иметь простую и открытую платформу для создания несложных бизнес приложений (простые системы учета, CRM и прочие).Не раз искал open source решения, но ничего подходящего не находил.

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

Хоть с HabraERP дальше обсуждений дело не пошло, я понял, что создание нужной мне платформы-фреймворка - возможно.

Спустя неполных 10 лет я готов представить вам KateJS - открытый javascript фреймворк разработки бизнес приложений.

Читать далее

Моки не кусаются! Осваиваем мокинг с React Testing Library

Время на прочтение4 мин
Охват и читатели15K
Перевод статьи подготовлен в преддверии старта курса «Автоматизация тестирования на JavaScript».





Моки — не кусаются!

Они предназначены помочь вам создавать более простые и надежные тесты. В этой серии статей я продемонстрирую вам паттерны, на которые я опираюсь при написании моков (mocks или “заглушек”) компонентов React.
Читать дальше →

Лучшая практика обработки ошибок в современном JavaScript

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

Когда вы пишете код, важно учитывать ситуации, приводящие к ошибкам. Обработка ошибок — это неотъемлемая часть работы над веб-приложением. Мы посмотрим на некоторые рекомендации по обработке ошибок в JavaScript. Чтобы не тратить ваше время зря, сразу поясняем, что описанное в статье может быть не в новинку многопытным кодерам. Если вы себя таким считаете — смело пропускайте этот материал, всех остальных приглашаем под кат.
Читать дальше →

Объектно-ориентированный JavaScript простыми словами

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


Доброго времени суток, друзья!

В JavaScript существует 4 способа создать объект:

  • Функция-контруктор (constructor function)
  • Класс (class)
  • Связывание объектов (object linking to other object, OLOO)
  • Фабричная функция (factory function)

Какой метод следует использовать? Какой из них является лучшим?

Для того, чтобы ответить на эти вопросы мы не только рассмотрим каждый подход в отдельности, но и сравним между собой классы и фабричные функции по следующим критериям: наследование, инкапсуляция, ключевое слово «this», обработчики событий.

Давайте начнем с того, что такое объектно-ориентированное программирование (ООП).

Front End Meetup от Facebook Developer Circle: Moscow

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

Второй год сообщество Facebook Developer Circle: Moscow активно развивается в области JavaScript и Front End разработки. И я рад вам сообщить, что скоро в сообществе будет проводиться очередной митап. Но этот митап будет не один, а три дня! Вы сможете посмотреть гораздо больше интересных докладов)

Day 1 - 15 октября

7:00pm - 7:45pm - DSL approach with JS component libraries

Andrey Kobets / Head of Front-end Development at Yandex

How to write modern frontend application using React/Vue/Angular/..., and

1 Do it the way you like it, but not the way the library requires it.
2 Use only the best solutions for your task.
3 Not to fear major updates of dependencies.
4 Not to rewrite project every time with a new extra fast/robust/flexible library.

7:45pm - 8:30pm - Quo vadis, Frontend?

Evgeny Kot / Director of Development at Wrike

There is no industry that is more rapidly developing than the frontend. You can argue, but how many more ecosystems do you know where frameworks are emerging at this rate? Web standards are being implemented and immediately become obsolete. The most important question is: where are we going, and where will we come to? The question is not rhetorical: how not to stay out of business in this bubbling stream and capture only the most important, what will be the trend in 2021.

8:30pm - 9:15pm - Dive into effector

Yan Lavryushev / Frontend Developer

Mental health issues is the main epidemic of the 21st century, could we reduce it a bit? I guess so


Day 2 - 16 октября

7:00pm - 7:45pm

Читать далее

Как скрестить Clion, Emscripten и Cmake

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

В этой статье я хотел бы пройтись и показать основные моменты того, как настроить IDE CLion для компиляции CMake проекта средствами Emscripten. Когда я занимался этим скрещиванием мне пришлось потратить день или два на эксперименты. И в этой заметке я собираюсь собрать некое "how to", которое в итоге сработало.

Читать далее

Основные команды bash, git, npm и yarn, а также немного о package.json и semver

Время на прочтение14 мин
Охват и читатели91K
Доброго времени суток, друзья!

Предлагаю вашему вниманию небольшую шпаргалку по основным командам bash, git, npm, yarn, package.json и semver.

Условные обозначения: [dir-name] — означает название директории, | — означает «или».

Рекомендую вводить каждую команду в терминале и внимательно изучать вывод, так вы быстро их запомните и определите, какие команды вам нужны, а какие нет.

Приношу извинения за возможные ошибки и опечатки. Буду рад любым замечаниям и предложениям.

Без дальнейших предисловий.

Оглавление:

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

Дайджест свежих материалов из мира фронтенда за последнюю неделю №435 (28 сентября — 4 октября 2020)

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

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

Новый механизм JSX трансформации в React 17 Release Candidate

Время на прочтение4 мин
Охват и читатели13K
В React 17 Release Candidate появляется новый способ трансформации JSX. С ним, в бандле, не понадобится сам Реакт, хотя для использования хуков он всё ещё нужен. Это и есть основной бенефит нового механизма. Под катом краткий перевод статьи в блоге ReactJS.
Читать дальше →

Как высчитать ключи перехода от любой системы координат к WGS с сантиметровой точностью?

Время на прочтение5 мин
Охват и читатели37K
Для кого этот пост — картографы, геодезисты, генпланисты, строители и т.д.

Коллеги, привет!

Решаемая проблема — получение 100% достоверных параметров для пересчета координат, например в привычные картографические градусы (WGS84). Коллеги уже поняли про что я, а любопытным поясню — дело в том, что гуляющие по интернету приложения и алгоритмы с параметрами пересчета координат например из выписки ЕГРН на вашу дачу в координаты для GPS приемника, в подавляющем большинстве будут «лаптем по карте». Для поиска объекта размером с дом, это не будет проблемой, а вот для инженерной затеи, уже слабовата точность. К примеру мы хотим обозначить границы на местности с сантиметровой точностью, найти трубу под землей или кабель, запустить беспилотник по картам с плоскими координатами, чертить чертеж в плоских координатах с картографической онлайн основой из интернета и многое другое, что требует субметровой точности.
Читать дальше →

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

Почему я выбрал Next.js, а не Gatsby, Gridsome или Nuxt?

Время на прочтение9 мин
Охват и читатели30K
Мы, выбирая фреймворк для нового веб-проекта, обычно склонны останавливаться на инструментах, с которыми знакомы, не обращая внимания на то, насколько хорошо они подходят для этого проекта. Я же пробую поступать с точностью до наоборот. Всякий раз, когда у меня возникает такая возможность, я испытываю новые технологии. Что я узнал после таких экспериментов? Почему я, в итоге, считаю своим стандартным инструментом для создания статических сайтов (static site generator, SSG) Next.js?



В этом материале я расскажу о том, как я экспериментировал с разными веб-технологиями. Речь пойдёт о поиске подходящего инструмента в рамках Jamstack, о том, как выбирать именно то, что подойдёт разработчику и хорошо интегрируется в его проект, о том, почему я выбрал Next.js.
Читать дальше →

Как использовать Axios в React

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


В этой статье вы узнаете как использовать библиотеку Axios в React.

Рассмотрим все на примере запросов на сервер, отобразим полученные данные в таблице, сдалаем компонент проверки загрузки и все это используя React Hooks.

Что такое Axios?


Axios это один из самых популярных HTTP клиентов для браузеров и node.js, основанный на промисах.

В Axios есть поддержка запросов, получение ответов от сервера, их трансформация и автоматическая конвертация в JSON.
Читать дальше →

Понимание спецификации ECMAScript, часть 2

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

Привет, Хабр! Представляю вашему вниманию перевод статьи под редакцией xfides


Автор оригинала: Marja Hölttä
Перевод первой части.



Давайте еще попрактикуемся в чтении спецификации. Если вы не видели предыдущую статью, самое время сходить ее посмотреть. В первой части мы познакомились с простым методом Object.prototype.hasOwnProperty. Также, посмотрели список абстрактных операций, которые вызываются при выполнении этого метода. Еще мы узнали о специфических сокращениях «?» и «!», которые связаны с обработкой ошибок. И наконец, мы получили информацию о типах языка, типах спецификации, внутренних слотах и внутренних методах.


Готовы для второй части?

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

Вы не знаете как должны работать модальные окна

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

Уверен, многие хоть раз создавали всплывающее модальное окно. Но задумывались ли вы об определении этого компонента? Как он должен работать?


В этом материале я постарался собрать максимально полный свод правил, рекомендаций и примеров реализации по которым модальные окна должны работать.


Я покажу, как просто создавать сложные, удобные, производительные и доступные модальные окна независимо от браузера, платформы, устройства или способа взаимодействия пользователя.


Этот список сформирован на основе спецификаций WAI-ARIA, HTML Living Standard и моего личного опыта. И хотя я буду говорить про веб, большинство правил и рекомендаций применимы для модальных окон где угодно.

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

Зачем нужна выделенная Frontend Core команда и как мы внедряли дизайн систему

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


Всем привет, меня зовут Ростислав, я занимаю должность Front Lead в компании ДомКлик. Хочу поделиться с вами опытом создания Web Core команды и сразу ответить на следующие вопросы:


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

После года существования команды Web Core, у всех сложилось понимание, что в больших компаниях это необходимо, а в стартапах — не обязательно.


  • Выгодно ли внедрять такую команду?

Безусловно. Изначально было сложно измерить и спрогнозировать выгоду от её создания, все расчеты, P&L были на словах, в цифрах — только примерные предположения. Спустя год мы можем посчитать сэкономленное время, профиты, и все расчеты говорят о том, что это было не зря.


  • На долгую перспективу ли эта команда?

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


  • Чем эта команда занимается?

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

Читать далее

Продолжаем чистить память с three.js

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

Введение


Недавно писал о своем опыте очистки памяти в приложении, с использованием three.js. Напомню, что целью была перерисовка нескольких сцен с подгрузкой gltf моделей.

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

Visx — коллекция графических примитивов для React-приложений, созданная в Airbnb

Время на прочтение10 мин
Охват и читатели10K
После 3 лет разработки и 2,5 лет использования в продакшн-проектах Airbnb, после переписывания кода на TypeScript, мы рады представить вам официальный релиз коллекции графических примитивов visx 1.0  (раньше она называлась vx). Вот — страница проекта на GitHub. Документацию и примеры можно найти на airbnb.io.



Мы поставили себе цель, которая заключалась в том, чтобы унифицировать стек технологий визуализации данных, применяемый во всех проектах Airbnb. В ходе движения к этой цели мы создали новый проект, в котором объединена мощь D3 и удобство React. Среди сильных сторон visx мы можем отметить следующие:

  • Использование коллекции способствует созданию бандлов приложений маленького размера. Дело в том, что visx разбита на множество пакетов. Поэтому при её использовании в некоем проекте можно взять из неё лишь то, что нужно.
  • Коллекция спроектирована так, чтобы не навязывать программистам некие предопределённые схемы работы. Используя visx, разработчик может использовать собственную систему управления состоянием приложения, свою библиотеку анимации или подходящее ему CSS-in-JS-решение. Высока вероятность того, что при создании вашего React-приложения уже приняты решения о том, как в нём выполняются анимации, о том, какой подход используется для работы с темами, о том, как стилизуются элементы. Visx, в этом плане, ничего нового в приложения не добавляет. Библиотека интегрируется со всем тем, что уже есть в проект.
  • Это — не коллекция элементов, «заточенная» под создание графиков. Если вы будете пользоваться визуализационными примитивами для создания графиков, то вы, в итоге, создадите собственную библиотеку, решающую эту задачу. Причём, это будет библиотека, оптимизированная под ваши нужды. Она будет находиться под вашим полным контролем.
Читать дальше →