Обновить
16K+
10
Павел@pabel0071

Ведущий разработчик

4
Рейтинг
4
Подписчики
Отправить сообщение

Практичная тема для небольших ASP.NET Core-проектов: несколько приложений на одном VPS, домены третьего уровня, nginx и SSL — частый реальный сценарий. Хорошо, когда такие шаги описаны именно как цельный deploy-процесс, а не отдельные несвязанные команды.

Интересный опыт разработки multi-tenant backend на ASP.NET API. Особенно полезно, что тема показана через реальные вопросы: разделение данных, модель доступа, бронирования и постепенное обучение в процессе проекта. Такие практические заметки хорошо дополняют официальную документацию.

Хорошо, что MVC, SOA, DDD, modular monolith и микросервисы рассматриваются как этапы решения разных проблем, а не как линейная шкала «старое-плохое, новое-хорошее». Для ASP.NET-проектов это особенно полезно: часто modular monolith оказывается более здравым шагом, чем ранний уход в микросервисы.

Актуальная тема для API-first подхода в .NET: после изменений вокруг Swashbuckle хочется понимать, какие есть практичные варианты для документации API. Scalar выглядит интересным именно как часть процесса проектирования контрактов, а не просто как красивая страница вместо Swagger UI.

Хорошая базовая раскладка по идентификации, аутентификации и авторизации. Для ASP.NET Core это особенно важно, потому что многие проблемы с безопасностью начинаются не в коде контроллера, а в неверном понимании ролей OAuth, OIDC, токенов и claims.

Полезная тема для любого ASP.NET-разработчика: GC обычно незаметен, пока приложение не выходит под нагрузку. Хорошо, что материал помогает связать базовые механики сборки мусора с реальными последствиями для памяти, latency и поведения backend-сервиса.

Хорошее сравнение двух подходов внутри ASP.NET. MVC всё ещё силён своей предсказуемостью и зрелой экосистемой, а Blazor интересен возможностью писать интерактивный UI на C#. На практике выбор, кажется, сильно зависит от команды и типа интерфейса.

Outbox отлично закрывает типичную проблему между транзакцией в БД и публикацией сообщения в брокер. Особенно полезно, что статья показывает не абстрактную «надёжность», а конкретный способ снизить риск потерянных событий в распределённой системе на .NET.

Хороший учебный проект для роста в ASP.NET/C#: есть понятная личная боль, backend-задачи, React и работа с фундаментальными темами вроде SOLID и паттернов. Такие проекты полезны именно тем, что заставляют не просто читать теорию, а сразу проверять её на живой функциональности.

Интересная идея использовать историю изменений не для «охоты на виноватых», а как повод посмотреть на реальный вклад и динамику работы в команде. Особенно полезно, что инструментальный подход можно применить к OpenSource и IDE-плагинам, где ручной анализ быстро становится неудобным.

Понравилось, что статья показывает ASP.NET Core не в вакууме, а в реальной продуктовой среде: Telegram-вход, локализация, таймзона Ташкента, несколько доменов и nginx. Такие детали хорошо напоминают, что архитектура часто рождается из ограничений бизнеса.

Спасибо, замечание принимаю. Смысл фразы был в том, что retry работает с техническим failure, а для бизнеса важен возможный дубль операции. Но подача правда получилась слишком "цитатная". Поправлю текст, чтобы читалось спокойнее и без ощущения сгенерированной вставки.

Кажется, вывод в статье сформулирован неаккуратно. attmissingval — это не “место хранения default-значения колонки”, а служебное missing value для строк, где новый атрибут физически отсутствует. Причём оно используется только при atthasmissing = true. Текущий default как выражение живёт через pg_attrdef/column_default, а attmissingval — это уже зафиксированное значение для старых строк после fast ADD COLUMN DEFAULT.

Хорошая компактная памятка по DI lifetime’ам. Особенно полезно, что внимание уделено не только моменту создания объектов, но и ограничениям между lifetime’ами и освобождению ресурсов через Dispose. Для ASP.NET Core это база, которую важно понимать точно.

Интересный взгляд на DDD без идеализации. Мне кажется, особенно важна мысль, что архитектурные паттерны нужно сверять с размером домена, количеством агрегатов и навигацией по коду, а не применять «по канону» в любом проекте.

Спасибо за глубокий разбор внутренней кухни MassTransit. Особенно полезно увидеть библиотеку не только через AddMassTransit и consumer’ы, а через pipeline, DI-регистрацию, конфигурацию и runtime-обработку сообщений.

Хороший практический разбор: gRPC часто выглядит простым до первого столкновения с decimal, DateTime, nullable и enum. Такие статьи помогают заранее заложить нормальные правила контрактов, а не чинить кодогенерацию уже в процессе миграции.

Полезная production-тема, которую легко недооценить на dev-среде. Особенно понравилось, что разобраны не только симптомы вроде 431, но и несколько вариантов лечения: от чистки claims до серверных сессий.

Отличный материал для backend-разработчиков. Пример с низким CPU и высоким p99 хорошо показывает, почему блокировки async-кода опасны не только «по учебнику», а вполне измеримо на уровне ThreadPool и latency.

1

Информация

В рейтинге
1 519-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Фулстек разработчик
Ведущий
C#
.NET
.NET Core
Entity framework
ASP.NET
SQL
PostgreSQL
Git
ООП
MongoDB