Обновить
152.11

JavaScript *

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

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

Error Boundaries в React: препарируем лягушку

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

Представим, что у нас есть приложение на React, в котором можно читать и писать отзывы. Пользователь открыл список отзывов, пролистал его, нажал кнопку «Написать отзыв». Форма написания отзыва открывается в попапе. Пользователь начинает вводить текст, свой email. Вдруг валидация почты срабатывает с ошибкой, которую разработчики забыли обработать. Результат — белый экран. React просто не смог ничего отрендерить из-за этой ошибки в каком-то попапе.

Первая же мысль — не надо было всё уничтожать, список же был не при делах. Чтобы обработать ошибку в render-фазе в React, необходимо использовать Error Boundaries. Почему именно так нужно обрабатывать ошибки — расскажу под катом.

Читать далее

Neoflex проводит Hiring Week для Java-разработчиков и системных аналитиков

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


С 18 по 24 октября Neoflex приглашает Senior Java-разработчиков и системных аналитиков принять участие в Neoflex Hiring Week. Присоединяйся к нашей команде и получай welcome-бонус в размере одного оклада.

Как принять участие в Neoflex Hiring Week?

  • Заполни заявку на сайте;
  • Получи подтверждение от рекрутера;
  • Пройди техническое собеседование;
  • Прими оффер в течение 48 часов и получи welcome-бонус!
Читать дальше →

Делаем визуализацию распределения доходов населения России на основе данных Росстата

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

По данным Росстта в среднем житель России имеет доход 35 700 ₽ в месяц. Эта цифра мало что говорит о благосостоянии населения. Если взять двух человек — одного с доходом 70 000 ₽ и 1400 ₽, их средний ежемесячный доход будет равен ровно 35 700 ₽. Чтобы лучше продемонстрировать распределение доходов, я смастерил калькулятор, который позволяет посчитать количество людей с заданным диапазоном дохода и наглядно продемонстрировать их вклад в общий уровень доходов.

В этом посте я расскажу как от довольно скупых данных, которые доступны на сайте Росстата сгенерировать датасет для подробной инфографики.

Поехали!

Дайджест свежих материалов из мира фронтенда за последнюю неделю №489 (11 — 17 октября 2021)

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

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

Почему в Ember не нужны React-хуки

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

От переводчика: Этот пост является продолжением поста о реализация паттернов React-компонентов в Ember.js. Автор рассматривает концепцию React-хуков для абстракции логики состояния (stateful logic) и сравнивает ее реализацию с реализацией в Ember. И хотя в экосистеме React эта концепция признана весьма полезной, в Ember.js попытки предложить похожую не нашли особенного отклика. Причина этому - наличие в фреймворке достаточных инструментов для решения этой задачи без использования хуков. О каких инструментах идет речь, вы узнаете из этого материала.

Читать далее

Как интегрировать веб-компоненты с помощью Lit в Angular

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

В этом руководстве я объясню необходимые шаги для интеграции веб-компонентов в Angular.

Читать далее

Для чего компании нужен UI KIT? (Frontend + Design)

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

В этой статье мы расскажем, что такое UI KIT, для чего он нужен, и как он сэкономит время и деньги.

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

Читать далее

Как объединить несколько JS приложений с .NET Core (Create React APP + Next JS + .NET Core)

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

Всем привет! Пару месяцев назад у нас возникла задача запилить лендос для нашего онлайн сервиса. Наш стек - Create React App + .Net Core. Погугля немного, мы решили, что хотим запилить лендос на Next JS, но возник вопрос - как это все вместе подружить.
Мы хотели, что бы приложение открывалось по ссылке: yourdomain.com/app, а все остальные ссылки вели бы на лендос.

Читать далее

Распознаём позу прямо в браузере в реальном времени

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


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

О чём JS-разработчикам поведают на HolyJS 2021 Moscow

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

До HolyJS осталось меньше месяца — пора поведать Хабру, какие именно доклады там будут. Под катом их описания, а тут отметим пару вещей:

— В этот раз шире обычного раскрыта тема производительности. Когда React.memo не ускорит, а замедлит? Почему Solid.JS такой быстрый? Что нужно знать JS-разработчику в современном многоядерном мире?

— Помимо докладов, в программе есть несколько воркшопов, так что будет не только теория со слайдами, но и практическая деятельность.

Описания мы разделили по тематическим блокам, но это деление не строгое, некоторые доклады можно причислить к разным блокам сразу.

Смотреть программу

PWA: не Chrome'ом единым?

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

Я уже публиковал свою точку зрения, что Progressive Web Applications - это, прежде всего, технология для мобильных устройств. Основная особенность классических web-приложений - это клиент-серверная архитектура, а основная особенность "прогрессивных" web-приложений - возможность работы в offline. Понятно, что это очень сильно разные подходы в архитектуре - "всегда на связи" и "всё своё с собой". Совместить два таких разных подхода в одном приложении "это очень дорого и ни к чему".

Отталкиваясь от этой своей точки зрения, я решил посмотреть текущую статистику по браузерами - какие на данный момент у PWA-приложения возможности стать популярным и на какие браузеры оно должно ориентироваться. Данные для публикации взяты с сайта gs.statcounter.com

Читать далее

Node.js: разрабатываем сервер для тестирования API

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


Привет, друзья!


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


Основной функционал нашего приложения будет следующим:


  • админка с возможностью добавления данных (далее — проекты) путем их набора (ввода) или копирования/вставки, либо путем загрузки файла;
  • сохранение проектов на сервере;
  • безопасная запись, чтение и удаление файлов на любом уровне вложенности;
  • получение названий существующих проектов и их отображение в админке;
  • возможность редактирования и удаления проектов;
  • унифицированная обработка GET, POST, PUT и DELETE запросов к любому существующему проекту, включая GET-запросы, содержащие параметры и строки запроса;
  • обработка специальных параметров строки запроса sort, order, limit и offset;
  • и многое другое.

