Обновить
256K+

JavaScript *

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

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

Новое в Symfony: инициатива UX — новая экосистема JavaScript для Symfony

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

С момента своего создания JavaScript всегда был ориентирован на создание инновационного пользовательского опыта (UX - User Experience). Он позволяет разработчикам создавать максимально интуитивно понятный и удобный UX под конкретную задачу.

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

Эта проблема не нова: она очень похожа на состояние Symfony в PHP до появления Symfony Flex. Нам нужен эквивалент Symfony Flex для JavaScript - инструмент способный создавать прекрасный пользовательский опыт так же быстро, как теперь мы можем настроить HTTP-клиент, почтовую программу или панель администрирования.

Представляем вам Symfony UX

Новый график на Moiva.io с данными от #StateOfJS

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

Автор популярных ежегодных отчетов #StateOfJS и #StateOfCSS Sacha Greif (он же автор VulcanJS и Sidebar) обратился ко мне с идей включить данные отчета на Moiva.io.

Я ответил "Конечно!"

Читать далее

Авторизация и аутентификация на NodeJs и Socket.io и проблемы вокруг

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

На текущий момент я работаю в компании Мегафон тим лидом фронта. С начала этого года мы в команде Мегафона разрабатываем собственную платформу Интернета вещей. И так как, в таком процессе нагрузка на бек-энд разработчиков стала колоссальная, а фронт не так активно задействован, внутри отдела было принято решение отдать всю веб-часть в руки моей команды. Очевидно, что мы взяли NodeJs, и занялись построением серверной архитектуры и тд.

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

Читать далее

Впечатления о Vue.js после React

Время на прочтение6 мин
Охват и читатели15K
Приветствую! Поговорим о Vue.js? Эта статья будет наиболее подходящей для людей уже знакомых с React. Также в этой статье я не буду пытаться быть объективным, а всего-навсего поделюсь своими впечатлениями и мыслями от достаточно молодого и прогрессивного фреймворка Vue после достаточного длительного использования React в качестве основного инструмента. Еще мы с вами посмотрим как может выглядеть совершенно простое Todos приложение на Vue, познакомившись с некоторыми его основами.

Для начала давайте посмотрим на динамику развития фреймворка, взятого из соответствующего исследования о популярности front-end инструментов:



Вышеприведенный график построен с использованием возможностей проекта NPM Trends. Здесь показано изменение количества загрузок соответствующих пакетов с течением времени. В частности, на нашем графике представлены данные за 6 месяцев 2020 года. Тут хорошо видно то, что React, по исследуемому показателю, значительно обходит конкурентов. А количество загрузок Vue, с другой стороны, постепенно растёт и сейчас находится в районе полутора миллионов.

Это неспроста, ведь Vue в качестве основных преимуществ располагает высокой скоростью, низким порогом вхождения и, что меня больше всего привлекает, лаконичной и приятной структурой. React — это мощный и замечательный инструмент, однако вы вряд ли сможете найти хотя бы 2 одинаково структурированных проекта на этом фреймворке. Да, разработчик способен довольно гибко определять архитектуру и подходы к написанию приложений, но всегда ли это хорошо? Наш сегодняшний герой позволит вам не допускать путаниц и каких-то проблем с тем, когда вы, например, садитесь на новый проект. Давайте посмотрим на Vue в деле. Я буду представлять уже готовый код приложения с пояснениями. Как установить фреймворк и создать приложение вы можете узнать из официальной документации.
Читать дальше →

Первое погружение в исходники хуков (задел на будущие статьи)

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

Привет, Хабр!

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

Для этого мы откроем репозиторий React-а в Github. Он представляет из себя монорепозиторий, где все известные нам пакеты лежат в packages. Ниже на скрине я выделил те самые пакеты, которые мы используем в ежедневной разработке:

Read more

Управляемость транспортного средства в симуляторе: настраиваем коэффициенты модели

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


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

Приспособленность технической системы к управлению человеком (управляемость) – довольно сложная и многогранная характеристика. Математической моделью поведения управляемого объекта занимается теория автоматического управления (ТАУ). Модели, принятые в ТАУ, также могут описывать поведение игрока – «человека-оператора» и системы «человек-машина».

Стоит отметить, что создаваемые модели человека всегда актуальны для ограниченного диапазона условий. По этой причине решение практических задач в области управляемости часто выходит за рамки ТАУ.

Управляемость машины относится к ее эргономическим свойствам, теряющим смысл в отрыве от контекста деятельности человека. Под катом представлен подход к настройке модели симулятора, основанный на экспериментальном исследовании процесса игры.
Читать дальше →

Как я создал лучший colorpicker

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

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

Начнём с самого начала. Создаём базовую HTML-разметку.

Читать далее

Server-Side Rendering с нуля до профи

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


  • В данной статье мы разберем влияние SSR на SEO оптимизацию приложения.
  • Пройдем с вами путь по переносу обычного React приложения на SSR.
  • Разберем обработку асинхронных операций в SSR приложениях.
  • Посмотрим, как делать SSR в приложениях с Redux Saga.
  • Настроим Webpack 5 для работы с SSR приложением.
  • А также рассмотрим тонкости работы SSR: Генерация HTML Meta Tags, Dynamic Imports, работа с LocalStorage, debugging и прочее.
Читать дальше →

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

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

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

Конструктор плейлистов для Spotify

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

Статья о том, как Spotify Web API (SWA) и платформа Google Apps Script (GAS) позволили превратить библиотеку в гибкий конструктор плейлистов с бесплатным исполнением по расписанию.

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

