Как стать автором
Поиск
Написать публикацию
Обновить
330.78

JavaScript *

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

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

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

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

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

Однако, её статус был не в “Ready for development”. Также можно было увидеть что сама задача ждёт выполнения другой задачи - на разработку API с данными. Здесь у меня начались вопросы, а также желание в очередной раз разъяснить менеджерам что критичных блокеров у этой задачи нет.

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

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

Читать далее

Отладка и мониторинг в MobX: trace, introspection и spy

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

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

Читать далее

Абсурдная незащищенность проекта @gamee

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

Возможно вы подумаете, что этот многопользовательский видеоигровой проект, основанный практически десять лет назад должен сейчас содержать хотя бы что‑то на подобии античита: лично я сразу начинаю представлять в своей голове фоновые капчи, слежку за всеми касаниями экрана, биг дату, самостоятельную криптографию, сервер‑сайд стейт, и прочее. Как показывает час моего свободного времени — ничего подобного там нет. Сейчас я вам подробнее покажу, почему этот «веб 3.0 проект», как и многие другие, является полным бредом разработанным на коленках.

Читать далее

CI/CD для начинающих: деплой React-приложения без боли

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

Следующий шаг после разработки веб-приложения — размещение его на сервере. Независимо от сложности проекта или используемой инфраструктуры, общий процесс остается одинаковым: нужно «упаковать» код в CI/CD-конвейер и отправить на сервер. В тексте рассмотрим, как это происходит на примере простого приложения to-do list на React. Подробности под катом!
Читать дальше →

Эпопея шахматных движков: мой опыт в разработке шахматной программы

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

В этой статье я расскажу про личный опыт написания шахматной программы на языке TypeScript. С какими проблемами столкнулся и пути к их решению :-)

Читать далее

Захват подписи в 1С с помощью графического планшета

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

Подписание документов — неотъемлемая часть многих бизнес-процессов. Будь то заключение трудового договора, выдача материальных ценностей или оформление счетов: часто в таких случаях необходимо распечатать документ и подписать его. Чтобы упростить и автоматизировать этот процесс, мы разработали решение, которое позволяет получать подписанные документы прямо в 1С, исключая необходимость печати, подписи и последующего сканирования.

Читать далее

linkedSignal: управлять связанным состоянием теперь ещё проще

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

Бу! Испугался? Не бойся. Angular 19 уже не за горами и представляет новый мощный примитив, называемый linkedSignal, который поможет вам управлять сложным состоянием в ваших приложениях. Это альтернатива использованию effect для простого обновления сигнала на основе изменения другого сигнала. В прошлом мы видели, как сообщество обсуждало, чтобы избегать использования effect и вместо этого использовать computed для сброса сигналов на основе изменения другого сигнала.

Читать далее

Что не так с iOS или как приручить BrowserStack

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

Всем привет и добро пожаловать в мой хабр про интересные задачи и их решения в моей ежедневной работе. Уверен, что каждый QA (и не только) сможет найти здесь что-то интересное и полезное. Начнем!

Пару недель назад я взял задачу по написанию и настройке автотестов видеоплеера для разных платформ (Windows, MacOS, iOS и Android). Решил, что использовать Selenium в связке с NodeJS будет хорошим вариантом, так как именно этот фреймворк позволяет работать не только с десктопными, но и с мобильными браузерами (в отличие от того же Cypress).

Посмотрим, что у меня получилось и с какими трудностями я столкнулся при работе с iOS-устройствами.

Читать далее

Ускоряем браузерные вычисления на коленке с помощью WebAssembly на примере генерации шума

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

Так ли производителен WebAssembly в сравнении с JavaScript как о нем говорят? Какие подводные камни могут ожидать при попытке ускорить CPU-bound задачи и в каких ситуациях он must have? Автор предлагает рассмотреть один кейс и разобраться в этих вопросах на практике

Приступим

Svelte 5 здесь

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

После почти 18 месяцев разработки, включающей тысячи коммитов от десятков участников, Svelte 5 наконец‑то стабилен.

