Обновить
190.51

JavaScript *

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

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

От Angular до биотеха: что будет на HolyJS 2024 Spring

Время на прочтение15 мин
Количество просмотров2.3K

В апреле мы проведём конференцию HolyJS — о чём будут её доклады? Что вообще должны говорить на JS-конференции? Спорить, какой фреймворк лучше?

Бессмысленные холивары мы не любим. А вот полезную информацию по тем же фреймворкам — вполне. Так что будут доклады с темами вроде «Angular Platforms» и «Vue.js Renderer» (так сказать, разберём всё «от Ангуляра до вьЮ»).

В мире фронтенда бывает лучше один раз увидеть, чем сто раз прочитать: когда речь об анимациях и прочих красотах. А лучше всего — и увидеть красоту в презентации доклада, и услышать от спикера о том, как её правильно наводить. И такое будет: скажем, о работе с 3D сразу два доклада.

В основном конференция суровая техническая. Но для тех, кого волнуют вопросы вроде карьерных, есть и блок из нескольких докладов «Мягкая сила». Знаете ли вы, сколько и как можно заработать на HTML5-играх?

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

Читать далее

Разница между Ctrl+Z и Ctrl+C или рассказ о том как правильно остановить локальный сервер

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров12K

А вы знаете, как остановить локальный сервер? Какое сочетание клавиш использовать?

После этой статьи вы точно будете знать и уметь его правильно останавливать

Я попросил своих друзей оценить одну из моих статей с точки зрения логики, полезности и содержания. Они - очень хорошие специалисты с большим опытом в своей области. И каково было мое удивление, когда я услышал от них ответ, что они не сталкивались с проблемой, о которой я рассказываю далее. И вообще, почему я использую Ctrl+Z для остановки локального сервера?

Что ещё за Ctrl+Z? Прочитать статью

Воплощённые типы

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.2K

Всем привет!

Хочу представить вам подход к определению типов, позволяющий сделать ваш код чище и понятнее. Я называю это "Воплощённые типы"("Embodied types").

Воплощённый тип - тип, для которого определена переменная с одинаковым именем и в которой содержится объект с утилитами для этого типа.

Читать далее

Путь развития Frontend разработчика (Вторая часть)

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров23K

Это вторая часть roadmap frontend разработчика, Если вы не читали первую часть, то настоятельно рекомендую ознакомится, Первая часть. В этой статье я продолжу вам рассказывать про мое представление современной карты развития frontend разработчика.

Читать далее

Пора переходить на микрофронтенд? Опыт «Инферит Клаудмастер»

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6K

Приветствую всех новичков и гуру фронтенда, а также всех, кто работает с интерфейсами. Я Никита Борцов, создаю красоту на фронте первой в России FinOps-платформы для управления облачными затратами “Инферит Клаудмастер”.

В этой статье вы узнаете о:

факторах, сформировавших тренд на уход фронтенд-разработки от монолита к микрофронтенду,
процессах со стороны команды разработки при переходе на микрофронтенд,
кейсе платформы “Инферит Кладумастер”: почему для нашей команды микрофронтенд с плагином Module Federation стал полезным решением,
признаках того, что пора переходить на микрофронтенд.

Читать далее

Hono vs. H3 vs. HatTip vs. Elysia — современные замены Express для сервера (или без сервера)

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров5.3K

H3 отмечает, что Express.js - старый и малоразвивающийся фреймворк, являющийся не оптимальным выбором для новых проектов из-за потенциальных проблем безопасности и утечек памяти, что, к слову, касается и Koa.

В нашей статье мы сделаем акцент на фреймворках, поддерживающих запуск service workers на серверной стороне и современный стандарт Fetch API, поскольку это позволяет им работать в бессерверных и Edge-окружениях, таких как Cloudflare Workers. Это, к слову, и причина, почему Fastify не будет рассматриваться в нашей статье, несмотря на эксперимент fastify-edge, который продолжался два года (кстати, была написана интересная статья о переходе от Node к средам рабочих процессов, с которой я рекомендую ознакомиться).

Worker Runtimes воплощают первоначальное обещание NodeJS: использование одного языка и возможность обмена кодом между клиентом и сервером. Однако на практике это не осуществилось, и API Node и браузеров пошли по разным путям. Worker Runtimes вновь объединяют эти возможности. Больше информации здесь.

Hono, H3, HatTip и Elysia - это современные фреймворки HTTP-серверов, также известные как промежуточные программы веб-сервера нового поколения. Они работают везде, на любом JS-рантайме, включая бессерверные и Edge-среды выполнения. Это означает, что они могут быть использованы не только на серверах Node.js. Кроме того, все они поддерживают TypeScript.

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

Все они поддерживают Web Fetch API (объекты Request/Response), но здесь я покажу их API, наиболее похожие на Express, чтобы было проще ориентироваться.

Читать далее

Создание интерактивных анимаций с помощью React Spring

Время на прочтение11 мин
Количество просмотров7.9K

Эта статья посвящена React Spring — библиотеке анимации на основе JavaScript. Мы рассмотрим её фичи, включая различные хуки и компоненты, и то, как использовать их в приложениях.

Читать далее

Взгляд на асинхронность в JavaScript: роль Event Loop, промисов и async/await

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров17K

В этой статье мы сосредоточимся на ключевых элементах асинхронного программирования в Java Script: Event Loop, Event Bus, промисы и синтаксический сахар async/await. Разберемся, как эти концепции взаимодействуют между собой и как их использование помогает нам создавать более эффективные и отзывчивые веб-приложения.

