Обновить
256K+

JavaScript *

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

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

Как грамотный подход аналитиков может сэкономить бюджет компании за счет изменения подхода к реализации проекта

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

Привет, Хабр! Меня зовут Лена Махова, я работаю системным аналитиком в РСХБ‑Интех. Бывают ситуации, когда нужно решить проблему бизнеса и сократить время на разработку. Так случилось и у нас, когда пришел заказ от смежников доработать интеграцию в части передачи значения «номер ИД» (исполнительный документ). В материале рассказываю, как мы решили эту задачу, и даю шаблон кода решения, чтобы при желании вы также могли им воспользоваться.

Читать далее

Ускорение в 30 раз — requestIdleCallback

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

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

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

Читать далее

Повышаем продуктивность разработки: магия общей ESLint конфигурации

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

Всем привет! Меня зовут Дмитрий Пашкевич, я Frontend разработчик и хочу рассказать о создании единой ESLint конфигурации, которую можно переиспользовать между проектами.

Статья будет полезна разработчикам: которые регулярно или время от времени дискутируют о форматировании кода на ревью; хотят унифицировать подход к форматированию кода в разных проектах; ищут проверенное решение для стандартизации кодовой базы.

Читать далее

Создание приложения для распознавания текста с изображений и аудиофайлов

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

Запись текста с фотографии листа или из аудиозаписи в текстовый файл, доступный для редактирования – довольно часто встречающаяся задача при работе в офисах или учёбы. Для распознавания текстов и аудио в платных сервисах и программах сегодня используются такие подходы, как машинное зрение и распознавание речи с использованием глубоких нейронных сетей.

Детектирование (обнаружение) и классификация символов на изображении осуществляется с использованием различных архитектур свёрточных нейронных сетей [1]. Обработка естественного языка основана на использовании глубоких рекуррентных нейронных сетей, состоящих из ячеек долгой краткосрочной памяти LSTM [2]. При создании соответствующих приложений для работы с текстами, этап реализации нейронных сетей можно пропустить, используя соответствующие свободно распространяемые библиотеки.

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

Читать далее

Связь electron и FT2232 на примере MAX30102

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

Статья посвящена тому, как я подключал оптический датчик MAX30102 используя плату с FT2232 и electron.js

Читать далее

Введение в микроразметку в Nuxt.js: как это работает

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

Привет, Хабр! Меня зовут Павел, я JS-разработчик SimbirSoft. За три года работы во фронтенде я убедился, что микроразметка необходима для оптимизации и улучшения UX на сайте, и считаю ее важным инструментом при разработке. В целом микроразметка феномен распространённый. Но что мы знаем об использовании Server-Side Rendering (SSR)? Разберёмся по порядку.

Читать далее

Blockchain-разработка глазами Backend-разработчика

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

Я достаточно давно занимаюсь Backend разработкой и последние несколько лет, все больше и больше пишу разные блокчейн проекты (Solidity на EVM). Погружение в блокчейн мне давалось непросто и мой бэкендерский мозг несколько раз ломался, и я решил поделиться своим взглядом на погружение в блокчейн-разработку.

У этого поста также есть видеоверсия.

Читать далее

Делаем import/require ясными и красивыми

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

Довольно часто в проектах встречается использование относительных import/require. Если это маленький проект, и подключается модуль из текущей папки, то это приемлемо, но при разрастании проекта и глубины вложенности папочной структуры без слез смотреть на это нельзя:

Читать далее

react-query vs SWR и избавимся ли мы от Redux?

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

Давайте сначала познакомимся с обоеми библиотеками, чтобы сравнить их и убедиться, что лучше. react-query и SWR — это две популярные библиотеки для управления состоянием данных в React-приложениях. Они обе предназначены для облегчения работы с данными, получаемыми с сервера, но имеют некоторые различия в функциональности и подходах.

Читать далее

Абстрактные типы данных. Изложение для начинающих

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

Абстрактный тип данных. 

Зачем нужны абстрактные типы данных? Чем они полезны для программиста? Когда необходимо создавать эти абстракции, а когда можно обойтись без них? Тип данных vs абстрактный тип данных vs структура данных.

Читать далее

Генерируем простой web интерфейс для просмотра таблиц PostgreSQL

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

В публикациях на хабре, чаще всего самое интересное в комментариях. Вот и в моем прошлом посте "Сгенерировать web интерфейс из БД или объектной модели не стало проще даже 10 лет спустя" я собрал джекпот из SharePoint, Vaadin и нескольких библиотек либо устаревших, либо поддерживаемых "одним автором".

Что я пытался объяснить читателям, что на этапе проверки идей не нужна дополнительная сложность в виде серверной инфраструктуры только ради этой самой инфраструктуры и нового языка программирования/платформы. Именно поэтому мне не нужны сейчас Yii, Symfony и Laravel, не подойдет ADF. На любое обучение тратится драгоценное время и поэтому надо понимать зачем тратить время на что-то, что потом возможно навсегда придется забыть через неделю-другую игры с прототипом.