Наша админка будет выглядеть так:




Для быстрой стилизации приложения будет использоваться Bootstrap.


Исходный код проекта.


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


При разработке приложения мы будет придерживаться 2 важных условий:


  • формат данных — JSON;
  • основная форма данных — массив.

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


Вы готовы? Тогда вперед.

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

Современный Frontend: проблемы и пути решения. Пишем React-like приложение со строгой типизацией без сборщиков

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

Всем привет! Меня зовут Петр Солопов, я руководитель отдела фронтенд-разработки в SuperJob. Думаю, многие из вас видели популярную серию картинок в интернете про фронтенд и бэкенд: на бекенде всегда какой-то монстр, а на фронте — все мило, летают бабочки. На мой взгляд, это не соответствует действительности и все не так радужно и безоблачно: чего только стоят настройка Webpack, тона зависимостей, особенности фреймворков и многое другое. За подробностями под кат.

Читать далее

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

Как выглядит реализация паттернов React-компонентов в Ember.js

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

От переводчика: Я прототипирую интерфейсы на Ember.js. И всегда испытываю трудности, когда нужно переключиться на React и написать что-нибудь используя этот de facto выбор по-умолчанию в современной фронт-энд разработке. Каждый раз сталкиваешься с трудностями на ровном месте и вынужден думать о том, о чем привык не думать, писать велосипеды. Мне всегда хотелось это как-то выразить и на днях я нашел статью, где автор очень наглядно показывает разницу на кодовых примерах. Представляю вашему вниманию ее перевод.

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

Хотя я никоим образом не являюсь экспертом по React, всегда интересно наблюдать, как другие js-сообщества решают сходные с нашими проблемы при реализации SPA-приложений. Я не могу авторитетно говорить о качестве реализаций обсуждаемых шаблонов компонентов, но, судя по тому, что я видел в открытом доступе и читал о паттернах компонентов в React, похоже, эти подходы достаточно активно используются разработчиками. А поскольку проблемы, с которыми мы сталкиваемся при разработке клиентских приложений, одинаковы для разных экосистем, идеи, лежащие в их основе, интересны разработчикам, независимо от их вероисповедания выбора фреймворка.

Читать далее

Old Skull — фронтенд-фреймворк из альтернативной вселенной

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


Около десяти лет назад сообщество веб-разработчиков впервые начало обсуждать концепцию "Single-Page Application" и искать способы ее реализации. К тому моменту разработка графических интерфейсов уже не являлась чем-то новым и поэтому многие вещи заимствовались у существующих решений и немного адаптировались под специфику браузеров.


Наиболее успешным результатом подобной работы оказался Backbone.js — объектно-ориентированный MVC-фреймворк, который в свое время использовался в BitBucket, Basecamp, Stripe, Airbnb и Trello. Со временем он был полностью вытеснен следующим поколением фреймворков, но...


Что если бы этого не случилось? Как бы тогда выглядела современная разработка веб-интерфейсов?

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

Лучшие стратегии разработки фронтенда в 2022 году

Время на прочтение13 мин
Охват и читатели25K
Эта статья специально написана так, чтобы ставить перед читателями неоднозначные задачи, вызывать у них противоречивые чувства и давать им пищу для размышлений. Речь здесь пойдёт о множестве свежих идей, о которых вы, вероятнее всего, пока не слышали.

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



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

Namespaces в JavaScript. Ставим точку в вопросе

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

Развитие языка javascript переносит выполнение кодов на распределенную сеть пользователей и снимает нагрузку с сервера. Это разумный подход. Введение в js ключевых слов class, extends и static дало возможность легко моделировать классами и объектами предметную область проекта. Это замечательно. Следующий вопрос, который необходимо рассмотреть при возрастании сложности js-проекта - это пространство имен. Именно оно позволяет избежать конфликтов с ворохом разнородных js-скриптов. Как показывает практика с этим вопросом почему-то возникли большие сложности.

Читать далее

DINS JavaScript EVENING: избегаем уязвимостей в web-приложениях и знакомимся с Firebase crash course

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

Даниил Шилов из DINS расскажет, как избежать уязвимостей в web-приложениях еще на этапе написания кода, а Никита Нягу из МойОфис поделится опытом использования Firebase — инструмента, помогающего содержать архитектуру всего проекта в одном месте и облегчающего работу с DevOps.

Регистрация по ссылке. Подробная программа и информация о спикерах — под катом.

Читать далее

Как написать собственное свойство CSS

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

Благодаря Paint API из состава Houdini можно не ждать выхода новых возможностей CSS. Шаг за шагом автор этого материала показывает, как написать новое свойство CSS для анимации с фрагментацией. Делимся материалом, пока у нас начинается курс по Frontend-разработке.

Читать далее

Использование Google reCAPTCHA v2 и v3 в одной форме

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

У Google появилась замечательная reCAPTCHA v3. Замечательна она тем, что освобождает пользователя от необходимости тыкать по картинкам в поисках светофоров и пожарных гидрантов, при этом вполне успешно анализирует его действия на сайте и оценивает их по шкале от 0 до 1. Чем выше балл, тем качественней наш бот выше вероятность, что пользователь реальный. Обычно выставляют порог равным 0.5.

А что делать, если хочется добра пользователям сайта, но есть у его владельца некая обеспокоенность, что не пропустит невидимая столь ценного реального пользователя, который может и ведет себя странно и подозрительно, но совсем не бот?

Ответ - последовательно использовать капчу обоих версий - не прошел невидимую проверку - появилась видимая капча!

Читать далее

Вклад авторов