Category: Tasarım Desenleri
Clean Architecture, yazılımların büyümesiyle birlikte ortaya çıkan kod karmaşıklığı, esnekliğin azalması, test edilebilirliğin zorlaşması, değişim ve yeniliklere uyum direnci gibi çeşitli teknik sorunları çözmeye yardımcı olur. Bu sorunları, uygulamaların farklı katmanlarını birbirinden bağımsız modüllere...
Aspect Oriented Programming bir uygulama içerisindeki authorization, logging, caching, exception handling, validation gibi cross-cutting concern sayılan işlevlerin ayrıştırılmasıyla modülariteyi arttırmayı hedefleyen bir yaklaşımdır. Geleneksel katmanlı mimarilerde bir işlem gerçekleştirilirken genellikle yanında başka yan işlemler...
Unit of Work ve Repository tasarım desenleri veri odaklı mimarilerle çalışırken kurulan yapıların daha esnek, test edilebilir olmasını sağlarken transaction yönetimini ve kodların tekrar kullanılmasını da kolaylaştırmaktadır. Repository Pattern Repository Pattern veri kaynağından veri...
Yazılım geliştirirken Inversion of Control, IoC Container, Dependency Inversion ve Dependecy Injection kavramlarıyla karşılaşırız. Birbirlerine benzer kavramlar olsalarda ayrımlarının yapılması gerekmektedir. Örnekleriyle tüm terimlere göz atmadan Principle ve Pattern arasındaki farkın anlaşılmasında yarar var....
Saga Pattern dağıtık ortamda distributed transcation yönetilirken veri tutarlılığını hedefler. Implemente edilirken Choreography-Based Saga ve Orchestration-Based Saga olmak üzere iki yaklaşım vardır. Saga Pattern Nedir yazısında bu konu teorik olarak incelendi. Bu yazıda Orchestration-Based...
Saga Pattern dağıtık ortamda distributed transcation yönetilirken veri tutarlılığını hedefler. Implemente edilirken Choreography-Based Saga ve Orchestration-Based Saga olmak üzere iki yaklaşım vardır. Saga Pattern Nedir yazısında bu konu teorik olarak incelendi. Bu yazıda Choreography-Based...
Microservice mimarisini kullanmanın bir çok avantajı var. Ancak bu avantajlar bir takım zorlukları da beraberinde getiriyor. Bu zorluklardan bir tanesi de servislere yayılmış distributed transaction‘ları yönetirken veri tutarlılığının sağlanmasıdır. Bu zorluğun üstesinden gelmek için...