Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

RxJS Interop в Angular 18: основные изменения и преимущества

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

✏️ 🔥 Я написал новую статью об одной из интересных функций в Angular 18: RxJS Interop. В статье рассматривается, как RxJS Interop эволюционировал с Angular 16 до 18, какие новые возможности он приносит и как его можно использовать в вашем коде.

🚀 Если вы разработчик Angular и хотите улучшить свои реактивные паттерны, эта статья для вас!

✨ Основные моменты:

- 🔄 Бесшовная конвертация между Signals и Observables.

- 📉 Оптимизированная производительность для управления реактивным состоянием.

- 💡 Использование операторов RxJS напрямую с Signals для упрощения и улучшения читаемости кода.

- 🔥 Упрощение интеграции с Firestore с помощью Signals для синхронной реактивности и более простого управления состоянием.

Читать далее
Всего голосов 8: ↑5 и ↓3+5
Комментарии8

Понимание принципа построения функциональности карт с Яндекс.Картами API v3

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

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

Читать далее
Всего голосов 5: ↑3 и ↓2+3
Комментарии2

Гайд по деплою web-приложений для новичков. Часть 3. Простая автоматизация

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

Продолжаем цикл статей, посвященных деплою приложений на сервер. 

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

- bash-скрипт

- GitHub actions

Читать далее
Всего голосов 14: ↑12 и ↓2+11
Комментарии19

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

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

Привет, Хабр! Представляю вашему вниманию перевод четвертой статьи автора Marja Hölttä из цикла Understanding ECMAScript. Перевод первой части. Перевод второй части. Перевод третьей части.

Читать далее
Всего голосов 10: ↑10 и ↓0+15
Комментарии0

Улучшение производительности рендеринга с помощью CSS content-visibility

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

Недавно я обнаружил интересную ошибку в работе emoji-picker-element:

Я работаю на экземпляре fedi с 19 тыс. пользовательских эмодзи [...], и когда я открываю панель выбора эмодзи [...], страница замирает как минимум на целую секунду, а после этого на некоторое время замирает общая производительность.

Если вы не знакомы с Mastodon или Fediverse, то на разных серверах могут быть свои собственные эмодзи, как в Slack, Discord и т.д. Наличие 19k (на самом деле ближе к 20k в данном случае) крайне необычно, но не является чем-то неслыханным.

Читать далее
Всего голосов 11: ↑11 и ↓0+16
Комментарии3

Я знаю, что вы читали прошлым летом: топ-5 статей про JavaScript

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

В июле на Хабре вышла новая фича — расширенная статистика для авторов. Метрики для неё собираются с конца мая, так что дочтения, доскроллы и отказы у всех летних статей трекались прямо с момента публикации.

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0+19
Комментарии11

Вышел Vue 3.5

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

Сегодня мы рады сообщить о выходе Vue 3.5 "Tengen Toppa Gurren Lagann"!

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

Читать далее
Всего голосов 29: ↑29 и ↓0+37
Комментарии2

JavaScript: структуры данных и алгоритмы. Часть 4

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


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


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



Сегодня мы рассмотрим дерево отрезков, дерево Фенвика, а также граф (направленный и ненаправленный).


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


Интересно? Тогда прошу под кат.

Читать дальше →
Всего голосов 15: ↑14 и ↓1+26
Комментарии1

Launcher для GoodbyeDPI – понятный способ обойти все блокировки и восстановить YouTube в России

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

Сейчас опишу интуитивно понятный способ восстановления работоспособности YouTube и обхождения любых блокировок провайдера на Windows компьютере. Уверен, что статью по указке РКН быстро удалят, так что если тема вам интересна, дочитайте до конца, сразу скачайте себе программу, даже если планируете использовать после. Заносить в закладки особого смысла нет. Ну и ставьте лайк. Отдельно также следует повысить карму ValdikSS - Пользователь / Хабр (habr.com) автору уникального решения GoodbyeDPI, который публиковал статью с описанием своего решения пару недель назад тут: Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу, теперь там банер РКН и слова «Эта интернет-страница удалена из публичного доступа по юридическим причинам».

