Bagikan melalui


Merancang lapisan aplikasi layanan mikro dan API Web

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.

Gunakan prinsip-prinsip SOLID dan Injeksi Dependensi

Prinsip SOLID adalah teknik penting untuk digunakan dalam aplikasi modern dan penting, seperti mengembangkan layanan mikro dengan pola DDD. SOLID adalah akronim yang mengelompokkan lima prinsip dasar:

  • Prinsip Tanggung Jawab Tunggal

  • Prinsip terbuka/tertutup

  • Prinsip penggantian Liskov

  • Prinsip Pemisahan Antarmuka

  • Prinsip Inversi Ketergantungan

SOLID lebih lanjut tentang cara Anda merancang lapisan internal aplikasi atau layanan mikro dan tentang memisahkan dependensi di antaranya. Ini tidak terkait dengan domain, tetapi dengan desain teknis aplikasi. Prinsip akhir, prinsip Inversi Dependensi, memungkinkan Anda untuk memisahkan lapisan infrastruktur dari sisa lapisan, yang memungkinkan implementasi lapisan DDD yang dipisahkan dengan lebih baik.

Dependency Injection (DI) adalah salah satu cara untuk menerapkan prinsip Inversi Dependensi. Ini adalah teknik untuk mencapai kopling longgar antara objek dan dependensinya. Daripada langsung membuat instans kolaborator, atau menggunakan referensi statis (yaitu, menggunakan pernyataan 'new'...), objek yang dibutuhkan oleh kelas untuk menjalankan fungsinya diinjeksi ke dalam kelas. Paling sering, kelas akan menyatakan dependensi mereka melalui konstruktornya, memungkinkan mereka untuk mengikuti prinsip Dependensi Eksplisit. Injeksi Dependensi biasanya didasarkan pada kontainer Inversion of Control (IoC) tertentu. ASP.NET Core menyediakan kontainer IoC bawaan sederhana, tetapi Anda juga dapat menggunakan kontainer IoC favorit Anda, seperti Autofac atau Ninject.

Dengan mengikuti prinsip SOLID, kelas pemrograman Anda akan secara alami menjadi kecil, terstruktur dengan baik, dan mudah diuji. Tetapi bagaimana Anda bisa tahu apakah terlalu banyak dependensi yang disuntikkan ke kelas Anda? Jika Anda menggunakan DI melalui konstruktor, akan mudah untuk mendeteksinya hanya dengan melihat jumlah parameter untuk konstruktor Anda. Jika ada terlalu banyak dependensi, ini umumnya merupakan tanda (bau kode) bahwa kelas Anda mencoba menangani terlalu banyak hal, dan kemungkinan melanggar prinsip Tanggung Jawab Tunggal.

Dibutuhkan panduan lain untuk membahas SOLID secara rinci. Oleh karena itu, panduan ini mengharuskan Anda untuk hanya memiliki pengetahuan minimum tentang topik-topik ini.

Sumber daya tambahan