Обновить
512K+

JavaScript *

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

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

3D-индикатор крена и тангажа для HUD на Three.js

Время на прочтение8 мин
Охват и читатели2.6K
Браузерные игры с трехмерной графикой создаются достаточно давно. Существуют и симуляторы различных транспортных средств, где игроку необходимо контролировать пространственное положение управляемого объекта.



В статье «Индикатор искусственного горизонта на HTML5 canvas» представлен код индикатора с объемным макетом управляемого объекта на основе изобретения Пленцова А. П. и Законовой Н. А. В реальной технике такая индикация распространения не получила, но в компьютерных играх она вполне может быть использована.

К числу достоинств идеи индикатора с объемным макетом следует отнести эффектность. На этот раз необычный формат визуализации искусственного горизонта будет адаптирован для систем дополненной реальности.
Читать дальше →

Итерируемые объекты и итераторы: углублённое руководство по JavaScript

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

Эта статья представляет собой углублённое введение в итерируемые объекты (iterables) и итераторы (iterators) в JavaScript. Моя главная мотивация к её написанию заключалась в подготовке к изучению генераторов. По сути, я планировал позднее поэкспериментировать с комбинированием генераторов и хуками React. Если вам это интересно, то следите за моим Twitter или YouTube!

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

Викторина по JavaScript и React

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

Насколько хорошо вы знаете JavaScript? Вы стремитесь подняться на следующую ступень карьерной лестницы?

Я составил викторину из 10 вопросов по JavaScript. Посмотрим, сможете ли вы ответить на них, не используя консоль браузера. Надеюсь, вы узнаете что-то новенькое. Ответы даны в конце статьи.

Читать далее

Новые возможности ES2021 / ES12

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

Ожидается, что версия ECMAScript 2021 будет выпущена в июне 2021 года. Вот некоторые из функций, которые могут оказаться в ES2021 или ES12. Список подготовлен на основе ECMAScript Proposals и новых функций, выпущенных движком Google Chrome V8.

Все функции, перечисленные ниже, на момент написания поддерживаются в сборке Google Chrome Canary (версия браузера Google Chrome, поддерживающая  экспериментальные возможности).

Читать далее

Трюки CSS и JavaScript, которые вдохнут жизнь в ваш статический сайт

Время на прочтение7 мин
Охват и читатели42K
Последние несколько недель я работал над своим сайтом и хотел придать ему некоторый динамизм. Эта статья не о создании веб-страницы. Я покажу готовые сниппеты с объяснениями.

Приятного чтения

Разновидности объектно-ориентированного программирования (ОПП) в JavaScript. Часть 2

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

В первой части мы рассмотрели четыре различных разновидности Объектно-ориентированного программирования. Два из них - Классы и Фабричные функции - проще в использовании по сравнению с остальными.

Но вопросы остаются: Какую из них использовать? И почему?

Чтобы продолжить обсуждение функций Классов и Фабричных функций -, необходимо понять три понятия, которые тесно связаны с Объектно-ориентированным программированием:

Приступим

Библиотека Frontend-разработчика, часть 1: Основы

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

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

Многие, возможно, зададут вопрос: "А зачем книги? Есть же браузер, не?". Безусловно, разработчик должен уметь пользоваться поисковой строкой, уметь искать, и, наверное, самое главное - уметь правильно задавать вопросы, но книги нужны для более глубокого понимания того, с чем вы работаете. Книги позволяют взглянуть на некоторые вещи с "академической" стороны.
Мы можем провести аналогию с образованием в высших учебных заведениях. В любом ВУЗе мы читаем книги, которые были написаны кандидатами технических наук и профессорами, чтобы потом сдать сессию, получить хорошую стипендию и жить дальше до следующей сессии, повышая сложность материала на каждой контрольной точке. Теперь смотрим на сферу и видим, что мы читаем академический материал, после идем на собеседование, удачно его проходим, получаем желанный оффер, а после повышаем свою квалификацию к следующей контрольной точке (новому рабочему месту или новой должности). В принципе, с алгоритмом мы разобрались. Идем дальше.

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

Ну, удиви

Модули в JavaScript

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


Фронтенд-разработчики каждый день используют модули. Это может быть функция из локального файла или сторонняя библиотека из node_modules. Сегодня я кратко расскажу об основных модульных системах в JavaScript и некоторых нюансах их использования.

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

Больше, больше фронтенда — доклады c ЮMoneyDay

Время на прочтение2 мин
Охват и читатели2.8K
Готовы потереть за фронтенд? Мы — да. Поэтому публикуем новую партию полезного видеоматериала от экспертов крупного платежного сервиса. Под катом найдете 2 нескучных доклада про:

  • лайфхаки в CSS, HTML и JS,
  • архитектуру фронтенда ЮMoney.

Устраивайтесь поудобнее: возможно, такого вы раньше не слышали.


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

О первоклашках, дистанционке и асинхронном программировании

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

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

Пока я увлеченно занимался веб разработкой, где-то на фоне жена периодически жаловалась на проблемы выбора школы для ребёнка. И тут (вдруг) ребёнок подрос и школьный вопрос встал ребром. Ладно, значит, время пришло. Давайте вместе разберёмся, что же все-таки не так с системой образования в бывшей 1/6 части суши, и что мы с вами можем с этим сделать?
Читать дальше →

В чем разница между useLayoutEffect, componentDidMount, useEffect

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

Привет хабр!

