Temiz Mimari ve Git.
Merhaba! Bu yazıda kısaca Clean Architecture ve Golang'dan bahsedeceğim.
Giriş
Temiz Mimari, yazılım sistemlerinin modülerliğini, ölçeklenebilirliğini ve sürdürülebilirliğini vurgulayan popüler bir yazılım tasarım modelidir.
Temiz Mimaride, bir yazılım sisteminin endişelerini, her bir katmanın belirli bir dizi sorumluluktan sorumlu olduğu farklı katmanlara ayırırız.
Bu yazılım geliştirme modelinin temel amacı, bir yazılım sistemindeki eşleşmeyi azaltmak ve uyumu artırarak sistemi daha modüler, test edilebilir ve bakımı yapılabilir hale getirmektir.
Temiz Mimari Katmanları:
Temiz mimari dört ana katmandan oluşur.
- Varlıklar Katmanı
Varlıklar, herhangi bir özel uygulama mantığından veya dış kaynaklardan bağımsız olmalı ve başka bir katmana veya modüle bağlı olmamalıdır. Başka bir deyişle, varlıklar, veritabanı modellerinin tanımı olarak düşünülebilir. Farklı olmalarına rağmen, "varlık" ve "model" terimleri birbiriyle ilişkilidir ancak tam olarak aynı şey değildir.
- Kullanım Durumları Katmanı:
Kullanım Durumları, herhangi bir belirli kullanıcı arayüzünden veya harici sistemlerden bağımsız olmalıdır ve varlıklar gibi, başka herhangi bir katmana veya modüle bağlı olmamalıdır.
- Arayüzler (veya Bağdaştırıcılar) Katmanı:
Bu katman, uygulamanın iş uygulamasını içerir ve en uçucu katman olmalıdır. Bağdaştırıcılar (veya Arayüzler, yine aynıdırlar) katmanı, harici sistemi uygulamanın ihtiyaçlarına göre uyarlamalıdır ve bunun tersi de geçerlidir.
Bağdaştırıcılar (veya Arabirimler) katmanı, bileşenlerin kolayca değiştirilmesine ve uygulama ayrıntılarından ayrıştırılmasına olanak tanıyan arabirimler kullanılarak uygulanmalıdır.
- Çerçeveler (Sürücüler) Katmanı:
Son Bir Söz
Katmanların yalnızca altlarındaki katmanlara bağlı olması gerektiğine dikkat etmek önemlidir. Bu, varlıkların başka hiçbir şeye bağlı olmaması gerektiği, kullanım durumlarının yalnızca varlıklara bağlı olması gerektiği, arayüzlerin yalnızca kullanım durumlarına ve varlıklarına bağlı olması gerektiği ve çerçevelerin yalnızca arayüzlere bağlı olması gerektiği anlamına gelir.
Bu, endişelerin net bir şekilde ayrılmasını ve bakımı ve geliştirilmesi kolay modüler bir mimari yaratır.
Temiz Mimari Özeti
Özet olarak, Temiz Mimari katmanları, kaygıların net bir şekilde ayrılmasını sağlayarak, uygulamanın kolay bakımına ve geliştirilmesine olanak tanır. Geliştiriciler bu mimariyi izleyerek test edilmesi, bakımı kolay ve genişletilmesi kolay uygulamalar oluşturabilir.
Temiz Mimari ve Go Programlama Dili
Tamam, şimdi Temiz Mimari hakkında biraz bilgi sahibi olduk. Go ile nasıl kullanılacağına dair kısa bir örnek verelim.
Diyelim ki bir e-ticaret uygulamamız var ve üzerinde Temiz Mimari ilkelerini uygulamak istiyoruz, önce varlıklarla başlıyoruz
- Varlıklar Katmanı
type Cart struct {
Id string
UserId string
ProductId string
TotalPrice float64
// And so on...
}
Kullanım Durumları, uygulamanın iş mantığını tanımlamak için kullanılır, uygulamanın her bir parçasının (varlıkları kastediyorum) her bir kullanım durumunu, her bir varlık üzerinde gerçekleştirilebilecek belirli eylemi tanımlayan yöntemlerle ayrı bir Go arabirimi olarak tanımlayabilirsiniz.
type CartUseCase interface {
AddToCart(productId string, userId string) error
GetCart(userId string) (*Cart, error)
// And so on...
}
Bu katman, uygulama ile dış dünya arasındaki iletişimi tanımlar.
Bir web uygulaması bağlamında, bu katman tipik olarak RESTful API uç noktalarınızı tanımlayacağınız ve aşağıdaki katmanda tanımlanan kullanım durumlarını yürüten işleyicileri uygulayacağınız yerdir.
type CartHandler interface {
AddToCart(w http.ResponseWriter, r *http.Request)
GetCart(w http.ResponseWriter, r *http.Request)
// And so on...
}
Çerçeveler katmanında, web çerçeveleri, veritabanları ve diğer teknik bileşenler dahil olmak üzere uygulamanın teknik ayrıntılarını tanımlarsınız.
Örneğin, RESTful API'nizi uygulamak için çerçeve kullanabilir Echoveya veritabanıyla etkileşim kurmak için Gorm'u kullanabilirsiniz.. vb.
Uygulamanızı Clean Architecture ve Golang kullanarak yapılandırarak, endişelerin net bir şekilde ayrılmasını ve bakımı ve geliştirilmesi kolay modüler bir mimari yaratırsınız. Uygulamanın her katmanını tek başına kolayca test edebilir ve gerekirse herhangi bir katmanı yeni bir uygulamayla değiştirebilirsiniz.
Ve evet, bu Temiz Mimari ve Golang'a gerçekten basit bir girişti. Hala acemiyim ve öğreniyorum, bu yüzden daha iyi anlamak için bu makaleyi yazmaya karar verdim. Örnekler sağlayarak ve bazı dilbilgisini düzelterek bana çok yardımcı olduğu için ChatGPT'ye teşekkür etmek istiyorum! :3
Kaynaklar
- Temiz Mimari .
- Temiz Mimari ve Golang Faydaları .

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































