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

JavaScript *

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

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

Как я создал мини-реддит на базе Telegram

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

Недавно мне пришла идея воссоздать механику Reddit внутри Telegram.

Телега — отличная и популярная платформа для общения и ведения блогов, но, на мой взгляд, это ужасное место для создания настоящих сообществ.

До этого я никогда не писал ботов или мини-аппов. У меня был только некоторый опыт в веб-разработке. Давно хотел разобраться, как всё это работает... И вот появилось немного свободного времени, звёзды сошлись и я запилил свой мини-Реддит в Телеге :)

Читать далее

От Lerna до ModuleFederation

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

Привет, Хабр! Меня зовут Дмитрий Ханин, я работаю в Сбере и участвую в разработке Платформы ЦА — системы на базе блокчейн, занимающейся привлечением средств юридических и физических лиц. Сегодня хотелось бы рассказать про тот путь, который мы прошли за несколько лет, как организовали взаимодействие между разными приложениями и чем нам это помогло.

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

Читать далее

Мониторинг Web Vitals через Яндекс.Метрику: пошаговое руководство

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

Web Vitals — набор метрик от Google, которые показывают, насколько быстро и стабильно загружается ваш сайт, как плавно отображается контент и насколько оперативно интерфейс реагирует на действия пользователя.

В этой статье вы найдёте пошаговую инструкцию по интеграции Web Vitals в проект, отправке метрик в Яндекс.Метрику и настройке отчётов для оперативного мониторинга. Благодаря этому вы сможете своевременно выявлять и устранять «узкие места» в работе приложения ещё до появления жалоб пользователей.

Читать далее

Погружение в grammY: разработка Telegram-бота с TypeScript и Docker

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

Привет, Хабр! В предыдущей статье о библиотеке grammY мы подробно разобрали основы создания Telegram-ботов на JavaScript. Кажется, настало время погрузиться в тему глубже и научиться добавлять более сложные фичи.

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

Среда выполнения JavaScript простым языком: движок, Event Loop и очереди задач

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

Привет, с вами снова я – Дмитрий, React-разработчик, хотелось бы сегодня затронуть тему среды выполнения JS. Многие знают, другие уже подзабыли, а новички — вовсе не в курсе. В общем, эта статья точно найдёт своих читателей. Постараюсь простыми словами и по делу.

Читать далее

История одного компонента

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

Введение в любой фреймвок начинается с написания одного простого компонента. Чаще всего этим компонентом будет "счетчик нажатий". Это своеобразный "hello world" в мире фронтенд разработки. Именно поэтому я и возьму его за основу данного материала.

Читать далее

Почему я ушёл с VK Play и сделал все механики и лаунчер с нуля для моей Battle Royale игры на Unreal Engine 5 в 15 лет

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

Когда я только начал делать игру в жанре battle royale, я сразу хотел, чтобы это была не просто "игра для себя", а что-то реальное — с возможностью выложить, показать другим, и может даже зарабатывать. Ранее я уже пытался делать игры, но это были проекты которые через 2-3 дня либо лежали в корзине либо пылились в папке забытыми. Но с этим я решил идти по полной и до конца. Во время начала разработки я сразу посмотрел, куда можно загрузить игру — и выбрал VK Play. Казалось удобным: русская платформа, выплаты, публикация и всё такое.

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

Читать далее

React Labs: View Transitions, Activity и другие обновления

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



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


Сегодня мы рады представить вам документацию по двум новым экспериментальным возможностям, уже доступным для тестирования:


  • View Transitions (переходы между экранами)
  • Activity

А также делимся обновлениями по возможностям, над которыми продолжаем работать:


  • Треки производительности React (React performance tracks)
  • Расширение редактора кода для компилятора
  • Автоматические зависимости эффектов
  • Ссылки на фрагменты (fragment refs)
  • Конкурентные хранилища данных (concurrent stores)

Пример использования View Transitions и Activity в клоне AirBnB
Читать дальше →

Observable – не только удобный state-manager

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