Я не буду заново описывать техническое решение GoodbyeDPI, кратко это программа (или служба ОС Windows) позволяющая обнаруживать «заглушки» созданные провайдерами по указанию РКН для блокировки небогоугодных сайтов. Программа бесплатно распространяется на GitHub, является консольной утилитой мало понятной рядовому пользователю. Полное описание и ссылки есть на NNMClub ⚡ Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу. GoodbyeDPI и ReQrypt + Blockcheck – ресурс, конечно же, заблокирован у вас, если еще не установлен какой-либо способ обхода блокировок.

Сейчас появилось решение в виде графической оболочки для GoodbyeDPI, которое на русском языке позволяет в пару кликов решить проблемы медленного YouTube и не работающих сайтов. Решение Launcher for GoodbyeDPI, это простое окошко настройки к GoodbyeDPI, который также идёт в комплекте. Скачивайте с сайта автора, или с моего зеркала.

Восстановите YouTube и запрещенные сайты
Всего голосов 207: ↑194 и ↓13+217
Комментарии182

Сериализация сущностей с помощью декораторов на TypeScript

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

В процессе написания приложения с более-менее сложной бизнес-логикой на фронтенде возникает необходимость держать всю эту логику на слое предметной области в "толстых" моделях. Например, для работы с формой, которая отображает на пользовательский интерфейс создание или редактирование сущности с большим количеством взаимозависимых свойств. Если "размазать" обработчики изменения состояния этой сущности и входящих в неё подсущностей по слою Application, легко можно потерять целостность модели в разных actions, reducers, валидаторах. Такой код будет трудно читать, отлаживать и поддерживать.

Можно использовать паттерн Aggregate Root для единой точки входа управления моделью, тогда упростится поддержка инварианта такой сущности. Методы доступа к свойствам и методы, меняющие состояние сущности, можно вызывать из одного объекта, а сам объект будет обеспечивать целостность и валидность своих данных. Но здесь появляется ещё одна проблема: сериализация. К примеру, бывает нужно сохранить всю сущность в каком-нибудь хранилище -- localStorage, redux store. Или отправить на бэкэнд для сохранения. Или событием обновить пользовательский интерфейс, а в payload события при этом надо передать часть сущности в виде простого плоского объекта. В этих случаях нам нужна выжимка данных из сущности, которую можно будет восстановить потом при запросе из хранилища для дальнейшей работы. Это особенно актуально, если на проекте используется SSR, там данные, которые собираются для страницы на серверной стороне, должны быть сериализуемыми.

Читать далее
Всего голосов 11: ↑10 и ↓1+12
Комментарии11

Pipelining & Composing: улучшаем читаемость кода. Реализация на TypeScript

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

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

Читать далее
Всего голосов 4: ↑3 и ↓1+5
Комментарии12

Что почитать начинающим разработчикам: подборка книг по JavaScript

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

Привет, Хабр! Я Саша Пиманов, ведущий iOS-разработчик в МТС Диджитал. Сегодня хочу поделиться подборкой книг для кодеров, которые только начинают свой путь в ИТ-отрасли. Если у вас есть любимые книги по JS, о которых я не упомянул, пишите о них в комментариях. Возможно, заберу их в следующий пост. Ну, поехали!

Читать далее
Всего голосов 8: ↑5 и ↓3+6
Комментарии11

Современные архитектуры фронт-энда

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

image


В статье "Contemporary Front-end Architectures" рассмотрены архитектуры фронт-энда с точки зрения потоков данных в исторической ретроспективе.


Материал состоит из трех частей


  1. Теория и история
  2. Реализация
  3. Перспективы

Читать дальше →
Всего голосов 22: ↑21 и ↓1+23
Комментарии14

