Category : javascript

javascript
Память в JavaScript: Stack и Heap

Последние пару лет изменили то, как пишется код. Copilot, Cursor, ChatGPT, Claude - все это генерирует вполне работающий JavaScript быстрее, чем успеваешь сформулировать задачу. Это удобно. Но у этого удобства есть обратная сторона, сгенерированный код работает правильно в смысле делает что просили, но не всегда правильно в смысле не течет по памяти и не роняет прод под нагрузкой.Модели хорошо знают синтаксис и паттерны. Они значительно хуже разбираются в том, что происходит под капотом конкрет…

  • пятница, 27 февраля 2026 г. в 00:00:10
javascript
Декларация (не)зависимостей для ESM

Меня зовут Алекс Гусев и сегодня я расскажу о том, как ChatGPT убедил меня переписать библиотеку @teqfw/di, которую я бережно "выращиваю" с 2019-го года, и почему я всё-таки убедился.Эта JS-библиотека позволяет мне использовать в своих веб-приложениях позднее связывание и даёт возможность писать изоморфный код, который без изменений работает и в браузере, и на бэке. Без транспиляции исходников, без ручной регистрации зависимостей - так, как я привык делать в Java и PHP. Я почти 7 лет вр…

  • пятница, 27 февраля 2026 г. в 00:00:10
javascript
Выполнение HTTP-запросов в Node.js

Долгое время я использовал пакет request (теперь устаревший) для выполнения HTTP-запросов в Node.js. Затем в моду вошли промисы (promises), и я переключился на request-promise (также ныне устаревший). Затем я начал использовать axios и думал, что на этом все... но ошибался. История HTTP в Node.js продолжает эволюционировать, и это прекрасно.Выполнение запросов HTTP - одна из самых распространенных задач в Node.js. Будь то обращение к API, получение данных из внешнего сервиса или разработка веб-…

  • пятница, 27 февраля 2026 г. в 00:00:07
javascript
JavaScript: заметка о свойствах source ToggleEvent и closedBy HTMLDialogElement

Привет, друзья!В этой небольшой статье я расскажу вам о новом свойстве события toggle — source, а также о новом атрибуте HTML-элемента dialog — closedby.Свойство source позволяет определять источник переключения видимости поповера (popover), а атрибут closedby позволяет декларативно управлять логикой закрытия dialog, но обо всем по порядку.❯ ToggleEvent.sourceДоступное только для чтения свойство source интерфейса ToggleEvent - это экземпляр объекта Element, представляющий собой элемент управлен…

  • пятница, 27 февраля 2026 г. в 00:00:07
javascript
Что нового в OpenIDE 2025.3: Java 25, Spring MCP, Go, Docker и JavaScript/TypeScript

OpenIDE 2025.3 базируется на обновлённой IntelliJ IDEA Platform 2025.3 и включает изменения как из апстрима, так и собственные доработки консорциума. Ниже разберём все заметные нововведения по порядку.Наш ответ Чемберлену! Дополнение через ".."В OpenIDE 2025.3 появилась фича под названием Command Completion. Идея в том, чтобы вызывать действия IDE прямо из автодополнения кода, без необходимости запоминать горячие клавиши или лезть в меню.Работает просто: ставите точку после выражения и …

  • пятница, 27 февраля 2026 г. в 00:00:05
javascript
Сборка мусора в V8: Scavenger, Mark and Sweep и Tri-color Marking

В части 1 мы выяснили, что объекты в Heap не освобождаются сами по себе этим занимается Garbage Collector. Но как именно GC решает, что можно удалить? Если подумать, задача не такая очевидная, объект не нужен - понятие логическое, а GC работает с физическим графом ссылок.Ответ в том, что GC не пытается угадать намерения программы. Он задаёт более простой вопрос, можно ли добраться до этого объекта из работающего кода? Если нельзя объект недостижим, и никакой код уже не сможет его использовать. …

  • пятница, 27 февраля 2026 г. в 00:00:04
javascript
Забыть про Backprop: Как я собрал «Термодинамический Мозг» с фазой сна и митозом, который влезет в …

Мы (человечество) очень хотим создать разум. Инопланетян мы пока не нашли, поэтому пытаемся собрать его сами из кремния и электричества. Но то, куда свернула индустрия сегодня, вызывает вопросы. Мы греем планету мегаваттами энергии, перемножая гигантские матрицы в дата-центрах, чтобы обучить LLM. Backpropagation и современный инференс - это непозволительно дорого и энергозатратно.А что если вернуться к истокам? Что если интеллект — это не градиентный спуск, а кристаллизация связей под давлением…

  • четверг, 26 февраля 2026 г. в 00:00:16
javascript
Проблема ретроспективного внедрения интернационализации (i18n)

Одна из главных проблем i18n в приложениях заключается в том, что о ней вспоминают в последнюю очередь.Обычно мы разрабатываем продукт, проверяем соответствие рынку (Product-Market Fit) и только спустя месяцы или годы решаем: «Пора выходить на глобальный уровень».Сложность в том, что решения для i18n носят структурный характер и сильно влияют на работу команды. Куда эффективнее закладывать это в техническое задание с первого дня.Как же с этим справиться? Заморозить разработку на неделю и рефакт…

  • четверг, 26 февраля 2026 г. в 00:00:15
javascript
Перестаем бороться с компилятором TypeScript и начинаем писать безопасный и строго типизированный к…

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

  • четверг, 26 февраля 2026 г. в 00:00:13