Несколько месяцев назад я написал статью — «Observable — удобный state‑manager», что было скорее заметкой, и за что мне здорово досталось в комментариях! Уважаемым комментаторам — спасибо, я постарался учесть все замечания.

Сегодня представляю вам kr‑observable 2.0 — библиотеку для реактивного программирования на JavaScript. И удобный state-manager тоже.

Читать далее

TypeScript: стоит ли усложнять типы?

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

Что такое TypeScript? Официальная документация отвечает так: “TypeScript — это JavaScript с синтаксисом типов”. Однако некоторые считают TypeScript своеобразным слиянием двух языков: языка для манипулирования значениями JavaScript и языка для манипулирования типами.

Cистема типов TypeScript Тьюринг-полная. Это означает, говоря по-простому, что система может решить любую вычислительную задачу при наличии некоторого представления входных и выходных данных.

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

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

Читать далее

Как Армия и open-source помогли мне стартануть карьеру

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

Грандиозная история вокруг микро open-source проекта который неожиданно выстрелил и вытащил меня из ямы

Читать

Clojure — стабильность по определению

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

Недавно мне попался следующий твит от OneHappyFellow:

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

— One Happy Fellow (@onehappyfellow) 5 мая 2025

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

Читать далее

Асинхронность в JavaScript, как использовать в web разработке на React, цепочка промисов и параллельное выполнение

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

Асинхронность в JavaScript, где и как использовать в web разработке на frontend и backend. Цепочка промисов и их параллельные выполнение.

Переходим к Async/await

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

Веб-разработка на ванильном HTML, CSS и JavaScript: стилизация и сайты

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

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

Рукописный редактор на Python: инструкция для тех, кто хочет «рисовать» код

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

Привет, меня зовут Лёня! Я автор YouTube‑канала eleday о программировании на Python. Недавно в школе была проверочная работа и мне пришлось писать код на бумаге. Такой подход показался странным: все-таки программа может исполняться только на компьютере и логично набирать ее там же. Подобная цепочка рассуждений привела к интересной идее — редактору рукописного ввода. В этой статье расскажу о задумке и деталях ее реализации. Создадим виртуальный лист, на котором можно набросать код от руки — и он будет исполняться!
Читать дальше →

Понимание MVC и MVP (для разработчиков JavaScript и Backbone)

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

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

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

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

В этом разделе мы рассмотрим два популярных шаблона – MVC и MVP. Контекст нашего исследования будет заключаться в том, как эти шаблоны связаны с популярным фреймворком JavaScript Backbone.js, который будет рассмотрен более детально позже.

Читать далее

Первый http сервер на С++, заметки для новичков

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

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

На чем реализован клиент нам неизвестно: может на php (curl,socket,stream_contex_create,...), может на js (ajax), вообще может быть на чем угодно.

Надо задача реализовать http парсинг запроса и контента, выполнить задание (на каком-то подключенном к серверу оборудовании) и ответить клиенту о результате.

Примечание: автор реализует http сервер на устаревшем Qt4, используем QTcpServer. Но для http сервера это не принципиально.

Читать далее

Новый взгляд на старые игры. Часть 7. Эпилог. Armor Alley (1991). Веб-прототип

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

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

Об оригинальной игре я ранее рассказывал в рамках материала из другого цикла, здесь же речь пойдёт именно о ремейке и, преимущественно, его front‑end специфике.

Перевод выкладывается с разрешения Scott‑а Schiller‑а. Характер статьи изобилует заметками / элементами монолога автора с самим собой. При переводе было решено оставить заданную подачу как есть, без радикальной стилистической коррекции или смены формата.

Осуществлял дополнительный анализ JavaScript‑терминологии — oldalexi. Выступал в качестве дополнительного редактора — Newbillius.

Читать далее

Кажется, я придумал новую архитектуру ивентов и мне она нравится

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

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

Читать далее

Как работают антиботы

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

По данным сразу нескольких вышедших в 2025 году отчётов исследователей, объём генерируемого ботами трафика в интернете впервые превысил человеческий. Боты теперь составляют более половины интернета, из них 3/4 — вредоносные.

Читать далее