Go uygulamaları birçok farklı türde kaynak kodu dosyasını birleştirebilir, bu nedenle sağlam, geleneksel bir yapı kullanmanın birçok faydası vardır.

Altıgen (veya "bağlantı noktaları ve adaptörler") mimarisi, Go uygulamalarınızı oluştururken uygulayabileceğiniz popüler bir yazılım mimarisi modelidir. Bunu kullanarak uygulamanızın ölçeklenebilirliğini, sürdürülebilirliğini ve test edilebilirliğini iyileştirebilirsiniz.

Bu mimari, iş mantığını harici bağımlılıklardan ve altyapıdan ayırmaya yardımcı olarak uygulamanızı esnek ve bakımı kolay hale getirir.

Altıgen Mimari Nedir?

Altıgen mimari, uygulamaları üç ana katmana ayırır:

  1. buUygulama katmanı herhangi bir üçüncü taraf bağımlılığından bağımsız olarak uygulamanın temel mantığını barındırır. Uygulama katmanı, iş mantığınızı, etki alanı modellerinizi ve uygulama hizmetlerinizi içermelidir.
  2. buBağlantı Noktaları ve Adaptörler katmanı mevcut uygulamalarla etkileşime giren bağdaştırıcıları barındırır. Bağlantı noktaları, uygulamanız için işlemleri tanımlayan arabirimlerdir, bağdaştırıcılar ise arabirimlerin uygulamalarıdır. Bağdaştırıcılar, veritabanları, HTTP API'leri, mesaj aracıları veya başka herhangi bir harici sistem olabilir.
    instagram viewer
  3. Altyapı katmanı bağdaştırıcıların uygulanmasını barındırır. Altyapı katmanı, veritabanlarını, mesaj aracılarını ve diğer harici sistemleri içermelidir.

Altıgen Mimariyi Kullanmanın Avantajları

Altıgen mimari, sunduğu aşağıdaki avantajlar nedeniyle popülerdir.

Proje Ölçeklenebilirliği ve Sürdürebilirlik

Uygulamalarınızın bölünmesi, uygulamanızın ölçeklenmesini ve bakımını kolaylaştıran modüler ve ayrıştırılmış bir kod tabanı sağlar.

Çekirdek mantığı etkilemeden bağdaştırıcıları kaldırabilir ve bağdaştırıcıları etkilemeden çekirdek mantığı değiştirebilirsiniz. Bu, tüm uygulamanızı yeniden yazmadan adaptörleri kolayca değiştirebileceğiniz anlamına gelir.

Test Edilebilirlik ve Entegrasyon Kolaylığı

Altıgen mimari, sahte dış bağımlılıklar olmadan çekirdek mantık için birim testleri yazabileceğiniz için test edilebilirliği artırır. Sahte veya taslak gibi test çiftlerini kullanmak zorunda kalmadan kullanabilirsiniz. veritabanı kurmak veya mesaj komisyoncusu.

Altıgen mimari, uygulamanızın diğer sistemlerle entegrasyonunu da kolaylaştırır. Bağdaştırıcılar çekirdek mantıktan ayrı olduğundan, bunları diğer uygulamalarda veya mikro hizmetler için yeniden kullanabilirsiniz. Ayrıca, uygulamanızın bağlantı noktasının API'lerini diğer sistemlerde kullanıma sunabilirsiniz.

Esneklik ve Değişen Gereksinimlere Uyarlanabilirlik

Altıgen mimari, değişen gereksinimlere esneklik ve uyum sağlar. Temel mantık bağdaştırıcılardan bağımsız olduğu için, bağdaştırıcıları etkilemeden uygulamanın işlevselliğini kolayca değiştirebilir veya genişletebilirsiniz.

Belirli harici sistemlere bağlı kalarak uygulamanızı zaman içinde geliştirebilirsiniz.

Go ve Altıgen Mimari

Temelde, altıgen mimari, uygulamanın temel iş mantığını altyapıdan ayırmakla ilgilidir, böylece uygulamanın temel mantığını etkilemeden bağımlılıkları değiştirebilirsiniz, bu da uygulamanın bakımını ve test edilmesini kolaylaştırır başvuru.

Tipik altıgen Go uygulaması dört ana dizin kullanır: komut, dahili, paket, Ve SATICI.

bu komut dizin proje için ana uygulamaları içerir. Buraya yazdığınız kod, genellikle pkg ve dahili dizinlerdeki dosyalardan işlevleri çağırır.

bu dahili dizini, kullanıcıların kendi uygulamalarına aktarmalarını istemediğiniz özel bir uygulama kodu içermelidir. Go derleyicisi dahili düzen modelini zorlar ve diğer dizinlerde istediğiniz kadar dahili dizine sahip olabilirsiniz. Üst düzey bir dahili dizinle sınırlı değilsiniz.