Это самый значительный релиз в истории проекта. Svelte 5 — это полная переработка: ваши приложения станут быстрее, меньше и надежнее. Вы сможете писать более последовательный и идиоматичный код. Новичкам в фреймворке предстоит изучить меньше материала.

Читать далее

React Native полностью переделан

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

После 6 лет разработки команда React Native представила полностью переписанную архитектуру фреймворка (0.76) – самое значительное обновление с момента создания React Native. Это результат масштабной работы над улучшением производительности, стабильности и возможностей платформы.

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

Разница между очисткой, сбросом и восстановлением моков

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

В данной статье мы подробно рассмотрим различия между операциями очистки (clearing), сброса (resetting) и восстановления (restoring) моков в процессе тестирования программного обеспечения.

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

Читать далее

Как использовать npm без опаски

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

Проксирование реестра npm, ignore-scripts и "крышечки" — основы основ, о которых не знают в 99% компаний, где пишут на Node.JS

Блинский!

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

Литкод изи — это просто

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

Задумывались ли вы, где можно применить навык решения задачек а-ля литкод изи? Я встречаюсь с ними частенько, главное просто присмотреться.

Например, на Linked.in недавно ввели "игры". Я как-то глянул на них на послеобеденном кофе.

Пусть оно само

JavaScript-консоль для QA-инженера: от поиска багов до автоматизации

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

Консоль браузера — это инструмент, о котором многие знают, но лишь немногие используют его возможности в полной мере. Для большинства QA-инженеров она остаётся чем-то вроде диагностической панели: открыть, увидеть ошибку, закрыть. Однако её потенциал значительно шире. Я убедился в этом на собственном опыте. Привет, Хабр, меня зовут Алексей Иванов, я занимаюсь тестированием в компании «Самолет», и, помимо ежедневной работы с продуктом, организую митапы по тестированию в Москве. Участвуя в таких крупных конференциях, как Heisenbug и SQA Days, я заметил, что многие мои коллеги используют консоль исключительно для отслеживания ошибок на сайте. Но что, если взглянуть на неё шире? 

Читать далее

Векторизация с помощью Three.js

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

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

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

Читать далее

Дуалистичная типовая система JavaScript VS Единая объектная система Python. Краткий обзор

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

Сегодня поговорим о объектах, объектной архитектуре и способах взаимодействия с ними на примере языков программирования Python и JavaScript.

Получилось небольшое исследование, противопоставляющее прототипирование и ООП.

Давайте разбираться!

Читать далее

Обновляем цены на товары в магазине Озон из Гугл Таблицы по API

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

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

Узнать как подключиться к Озону из Таблиц

Nexus-IoC — хорошо знакомый незнакомец в мире TypeScript и DI

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

Вы запутались в сложных графах зависимостей и бесконечных правках кода? Nexus-IoC – это лёгкое, это мощное решение для внедрения зависимостей в проектах на TypeScript. Созданная как альтернатива Inversify, эта библиотека поможет вам легко управлять модулями, находить ошибки до их появления в продакшене и даже визуализировать граф зависимостей вашего приложения!

В статье я расскажу, какие проблемы решает Nexus-IoC, как начать с ним работать и как эта библиотека может сделать разработку более управляемой и предсказуемой. А также поделюсь планами на будущее.

Впереди много интересного!

DE-1. DIY ассистент на LLM

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

Привет Хабр, let's set the future.

Недавно у меня появилась идея фикс: 'Хочу собственного AI ассистента'. Казалось бы, нет никаких проблем - рынок предлагает массу готовых решений. Но моя вечная паранойя про утечку данных и стремление сделать все самому взяли верх. Решил поэкспериментировать и собрать ассистента своими руками, да еще как-то с учетом будущих возможностей для гибкой настройки. Времени на оптимизацию производительности и эстетический вид кода у меня не было, 'хочу здесь и сейчас', поэтому let me introduce this shit.

Читать далее

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