В своих эксперементах с помощью лапшекода на JavaScript я быстро разработал вполне функциональный интерфейс. А начиналось все с Java 21, хотя в итоге обошелся без нее!

Читать далее

Паттерны реактивности в современном JavaScript

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



"Реактивность" — это то, как системы реагируют на обновление данных. Существуют разные типы реактивности, но в рамках этой статьи, реактивность — это когда мы что-то делаем в ответ на изменение данных.


Паттерны реактивности являются ключевыми для веб-разработки


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


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


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

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

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

Ликбез по распространенным Client-Side уязвимостям

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


В этой статье мы покажем:


  • как в разных ситуациях манипулировать веб-сайтом таким образом, чтобы он передавал пользователям вредоносный JavaScript.
  • как скомпрометировать администратора сайта, отправив ему личное сообщение;
  • как атаковать разом всех пользователей при помощи комментария под статьей;
  • как заставить пользователя отправить запрос на действия, которые он не собирается выполнять;
  • как прослушивать WebSocket-соединения;
  • и коротко объясним, как предотвратить все эти безобразия.

В общем, под катом вас ждет рассказ про распространенные уязвимости на стороне клиента и некоторые методы Client-Side защиты.

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

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

Подробная настройка Content Security Policy (CSP)

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

Content Security Policy (CSP) - это механизм безопасности веб-приложений, который используется для сокращения рисков, связанных с атаками, такими как внедрение скриптов (XSS) и выполнение нежелательного кода (инъекция). CSP позволяет веб-разработчикам указывать браузерам, из каких источников разрешено загружать ресурсы, такие как скрипты, стили, изображения, шрифты и другие элементы.

Читать далее

RxJS: как операторы высшего порядка упрощают код

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

Если вы работали с Angular, то наверняка встречались с RxJS. Потоки, развесистые конструкции, много аргументов у метода pipe, а каждый аргумент возвращают разные функции с разным количеством аргументов. Есть интуитивно понятные функции типа filter или map. Первый явно фильтрует значения в потоке, а второй эти значения меняет. Такие функции называют операторами. И чем глубже вы проваливаетесь в RxJS, тем больше самых разных операторов вы узнаете. И со временем добираетесь до потоков потоков. То есть вместо обычных значений такой поток эмитит другие потоки. Такие потоки называют Higher Order Observables. И для работы с такими потоками существуют специальные операторы. Возможно, вы слышали, что такие операторы называют Higher Order Operators (HOO). Они могут выравнивать потоки или, другими словами, делать их обычным.

В этой статье я покажу, что в HOO нет ничего мифического, и расскажу в каких случаях вам нужно использовать операторы высшего порядка. Сейчас вы подумаете, что это скучный лонгрид, но не торопитесь. Мы рассмотрим всего 4 оператора: switchMap, exhaustMap, concatMap и mergeMap.

Читать далее

Задачи про PEG-парсеры

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

Когда-то я хотел сделать контест по парсингу для Codeforces. Придумал задания двух типов:

1. Дается неформальное описание языка, по которому нужно создать грамматику (например, "язык с правильными скобочными последовательностями")

2. Даны примеры строк в языке, по которым нужно восстановить грамматику

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

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

Читать далее

Просто о Deep #1

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

Боль в написании backend

Разберем, какие есть боли у backend разработчика и как deep.foundation решает данную проблему и что предлагает для разработчика.

In deep

Добавление server side Open Graph и прочего SEO в существующую SPA

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

Представьте себе следующую ситуацию: у вас на руках есть SPA с рендерингом полностью на клиенте, и вам необходимо сделать так, чтобы в зависимости от URL было разное содержимое у тега <head>.

Читать далее

Под капотом анимаций в React Native. Часть 2/2: Reanimated and JSI

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

Привет! Меня зовут Евгений Прокопьев, я старший инженер-разработчик в СберМаркете. На React Native я пишу уже больше 6 лет и очень люблю создавать красивые анимации.

В интернете часто сталкиваюсь с мнением, что на RN невозможно сделать красивые и стабильные анимации: их трудно делать и они ужасно лагают. По моему опыту всё обстоит совсем не так — вопрос именно в том, как их готовить. Хочу поделиться опытом, что сделать, чтобы у вас анимации не лагали, и по возможности восстановить репутацию React Native в глазах комьюнити.

Это продолжение вторая часть статьи. Призываю сначала ознакомиться с первой:Под капотом анимаций в React Native. Часть 1/2: Animated and Bridge

Читать далее

Подборка VS Code-плагинов для Frontend-разработчиков и не только

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

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

Читать далее