uz
Feedback
C# 1001 notes

C# 1001 notes

Kanalga Telegram’da o‘tish

Регулярные короткие заметки по C# и .NET. Просто о сложном для каждого. admin - @haarrp

Ko'proq ko'rsatish
6 635
Obunachilar
-124 soatlar
+27 kun
+8230 kun
Obunachilarni jalb qilish
Sentabr '26
Sentabr '26
+54
9 kanalda
Avgust '26
+132
37 kanalda
Get PRO
Iyul '26
+102
41 kanalda
Get PRO
Iyun '26
+73
0 kanalda
Get PRO
May '26
+67
0 kanalda
Get PRO
Aprel '26
+66
0 kanalda
Get PRO
Mart '26
+57
0 kanalda
Get PRO
Fevral '26
+138
0 kanalda
Get PRO
Yanvar '26
+91
1 kanalda
Get PRO
Dekabr '25
+85
0 kanalda
Get PRO
Noyabr '25
+132
3 kanalda
Get PRO
Oktabr '25
+87
1 kanalda
Get PRO
Sentabr '25
+101
4 kanalda
Get PRO
Avgust '25
+81
0 kanalda
Get PRO
Iyul '25
+80
0 kanalda
Get PRO
Iyun '25
+83
0 kanalda
Get PRO
May '25
+60
0 kanalda
Get PRO
Aprel '25
+80
0 kanalda
Get PRO
Mart '25
+107
0 kanalda
Get PRO
Fevral '25
+105
0 kanalda
Get PRO
Yanvar '25
+169
0 kanalda
Get PRO
Dekabr '24
+202
1 kanalda
Get PRO
Noyabr '24
+203
2 kanalda
Get PRO
Oktabr '24
+364
1 kanalda
Get PRO
Sentabr '24
+241
0 kanalda
Get PRO
Avgust '24
+262
1 kanalda
Get PRO
Iyul '24
+168
0 kanalda
Get PRO
Iyun '24
+398
2 kanalda
Get PRO
May '24
+379
35 kanalda
Get PRO
Aprel '24
+304
43 kanalda
Get PRO
Mart '24
+314
20 kanalda
Get PRO
Fevral '24
+281
1 kanalda
Get PRO
Yanvar '24
+572
45 kanalda
Get PRO
Dekabr '23
+941
48 kanalda
Get PRO
Noyabr '23
+655
2 kanalda
Get PRO
Oktabr '23
+61
0 kanalda
Get PRO
Sentabr '23
+80
0 kanalda
Get PRO
Avgust '23
+507
0 kanalda
Get PRO
Iyul '23
+487
0 kanalda
Get PRO
Iyun '23
+88
0 kanalda
Get PRO
May '23
+569
0 kanalda
Get PRO
Aprel '23
+21
0 kanalda
Get PRO
Mart '23
+28
0 kanalda
Get PRO
Fevral '23
+23
0 kanalda
Get PRO
Yanvar '23
+28
0 kanalda
Get PRO
Dekabr '22
+32
0 kanalda
Get PRO
Noyabr '22
+31
0 kanalda
Get PRO
Oktabr '22
+40
0 kanalda
Get PRO
Sentabr '22
+28
0 kanalda
Get PRO
Avgust '22
+43
0 kanalda
Get PRO
Iyul '22
+321
0 kanalda
Get PRO
Iyun '22
+41
0 kanalda
Get PRO
May '22
+37
0 kanalda
Get PRO
Aprel '22
+180
0 kanalda
Get PRO
Mart '220
0 kanalda
Get PRO
Fevral '220
0 kanalda
Get PRO
Yanvar '220
0 kanalda
Get PRO
Dekabr '210
0 kanalda
Get PRO
Noyabr '210
0 kanalda
Get PRO
Oktabr '210
0 kanalda
Get PRO
Sentabr '210
0 kanalda
Get PRO
Avgust '210
0 kanalda
Get PRO
Iyul '210
0 kanalda
Get PRO
Iyun '210
0 kanalda
Get PRO
May '210
0 kanalda
Get PRO
Aprel '21
+1
0 kanalda
Get PRO
Mart '21
+45
0 kanalda
Get PRO
Fevral '21
+54
0 kanalda
Get PRO
Yanvar '21
+42
0 kanalda
Get PRO
Dekabr '20
+1 304
0 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
15 Sentabr+1
14 Sentabr+2
13 Sentabr+4
12 Sentabr+3
11 Sentabr+1
10 Sentabr+1
09 Sentabr+3
08 Sentabr+8
07 Sentabr+5
06 Sentabr+4
05 Sentabr+1
04 Sentabr+3
03 Sentabr+2
02 Sentabr+6
01 Sentabr+10
Kanal postlari
# C# 14: конкурентный кеш без race condition Реализуйте потокобезопасный кеш:

