300 тысяч job в час: как неправильный порядок Dispose в Serilog устроил утечку памяти
Периодически срабатывали алерты по памяти и CPU. Я начал расследование. Но расследование в итоге привело совсем в другое место – к Serilog.Context.…
Latest Programming news from Tech News
Периодически срабатывали алерты по памяти и CPU. Я начал расследование. Но расследование в итоге привело совсем в другое место – к Serilog.Context.…
Это продолжение статьи «Сортировка слиянием — не так просто, как кажется» . Там я довёл тестовое задание — отсортировать 100 ГБ строк вида число. те…
Как каждая из них организует код, где они пересекаются и что учитывать при выборе. Большинство .NET-разработчиков знакомятся с этими тремя архитекту…
Я не люблю Clean Architecture, не люблю DTO и не люблю мапперы. Они превращают сохранение одной строки в базу в путешествие через четыре проекта, тр…
Мне хотелось, чтобы знакомство с HydraScript выглядело просто: скачал интерпретатор, запустил скрипт. Сомнительно предлагать человеку сначала устано…
Это история про архитектуру одного сервиса. Рассказанная до конца, а не только до того места, где обычно останавливаются статьи про архитектуру. Нам…
Чтобы напомнить клиенту о встрече, нужно собрать в одном сообщении данные из нескольких записей CRM. С этой задачи началась работа над моим шаблониз…
Каждый вечер мне нужно ответить на один вопрос: на какие бумаги из примерно тринадцати тысяч имеет смысл потратить время сегодня. Не «какие вырастут…
Когда речь заходит об ORM, большинство C# разработчиков сразу вспоминают мощный Entity Framework Core или же легковесный Dapper. Но что насчёт RepoD…
Называется Контур Оракул. 🔮 За первый день после запуска он собрал сотни реакций сотрудников, и сразу показал, что корпоративные прогнозы могут быть…
Разбираем необычную конструкцию async void В чем отличие от написания async Task ? Какие проблемы могут за ней скрываться? Для чего ее ввели в язык?…
Я сделал этот сайт, потому что исчез другой, который мне нравился. Пять лет спустя у него горстка пользователей, один платящий клиент — и он научил…
В первой части мы успешно вскрыли чёрный ящик LINQ: написали Where вручную, разобрались, как компилятор превращает yield return &n…
У меня есть несколько статей, в которых я рассказываю о различных особенностях работы коллекций в .NET, например эта и эта . Мы с вами разбирали, ка…
В прошлый раз мы пробежались по предметной области, добыли данные и вывели их на экран. В принципе, этого достаточно для выполнения моего ежедневног…
В этой статье я покажу, как использовать IAsyncEnumerable в WPF‑приложении для асинхронных операций. Код полностью рабочий, его…
Это конспект-статья по итогам построения рекомендательной системы в .NET. Начнём с самой идеи: как представить пользователя и фильм в виде векторов…
В этот раз я пришёл с двухчастным текстом про F#, тайппровайдеры, скрипты, спортивное программирование, MVU, консольные интерфейсы в стиле FarManage…
Выходит обновление плагина, он дописывает свои ключи в ваш конфиг и заодно меняет порядок остальных. Через сутки в дискорде жалобы, вы открываете бэ…
Размышления фулстек-инженера, который начинал с небольших сайтов, а закончил системами для банков, государства и маркетплейсов. Читать далее
Большинство разработчиков привыкли работать с базами данных через специализированные инструменты: кто-то сидит в SQL Server Management Studio (SSMS)…
.NET Matrix — это новый открытый проект, который сравнивает .NET-библиотеки внутри одной категории по трём аспектам: возможности , скорость и исполь…
Понадобилось научить десктопную программу принимать лицензионные ключи: строка из письма вставляется руками и проверяется без интернета. Во что это…
Вложенный JSON-объект при импорте в таблицу расплющивался в колонку robot.point.x — и вся структура терялась безвозвратно. Разобрался, как сделать э…
В прошлой статье я рассказывал, как мы делаем онлайн IDE для .NET — дизайн, компиляция и запуск приложений происходят прямо в браузере, без сервера.…
В первой части мы успешно вскрыли чёрный ящик LINQ: написали Where вручную, разобрались, как компилятор превращает yield return в конечные автоматы,…
Если искать в интернете «мощный DI-контейнер для .NET», почти в каждом списке встретится Autofac. У него заслуженная репутация зрелого и функциональ…
Недавно я опубликовал в Google Play приложение 99.9% исходного кода которого написано AI. Это не просто "поделка на коленке за выходные": нативное (…
Pure.DI — это генератор кода для внедрения зависимостей (Dependency Injection), который работает на этапе компиляции. Pure.DI развивает идею «чистог…
Сколько времени на самом деле мы проводим в разных приложениях? Кажется, что открыл IDE на пару минут, проверил браузер — и вернулся к работе. Но сп…