Обновить
225.32

JavaScript *

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

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

Область видимости и замыкания в JavaScript

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

В этой статье будет в общем формате раскрыта тема заголовка. Лично мне при изучении не хватало примеров на тему: как и для чего используются замыкания? В интернете трудно найти что то более интересное, чем счетчик, сложение чисел или многих пугающая мемоизация. Но не смотря на их повсеместность, я всё же включу их в эту статью, но модифицирую их таким образом, что бы изучение было более интересным.

Читать далее

Расширяем возможности мобильного приложения на WebView. Опыт Ozon Банк

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


Привет, Хабр! Меня зовут Георгий, я руководитель команды Ozon Банк iOS. Я занимаюсь разработкой и развитием мобильного направления финансовых продуктов Ozon.

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

Часто разработчики используют только встроенный API взаимодействия JavaScript c нативными кодом, например Web API, но нам этого оказалось мало, и мы расширили спектр возможностей подхода web-native. Внутри статьи я расскажу, какой подход выбрал, как к этому пришёл и как обошёл возникшие проблемы. Подчеркну плюсы и минусы использования своего решения и в конце предложу несколько идей дальнейшего развития выбранного пути.

Читать далее

Стоит ли решать задачи на Codewars? Или как я полюбил алгоритмы

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

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

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

Читать далее

Video-streaming в Raspberry PI + WebRTC — победа?

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели4.3K

Я занимаюсь разработкой роботов (как хобби) уже долгое время, и столкнулся с проблемой передачи видео через интернет со своего Raspberry PI 4 и Raspberry PI zero.

Сначала идея была в реализации WebRTC на node js, про что я написал в этой статье. Как было написано, проблема заключалась в высокой загрузке процессора.

Читать далее

Ускоряем JS до предела C

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

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

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

Читать далее

Как устроен Braid?

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

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

Читать далее

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

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


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


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



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


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


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

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

Вопросы к собеседованию React (Junior level)

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

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

Читать далее

Стоит ли игра свеч? Кратко о Single SPA (часть 1)

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

О проектировании микросервисной архитектуры с использованием фреймворка Single SPA и технологиях, связанных с его использованием.

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

Playwright и Allure как хорошая практика для разработки веб-приложения

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели4.6K

Разработчики вечно ищут баланс: как выпускать фичи быстро, качественно и желательно небольшой командой. Наш рабочий рецепт – это фронты + e2e-тесты. Рассказываю, как мы используем автотесты и визуализируем их результаты.

Читать далее

Изучение случайности в JavaScript

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

В моем посте о создании утилиты цветовой палитры в Alpine.js случайность играла большую роль: каждый образец генерировался как композиция случайно выбранных значений Hue (0..360), Saturation (0..100) и Lightness (0..100). Когда я создавал эту демонстрацию, я наткнулся на Web Crypto API. Обычно при генерации случайных значений я использую метод Math.random(), но в документации MDN упоминается, что Crypto.getRandomValues() более безопасен. В итоге я решил попробовать Crypto (с фоллбэком на модуль Math по мере необходимости). Но это заставило меня задуматься, действительно ли "более безопасный" означает "более случайный" для моего варианта использования.

В чем разница

Как сделать приложение на NestJS, которое можно будет поддерживать спустя годы

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

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

Читать далее

Zoneless Angular 18

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

По праву основной фичей Angular 18 стала Zoneless Change Detection. Именно с ней так и хочется разобраться.

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

Перед тем как мы перейдем к Zoneless Change Detection, вкратце пробежимся по концепции механизма CD (Change Detection) и тому, как он реализуется с помощью zone.js.

Читать далее

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

Кратко про основные техники кеширования в браузере

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

Сегодня мы поговорим о крайне важной, но порой недооцененной теме — кешировании в браузере.

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

В статье рассмотрим несколько основных методов кеширования, таких как использование HTTP заголовков Cache-Control, ETag, и If-Modified-Since, а такжеLocalStorage.

Читать далее

Поиск ближайших любительских соревнований по бегу, плаванию, велосипедам и другим видам спорта

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

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

Например, я живу в Перми и хочу поучаствовать на следующих выходных в какой нибудь активности, например, побегать, прокатиться на велосипеде или поплавать. Ввожу в поиске «Пермь», но в результатах выдачи ничего нет. Хотя есть соревнование в посёлке Юг, который находится меньше часа езды от Перми. Но раз я ищу «Пермь», то «Юг» понятное дело в списке не выводится...

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

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

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

Ищем куда махнуть на пробежку 🏃

Как я написал загрузчик YouTube видео на Ktor + HTMX. Убийца React?

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

Мы вырастили монстра, который больше не нужен (с)

Рассмотрим возможности применения модного фреймворка HTMX в связке с Ktor на примере написания загрузчика видео.

Читать далее

Управление зависимостями в Javascript заходит на новый виток? Работа с ES модулями без сборщиков

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели6.9K

Изначально эта статья задумывалась, как рассказ о различиях и назначении полей dependencies, devDependencies и peerDependencies в package.json. Эту тему выбрали ребята в моем телеграм-канале, кстати подписывайтесь, если еще не. Однако, когда я посмотрел количество контента на эту тему, то понял, что его достаточно даже в русском сегменте. При этом я прочитал одну статью, которая показалась мне очень хорошей, а также там были мысли на тему будущего управления зависимостями.

В итоге, я решил кратко пересказать вышеупомянутую статью, чтобы лучше самому усвоить тему, а также набросать проект по управлению зависимостями прямо на клиенте, через ES Modules. Так что вы можете прочитать либо оригинальную и полную статью у автора, либо сокращенную версию в первой половине этой статьи. А разбор работы ESM будет во второй половине.

Читать далее

Next.js и революционные изменения в React

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


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

Полный гайд по UI-китам: как их создавать, подключать и ничего не бояться

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели16K

Привет! Я Леша Кузьмин, главный про фронтенду в AGIMA. Мы с коллегами решили суммировать наш опыт по подготовке UI-китов и сделать большую и внятную инструкцию для новичков. Во-первых, это удобно — будем давать эту статью нашим стажерам и падаванам. Во-вторых, нам не жалко — читайте, делитесь опытом, задавайте вопросы в комментариях.

Ниже разбираем всё с самого начала: от «зачем это вообще нужно» до «как использовать на реальном проекте». А в самом конце найдете репозиторий с фрагментами кода, которые можно использовать в своей работе. Статья для начинающих и не только начинающих Frontend-разработчиков. За помощь в ее подготовке благодарю мою коллегу Ангелину Николаеву.

Читать далее

Фабричный метод в React: эффективное создание компонентов. Часть 1

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

Привет всем! Я Мыльников Кирилл, frontend-разработчик в компании Usetech. Сегодня хочу поделиться примером реализации фабричного метода во фронтенде и объяснить, когда и где его следует применять. Освежим память о паттернах и роли, которую они играют в проектах.

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

Давайте по классике начнем с определений, вспомним, что такое паттерны и фабричный метод.

Читать далее

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