C# (C Sharp) programming
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ
Mostrar más📈 Análisis del canal de Telegram C# (C Sharp) programming
El canal C# (C Sharp) programming (@csharp_ci) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 18 305 suscriptores, ocupando la posición 7 337 en la categoría Tecnologías y Aplicaciones y el puesto 36 917 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 18 305 suscriptores.
Según los últimos datos del 11 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -27, y en las últimas 24 horas de 6, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 16.94%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 8.35% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 3 100 visualizaciones. En el primer día suele acumular 1 528 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 0.
- Intereses temáticos: El contenido se centra en temas clave como .net, api, логика, архитектура, string.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“По всем вопросам- @notxxx1
Реестр РКН: https://clck.ru/3Fk3kb
#VRHSZ”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 12 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
UserService
- UserService сохраняет пользователя и вызывает EmailService
- EmailService отправляет письмо через SmtpClient
Но если присмотреться — SendWelcomeEmail помечен как **async void** ❗️
Почему это проблема?
❌ async void делает невозможным отлов исключений.
Если внутри SendEmailAsync() что-то пойдёт не так — try/catch не сработает.
Исключение пролетит мимо и может тихо крашнуть приложение или вызвать странные баги.
Почему так?
🔸 async void не возвращает Task, значит await невозможен
🔸 Исключения из таких методов не перехватываются обычным образом
✅ Как правильно:
Всегда возвращай Task — только так можно надёжно обрабатывать ошибки.
📌 Запомни правило:
async void допустим только в event‑handler’ах. Больше — нигде.
Ты уже сталкивался с этой ловушкой? Пиши свои фейлы или советы 👇Program.cs и appsettings.json
3. Укажи пути к downstream-сервисам
После этого твой прокси уже готов к работе — будет распределять трафик между сервисами.
Но это только начало. YARP мощный и расширяемый. Он поддерживает разные политики балансировки нагрузки прямо "из коробки":
▪ Random — случайный выбор
▪ RoundRobin — по кругу
▪ LeastRequests — к тому, у кого меньше всего запросов
▪ FirstAlphabetical — по алфавиту
▪ PowerOfTwoChoices — выбери лучший из двух случайных (дефолт)
Автор статьи применил YARP для масштабирования нескольких приложений и делится опытом в полном гайде:
📖 Читай подробнее: https://milanjovanovic.tech/blog/horizontally-scaling-aspnetcore-apis-with-yarp-load-balancing
services.Decorate<IService, LoggingDecorator>();
Зачем это нужно?
— логгировать вызовы без лома архитектуры
— централизованно обрабатывать ошибки
— добавить метрики без влезания в бизнес-логику
📌 Подробнее
class User
{
public string Name { get; set; }
public int Age { get; set; }
}
Нужно написать метод UniqueBy<T, TKey>, который возвращает только уникальные элементы по ключу. Нельзя использовать LINQ (Distinct, GroupBy и т.д.). Метод должен быть ленивым — использовать yield return.
Пример:
var users = new List<User>
{
new User { Name = "Alice", Age = 30 },
new User { Name = "Bob", Age = 25 },
new User { Name = "Alice", Age = 35 },
new User { Name = "Eve", Age = 25 }
};
foreach (var user in UniqueBy(users, u => u.Name))
{
Console.WriteLine($"{user.Name}, {user.Age}");
}
// Вывод:
// Alice, 30
// Bob, 25
// Eve, 25
🧠 Решение:
public static IEnumerable<T> UniqueBy<T, TKey>(IEnumerable<T> source, Func<T, TKey> keySelector)
{
var seen = new HashSet<TKey>();
foreach (var item in source)
{
var key = keySelector(item);
if (seen.Add(key))
yield return item;
}
}
📌 Чем эта задача интересна:
▪ Требует знания HashSet, yield return и замыканий
▪ Работает с любыми коллекциями и даже бесконечными потоками
▪ Часто нужна при фильтрации API-результатов, логов и UI
Ставь лайк, если хочешь больше таких продвинутых C#-задач.Result<T> вместо выбрасывания исключения
— Caller обязан проверить IsSuccess и обработать ошибку
— Код становится предсказуемее и легче тестируется
— Дополнительно: пропускная способность может быть выше, чем при throw/catch
Пример:
Result<User> result = userService.FindById(id);
if (!result.IsSuccess)
return Error(result.Error);
Подробнее
git clone https://github.com/microsoft/documentdb.git
Соберите и запустите:
docker build . -f .devcontainer/Dockerfile -t documentdb
docker run -v $(pwd):/home/documentdb/code -it documentdb /bin/bash
cd code && make && sudo make install
./scripts/start_oss_server.sh -t documentdb
Подключение:
psql -p 9712 -h localhost -d postgres
🔗 Репозиторий: https://github.com/microsoft/documentdb
DocumentDB — это не просто адаптация под Mongo, а новая точка входа в NoSQL на мощной базе PostgreSQL.
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
