Все потоки
Поиск
Написать публикацию
Обновить
209.29

JavaScript *

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

Почему я скептично отношусь к переписыванию JS-инструментов на «быстрых» языках

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

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

Поэтому у меня вполне естественно возникает беспокойство по поводу охватившей сферу разработки одержимости переписывать каждый инструмент Node.js на быстрых языках вроде Rust, Zig, Go и прочих. Причём ценность этих языков я нисколько не преуменьшаю. Я даже принимал некоторое участие в разработке Servo, да и на столе прямо сейчас передо мной лежит книга по Rust. Но в целом основную часть своей карьеры я вложил в освоение всех нюансов JavaScript, и на данный момент этот язык для меня самый удобный.

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

Генеративная графика — не только ИИ

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

Привет, Хабр! В прошлый раз мы с вами создавали «Игру жизни» на Godot. Движок показал себя отлично, но для такой простой задачи это всё равно что забивать микроскопом гвозди. Особенно когда речь идёт о веб‑экспорте.

В последнее время стоит заикнуться про генерацию изображений, как все сразу вспоминают про нейросети. Stable Diffusion, Midjourney и прочие модели впечатляют, не спорю. Но давайте взглянем на другую сторону генеративного искусства. Ту, где картинки создаются не гигабайтами весов нейронной сети, а несколькими килобайтами JavaScript-кода.

И кстати раз уж речь зашла про красоту в коде: мы как раз запустили «Конкурс красоты кода 2.0». Самое время показать, что даже простые алгоритмы могут создавать нечто впечатляющее. Именно такие работы, где за внешней простотой скрывается математическая элегантность, часто оказываются самыми интересными.

Читать далее

Управление цепочкой вызовов асинхронных функций

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

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

Интересно? Тогда добро пожаловать под кат! 

Читать далее

Невидимый Технический Долг: Управление TODO Комментариями

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

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

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

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

Читать далее

Мощь CSS-масок

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

Декабрь 2023 года стал значимой датой в истории развития CSS-свойства mask: все современные браузеры в своих последних версиях обеспечили его полную поддержку, теперь без использования своих вендорных префиксов. А это означает, что данное свойство прочно и надолго вошло в жизнь каждого фронтенд-разработчика. Осталось лишь фронтенд-разработчикам принять его в свою жизнь и перестать его бояться!

В статье я кратко напомню основные теоретические идеи свойства и подробно расскажу о реальных примерах использования на основании опыта разработки Taiga UI.

Читать далее

Полезные рецепты ручного создания SVG

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



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


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


А как только освоишься, это занятие становится на редкость увлекательным и даже забавным.

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

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

Как Vercel микрофронтенды внедрила

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

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

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

Читать далее

Циклические импорты на фронтенде

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

Хочу рассказать о том, какие проблемы при разработке создают рекурсивные зависимости на фронте.

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

Рассмотрим способы разрешения циклических зависимостей и их обнаружение.

Читать далее

Next.js v15 — Что Нового (под Капотом)

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

Привет! Это ставшая уже регулярной рубрика о релизах next.js (читайте релизы по v11, v12, v13, v14). Каждый релиз - набор нового, интересного и спорного. Новая версия не станет исключением. Но всё же новая версия интересна не столько новым функционалом, сколько изменением приоритетов и организации в next.js. И да, как вы уже догадались из названия, в значительной части релиз ценен проработкой ошибок и доработками.

В данной статье я не буду останавливаться на том что такое App Router или серверные компоненты - про это подробно расписано в предыдущих статьях. Только про новую версию и только про новые изменения.

Примечание: в статье отражены самые интересные изменения с призмы автора. Здесь разобраны коммиты и PR в ядро next.js, сообщения разработчиков и задачи, поэтому статья отражает больше изменений, чем представлено официально.

Читать далее

What's Next in JS? От Nuxt до Web3: всё, о чём расскажут на HolyJS 2024 Autumn

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

Когда Алиса в Стране Чудес сказала «тут нужно бежать со всех ног, чтобы только оставаться на месте», она словно описывала JavaScript-разработку. Только начнёт казаться, что уже привык, как жизнь подбрасывает новые фреймворки, подходы, области применения.

Пора ли уже осваивать фреймворк Astro? Каково на практике с Nuxt 3? Что надо понимать, если думал про блокчейны «мода на них скоро пройдёт» и не обращал внимания, а теперь тебя зовут работать в web3-проект? А WebAssembly тоже уже нельзя упускать из внимания, да?

Можно пытаться разбираться с этим всем самостоятельно, а можно сходить на конференцию. Там говорят и о таких темах, и о менее «модных», но не менее важных: как правильно анализировать производительность проекта? А его доступность? Как привычные фреймворки устроены «изнутри»?

Уже скоро мы проведём HolyJS 2024 Autumn, где будут доклады обо всём этом. Программа уже составлена, и представляем Хабру короткие описания всех докладов.

Читать далее

Как сделать React Server Components в Electron с помощью Next.js и без открытых портов

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

Статья про то как заставить работать React Server Components внутри Electron приложения с помощью Next.js при этом не запуская локальный сервер и не открывая порты. С возможностью публикации стандартными инструментами. А также исследование зачем все это надо.

Читать далее

Телеграм-бот на Node.js/grammY: Диалоги

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

В этой статье я продолжаю делиться результатами изучения создания телеграм-ботов в nodejs, начатой в предыдущих публикациях (раз, два). На этот раз я покажу, как организовать интерактивные диалоги с пользователями, используя модуль conversations библиотеки grammY. Мы рассмотрим, как настроить библиотеку для работы с диалогами, управлять их завершением, а также реализовать ветвления и циклы. Этот подход станет основой для более сложных проектов, где важно взаимодействие с пользователем.

Читать далее

Управление проектами и задачами в Obsidian

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

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

Читать далее

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