bu paket dizin, harici uygulamaların içeri aktarıp kullanmasını istediğiniz kitaplık kodunu içermelidir. kullanılmasına rağmen paket dizin yaygın bir uygulamadır, evrensel olarak kabul edilmez veya uygulanmaz.

bu SATICI dizin, uygulama bağımlılıklarını içermelidir (el ile veya otomatik olarak yönetilen). kullanabilirsiniz mod satıcısına git oluşturmak için komut /vendor Go'nun satıcılar için sağladığı işlevselliklerden yararlanmak için dizin.

Go'da Hexagonal Mimariyi Uygulama

Go dahil olmak üzere herhangi bir dilde altıgen mimariyi uygularken projenizin dosya yapısı önemlidir.

İşte Go'da Altıgen Mimariyi uygulamak için örnek bir dosya yapısı:

.
├── komut
│ └── http
│ └── ana.go
├── dahili
│ ├── adaptörler
│ │ ├── API
│ │ │ └── api_adapter.go
│ │ └── veritabanı
│ │ └── db_adapter.go
│ ├── uygulaması
│ │ ├── etki alanı
│ │ │ ├── varlık1.go
│ │ │ └── varlık2.go
│ │ ├── bağlantı noktaları
│ │ │ ├── girişi
│ │ │ │ ├── input_port1.go
│ │ │ │ └── input_port2.go
│ │ │ └── çıktı
│ │ │ ├── output_port1.go
│ │ │ └── output_port2.go
│ │ └── kullanım senaryoları
│ │ ├── usecase1.go
│ │ └── usecase2.go
├── adet
│ ├── girişi
│ │ ├── giriş1.go
│ │ └── giriş2.go
│ └── çıktı
│ ├── output1.go
│ └── çıktı2.go
└── satıcı
├── modül1
│ ├── dosya1.go
│ └── dosya2.go
└── modül2
├── dosya1.go
└── dosya2.go

bu paket dizini, bu örnekte uygulamanızın giriş ve çıkış bağlantı noktalarını içerir. Bu dosyalarda giriş ve çıkış portları için arayüzler tanımlayacaksınız.

bu dahili dizin, uygulama etki alanını ve kullanım durumlarını içerir. Uygulamanızın iş mantığını bu dosyalara yazacaksınız.

bu adaptörler dizini, uygulamanızı veritabanına ve API'ye bağlayan altyapı kodunu içerir.

Altıgen Mimari Dosya Yapısını Ayarlama

Projenizin altıgen mimari dosya yapısını ayarlamak külfetli olabilir, ancak dizin oluşturma sürecini otomatikleştirmek için bir bash betiği yazabilirsiniz.

Projenizin çalışma dizininde bu komutu çalıştırın. bir bash betiği oluştur, altıgen.shve ona okuma, yazma ve yürütme izinleri verin:

hexagonal.sh && chmod 777 hexagonal.sh'a dokunun

Bu bash kodunu şuraya girin: altıgen.sh mevcut çalışma dizininizde dosya yapısını oluşturmak için:

#!/bin/bash

# üst düzey dizinler oluştur
mkdir cmd dahili pkg satıcısı

# cmd/http dizini oluştur
mkdir cmd/http

# dahili dizinler oluştur
mkdir dahili/bağdaştırıcılar dahili/uygulama dahili/uygulama/etki alanı dahili/uygulama/bağlantı noktaları dahili/uygulama/bağlantı noktaları/giriş dahili/uygulama/bağlantı noktaları/çıkış dahili/uygulama/kullanım durumları

# dahili/bağdaştırıcılar dizinleri oluştur
mkdir dahili/bağdaştırıcılar/api dahili/bağdaştırıcılar/veritabanı

# dahili/uygulama/bağlantı noktaları dizinleri oluştur
mkdir dahili/uygulama/bağlantı noktaları/giriş dahili/uygulama/bağlantı noktaları/çıktı

# satıcı dizinleri oluştur
mkdir satıcı/modül1 satıcı/modül2

# başarı mesajını yazdır
Eko"Dizin yapısı başarıyla oluşturuldu."

Bu bash betiğini aşağıdaki komutla çalıştırabilirsiniz:

./hexagonal.sh

Bash programı, dosyaları oluşturmaya ve uygulamanız için iş mantığını yazmaya devam edebilmeniz için klasörleri ve alt klasörleri oluşturur.

Altıgen Mimari, Bina Kompleksi Uygulamaları İçin Kullanışlıdır

Altıgen mimariyi uygulamak zaman alıcı olabilir, ancak uzun vadede faydaları maliyetten daha fazladır. Endişeleri ayırarak ve kodunuzu daha modüler hale getirerek uygulamalarınızı kolayca koruyabilir ve test edebilirsiniz.

Esnek, performanslı uygulamalar oluşturmak için her birinin artıları ve eksileri olan birçok başka mimari model vardır. Bunlar, web uygulamaları oluşturmak için popüler MVC (model, görünüm, denetleyici) mimarisini içerir.