public sealed class AsyncCache<TKey, TValue>
    where TKey : notnull
{
    public Task<TValue> GetOrCreateAsync(
        TKey key,
        Func<CancellationToken, Task<TValue>> factory,
        CancellationToken cancellationToken = default)
    {
        // TODO
    }
}
Условия: если 100 потоков одновременно запросят один key, factory должна выполниться только один раз. Остальные ждут тот же Task. Если вычисление завершилось ошибкой - запись удаляется из кеша. Отмена одного клиента не должна отменять работу для остальных. Глобальный lock использовать нельзя. Вопрос: как избежать race condition между созданием общего Task и удалением упавшего значения из кеша?

2
🔍Тестовое собеседование с Senior C# разработчиком уже завтра 15 сентября(уже завтра!) в 19:00 по мск приходи онлайн на откры
🔍Тестовое собеседование с Senior C# разработчиком уже завтра 15 сентября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle C# разработчика. Как это будет: 📂 Александр Моргунов, старший C# разработчик с опытом 7+ лет в Европейских высоконагруженных сервисах, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Александр будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Александру Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для C# разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_csharp_bot Реклама. О рекламодателе.
734
3
🔧 Как передать многострочный PEM через Aspire в ASP.NET Core Сертификаты и ключи в PEM содержат переносы строк, которые могут создавать проблемы при передаче через параметры Aspire. Damien Bod показал обходной вариант для локальной разработки с User Secrets и развёртывания в Azure. Схема простая: * закодировать PEM в однострочный Base64 * сохранить значение в конфигурации AppHost под ключом Parameters:ИмяПараметра * объявить приватный ключ через AddParameter(..., secret: true) * передать параметр приложению через WithEnvironment * в ASP.NET Core декодировать Base64 обратно в исходный PEM В статье есть helper-класс для преобразования, настройка AppHost и пример создания сертификата через X509Certificate2.CreateFromPem. Base64 сохраняет переносы строк при передаче. Приватный ключ после кодирования остаётся секретом: Base64 не обеспечивает шифрование. https://damienbod.com/2026/09/01/using-multiline-parameters-for-aspire-and-asp-net-core-with-user-secrets-and-azure-default-deployments/
1 097
4
Согласны ?
Согласны ?
1 202
5
⚡️ Задачи с технических собеседований в одном репозитории Tech-OA-Interview-Questions - подборка задач из онлайн-тестирований и интервью в технологических компаниях. Пригодится для подготовки к алгоритмическим этапам отбора. OA, или Online Assessment, - тестирование, которое кандидат обычно проходит перед собеседованиями. В репозитории собраны материалы для подготовки к таким заданиям, в том числе к отбору в Amazon. Можно использовать как список для практики: решать задачи с таймером, оценивать сложность решения и проверять граничные случаи. https://github.com/perixtar/Tech-OA-Interview-Questions
1 233
6
RabbitMQ в Production: Transactional Outbox, идемпотентность и DLQ в ASP.NET Core Отправить сообщение в RabbitMQ несложно. Го
RabbitMQ в Production: Transactional Outbox, идемпотентность и DLQ в ASP.NET Core Отправить сообщение в RabbitMQ несложно. Гораздо сложнее сделать так, чтобы система продолжала работать корректно в production: сообщения не терялись, не обрабатывались повторно, а ошибки не приводили к бесконечным ретраям и дублированию данных. На открытом уроке 17 сентября в 20:00 разберем типичные проблемы при построении событийно-ориентированных систем и рассмотрим проверенные подходы к их решению. Поговорим о паттерне Transactional Outbox, идемпотентности, и покажем, как Dead Letter Queue (DLQ) помогает работать с ошибками. Примеры на ASP.NET Core и RabbitMQ, но подходы применимы и к другим брокерам. Урок для backend-разработчиков, строящих микросервисные архитектуры, и инженеров, желающих довести event-driven системы до промышленной надежности. 👉 Записаться: https://otus.pw/PWKD/?erid=2W5zFHxScpR Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
856
7
✔️ Polly становится платной, но у .NET остаётся бесплатная альтернатива Polly много лет была одной из главных библиотек .NET
✔️ Polly становится платной, но у .NET остаётся бесплатная альтернатива Polly много лет была одной из главных библиотек .NET для устойчивости к временным сбоям: retry, timeout, fallback, rate limiting и circuit breaker. Теперь Polly движется в сторону платной модели, но Microsoft.Resilience по-прежнему можно использовать бесплатно. С .NET 8 работа с resilience стала заметно проще: появился новый API Polly и официальные библиотеки Microsoft для построения resilience pipelines. Что можно настроить: - Retry - Fallback - Timeout - Rate limiting - Circuit breaker Хороший разбор того, как собирать устойчивые cloud-приложения на современном .NET: https://milanjovanovic.tech/blog/building-resilient-cloud-applications-with-dotnet
1 105
8
.NET и Владимир: отличный повод совместить митап и выходные в городе с историей Офлайн-мероприятий для .NET-разработчиков сей
.NET и Владимир: отличный повод совместить митап и выходные в городе с историей Офлайн-мероприятий для .NET-разработчиков сейчас не так много, а тут получается приятное комбо: встреча с другими разработчиками вечером в пятницу и возможность остаться на выходные в городе с историей. В программе доклады от разработчиков Altenar и Рови Тех (часть Т-Банка): — Async/await — асинхронность, которую можно читать. — Как не терять данные при асинхронной интеграции программных систем. — EF Core + PostgreSQL: за рамками CRUD. Кстати, ещё на митапе запланированы активности для программистов: адаптации известных игр ("Сапер", "Крестики-нолики", "Гонки"), где для победы понадобится понимание математики и вероятностей. Участие бесплатное, а ещё можно сэкономить на проезде — организаторы разыграют несколько билетов на "Ласточку" среди участников. Для участия в розыгрыше: 1. Зарегистрируйтесь на митап. 2. Напишите «Хочу на .NET-митап на Ласточке» на почту aleksei.korneev@altenar.com с почты, указанной при регистрации. Итоги розыгрыша подведём 14 сентября. Регистрируйтесь, планируйте поездку и до встречи во Владимире!
1 166
9
Полноценный Lisp можно уместить всего в 99 строк C. Внутри при этом: - 21 примитив - REPL - сборщик мусора Cheney GC - числа+1
Полноценный Lisp можно уместить всего в 99 строк C. Внутри при этом: - 21 примитив - REPL - сборщик мусора Cheney GC - числа с плавающей точкой - указатели - типы значений И всё это без `struct`-тегов, без внешних библиотек и без обычных динамических аллокаций для представления объектов. Главный трюк - NaN boxing. IEEE 754 оставляет много битов внутри специальных NaN-значений. Их можно использовать как скрытое хранилище: - часть битов кодирует тип - до 48 бит можно использовать под указатель - обычные double при этом остаются обычными числами В итоге одно 64-битное значение может представлять и число, и указатель, и другие типы данных. Очень красивый пример того, как устройство IEEE 754 можно использовать для построения компактного рантайма языка.
1 275
10
ASP .NET Core API под нагрузкой: как сделать сервис устойчивым к сбоям и росту трафика Пока пользователей мало, API работает
ASP .NET Core API под нагрузкой: как сделать сервис устойчивым к сбоям и росту трафика Пока пользователей мало, API работает быстро. С ростом нагрузки запросы занимают все ресурсы, повторные обращения увеличивают нагрузку, операции продолжаются после отключения клиента, ошибки во внешних сервисах ведут к каскадным отказам. На открытом уроке 3 сентября в 20:00 разберём защиту API. Возьмём сервис с проблемами, проведём нагрузочное тестирование, найдём узкие места и поэтапно внедрим механизмы защиты. Сравним результаты после каждого изменения. Поговорим о Rate Limiting, контроле параллельных запросов, CancellationToken, Timeout, Circuit Breaker, кешировании в Redis и предотвращении перегрузки повторными попытками. Урок для C#-разработчиков Web API, backend-инженеров с растущей нагрузкой и всех, кто хочет перейти к production-практикам. 👉 Записаться: https://tglink.io/df8a3e9777dd3a?erid=2W5zFGZJoeZ #реклама О рекламодателе
841
11
Вышел Aspire 13.5 - обновление с упором на интерфейс и удобство повседневной разработки. Что добавили: - обновлённый Dashboar
Вышел Aspire 13.5 - обновление с упором на интерфейс и удобство повседневной разработки. Что добавили: - обновлённый Dashboard и новый дизайн aspire.dev - фильтрацию логов и трассировок по тексту, времени и числам - более понятные ошибки health-check - загрузку файлов прямо через команды AppHost - окна прогресса с возможностью отмены - полноценный терминал прямо внутри Dashboard через WithTerminal() - поддержку persistent volumes для Kubernetes - работу с существующими Azure-ресурсами из других resource group, подписок и tenants - установку Aspire CLI через Homebrew, WinGet, npm, Nix, mise и NuGet Отдельно удобно, что теперь часть инфраструктурных настроек можно описывать прямо в AppHost на C# или TypeScript, без постоянного ухода в YAML. https://devblogs.microsoft.com/aspire/whats-new-aspire-13-5/
1 721
12
Как собрать production-ready CRUD на ASP.NET Core Telerik разобрала не просто базовый CRUD, а структуру приложения, которую у
Как собрать production-ready CRUD на ASP.NET Core Telerik разобрала не просто базовый CRUD, а структуру приложения, которую уже можно нормально развивать дальше. В примере используются: - ASP.NET Core Web API - Entity Framework Core - PostgreSQL - DTO - Service layer - Repository pattern - AutoMapper - FluentValidation - Swagger / OpenAPI Отдельный акцент сделан на разделении ответственности. Контроллеры не должны содержать бизнес-логику, работа с БД выносится отдельно, входные данные валидируются до выполнения операций, а DTO не дают напрямую светить наружу модели базы. Также разбираются: - создание и настройка проекта - подключение PostgreSQL - миграции EF Core - CRUD endpoints - обработка ошибок - валидация - mapping между entity и DTO - организация структуры проекта Хороший материал, если базовый CRUD уже умеешь писать, но хочешь привести проект к более нормальной production-структуре. https://telerik.com/blogs/creating-production-ready-crud-application-aspnet-core #aspnetcore #dotnet
1 696
13
⚡ Race Conditions в ASP.NET Core - как они появляются и почему их сложно ловить В статье Assis Zang разбирается, что происходит, когда несколько запросов одновременно работают с общим состоянием и начинают вмешиваться друг в друга. Внутри: - откуда берутся race conditions - почему проблема может проявляться нестабильно - как воспроизвести конкурентный доступ - какие ошибки возникают при работе с shared state - как использовать синхронизацию и безопасные паттерны - почему потокобезопасность важна даже в обычном web API Полезно для .NET-разработчиков, которые работают с многопоточностью, shared state и высоконагруженными ASP.NET Core-приложениями. https://telerik.com/blogs/understanding-race-conditions-aspnet-core
1 708
14
✔️ Hugging Face прощупывает интерес покупателей Платформа для хостинга моделей и датасетов наняла банки, чтобы выяснить, гото
✔️ Hugging Face прощупывает интерес покупателей Платформа для хостинга моделей и датасетов наняла банки, чтобы выяснить, готов ли кто-нибудь купить бизнес. Речь пока не о сделке - тестирование рынка может закончиться и новым раундом финансирования. По данным источников, сейчас компанию оценивают примерно в 1,3 млрд долларов, тогда как в 2023 году оценка доходила до 4,5 млрд, - за три года почти в три с половиной раза ниже. Наиболее вероятными покупателями называют нынешних инвесторов Hugging Face - Google, Amazon, Nvidia, Intel и Salesforce. bloomberg.com ✔️ Alibaba запустила видеогенератор Wan3.0 Модель собирает тридцатисекундные ролики из текстовых документов, таблиц, презентаций и веб-страниц. В новой версии лучше работают референсы и реконструкция реальных объектов, а базовая длина ролика выросла. Alibaba целится в производство рекламы, коротких сериалов и музыкальных клипов. До официального запуска модель была в открытой бете. Иностранцы получают доступ к API через Alibaba Cloud. Секунда видео стоит 10 центов в 720p и 20 центов в 1080p, то есть полный тридцатисекундный ролик в 1080p обойдется в 6 долларов. reuters.com ✔️ Antigravity теперь управляется с телефона Агентом можно рулить со смартфона или из браузера, ничего дополнительно не устанавливая. В интерфейсе видно сессии в реальном времени, туда же ставятся задачи и оттуда проверяются результаты. На телефон приходят уведомления, когда агент закончил работу или ждет от человека подтверждения. Подключиться можно сразу к нескольким машинам и быстро между ними переключаться, причем монитор хосту не нужен - Antigravity запускается и работает и без него. Обновление раскатывают постепенно, первыми его получают подписчики Google AI Ultra. antigravity.google ✔️ FDA впервые разрешило автономного робота для забора крови Американский регулятор выдал разрешение по процедуре системе Aletta голландского стартапа Vitestro. Робот делает всю процедуру сам: накладывает жгут, дезинфицирует кожу, находит вену, вводит иглу, меняет пробирки, убирает расходники и заклеивает прокол. Вены он ищет ближней инфракрасной съемкой, ультразвуком и допплерографией - ими же отличает вену от артерии. В клинических испытаниях на 1600 пациентах игла попадала с первой попытки в 94,5% случаев. Aletta рассчитана на амбулаторный прием взрослых. Один оператор может вести сразу три таких аппарата. fda.gov ✔️ В Южной Корее микроэлектроника догоняет медицину по конкурсу в ВУЗы На фоне ИИ-бума корейские абитуриенты пошли в микроэлектронику. По данным Jongno Academy, частного центра подготовки к поступлению, средний проходной балл на профильные специальности в ведущих вузах дошел до 96,2. Медицинские факультеты, где конкурс исторически самый высокий в стране, держат 97,2. Университеты вместе с Samsung Electronics и SK Hynix запускают целевые программы с гарантированным трудоустройством. А школьники, чтобы поступить на инженерные направления, все лето занимаются в специализированных центрах Сеула. ft.com @ai_machinelearning_big_data #news #ai #ml
1 382
15
⚡️Актуальные темы .NET на DotNext 2026 В .NET одновременно происходит много интересного: C# получает новые возможности, .NET+4
⚡️Актуальные темы .NET на DotNext 2026 В .NET одновременно происходит много интересного: C# получает новые возможности, .NET 10 меняет расклад между Native AOT и JIT, а в разработке появляются ИИ-агенты, которые берут на себя часть инженерной работы. На DotNext 2026 разберем как вещи, которые происходят на уровне машинного кода, так и вполне прикладные вопросы архитектуры и разработки. 📅 25–26 сентября, Москва + online Выбрали 8 тем из программы, среди которых не только доклады, но и хардкорный воркшоп, чтобы показать этот диапазон: — как заставить Transactional Outbox одновременно быть строгим и параллельным; — зачем ASP.NET Core модульный монолит и как собрать его без микросервисов; — где Native AOT выигрывает у JIT в .NET 10; — что происходит с циклами, inlining и bounds checks в C# и Go; — как меняется SDLC, когда в команде появляются ИИ-агенты; — что принесут discriminated unions в C# 15; — как проектировать асинхронное взаимодействие в распределенных системах (воркшоп). Все подробности — в карточках и на сайте конференции. 🌟По промокоду csharp1001notes — персональные билеты дешевле → Программа DotNext → Купить билет
1 807
16
Rate Limiting и Throttling API в .NET В ASP.NET Core есть встроенные механизмы, которые помогают защитить API от перегрузки и
Rate Limiting и Throttling API в .NET В ASP.NET Core есть встроенные механизмы, которые помогают защитить API от перегрузки и слишком частых запросов. Можно ограничивать трафик: — по IP — по пользователю — по endpoint — по фиксированному окну — через sliding window — token bucket — concurrency limiter Это полезно не только против DDoS. Rate limiting помогает не дать одному клиенту забить весь сервис, защитить дорогие операции и стабилизировать нагрузку на БД и внешние API. В .NET это можно настроить прямо в middleware без сторонних библиотек. Хороший разбор с примерами: https://tundehub.dev/rate-limiting-and-throttling-apis-in-net #aspnetcore #dotnet
1 980
17
Архитектурные ошибки, которые совершают даже опытные C#-разработчики Можно соблюдать SOLID, использовать паттерны и современн
Архитектурные ошибки, которые совершают даже опытные C#-разработчики Можно соблюдать SOLID, использовать паттерны и современные архитектурные подходы — и всё равно со временем получить систему, которую сложно и дорого поддерживать. Почему так происходит? Где заканчивается хорошая архитектура и начинается оверинжиниринг? И какие решения, которые сегодня кажутся правильными, завтра становятся источником технического долга? 18 августа в 20:00 МСК на открытом вебинаре OTUS вместе с Антоном Герасименко разберём архитектурные ошибки, которые регулярно встречаются в реальных .NET-проектах. Вы узнаете, как отличать действительно полезные архитектурные решения от «архитектуры ради архитектуры» и проектировать системы, которые можно развивать без постоянных дорогостоящих переделок. Вебинар проходит в преддверии старта курса «C#-разработчик. Продвинутый уровень». Регистрируйтесь: https://otus.pw/fvrf/?erid=2W5zFHT5e3T Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
597
18
⚡️ C#-приём: не привязывай метаданные к объектам через обычный `Dictionary` — иногда нужен `ConditionalWeakTable`. Допустим, библиотека кеширует данные о типах: private static readonly Dictionary<Type, Metadata> Cache = new(); В обычном приложении это может годами работать без проблем. Но если используются plugins, dynamic assemblies или unloadable AssemblyLoadContext, такой словарь способен удерживать Type, а вместе с ним — всю загруженную сборку. И получить memory leak. Для таких случаев в .NET есть малоизвестный: ConditionalWeakTable<TKey, TValue> Пример: private static readonly ConditionalWeakTable<Type, Metadata> Cache = new(); static Metadata GetMetadata(Type type) { return Cache.GetValue(type, BuildMetadata); } Ключ здесь хранится слабо. Если Type больше нигде не нужен, GC может его собрать, а связанная запись автоматически исчезнет из таблицы. Это особенно полезно для: * reflection-кешей; * proxy/framework-кода; * source/runtime metadata; * plugin-систем; * приложений с AssemblyLoadContext. 🔥 Если видишь: static Dictionary<Type, ...> или static ConcurrentDictionary<Type, ...> в коде, который работает с динамически загружаемыми сборками, стоит проверить: не удерживает ли этот кеш сборки в памяти навсегда? Иногда правильный ответ — ConditionalWeakTable. #CSharp #DotNet #Backend #Programming #CLR
2 137
19
🎓 Скоро заканчивается прием документов на онлайн-магистратуру ИТМО в партнерстве с Яндекс Практикумом «Фронтенд-, бэкенд‑раз
🎓 Скоро заканчивается прием документов на онлайн-магистратуру ИТМО в партнерстве с Яндекс Практикумом «Фронтенд-, бэкенд‑разработка и ИИ‑решения» Это двухлетняя программа, где обучение проходит полностью онлайн с лекциями по вечерам. Нагрузка адаптируется под ваш уровень, сохраняются все статусы и льготы очной формы. После выпуска выдается диплом магистра ИТМО и диплом о профпереподготовке от Яндекса. Что внутри: • 9 треков на выбор по уровню и стеку: 4 базoвых (JS, Python, Java, C++) и 5 продвинутых — с упором на асинхронность, микросервисы, высокое нагружение, Kafka, C++/Boost, NestJS, Spring Boot. • Упор на практику на основе реальных задач партнеров программы и сервисов Яндекса, также есть возможность вести собственный рабочий проект. На выходе получите 10+ кейсов в портфолио. • Интеграция ИИ в разработку: автоматизация рутинных задач (генерация кода, написание тестов, дебаггинг, документация) и промпт-инжиниринг на всех треках. • Специализированный трек «ИИ-решения в разработке»: проектирование систем на базе LLM, сборка RAG-пайплайнов, работа с мультиагентными сетями и внедрение AI-компонентов в продакшен. Подать заявление можно также онлайн. Отбор проходит одним из способов: по рекомендательному письму для выпускников курсов Практикума или через вступительные экзамены. 📌 Подробности о программе.
1 332
20
🚀 C# 15 меняет подход к `unsafe`: указатели больше не означают автоматически опасный код Раньше в C# сам факт использования указателя требовал: unsafe { int* ptr; } Теперь язык движется к более точной модели: опасным считается не наличие указателя, а операция, которая реально работает с unmanaged-памятью. В preview-версии C# 15 уже не требуют unsafe: ✅ объявление pointer-типа ✅ получение адреса через & ✅ fixed для закрепления памяти ✅ преобразование stackalloc в указатель ✅ sizeof для unmanaged-типов Пример: int number = 42; int* pointer = &number; int[] numbers = [10, 20, 30]; fixed (int* first = numbers) { // само закрепление памяти безопасно } Но вот это всё ещё требует unsafe: *pointer; // dereference pointer->Value; // доступ через указатель pointer[0]; // работа с элементами delegate*<> // вызов function pointer Главная идея: **создать инструмент можно безопасно. Опасно — когда начинаешь напрямую менять память.** Это первый этап большой переработки модели безопасности C#. Дальше ожидаются: - requires-unsafe для отдельных членов; - opt-in на уровне assembly; - новый safe keyword. C# постепенно делает unsafe-код более точечным: меньше блоков вокруг всего файла, больше внимания к реально опасным операциям. #csharp #dotnet #programming
1 880