Мы начнем с изучения роли Event Loop - механизма, ответственного за управление выполнением асинхронного кода. Затем мы перейдем к рассмотрению Event Bus, который обеспечивает коммуникацию между различными компонентами приложения. После этого мы ознакомимся с промисами и синтаксическим сахаром async/await, которые значительно упрощают работу с асинхронным кодом и делают его более читаемым и понятным.

Читать далее

Кеширование next.js. Дар или проклятие

Время на прочтение7 мин
Количество просмотров9K

В 13 версии команда next.js представила новый подход к проектированию приложения - так называемый App Router. В 14 версии его сделали стабильным и основным для новых приложений.

App Router значительно расширяет функционал next.js - частичный пререндеринг, шаблоны, параллельные и перехватываемые роуты, серверные компоненты и многое другое. Однако, даже несмотря на все эти улучшения - далеко не все решили перейти на App Router. И на это есть свои причины.

О преимуществах и проблемах нового роутера я уже рассказывал в предыдущей статье. Дальше же речь пойдёт не о новых абстракциях или их особенностях. На самом деле ключевым и самым спорным изменением является именно кеширование. В этой статье будет рассказано что, зачем и как кеширует самый популярный фронтенд фреймворк - Next.js.

Читать далее

className убивает ваш UI kit

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров5K

UI kit играет важную роль в разработке веб-интерфейсов. Он представляет собой набор компонентов и стилей. Основная ценность его использования - это экономия времени. Вместо того, чтобы создавать каждый элемент с нуля, разработчики могут использовать уже готовые элементы, что ускоряет процесс разработки.

Гибкое API у UI kit компонентов является преимуществом. Однако возможность повлиять на стили ваших компонентов в конкретном месте является большим искушением. Разработчику выгодно внести изменение здесь и сейчас, а не думать на перспективу. Такое поведение постепенно разрушает вашу систему переиспользования.

Читать далее ?

JS. Валидация данных. Пишем свой YUP

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров8.5K

Создаем TypeScript библиотеку для валидации данных. Поэтапно добавляем основной функционал и типизацию. Делаем основую упор на простоту кода и проиводительность. Как протитип используем yup и zod.

Читать далее

Мемоизация в React: я почитал документацию вместо вас

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров32K

В статье рассмотрены три инструмента мемоизации в React: useMemo, useCallback, memo. Главный источник информации: документация React. Не всем комфортно работать напрямую с документацией, так что если вы постоянно откладываете погружение в документацию React - я сделал это за вас, постарался выделить самое важное, и дать ссылки для углубленного погружения.  

Так как мы будем рассматривать не самые базовые вещи, касающиеся React, то я не буду останавливаться на таких основах как хуки, состояние, свойства, чистые функции и чистые компоненты, ожидая, что вы ознакомитесь с ними за пределами статьи. А также все рассмотренное ниже относится в первую очередь к React 18. 

Читать далее

Путь развития (Roadmap) Frontend разработчика

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров65K

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

Читать далее

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

Как мы создаём редакторы документов. Ядро и его роль в кроссплатформенной разработке

Время на прочтение10 мин
Количество просмотров4.2K

В МойОфис мы создаем ПО для корпоративного пользования, и одни из ключевых продуктов нашей линейки — редакторы документов «МойОфис Текст» и «МойОфис Таблица». Эти приложения представлены на всех популярных платформах, включая мобильные устройства. Они позволяют создавать, изменять, просматривать текстовые и табличные документы различных форматов, а также совместно работать над ними в веб-версии редакторов.

Сегодня мы расскажем об общем технологическом устройстве редакторов МойОфис, с акцентом на их центральный элемент: ядро, написанное на C++. Именно ядро обеспечивает основную функциональность приложений и даёт нам возможность эффективно унифицировать её для разных платформ.

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

Читать далее

Интерфейс под один палец. Концепция ONE TOUCH

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6.1K

Сталкивались ли вы с проблемой, когда вам не хватает рук при использовании телефона? Например, у вас одна рука занята пакетами или испачкана в чипсах, а до кнопки "назад" не дотянуться.

72120

Безопасность веб-приложений: анализ методов защиты от атак на уровне Backend

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров11K

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

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

Целью данной работы является анализ и оценка методов защиты веб-приложений на уровне Backend от различных видов угроз и атак.

Читать далее

WebRTC. Как установить p2p соединение между браузерами

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров6.1K

WebRTC позволяет браузерам обмениваться информацией напрямую без сервера. Можно передавать видео, звук и данные. Установить WebRTC соединение можно разными способами. В статье описано как WebRTC соединение устанавливается между пользователями редактора схем dgrm.net.

Читать далее

Web3 приложение Twitter на React.js + Solidity | часть 2

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров2.9K

Hello, в первой части был подготовлен проект, подключены кошельки и написан backend на Solidity, значит пришло время писать frontend на React.

Проект далёк от продакшена и является простым примером для новичков, предназначенным для демонстрации взаимодействия с смарт‑контрактом через веб‑приложение.

Читать далее

Выбор технологического стека для digital-продукта в 2024 году

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров33K

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

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

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

Читать далее

Как в Node.js контролировать потребление памяти при обработке сетевых запросов

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров8.3K

Всем привет! Я Виктор Кугай, руководитель команды разработки спецпроектов в Тинькофф. Мы создаем геймификационные проекты, основанные на данных, чтобы познакомить пользователей с экосистемой компании и повысить узнаваемость бренда.

Расскажу, как с помощью Node.js Streams и механизма Back Pressure протокола TCP реализовать пакетную обработку сотен гигабайтов данных на машинах с жестким лимитом памяти.

Читать далее

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