Keakraban dengan arsitektur heksagonal dengan penerapan sepatu bot musim semi | Oleh Ramón Bailén | Juni 2022

Programming

[ad_1]
Halo Gaes di suratpembaca.web.id. Dalam kesempatan ini kita akan membahas tentang Linux yakni Keakraban dengan arsitektur heksagonal dengan penerapan sepatu bot musim semi | Oleh Ramón Bailén | Juni 2022

.

Sekiranya postingan tentang Keakraban dengan arsitektur heksagonal dengan penerapan sepatu bot musim semi | Oleh Ramón Bailén | Juni 2022

dapat memberikan manfaat untuk Sahabat semua. Mari baca artikel ini
sampai selesai.

Contoh menggunakan Spring Boot untuk detail lapisan aplikasi yang berbeda

Foto oleh Donny Jiang di Unsplash

Arsitektur heksagonal diusulkan pada tahun 2005 oleh Alistair Cockburn

Ide utama dari arsitektur ini adalah untuk memisahkan logika domain dari komponen eksternal saat merancang program perangkat lunak.

Akses logika domain tersedia dari luar melalui port dan adaptor.

Port hanyalah antarmuka yang harus diimplementasikan oleh adaptor. Ada dua jenis port: input dan output. Kami akan mengimplementasikan yang pertama di lapisan domain, sedangkan modul infrastruktur akan mencakup implementasi yang terakhir.

Dengan pendekatan ini, Anda akan memiliki antarmuka yang terdefinisi dengan baik untuk komunikasi di dalam dan di luar lapisan domain tanpa ketergantungan pada detail implementasi.

Mari kita pertimbangkan layanan REST Produk sederhana untuk memahami arsitektur ini. Sumber layanan produk meliputi:

  • Buat produk
  • Terima produk dengan ID

Kami mulai membuat tiga lapisan: applicationkan infrastructureDan domain.

Aplikasi

Lapisan aplikasi berisi port yang merupakan antarmuka yang memungkinkan aliran masuk atau keluar.

Kami menciptakan kegunaan di dalam input Paket mendefinisikan apa yang ingin dilakukan pengguna dalam aplikasi. Dalam contoh kami, buat produk baru dan dapatkan dengan ID.

Di sisi lain, kami berasal dari output Kemas untuk menghubungkan beberapa komponen eksternal.

Dalam contoh kita, ProductOutputPort Saat menerima data dari database ProductEventPublisher Memublikasikan acara saat produk dibuat.

Infrastruktur

Lapisan infrastruktur menunjukkan bagian luar arsitektur heksagonal melalui adaptor.

Adaptor hanya berinteraksi dengan program utama menggunakan port input dan output.

Kita berbagi infrastructure.adapters Dikemas menjadi tiga item baru:

  1. config: Berisi benih program
  2. input: Mengurangi program dengan panggilan yang digunakan (port input).
  3. output: Menyediakan implementasi port output seperti database atau antrian pesan

Domain

Lapisan domain adalah pusat dari sistem. Ini mengontrol logika bisnis dan menunjukkan inti dari program.

Lapisan domain benar-benar terpisah dari lapisan aplikasi dan infrastruktur, sehingga perubahan pada lapisan lain berdampak pada Product Objek domain kecuali ada perubahan persyaratan bisnis.

Pada ProductService Ini adalah komponen penting dalam domain karena mengimplementasikan port input dan menggunakan antarmuka output yang diimplementasikan oleh adaptor output untuk mengembalikan hasilnya ke adaptor input:

Pengecualian domain dibuang di lapisan ini dan dikelola di infrastruktur (CustomizedExceptionAdapter).

Dalam artikel ini, melalui contoh praktis, kami melihat bagaimana memisahkan logika program kami menjadi tiga lapisan khusus: domainkan application Dan infrastructure.

Saya sarankan menggunakan Perpustakaan Surveyor MapStruct-Untuk mengkonversi objek antara lapisan yang berbeda.

Tidak ada dua arsitektur heksagonal yang sama, karena Anda dapat menemukan berbagai huruf yang disarankan untuk lapisan dan tata letak aplikasi Anda. Semua solusi yang mungkin harus membuatnya lebih mudah untuk menguji program, yang merupakan tujuan sebenarnya.

Kode untuk contoh ini tersedia di GitHub.

Itu tadi materi mengenai Keakraban dengan arsitektur heksagonal dengan penerapan sepatu bot musim semi | Oleh Ramón Bailén | Juni 2022

, terimakasih telah mengunjungi website saya, mudah-mudahan artikelnya ada manfaatnya ya.

[ad_2]

Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.