Thanks to visit codestin.com
Credit goes to habr.com

Codestin Search App
56.7

C# *

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

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

Наблюдаемость .NET-сервисов с помощью OpenTelemetry (traces/metrics/logs). Практический пример

Codestin Search AppСредний
Codestin Search App13 мин
Codestin Search App8.5K

В этой статье я покажу, как с нуля подключить OpenTelemetry в ASP.NET Core проект и получить полноценную наблюдаемость: распределённые трейсы, метрики и логи. Мы не будем углубляться в теорию (что такое спаны/трейсы/метрики и почему это важно) - сфокусируемся на практике.

Мы развернём небольшой "микросервисный" стенд в Docker Compose и после пары запросов увидим в SigNoz полный набор сигналов: трейсы, метрики и логи с корреляцией по trace_id. Все исходники доступны в репозитории GitHub так что каждый шаг можно повторить самостоятельно.

Docker compose up...

Новости

Современный C# для начинающих и джунов. Часть 2. ООП и не только

Codestin Search AppПростой
Codestin Search App18 мин
Codestin Search App10K

Часть 1

Во второй части руководства для начинающих будет рассмотрено ООП и некоторые другие возможности.

Читать далее

Metalama: праовца, аспекты приносящая

Codestin Search AppСредний
Codestin Search App8 мин
Codestin Search App8.2K

Метод программирования, именуемый аспектно-ориентированным, впервые явился миру в конце девяностых годов прошлого века, когда группа исследователей из Xerox PARC под руководством Грегора Кичалеса решила, что объектно-ориентированного подхода человечеству недостаточно. Они создали AspectJ — расширение для Java, призванное разрешить проблему, которую окрестили «сквозной функциональностью». Суть проблемы проста до безобразия: код логирования, обработки ошибок, проверки прав доступа и прочих служебных радостей размазывается по всему приложению, как масло по по́лу, превращая элегантную бизнес-логику в свалку повторяющихся конструкций.

Аспектно-ориентированное программирование предлагает выделить эти сквозные concerns в отдельные сущности — аспекты, которые можно применять к коду декларативно, не засоряя основную логику техническими деталями. В теории звучит как серебряная пуля. На практике AspectJ оказался инструментом, требующим от программиста понимания магических pointcut expressions и готовности смириться с тем, что код компилируется через специальный компилятор, производящий байткод, который отладить можно только с поллитрой, бубном или молитвенником.

Встречайте Metalama →

Required. Что скрыто в этом слове?

Codestin Search AppПростой
Codestin Search App6 мин
Codestin Search App6.8K

Ранее я написал об этом пост, но потом набралось больше материала и я расширил до статьи.

Работая над одним из проектов, который недавно переехал из Framework 4.8 на Core 9, обнаружил множество самых разных вариантов использования модификатора required и атрибута Required, примерно каждый второй из которых был использован неправильно. Я написал это коллегам и хочу поделиться этим здесь. Это не обязательные правила, но сильно упрощают работу с кодом.

Читать далее

Современный C# для начинающих и джунов. Часть 1

Codestin Search AppПростой
Codestin Search App32 мин
Codestin Search App15K

Большинство гайдов по C# в Интернете или давно утратили актуальность, или содержат лишь небольшие вкрапления новых возможностей, но лишены последовательности. Есть и другая крайность - ИИ простыни сгенерированного текста под видом статей, которые очень тяжело читать. Я хочу сделать свою попытку изменить ситуацию.

Читать далее

UNITY: Реализация движений для динамичного шутера. Часть 2

Codestin Search AppПростой
Codestin Search App10 мин
Codestin Search App8.2K

С момента прошлой статьи прошло достаточно много времени и я заметил одну интересную вещь: немало людей добавили статью в закладки, несмотря на небольшое число отметок “нравится”. Это убедило меня в полезности материала и потому я решил написать вторую часть.

Читать далее

Minecraft на Unity. Построение одного чанка

Codestin Search App6 мин
Codestin Search App11K

Я начал разработку Minecraft на движке Unity. Пока не решил, какие механики я повторю из оригинала, а какие добавлю от себя. Но сегодня я вам расскажу о моей логике построения чанка.

Далее предоставлю полный скрипт для построения чанка.

Читать далее

Serialize Reference. Познаем грани

Codestin Search AppСредний
Codestin Search App12 мин
Codestin Search App7.2K

Абстракции… Абстракций много не бывает!

SerializeReference в Unity интересная штука, а что если попробовать использовать ее чуть дальше базовой реализации?

Читать далее

JsonToLinq – автоматическая конвертация фильтров из JSON в LINQ Expression деревья

Codestin Search AppПростой
Codestin Search App9 мин
Codestin Search App9K

Используй JSON для создания LINQ-выражений!

Если черный ящик поддерживает входные сигналы в форме JSON, то им могут пользоваться самые разные клиенты!

Читать далее

Дышать или не дышать? Как я написала библиотеку и Telegram-бота для мониторинга воздуха в Ташкенте

Codestin Search AppПростой
Codestin Search App3 мин
Codestin Search App7.2K

Доброго времени суток, уважаемые хабровчане! Я живу в Ташкенте.

Как превратить беспокойство о качестве воздуха в полезный Open Source проект?

Читать далее

Как поменяется .NET и C# в ближайшие годы?

Codestin Search App3 мин
Codestin Search App13K

Внимание! Эта статья не является «серьезной аналитикой». Только мои мысли и наблюдения.

