Библиотека шарписта | 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 687 名订阅者,在 技术与应用 类别中位列第 5 949,并在 俄罗斯 地区排名第 30 265 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 21 687 名订阅者。
根据 31 八月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -56,过去 24 小时变化为 -12,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 17.05%。内容发布后 24 小时内通常能获得 7.97% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 3 698 次浏览,首日通常累积 1 728 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 23。
- 主题关注点: 内容集中在 .net, шарписта, навигация, await, string 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“Все самое полезное для C#-разработчика в одном канале.
Наши курсы: https://clc.to/y3LDtw
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead”
凭借高频更新(最新数据采集于 01 九月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
Мой первый pull request. Первый проект. Я хотел показать, как умею быстро писать код. Ну и засунул абсолютно всё в контроллер: валидацию, обращение к БД, бизнес-логику, обработку ошибок. Зато как быстро я всё это наклепал! Жаль, потом по рукам надавали и сказали переделать..💬 А у вас были такие первые PR'ы, после которых стало стыдно, но полезно? Расскажите в комментах — пусть новички учатся не только на своих ошибках 👇 P.S. Если хотите задать вопрос сообществу, заполните нашу гугл-форму. 🐸Библиотека шарписта #междусобойчик
IEnumerable<T> или IQueryable<T>.
✅ Определение цели запроса
Чётко определите входные данные, что с ними будет в процессе и какие ожидаются данные на выходе.
✅ Синтаксис запроса
Перед написанием запросов стоит определить какой синтаксис будет использоваться.
• Синтаксис как метод:
var result = collection.Where(x => x.Age > 30).OrderBy(x => x.Name).ToList();
• Запрос в синтаксисе:
var result = from x in collection
where x.Age > 30
orderby x.Name
select x;
✅ Оптимизация производительности
Используйте IQueryable<T> для внешних источников данных (например, базы данных), чтобы запрос выполнялся на сервере.
✅ Отложенная и немедленная загрузка
Отложенная загрузка полезна, когда вам нужно выполнить запрос, но выполнение следует отложить до тех пор, пока это не потребуется.
Немедленная загрузка используется, когда вы хотите сразу получить результат выполнения запроса или когда данные нужно обработать немедленно.
✅ Агрегация и группировка
Используйте функции агрегации, такие как Sum(), Average(), Max(), и группировку через GroupBy().
✅ Сложные запросы
Работайте с несколькими коллекциями через операторы join, union, intersect и except.
var combined = collection1.Join(collection2,
c1 => c1.Id,
c2 => c2.Id,
(c1, c2) => new { c1.Name, c2.Price });
✅ Использование let для промежуточных вычислений
Упрощайте запросы с помощью промежуточных переменных:
var result = from x in collection
let temp = x.Age * 2
where temp > 40
select new { x.Name, temp };
✅ Обработка пустых коллекций
Используйте DefaultIfEmpty() для предотвращения ошибок при работе с пустыми коллекциями.
✅ Производительность и асинхронность
Используйте асинхронные методы, такие как ToListAsync(), для работы с асинхронными источниками данных.
🐸Библиотека шарписта #бустWeakReference «отпустила» объект
В .NET слабые ссылки позволяют ссылаться на объект, не препятствуя сборщику мусора его удалить. Это полезно в кэшах, пулах объектов и других случаях, где важно избегать утечек памяти.
Но как проверить, что объект удаляется?
Можно использовать пример:
class MyObject
{
~MyObject()
{
Console.WriteLine("MyObject был удалён сборщиком мусора");
}
}
class Program
{
static void Main()
{
WeakReference weakRef = test();
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
Console.WriteLine("После сборки мусора: " + (weakRef.IsAlive ? "Жив" : "Удалён"));
}
static WeakReference test() {
var obj = new MyObject();
WeakReference weakRef = new WeakReference(obj);
Console.WriteLine("До удаления ссылки: " + (weakRef.IsAlive ? "Жив" : "Удалён"));
return weakRef;
}
}
• IsAlive показывает, жив ли объект.
• GC.Collect() + GC.WaitForPendingFinalizers() заставляют сборщик мусора немедленно освободить неиспользуемые объекты.
• Деструктор ~MyObject() позволяет наглядно убедиться, что объект удалён.
Метод IsAlive может показывать, что объект жив даже после GC.Collect(), если объект ещё не финализирован или находится в очереди на финализацию.
Для надёжности можно использовать TryGetTarget вместо IsAlive.
🐸Библиотека шарписта #бустIEnumerable или IDictionary, позволяет методам работать с различными реализациями, повышая переиспользуемость кода.
— Абстракции облегчают написание модульных тестов, позволяя подменять зависимости мок-объектами.
💬 А что выбирает вы? Гибкость или быструю работу? Пишите свои мысли в комментарии👇
🐸Библиотека шарписта #междусобойчикГде используется ООП, никак не могу понятьМногие изучают классы и объекты, но не видят, где это всё в жизни применяется. Давайте разберёмся — и на конкретных примерах. Базовая единица ООП это объект. Объект — это экземпляр класса. Он объединяет в себе данные (поля/свойства) и логику (методы). Пример:
class Cat
{
public string Name = "Барсик";
public void Meow()
{
Console.WriteLine("Мяу!");
}
}
// Создание объекта:
Cat cat = new Cat();
cat.Meow();
Вот это — объекты в C#:
• Button, Form, Label — в WinForms и WPF.
• Player, Enemy, Weapon — в Unity.
• User, Product, Order — в ASP.NET проектах.
• HttpClient, FileStream, List<T> — в стандартной библиотеке.
У всех этих объектов есть состояние и поведение.
Это лишь часть, которая входит в понятие объектно-ориентированного программирования. Далее идут более глубокие принципы: абстракции, наследование, полиморфизм.
💬 Где вы используете ООП? Пишите свои варианты в комментариях👇
P.S. Если хотите задать вопрос сообществу, заполните нашу гугл-форму.
🐸Библиотека шарписта #междусобойчикAssist me in reviewing, completing, or creating my resume based on my profession. First, ask if I would like to specify what my profession is (to refine the resume to make it more appealing to employers). Then, ask if I would like to paste an existing resume or create a new one from scratch. If I do, ask me to paste it. You will help me identify any missing information or sections. You will ask me to provide the necessary information, step-by-step. If I do not have an existing resume or prefer to create a new one, you will guide me, step-by-step, through the process of providing the necessary information to craft an outstanding and tailored resume. Maintain a conversational approach, divide each section so it has its dedicated space in the conversation (before moving on to the next section, display the inserted information and check to make sure it's correct.) and provide expert explanations for each step. When the resume is complete, proofread the resume and provide specific suggestions (in bullet points) to make the resume more appealing to potential employers.💬 Поделитесь в комментариях: когда вы в последний раз обновляли своё резюме 👇 🐸Библиотека шарписта #буст