В React на смену эпохи классов, пришла эпоха функциональных компонентов. И нам показали хуки, как замена методам жизненного цикла. Но многие так и не задумывались, а равнозначный ли обмен componentDidMount на useEffect. Эта статья направлена как раз на таких людей, чтобы закрыть ваш пробел, в том как работают componentDidMount, useEffect и useLayoutEffect. (данная статья является расшифровкой видео)

Read more

Видео вещание с OvenMediaEngine, до свидания nginx rtmp module

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


Когда Роман Арутюнян (rarutyunyan) выпустил модуль nginx-rtmp-module, это сильно перевернуло взгляд на доступность организации видеовещания. До этого, это казалось каким-то дорогим и сложным делом.

31 декабря Adobe официально хоронит флешплеер и убирает ссылки на скачивание с сайта. Это, конечно, не может не радовать. Эти засранцы то и дело подсовывали включенные по умолчанию галочки, так что даже продвинутому пользователю прилетал вместе с флешплеером еще и какой-то антивирус в лучшем случае. То, что это чудовище бесконечно просило обновлений ручками через браузер, знают все. Ходил даже анекдот, предлагающий создателям флешплеера законодательно ограничить паспорта сроком на 1 неделю с возможностью бесконечной перевыдачи.
Читать дальше →

Превращаем рекурсию в цикл

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

Максим написал рекурсивный алгоритм, и столкнулся со Stack Overflow exception.


Зачем Максим это сделал?


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


Он не наслаждается, когда пишет так:


function factorial(n) {
  let res = 1;
  for (let i = 2; i <= n; i++) {
    res *= i;
  }
  return res;
}

Он хочет писать вот так:


const factorial = (n) => (n > 1 ? n * factorial(n - 1) : 1);

Но когда он запускает подобные этому рекурсивные алгоритмы, бывает так, что он видит это:


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

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

Разновидности объектно-ориентированного программирования (ОПП) в JavaScript. Часть 1

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

Объектно-ориентированное программирование - это способ написания кода, позволяющий создавать различные объекты из общего объекта. Общий объект обычно называется blueprint, в то время как создаваемые объекты называются экземплярами.

Каждый экземпляр имеет свойства, которые не разделяются с другими экземплярами. Например, если у вас есть blueprint Human, вы можете создавать экземпляры Human с разными именами.

Второй аспект Объектно-ориентированного программирования - это структурирование кода, когда у Вас есть несколько уровней blueprints. Это обычно называется наследованием или подклассом.

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

Начнем с основ — введения в четырех разновидностей объектно-ориентированного программирования.

Начнём!

JavaScript за 60 секунд: работаем с картой (Geolocation API, Leaflet.js, Nominatim)

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


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

В этом небольшом туториале мы вместе с вами выполним три простых задания:

  • С помощью Geolocation API и Leaflet.js определим текущее местоположение пользователя и отобразим его на карте
  • Реализуем анимированный переход между городами
  • Реализуем переключение между адресами с предварительным получением названия объекта и его координат

Код проекта находится здесь.

Поиграть с кодом можно здесь:


Автоматизация Instagram

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

По работе попалась интересная задача по автоматизации Instagram, а именно надо было просто провести розыгрыш. Сервисов для организации этой затеи достаточно, есть даже бесплатные. Но были дополнительные (читай премиум) условия, к тому же мне очень захотелось самому посмотреть, что там внутри этой популярной инстаграмы и быть может набраться опыта в построении API.

Первым делом пошел смотреть что там говорят интернеты. Чтение официальных доков по API instagram дали четко понять, что владельцы не хотят давать доступ к неограниченной автоматизации, можно автоматизировать работу со своим аккаунтом в базовом варианте, но это не подходило под мою задачу, а "бизнес" вариант API требовал верификации компании, что естественно мне не подходит. (Может быть уже что-то изменилось …)

Читать далее

Serverless шагает по планете. Сравним SberCloud и AWS

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

image


Мне с друзьями довелось поучаствовать в хакатоне SberCloud.Advanced Hacking и пощупать облачные сервисы Сбера. На моем текущем месте работы я каждый день работаю с Serverless стеком от AWS (CloudFront + Lambda Edge + S3 + Lambda + Step Functions + Aurora PostgreSQL Serverless + DynamoDB + Cognito). Так что мне есть с чем сравнить. Если заинтересовались, то добро пожаловать под кат.


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

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

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

Эпическая сага про маленький custom hook для React (генераторы, sagas, rxjs) часть 3

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

Можно представить себе redux-saga (middleware) как администратора камер хранения. В камеры хранения можно класть эффекты на неопределенный срок и забирать их оттуда, когда будет нужно. Есть такой посыльный put, который приходит к диспетчеру и просит положить в камеру хранения сообщение (эффект). Есть такой посыльный take, который приходит к диспетчеру и просит ему выдать сообщение с определенным типом (эффект). Диспетчер, по просьбе take, смотрит все камеры хранения и если этих данных нет, то take остаётся с диспетчером и ждёт, пока put не принесёт данные с нужным для take типом. Существуют разные виды таких посыльных (takeEvery и т.д.).

Продолжить копать...

Дино (Deno): Создать Rest API с помощью JWT

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

Со времен первой версии Deno стал модным словом для разработчиков Javascript/TypeScript/Node. Давайте погрузимся в эту технологию, создав защищенный с помощью JWT REST API.

Желательно уже иметь некоторые основы в Node и его экосистеме (Express, Nodemon, Sequelize и т.д.), чтобы следовать этому руководству.

Читать далее