Bagikan melalui


Mengatasi Kompleksitas Bisnis dalam Layanan Mikro dengan Pola DDD dan CQRS

Petunjuk / Saran

Konten ini adalah kutipan dari eBook, Arsitektur Layanan Mikro .NET untuk Aplikasi .NET Kontainer, tersedia di .NET Docs atau sebagai PDF gratis yang dapat diunduh yang dapat dibaca secara offline.

Arsitektur Layanan Mikro .NET untuk Aplikasi .NET Dalam Kontainer: gambar kecil sampul eBook.

Desain model domain untuk setiap layanan mikro atau Konteks Terikat yang mencerminkan pemahaman tentang domain bisnis.

Bagian ini berfokus pada layanan mikro yang lebih canggih yang Anda terapkan ketika Anda perlu mengatasi subsistem kompleks, atau layanan mikro yang berasal dari pengetahuan pakar domain dengan aturan bisnis yang terus berubah. Pola arsitektur yang digunakan di bagian ini didasarkan pada pendekatan desain berbasis domain (DDD) dan Command and Query Responsibility Segregation (CQRS), seperti yang diilustrasikan dalam Gambar 7-1.

Diagram membandingkan pola arsitektur eksternal dan internal.

Perbedaan antara arsitektur eksternal: pola layanan mikro, gateway API, komunikasi yang tahan banting, pub/sub, dll., dan arsitektur internal: berbasis data/CRUD, pola DDD, injeksi dependensi, beberapa pustaka, dll.

Gambar 7-1. Arsitektur layanan mikro eksternal versus pola arsitektur internal untuk setiap layanan mikro

Namun, sebagian besar teknik untuk layanan mikro berbasis data, seperti cara menerapkan layanan ASP.NET Core Web API atau cara mengekspos metadata Swagger dengan Swashbuckle atau NSwag, juga berlaku untuk layanan mikro yang lebih canggih yang diterapkan secara internal dengan pola DDD. Bagian ini adalah ekstensi dari bagian sebelumnya, karena sebagian besar praktik yang dijelaskan sebelumnya juga berlaku di sini atau untuk segala jenis layanan mikro.

Bagian ini pertama-tama memberikan detail tentang pola CQRS yang disederhanakan yang digunakan dalam aplikasi referensi eShopOnContainers. Nantinya, Anda akan mendapatkan gambaran umum tentang teknik DDD yang memungkinkan Anda menemukan pola umum yang dapat Anda gunakan kembali di aplikasi Anda.

DDD adalah topik besar dengan sekumpulan sumber daya yang kaya untuk pembelajaran. Anda dapat memulai dengan buku-buku seperti Domain-Driven Design oleh Eric Evans dan materi tambahan dari Vaughn Vernon, Jimmy Nilsson, Greg Young, Udi Dahan, Jimmy Bogard, dan banyak ahli DDD/CQRS lainnya. Namun yang paling penting adalah Anda perlu mencoba mempelajari cara menerapkan teknik DDD dari percakapan, penggunaan papan tulis, dan sesi pemodelan domain dengan para ahli di domain bisnis konkret Anda.

Sumber daya tambahan

DDD (DesainDomain-Driven)
Buku DDD
Pelatihan DDD