Библиотека шарписта | 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 685 підписників, посідаючи 5 992 місце в категорії Технології та додатки та 30 427 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 21 685 підписників.
За останніми даними від 01 вересня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -45, а за останні 24 години на 0, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 17.50%. Протягом перших 24 годин після публікації контент зазвичай збирає 7.83% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 3 794 переглядів. Протягом першої доби публікація в середньому набирає 1 697 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 23.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як .net, шарписта, навигация, await, string.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Все самое полезное для C#-разработчика в одном канале.
Наши курсы: https://clc.to/y3LDtw
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead”
Завдяки високій частоті оновлень (останні дані отримано 02 вересня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
git clone https://github.com/microsoft/documentdb.git
3. Создайте Docker-образ и запустите контейнер:
docker build . -f .devcontainer/Dockerfile -t documentdb
docker run -v $(pwd):/home/documentdb/code -it documentdb /bin/bash
4. Соберите и установите бинарные файлы:
cd code
make
sudo make install
5. Запустите сервер DocumentDB:
./scripts/start_oss_server.sh -t documentdb
6. Подключитесь к серверу через psql:
psql -p 9712 -h localhost -d postgres
📎 Официальный анонс
🐸Библиотека шарписта #новость// Плохо: аллокация на каждый вызов
var buffer = new byte[1024];
// Лучше: переиспользуем память
var pool = MemoryPool<byte>.Shared;
using (var owner = pool.Rent(1024))
{
var buffer = owner.Memory;
// Работа с буфером
}
2️⃣ Блокировка асинхронного кода
Проблема: Использование .Result или .Wait() блокирует текущий поток, что может привести к дедлокам, особенно в UI-приложениях.
Решение:
• Цепочка async/await должна идти от начала до конца.
• В библиотечных методах используйте .ConfigureAwait(false).
Пример:
// Плохо: блокировка потока
public string GetData() => FetchDataAsync().Result;
// Лучше: полная асинхронность
public async Task<string> GetDataAsync() => await FetchDataAsync();
3️⃣ Неэффективные запросы к БД
Проблема:
• N+1 запросы в ORM (например, Entity Framework).
• Отсутствие индексов или выборка лишних данных.
Решение:
• Используйте .Include() для жадной загрузки связанных данных.
• Применяйте пагинацию (Skip/Take) и индексы.
// Плохо: N+1 запросов
var orders = context.Orders.ToList();
foreach (var order in orders)
{
var customer = context.Customers.Find(order.CustomerId);
}
// Лучше: один запрос с JOIN
var orders = context.Orders.Include(o => o.Customer).ToList();
➡️ Эти 3 антипаттерна — частые «узкие места». Проверьте их в своём коде, а остальные 7 примеров смотрите в статьеlet add x y = x + y
let multiplyBy2 x = x * 2
// Без пайпа
let result1 = multiplyBy2 (add 3 4) // 3 + 4 = 7, затем 7 * 2 = 14
// С пайпом
let result2 = add 3 4 |> multiplyBy2 // То же самое, но более читаемо
2️⃣ Обратный пайп (<|) — этот оператор менее популярен, но не менее полезен для улучшения читаемости.
Пример:
let result = multiplyBy2 <| add 3 4 // То же, что и multiplyBy2 (add 3 4)
3. Зачем использовать пайпы?
➕Код становится линейным и понятным.
➕Не нужно вкладывать вызовы функций в скобки.
➕Пайпы подчеркивают функциональную природу F#.
🐸Библиотека шарпистаservices.Scan(scan => scan
.FromAssemblyOf<Startup>() // Сканирование текущей сборки
.AddClasses() // Добавление всех классов
.AsImplementedInterfaces() // Регистрация их как интерфейсов
.WithScopedLifetime()); // Установка времени жизни
💡 Основные возможности
• Автоматическая регистрация классов.
• Фильтрация классов по правилам (например, по имени или пространству имён).
• Настройка времени жизни (Transient, Scoped, Singleton).
• Регистрация классов с пользовательскими интерфейсами или без них.
📎 GitHub библиотеки
🐸Библиотека шарписта