Читать далее

HackTheBox. Прохождение RopeTwo, часть 1. Chromium v8

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели4K

Пора выложить первый райтап для машинки с площадки HackTheBox.

В данной статье разберемся с написанием RCE для патченного JavaScript-двжика v8, используемого сейчас почти повсеместно.

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

Читать далее

Приглашаем на DINS JS EVENING: разбираем Chrome DevTools и Cypress

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

На митапе Андрей Соколов из DINS расскажет, как разработчикам облегчить отладку с помощью Chrome DevTools. Константин Поздникин из Usetech покажет, как Cypress помогает бороться с багами в проектах со сложной бизнес-логикой. Во время прямого эфира вы сможете задать вопросы спикерам. Участие бесплатное, но нужно зарегистрироваться. Подробная программа и информация о спикерах — под катом. 

Читать далее

Автоматическая виртуализация рендеринга произвольной вёрстки

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

Здравствуйте, меня зовут Дмитрий Карловский и я.. прибыл к вам из недалёкого будущего. Недалёкого, потому что там уже всё и все тормозят. Писец подкрался к нам незаметно: сначала перестали расти мощности компьютеров, потом пропускная способность сетей. А пользователи… они продолжали генерировать контент как не в себя. В итоге, за считанные годы UX интерфейсов деградировал настолько, что ими стало невозможно пользоваться и многие пользователи поспешили перейти на облачный стриминг своих браузеров, которые работают на суперкомпьютерах, принадлежащих корпорациям, которые не дают людям устанавливать на них блокировщики рекламы. Поэтому я пришёл к вам именно сейчас, в этот момент, когда проблема уже заметна, но ещё можно всё исправить, пока не стало слишком поздно.

Лонгрид

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

CRUD для NMAP’а: решение для мониторинга открытых портов на хостах

Время на прочтение9 мин
Охват и читатели11K
Привет, Хабр! Меня зовут Рудаков Александр, я занимаюсь информационной безопасностью в компании "ЛАНИТ-Интеграция". Однажды, в рамках работы над проектом, мне понадобилось организовать небольшой непрерывный мониторинг (с хранением истории) открытых портов в подсети серверов. Требовалось за короткое время сделать рабочий прототип решения для данной задачи. В этой статье я расскажу о том, как с помощью nmap, Node.JS, PostgreSQL и ORM Sequelize организовать мониторинг открытых портов на хостах.

Источник 
Читать дальше →

Эффектное программирование. Часть 2: генераторы в полевых условиях

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

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

Эта статья также может быть полезна тем, кто хочет разобраться, как работает redux-saga.

Также я давно хотел познакомиться с Deno (альтернатива Node) и использовал его в качестве среды для запуска кода, так что примеры будут в этот раз на typescript.

Читать далее

OpenCart popup, модальные окна

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

Статья нашего сотрудника из его личного блога.

Разрабатывая модуль, в админке мне понадобилось использовать модальные окна OpenCart для вывода определенной информации, а так же для показа формы. Мой опыт frontend на тот момент был так себе, однако коллега подсказал что в OpenCart используется jquery (2.1.1), а у этой библиотеки есть поддержка popup окон. Но не все так просто …

Читать далее

Свободно стилизируемый outline DOM элементов

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

В последнее время всё чаще и чаще возникает вопрос о доступности, если раньше скрытие outline для элементов страницы было общим правилом, то теперь хороший сайт должен иметь outline у элементов, как минимум :focus-visible.
Основная проблема outline - это их стилизирование.

Я пришел к своему решению, которое изложено в этой статье.

Читать далее

Пакет валидации mobx form validation kit 2.0 (TypeScript / Flutter)

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

Предисловие


Почти полтора года назад мы выпустили первую версию библиотеки "Новый пакет валидаций для React на Mobx @quantumart/mobx-form-validation-kit"
Время шло, и библиотека корректировалась и не стояла на месте, да собственно, как и наше развитие в целом. Мы перешли на flutter, по пути попинав ReactNative, сделали еще несколько проектов. И новые задачи потребовали от нас новых и современных решений, в том числе и переработки mobx-form-validation-kit.
Сегодня я рад представить вам новую версию пакета mobx-form-validation-kit.
Для строго типизированного TypeScript
mobx-form-validation-kit 2.0
И переписанный вариант библиотеки под Flutter
flutter_mobx_form_validation_kit 2.0


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

Будущее JavaScript: декораторы

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


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

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

Впервые данное предложение прозвучало около 5 лет назад и с тех пор претерпело несколько значительных изменений. В настоящее время оно (по-прежнему) находится на второй стадии рассмотрения.

Если вы раньше не слышали о декораторах или хотите освежить свои знания, рекомендую ознакомиться со следующими статьями:


Итак, что такое декоратор? Декоратор (decorator) — это функция, вызываемая на элементе класса (поле или методе) или на самом классе в процессе его определения, оборачивающая или заменяющая элемент (или класс) новым значением (возвращаемым декоратором).

Декорированное поле класса обрабатывается как обертка из геттера/сеттера, позволяющая извлекать/присваивать (изменять) значение этому полю.

Декораторы также могут аннотировать элемент класса метаданными (metadata). Метаданные — это коллекция простых свойств объекта, добавленных декораторами. Они доступны как набор вложенных объектов в свойстве [Symbol.metadata].
Читать дальше →

Мой опыт разработки с использованием андроид устройства

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

Как же люди любят упрощать сложное и усложнять простое, ну или как я настаивал планшет для работы.

Читать далее