#10B-RU | Практика: Объекты-значения, Аудит и Мягкое удаление | BuildFlow
BuildVision Eng: Luay
0:00 / 0:00
#10B-RU | Практика: Объекты-значения, Аудит и Мягкое удаление | BuildFlow
321 просмотр · 13 дн. назад
BuildVision Eng: Luay
92 подписчика
321 просмотр · 13 дн. назад
Хотите научиться преобразовывать архитектурные решения в чистый, готовый к использованию код в проекте .NET? 🚀
В этом практическом эпизоде серии BuildFlow мы шаг за шагом продолжаем строить основу нашего SharedKernel, реализуя три основных компонента, которые помогут нам спроектировать более организованную и поддерживаемую систему.
🔹 1. Объект-значение
Мы рассмотрим практическую реализацию базового класса ValueObject и применим структурное равенство значений вместо идентичности. Вы узнаете о неизменяемости, методе GetEqualityComponents() и о том, как вычисляется HashCode, включая объяснение, почему мы используем HashCode.Combine вместо операций XOR.
🔹 2. Контракт аудита
Мы создадим интерфейс IAuditableEntity для отслеживания метаданных создания и изменения, таких как CreatedAtUtc, CreatedBy, ModifiedAtUtc и ModifiedBy.
Мы также обсудим, почему интерфейс предпочтительнее базового класса, и как это решение позволяет нам объединять несколько контрактов, не сталкиваясь с ограничениями наследования в C#.
🔹 3. Контракт мягкого удаления
Мы реализуем интерфейс ISoftDelete, используя IsDeleted, DeletedAtUtc и DeletedBy. Мы объясним, как мягкое удаление сохраняет историю аудита вместо окончательного удаления записей, и почему глобальный фильтр запросов необходим для исключения удаленных элементов из стандартных запросов.
🎯 Что вы узнаете в этом эпизоде:
Создание ValueObject со структурным равенством значений.
Понимание недостатков HashCode.Combine и XOR.
Разработка контрактов аудита и мягкого удаления с использованием интерфейсов.
Понимание взаимосвязи между SharedKernel и инфраструктурой.
Организация кода вокруг четких архитектурных границ, а не повторение логики внутри каждой сущности.
Этот эпизод представляет собой практическое руководство, посвященное этим трем компонентам и их границам, и закладывает основу для автоматизации их поведения на уровне инфраструктуры с использованием EF Core.
Если вас интересуют .NET, C#, DDD и чистая архитектура, следуйте серии BuildFlow, чтобы шаг за шагом создавать корпоративное программное обеспечение, понимая инженерные обоснования каждого решения.
🌐 BuildFlow-V3 — Живая демонстрация
Зарегистрируйте свой собственный клиент и пройдите полный рабочий процесс создания документа: Черновик → На рассмотрении → Утверждено → Архивировано (многопользовательская SaaS-платформа .NET 8).
Ссылка: https://build-flow-v3-orpin.vercel.app
💻 BuildFlow-V3 — Исходный код (.NET 8)
Модульный монолит, DDD, CQRS, многопользовательский режим, кэширование Redis, OpenTelemetry, 90 модульных тестов и полная CI.
Репозиторий GitHub: https://github.com/luaay/BuildFlow-V3
Swagger для работы с API: https://buildflow.runasp.net/swagger
📂 Репозиторий с пошаговыми инструкциями
Полный исходный код, пошагово связанный с видеоуроками на YouTube.
Ссылка: https://github.com/luaay/BuildFlow-Tu...
🎥 Полная серия видеоуроков:
🇸🇦 Серия на арабском языке: • BuildFlow Demo | Engineering Document Work...
🇬🇧 Серия на английском языке: • 🚀 BuildFlow Demo | Build a Real Engineerin...
💻 Исходный код и GitHub
Эпизод 10
▶️ Начало с коммита — завершение реализации эпизода 09
🏁 Завершение на коммите — завершение реализации эпизода 10
👍 Если этот эпизод оказался вам полезным, Пожалуйста, поддержите канал, поставив лайк, подписавшись и поделившись видео с другими программистами!
BuildFlow — Разработка программного обеспечения на основе инженерных решений. #BuildFlow #DotNet #CSharp #CleanArchitecture #DDD #ValueObject #EntityFrameworkCore #SoftwareArchitecture