DotNext 2026
Выложу здесь в одну статью серию постов из моего ТГ канала про то, как в этом году прошёл DotNext. 25 и 26 сентября в Москве прошла очередная конфер…
Tech news from the best sources
Выложу здесь в одну статью серию постов из моего ТГ канала про то, как в этом году прошёл DotNext. 25 и 26 сентября в Москве прошла очередная конфер…
В .NET 9 появился новый примитив синхронизации System.Threading.Lock , и многие команды начали заменять привычные object -замки на новый тип в поиск…
Дисклеймер. Все описанное выполнялось в изолированной лаборатории на вымышленном приложении, которое я собрал специально для статьи. Совпадения имен…
На wine.co.za данные хранятся в MariaDB, раз в день копируются в Manticore, а сайт обращается к поиску через библиотеку для .NET. Разбираем, как уст…
Привет! Меня зовут Александр Илларионов, я бэкенд‑разработчик в Altenar. Мы работаем на довольно сложном и при этом очень интересном…
Пустой наследник Random работает медленнее родителя. string[] и object[] оказываются одним объектом. А Matrix4x4 до сих пор держит шестнадцать полей…
В System.Random кто-то двадцать лет назад написал 21 вместо 31. Опечатку заметили, разобрали и оставили как есть — исправить, и new Random(42) начнё…
Три атрибута, которые меняют результат компиляции. Один запускает метод раньше Main . Второй передаёт текст выражения вместо результата. Третий уско…
Есть число, которое не меняется от смены знака. Минус перед ним ничего не делает, а модуля у него не существует: Math.Abs бросает исключение. Это in…
Ключ-структура из числа и строки. Поиск по словарю на 10 000 таких ключей занимает 74 975 микросекунд. Тот же ключ, объявленный record struct , — 3,…
Чтение приватного поля через рефлексию занимает 8,96 наносекунды и выделяет 24 байта в куче. Тот же доступ без рефлексии — 0,25 наносекунды и ноль б…
В C# есть четыре ключевых слова, которых нет в документации. Компилятор их принимает. Одно из них собирается на любой машине, а выполняется только н…
Класс без единого поля занимает 24 байта, с двумя полями int — те же 24, а с тремя — уже 32. В структуре достаточно поменять местами два поля, и её…
В словарь добавляют 101 ключ — поиск занимает 8 763 наносекунды. Добавляют 102-й — 718. Ключей стало больше, а времени в 12 раз меньше. Разбираемся,…
В .NET есть метод, который всегда возвращает false . Есть очистка списка, которая ничего не очищает. И есть new , после которого в куче пусто. Разбе…
Есть у меня довольно простой автомобильный сценарий. Я сажусь в машину, телефон автоматически соединяется по Bluetooth с магнитолой, а самой магнито…
Если вы поставляете товар в крупную розницу, возите грузы для 3PL-оператора, шлёте платёжные извещения банку или обмениваетесь медицинскими транзакц…
Эта база данных покоряет своей продуманностью: индексы рождаются автоматически, система обновляется без вашего участия, а защита данных стоит на стр…
Когда я прочёл о том, что Андрей Карпати больше не пишет код руками, а перешёл на агентное программирование, я, честно говоря призадумался. Скажи об…
Это разбор архитектуры системы управления транспортом — без сроков, без смет и без сравнения технологий по галочкам. Только устройство: из чего сист…
Разбираем систему управления транспортом — TMS. Заказы приезжают из SAP, под них подбираются водитель и машина с учётом требований, рейс идёт…
Разбираем систему управления транспортом — TMS. Не игрушечную и не с конференции: заказы приезжают из SAP, под них подбираются водитель и маши…
В прошлой статье я разбирал платёжную платформу с точки зрения сметы: три слоя, где уходят человеко‑годы, что можно не пи…
Разговор про финтех‑платформу почти всегда начинается не с той стороны. Обсуждают выбор брокера сообщений, спорят про микросерви…
Неограниченный канал спокойно работает до первого замедления потребителя, после чего очередь начинает расти, память — заканчиваться, а&nbs…
Каждый C#‑разработчик писал numbers.Where(x => x > 10).Select(x => x * 2) — и удивлялся, узнав, что эта строчка ничего не в…
Работая в IT и общаясь с разными специалистами, я заметил интересную вещь: собеседования часто воспринимаются как объективная проверка знаний, хотя…
Есть три привычных способа сделать OAuth/OIDC в .NET, и каждый чем-то неудобен. Первый — ASP.NET -привязанные решения (Duende IdentitySe…
Про Kafka в этой серии уже было. Теперь — RabbitMQ , и с упором на то, как им пользоваться. Коннектор redb.Route.RabbitMQ — поверх…
Последние годы инжиниринг живёт под одним лозунгом: то же самое, но дешевле и быстрее. Заказчики сокращают бюджеты и сроки, подрядчики ищут, какие п…