Первый взгляд на записи и кортежи в JavaScript

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

В этом посте мы вкратце рассмотрим предложение в стандарт ECMAScript «Record & Tuple» от Робина Рикарда и Рика Баттона. Это предложение добавляет два вида составных примитивных значений в JavaScript:


  • записи (records) — неизменяемая и сравниваемая по значению версия простых объектов;
  • кортежи (tuples) — неизменяемая и сравниваемая по значению версия массивов.

image

Читать дальше →
Всего голосов 20: ↑19 и ↓1+24
Комментарии38

Как работает графика в видеоиграх?

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров18K
Видеоигры в 21 веке обладают впечатляющей графикой, способной перенести игрока в невероятно детализированные города, захватывающие дух места сражений, волшебные миры и захватывающую дух природу.Как же ваш компьютер берет миллиарды единиц и нулей и превращает их в реалистичную 3D-графику? Что ж, давайте разбираться.


Читать дальше →
Всего голосов 33: ↑29 и ↓4+34
Комментарии10

Как настроить аутентификацию через SMS и Flask для самых-самых ленивых пользователей

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

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

Сегодня мы по шагам расскажем, как подключить проверку пользовательских данных с помощью одноразового пароля по SMS. Для этого будем использовать платформу MTC Exolve и фреймворк Flask. Такой метод легко внедрить в свой проект и сделать работу с простыми личными кабинетами удобной и максимально ненапряжной для пользователей.

Читать далее
Всего голосов 10: ↑8 и ↓2+9
Комментарии6

Способы организации CSS-кода

Время на прочтение8 мин
Количество просмотров206K
Разработчик Бен Фрейн (Ben Frain) однажды заметил: «Писать CSS-код легко. Масшабировать и поддерживать его — нет».

К счастью, на просторах интернета можно найти множество решений этой проблемы. В данной статье рассмотрены основные киты структуры CSS-кода, а также интересные рыбы/млекопитающие поменьше.

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

Итак, начнем.
Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии61

Логирование во фронтенд-приложениях. Опыт Звука

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

Логирование во фронтенд-приложениях. Опыт Звука 

Всем привет! На связи Роман Савельев, фронтенд-разработчик в команде Звука. В этой статье я хочу поделиться опытом и рассказать, как мы с командой прошли путь от хаоса до выстроенной инфраструктуры и унифицировали работу с логами в собственных веб-сервисах. Я расскажу, с какими проблемами мы столкнулись, как их решали и какие вывели в best practices. 

Кстати, в best practices даны ответы на вопросы «зачем», «как» и «что» логировать.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии9

Замыкания в JavaScript для начинающих

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

Материал, перевод которого мы публикуем сегодня, посвящён рассказу о внутренних механизмах замыканий и о том, как они работают в JavaScript-программах.

Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии54

Обзор способов и протоколов аутентификации в веб-приложениях

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


Я расскажу о применении различных способов аутентификации для веб-приложений, включая аутентификацию по паролю, по сертификатам, по одноразовым паролям, по ключам доступа и по токенам. Коснусь технологии единого входа (Single Sign-On), рассмотрю различные стандарты и протоколы аутентификации.

Перед тем, как перейти к техническим деталям, давайте немного освежим терминологию.

  • Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд.
  • Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный).
  • Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.


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

Аналогично эти термины применяются в компьютерных системах, где традиционно под идентификацией понимают получение вашей учетной записи (identity) по username или email; под аутентификацией — проверку, что вы знаете пароль от этой учетной записи, а под авторизацией — проверку вашей роли в системе и решение о предоставлении доступа к запрошенной странице или ресурсу.

Однако в современных системах существуют и более сложные схемы аутентификации и авторизации, о которых я расскажу далее. Но начнем с простого и понятного.
Читать дальше →
Всего голосов 48: ↑48 и ↓0+48
Комментарии20
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность