Библиотека шарписта | C#, F#, .NET, ASP.NET
Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
显示更多📈 Telegram 频道 Библиотека шарписта | C#, F#, .NET, ASP.NET 的分析概览
频道 Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 21 701 名订阅者,在 技术与应用 类别中位列第 5 955,并在 俄罗斯 地区排名第 30 269 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 21 701 名订阅者。
根据 26 八月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -45,过去 24 小时变化为 5,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 15.84%。内容发布后 24 小时内通常能获得 7.84% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 3 438 次浏览,首日通常累积 1 702 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 25。
- 主题关注点: 内容集中在 .net, шарписта, навигация, await, string 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“Все самое полезное для C#-разработчика в одном канале.
Наши курсы: https://clc.to/y3LDtw
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead”
凭借高频更新(最新数据采集于 27 八月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
«Мультиагентные системы: почему большинство архитектур переусложнены»🔥 За 90 минут разберёмся, когда действительно стоит строить мультиагентную систему, а когда она только добавляет сложность, расходы и новые точки отказа. Поговорим о критериях выбора архитектуры, типичных ошибках и ограничениях современных ИИ-агентов, которые важно учитывать ещё до внедрения в продукт. 🎙️ Спикер — Дмитрий Юдин, руководитель AI/ML-направления в Сloud․ru. 🎁 Для всех участников подготовили промокод на скидку 10 000 ₽ на курс «Разработка ИИ-агентов». 👉 Успей присоединиться к уроку
git reset --soft, --mixed и --hard путают даже опытных разработчиков, потому что Git одновременно работает с историей коммитов, индексом и рабочей директорией.
🔤 Из-за этого одна и та же команда может:
— оставить изменения в staging area — снять файлы со staging — полностью откатить локальные измененияВ этой шпаргалке собраны основные различия между всеми режимами git reset и показано, что именно происходит с HEAD, индексом и рабочими файлами 💡 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека шарписта #схема
StringBuilder как один массив символов, который растёт по мере добавления текста. На самом деле внутри он устроен как связный список кусков, и из этого вытекает почти всё его поведение.
🔴 Каждый StringBuilder хранит текущий кусок, обычный char[], и ссылку на предыдущий кусок. Когда вы вызываете Append, символы пишутся в текущий кусок. Как только в нём кончается место, выделяется новый кусок, а старый остаётся висеть в цепочке позади. Получается список кусков, направленный назад, от последнего к первому.
🔴 Отсюда понятны несколько вещей. Append в среднем дешёвый, потому что чаще всего это запись в уже выделенный кусок без копирования всего текста. ToString дороже, ведь он проходит по всей цепочке и собирает символы в одну новую строку. Индексатор по символу на длинном тексте тоже не бесплатный, так как может потребоваться пройти по нескольким кускам, чтобы добраться до нужной позиции.
Эта же модель объясняет свежий метод MoveChunks из .NET 11 Preview 5. Раз текст это цепочка кусков, передать его в другой билдер можно, просто переставив ссылку на цепочку, без копирования символов. Поэтому операция и выполняется за O(1), а исходный билдер остаётся пустым, но рабочим.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека шарписта
#il_люминатор— массивы — ООП — структуры и enum — исключения — работа с файлами — genericsПодойдёт тем, кто уже знает основы языка и хочет закрепить их на практике. 🔗 Ссылка 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека шарписта #sharp_view
var users = new HashSet<User>(
EqualityComparer<User>.Create(
user => user!.Email,
StringComparer.OrdinalIgnoreCase));
users.Add(new User("ada@example.com", "Ada"));
users.Add(new User("ADA@example.com", "Ada Lovelace"));
Console.WriteLine(users.Count); // 1
Здесь сравнение выполняется по Email без учёта регистра.
Плюс такого подхода в том, что логика равенства остаётся локальной и не требует переопределения Equals и GetHashCode у самого типа.
Работает везде, где принимается IEqualityComparer<T>: HashSet, Distinct, GroupBy, ToDictionary и не только.
⚠️ Пока доступно в .NET 11 Preview 5.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека шарписта
#async_news
var c2 = c1;
создаётся не ссылка на объект, а полная копия структуры.
После этой строки в памяти фактически находятся два независимых экземпляра:
c1 -> Value = 10 c2 -> Value = 10Затем меняется только копия:
c2.Value = 20;Теперь состояние выглядит так:
c1 -> Value = 10 c2 -> Value = 20Поэтому вывод будет: 10 💡 Это одно из ключевых отличий struct от class. Для сравнения, если бы Counter был классом:
public class Counter
{
public int Value;
}
то после:
var c2 = c1;
обе переменные ссылались бы на один и тот же объект, и результатом был бы уже 20.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека шарписта
#dotnet_challenge
public record class Dog(string Name);
public record class Cat(int Lives);
public union Pet(Dog, Cat);
static string Describe(Pet pet) => pet switch
{
Dog(var name) => $"dog: {name}",
Cat(var lives) => $"cat: {lives}"
};
Что это даёт:
✅ один тип может хранить одно из нескольких значений
✅ компилятор знает все возможные варианты
✅ switch проверяется на полноту
✅ меньше шаблонного кода и проверок типов в рантайме
Рядом появилась и поддержка закрытых иерархий (closed), которая позволяет компилятору анализировать всех наследников типа и также проверять исчерпывающее сопоставление с образцом.
❕ Пока это preview-функциональность. До релиза .NET 11 синтаксис и детали реализации ещё могут измениться.
Идею union types сообщество просило больше десяти лет. Если фича дойдёт до релиза без серьёзных изменений, моделировать состояния, результаты операций и альтернативные типы станет заметно проще.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека шарписта
#async_news— зачем вообще нужен MediatR — когда он действительно полезен — как заменить его встроенными инструментами .NET — какие компромиссы появляются при таком подходе🔗 Смотреть по ссылке P.S. Видео на английском языке, можно включить субтитры 💡 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека шарписта #il_люминатор
private string _email;
public string Email
{
get => _email;
set => _email = value.Trim().ToLowerInvariant();
}
Начиная с C# 14 можно использовать field — ссылку на автоматически сгенерированное backing field:
public string Email
{
get;
set => field = value.Trim().ToLowerInvariant();
}
Подходит для:
✅ валидации значений
✅ нормализации данных
✅ INotifyPropertyChanged
✅ небольшой логики в get/set
⚠️ Если в классе уже есть член с именем field, внутри аксессора приоритет получит новое ключевое слово. Для обращения к своему члену используйте @field или this.field.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека шарписта
#sharp_view• Understand Anything — граф знаний по коду и зависимостям. • DeepTutor — open-source платформа для персонализированного обучения. • Superpowers — набор практик для системной разработки с ИИ. • Awesome Agent Skills — коллекция навыков для ИИ-агентов.📚 Ключевые работы по LLM:
• Attention Is All You Need (2017) — архитектура Transformer. • GPT-1 (2018) — начало эпохи GPT. • GPT-2 (2019) — решение новых задач без дообучения. • GPT-3 (2020) — обучение на примерах из запроса. • InstructGPT (2022) — RLHF и современные чат-боты.На курсе Роман выступает консультантом программы: помогает формировать содержание уроков с опорой на актуальные инженерные практики». Занять свое место на потоке: 👉 Курс «Разработка ИИ-агентов»
