javascript
Модификаторы вариантности параметров типа в TypeScript

Модификаторы вариантности параметров типа in и outЭто расширенная функция для решения очень конкретной проблемы, и ее следует использовать только в тех ситуациях, когда вы определили причину ее использования.Ковариантность и контравариантность — термины теории типов, описывающие взаимосвязь между двумя родовыми типами. Вот краткое описание этой концепции.Например, если у вас есть интерфейс, представляющий объект, который может иметь определенный член make:interface Producer<T> { make():…

  • вторник, 18 ноября 2025 г. в 00:00:04
javascript
Ваши тесты упали по причине JavaScript

Рассказываем, как безобидная строка JavaScript-кода привела к нарушению стабильности тестов продукта, а также о том, как можно избежать подобных ошибок.Для нашего статического анализатора мы поддерживаем довольно большое количество интеграций в различные инструменты, в том числе в IDE, чтобы разработчики могли без проблем пользоваться инструментом в процессе разработки. Одна из таких интеграций — расширение для Visual Studio Code, написанное на JavaScript и TypeScript.Примечание. О том, как пол…

  • вторник, 18 ноября 2025 г. в 00:00:03
habrahabr
Что нового в .NET 10?

Дождались! .NET 10 вот-вот выйдет, а значит, самое время запускать фейерверки и отмечать юбилей любимой платформы! Ну и, само собой, ознакомимся с улучшениями JIT, расширением стандартной библиотеки, новыми возможностями SDK и с другими нововведениями в этой статье..NET 10 сфокусирован на улучшении производительности, а также безопасности — в частности, криптография подверглась серьезной доработке. Это long-term support (LTS) релиз, а значит будет поддерживаться в течение трёх лет.Эта статья ра…

  • понедельник, 17 ноября 2025 г. в 00:00:12
habrahabr
Забудьте про print(): Современное и красивое логирование в Python с помощью Loguru

Введение: Боль и страдания от print() и стандартного loggingЕсли вы пишете на Python, скорее всего, ваша карьера разработчика начиналась с одной простой, но незаменимой команды — print(). Нужно проверить значение переменной? print(my_variable). Хотите убедиться, что функция вообще вызвалась? print("Я внутри функции!"). Этот метод прост, интуитивно понятен и кажется верным другом в мире отладки.Но дружба эта длится ровно до первого серьезного проекта. Внезапно оказывается, что ваш термин…

  • понедельник, 17 ноября 2025 г. в 00:00:11
habrahabr
Обзор коммерческих дистрибутивов Linux: зачем люди платят, если можно не платить

Привет! Меня зовут Кирилл Кузнецов, я представляю коммерческую команду SelectOS — серверной операционной системы от Selectel. Перед запуском продукта моя команда изучила мировой опыт наиболее успешных коммерческих Linux-дистрибутивов, и в этой статье я предлагаю посмотреть, как RedHat, SUSE и Canonical строили свой бизнес на основе OSS, то есть open-source-software. Мы разберемся, какие уроки можно извлечь из опыта крупнейших мировых вендоров, с поправкой на российский рынок, проанализируем биз…

  • понедельник, 17 ноября 2025 г. в 00:00:10
habrahabr
Мультитул для инженера: волшебная коробочка с I2C/SPI/UART/JTAG за 1.000 рублей

Будучи творческим человеком и техногиком, я обожаю при первой возможности апгрейдить своё оборудование. Время от времени я мониторю маркетплейсы в поисках чего-то новенького и в этот раз я наткнулся на настоящий мультитул для Embedded-разработчика — контроллер I2C/SPI/UART/JTAG в одной коробочке и всё это всего за 1.000 рублей... Конечно я не смог пройти мимо этой штучки и в рамках сегодняшней статьи хочу рассказать что оно из себя представляет и как с ним работать. Жду вас под катом!❯ Что за у…

  • понедельник, 17 ноября 2025 г. в 00:00:09
habrahabr
Всероссийский рейтинг IT-брендов работодателей 2025

Привет, Хабр! Пришёл ноябрь, а это значит, что Хабр и ЭКОПСИ завершили очередное масштабное исследование и составили новый рейтинг IT-брендов работода��елей. Давайте вместе узнаем, как изменился рынок за 2025 год. Сперва немного наших рассуждений, а если не терпится посмотреть результаты, вот оглавление: Полный рейтингРейтинг по отраслям бизнесаРейтинг по численности айтишников в штатеПаспорт исследованияЗаключениеЕсли коротко, то IT-рынок штормит: компании перестраиваются, команды меняются, …

  • понедельник, 17 ноября 2025 г. в 00:00:08
javascript
Русский JavaScript — это не баг, это фича будущего. Представляю RJS

# Русский JavaScript — это не баг, это фича будущего. Представляю RJS Друзья, признайтесь честно: сколько раз вы матерились на `if (user.isAdmin)` потому что забыли, что `isAdmin` — это булево, а не строка из бэкенда? Сколько багов родилось из-за того, что `null == undefined` в JS, но `null === undefined` — нет? А теперь представьте: **код, который читается как документация, потому что написан на русском**. Да, я серьёзно. Встречайте **[RJS](https://github.com/nike-17/rjs)** — транслятор Ja…

  • понедельник, 17 ноября 2025 г. в 00:00:05
javascript
HalChatLocalAI: как я встроил офлайн-ИИ прямо в мессенджер

Большинство ИИ-ассистентов работают в облаке. А я сделал локальный — прямо внутри мессенджера HalChat.Большинство современных ИИ-ассистентов работают в облаке, требуют подключения к серверам и не дают контроля над данными. Я решил исследовать, возможно ли встроить искусственный интеллект прямо в мессенджер, чтобы он работал локально прямо в браузере, офлайн и под управлением самого пользователя.Цель HalChatLocalAI - упростить взаимодействие человека с ИИ и встроить его в повседневную жизнь чере…

  • понедельник, 17 ноября 2025 г. в 00:00:04