Перейти к содержимому

#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