Любите наблюдать за развитием дотнета? Вот, и я люблю. В данный момент не существует опубликованного списка изменений для будущих .NET 11 и C# 15, не говоря уж о более поздних версиях. Даже Devblogs пока хранит молчание. Благо, что C# - быстро развивающийся язык, и кое-что мы можем понять даже сейчас, если посмотрим, над чем активно ведется работа, а так же по запрашиваемым сообществом фичам.

Читать далее

Топ-10 ошибок, найденных в C# проектах за 2025 год

Codestin Search AppСредний
Codestin Search App11 мин
Codestin Search App9.3K

В 2025 году команда PVS-Studio продолжила разбирать код открытых C#-проектов. За год было обнаружено немало дефектов, и из всего этого разнообразия мы выбрали 10 наиболее любопытных. Надеемся, что этот обзор будет не только интересным, но и полезным — приятного чтения!

Читать далее

Dynamic в C#: когда использовать

Codestin Search AppПростой
Codestin Search App5 мин
Codestin Search App8.4K

В 2010 году в C# 4.0 появилось ключевое слово dynamic. Тогда казалось, что это очень круто — наконец‑то можно обойти строгую типизацию там, где она откровенно мешает. Прошло пятнадцать лет, и эйфория давно улеглась. Теперь dynamic воспринимается скорее как специализированный инструмент с узкой областью применения.

Читать далее

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

Вайбкодинг: от Unity до AI, или Почему мы ненавидим инструменты, которые снижают порог входа

Codestin Search AppПростой
Codestin Search App3 мин
Codestin Search App9.3K

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

Сегодня я хочу поговорить о самом вайбкодинге как о явлении, вызывающем бурю эмоций в IT-сообществе. Этот термин, придуманный и популяризированный Андреем Карпатым в начале 2025 года, быстро стал нарицательным. Для одних это будущее, для других — синоним «говнокода». Но так ли страшен вайбкодинг, как его малюют?

Читать далее

Раскрываем мощь Zlib и немного Brotli в .NET

Codestin Search App5 мин
Codestin Search App8K

В .NET Core 2.1 Microsoft добавила поддержку Brotli-компрессии, предоставив разработчикам привычный контракт на базе Stream.

Идея проста: вы оборачиваете поток с несжатыми или сжатыми данными в BrotliStream и читаете или пишете данные, как обычно.

Читать далее

Как я писал систему, которая упростит поиск квартиры мечты

Codestin Search AppСредний
Codestin Search App23 мин
Codestin Search App15K

Покупка квартиры — достаточно сложное и дорогое дело. Хочется выбрать лучшее из того, что есть на рынке и не прогадать по цене. С такими мыслями наша семья начинала поиски квартиры на вторичном рынке в Санкт Петербурге в начале 2023 года.

Объявления в России принято искать на многочисленных площадках с недвижимостью: Циан, Авито, Дом Клик и так далее У каждой свои механики и множество объектов недвижимости. Я пытался просмотреть все, которые подходили по параметрам «станция метро», «время до метро», «максимальная цена», «минимальная площадь». Но вскоре понял, что это занимает слишком много времени ежедневно.

Читать о приключении на 20 минут

Ваш кэш в .NET не защищён от cache stampede

Codestin Search AppСредний
Codestin Search App5 мин
Codestin Search App7.1K

У вас есть запрос к базе данных или к платному API, и вы кэшируете результат? Для кэша используете ConcurrentDictionary или MemoryCache?

У кэша, построенного на этих классах, есть одна неприятная проблема: отсутствие защиты от давки кэша (cache stampede). При определённой нагрузке кэш будет многократно выполнять один и тот же запрос из-за отсутствия координации между потоками и репликами. В этой статье я наглядно покажу, как давка кэша влияет на C# приложение и что с этим делать.

Читать далее

Await своими руками в C#

Codestin Search AppПростой
Codestin Search App4 мин
Codestin Search App11K

Привет, Хабр!

Многим кажется, что await работает только с Task и ValueTask, но на самом деле язык позволяет сделать любой объект ожидаемым — нужно лишь реализовать определённый паттерн.

Итак, зачем нужен свой await? Бывают случаи, когда вам хочется написать асинхронный метод, но результат приходит не из готового Task или таймера. Например, ждёте какое-то событие, изменение файла, считывание из сокета, или просто хотите встроить задержку без запуска Task. Когда вы пишете await expr, компилятор в глубине понимает так: берётся результат expr.GetAwaiter(), затем вызывается awaiter.IsCompleted. Если false, он подписывается на awaiter.OnCompleted, когда завершится, и потом берёт awaiter.GetResult().

Читать далее

Гайд: Как прострелить ноги unsafe кодом в C#

Codestin Search AppСложный
Codestin Search App30 мин
Codestin Search App9.1K

ДИСКЛЕЙМЕР: Это статья является ручным переводом оригинальной статьи с небольшими пояснениями. Поводом для перевода стало слишком частое использование unsafe кода в других статьях о C# на русском языке в том числе тут на хабре.

Читать далее

Оптимизация памяти в C# (и немного в Unity): эффективные методы и стратегии

Codestin Search AppПростой
Codestin Search App8 мин
Codestin Search App9.8K

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

Язык программирования C#, несмотря на то, что обеспечивает автоматическое управление памятью с помощью механизма сборки мусора (GC), требует от разработчиков специальных знаний и навыков для оптимизации работы с памятью.

Читать далее
1
23 ...

Вклад авторов