Mikroservisler Ülkesi'nde Büyülü Dans: Koreografi Temelli Saga

2023-05-26 | #choreography-based-saga #microservice #saga-pattern

Bir zamanlar, Bilgisayarlar Diyarı’nda Mikroservisler Ülkesi diye bir yer vardı. Bu ülkede minik minik hizmetçiler, yani mikroservisler, kendi görevlerini layıkıyla yerine getiriyorlardı. Onların her biri, kendi evlerinde -yani kendi sunucularında- yaşıyor ve kendi işlerini görüyorlardı. Bu işler o kadar küçük ve özelleşmişti ki, her bir mikroservis kendi görevini harika bir şekilde yerine getirebiliyordu. Ama bir sorun vardı: bazen bir işi tamamlamak için birkaç mikroservisin birlikte çalışması gerekiyordu. İşte bu noktada, dansın ve hareketin büyüleyici dünyası devreye giriyordu: “Koreografi Temelli Saga” olarak bilinen bir model.

Devamı 


Singleton Pattern

2023-05-26 | #creational-patterns #design-patterns #singleton-pattern

Bir zamanlar, Tekil Diyarı’nda bir hükümdar vardı. Hükümdarın adı “Singleton” idi ve o, tüm diyardaki tek varlık olma özelliğine sahipti. Singleton, diğer herkesi kendi benzersizlik ve tekliğini koruma konusunda eğitmişti. Kendi krallığının tek hakimi olduğunda, Singleton, bir defa oluşturulduktan sonra bir daha değiştirilmeyen benzersiz bir varlık olma özelliğiyle tanındı. Krallığın her köşesinde, Singleton’un yalnızca bir kez oluşturulduğu ve yalnızca bir örneğin bulunduğu biliniyordu. Bu benzersiz özellik, Singleton’un krallığında hükmetmesini sağladı.

Devamı 


Prototype Pattern

2023-05-26 | #creational-patterns #design-patterns #prototype-pattern

Bir zamanlar, Yaratıcılar Ülkesi diye bir yer vardı. Bu ülkede, hızlı ve verimli bir şekilde yeni nesneler oluşturmanın bir sırrı vardı. Bu sırrın adı, “Prototype Pattern” idi. Yaratıcılar Ülkesi’nde bir gün, sihirli bir çizim kalemi vardı. Bu kalem, her dokunduğu nesneyi kopyalayabilme yeteneğine sahipti. Bu özellik, nesnelerin yaratılmasını kolay ve hızlı bir şekilde gerçekleştiriyordu, çünkü her nesnenin sıfırdan yaratılması yerine, var olan bir nesne kopyalanıyordu. C# dilinde bu hikaye şu şekilde uygulanır:

Devamı 


Factory Method Pattern

2023-05-26 | #creational-patterns #design-patterns #factory-method-pattern

Bir zamanlar, büyülü bir krallık vardı ve bu krallığın adı “Factory Method"du. Bu krallık, nesnelerin oluşturulmasını denetleyen bir yerdi. Krallığın en bilge hükümdarı, nesnelerin yaratılmasının kendi özel yolları olduğunu düşünüyordu ve bu, onun yönetiminin bir parçasıydı. Hükümdarın bir prensesi vardı ve adı “Creator"di. Creator, her gün yeni bir nesne oluşturmak için sihirli güçlerini kullanırdı. Ancak Creator, her zaman aynı türde bir nesne yaratmazdı. Bazı günler bir “ProductA” yaratırken, bazı günler ise “ProductB” yaratırdı.

Devamı 


Builder Pattern

2023-05-26 | #builder-pattern #creational-patterns #design-patterns

Bir zamanlar, çok güzel bir krallık vardı ve bu krallığın adı “Builder Pattern"di. Bu krallıkta her şey, karmaşık nesneleri adım adım oluşturma ve onları birbirine bağlama sanatı hakkındaydı. Bu karmaşık nesneler, krallığın en değerli hazineleriydi ve her biri özenle ve düşünerek inşa edilmişti. Krallığın en bilge insanı, Yapıcı (Builder) adındaki bu usta idi. Yapıcı, taşlar, tuğlalar ve ahşap gibi malzemeleri kullanarak karmaşık nesneler inşa ederdi. Fakat Yapıcı, her şeyi kendi başına yapmazdı.

Devamı 


Abstract Factory Pattern

2023-05-26 | #abstract-factory-pattern #creational-patterns #design-patterns

Bir zamanlar, bir krallık vardı ve bu krallığın adı “Soyut Fabrika”. Her ne kadar soyut gibi görünse de, bu krallıkta her şeyin bir amacı, bir düzeni ve belirli bir tasarımı vardı. Burada her şeyin nasıl yapıldığına dair belirli kurallar vardı ve bu kurallar, nesnelerin oluşturulmasını düzenleyen tasarım örüntülerine dayanıyordu. Soyut Fabrika krallığında, Kral AbstractFactory, farklı tipteki ürünlerin fabrikalarını yönetir. Kral, bir fabrikanın çeşitli ürünleri aynı anda üretebilmesi gerektiğini düşünürdü. Kral, bu fabrikaların her birine, aynı aileden olan ürünleri yaratma görevini verir.

Devamı 


Küçük Bir Eğlence Dünyası: Saga Pattern

2023-05-26 | #mikroservis #saga-pattern

Hoş geldin, maceracı arkadaşım! Bugün seni fantastik bir yolculuğa çıkaracağım. Bilgi Krallığı’nın hikayeler, bilgiler ve bulmacalarla dolu derinliklerine doğru büyülü bir seyahat, tam da senin gibi bir kod yazarı kahramanı için! Adımlarımızı Saga Pattern’ın büyülü dünyasına doğru yönlendireceğiz. Peki, bavulunu hazırladın mı? O zaman yola koyulalım! Saga Pattern’ın Destansı Kökenleri Bir hikayeye başlamadan önce, tıpkı saga yazarlarının yaptığı gibi, konunun kökenlerine bir göz atalım. Saga, İskandinavya’da, özellikle İzlanda’da ortaya çıkan, genellikle tarihi olayları ve kahramanları anlatan bir hikaye türüdür.

Devamı 


Teknoloji ve Felsefe Diyalogları

2023-05-25

Uzun zamandır düşündüğüm ama bir türlü hayata geçiremediğim ilginç (en azından benim için) bir seriye başlamak istiyorum. Bildiğim, özümsediğim kadarı ile tarihi filozoflar ile teknolojik konularda onların kendi ideolojileri bağlamında diyaloglara girmek. Bunun içinde ilk kavram olarak mikroservis konusunu seçtim. Bakalım filozoflarımız bu konu hakkında neler konuşacak.

Devamı 


Basit Bir Rest Api Client Geliştirelim 9

2023-05-14 | #diy-rest-api-client #do-it-yourself #net #rest-api

HTTP isteklerini izlemek ve teşhis etmek için daha fazla yetenek ekleyerek, kütüphanemizi daha da geliştirebiliriz. Bu amaçla, isteklerin ve yanıtların bazı temel bilgilerini loga kaydeden bir middleware ekleyelim. Bu özellik, HTTP isteklerinin ve yanıtlarının kaydını tutmak için HttpClient‘in DelegatingHandler sınıfını kullanır. Bu, bir HTTP isteği gönderildiğinde ve bir yanıt alındığında çalışan bir kod parçasıdır. Bu durumda, HTTP isteklerinin ve yanıtlarının bazı temel bilgilerini loga kaydeder. Aşağıda, bu özelliği eklemek için gereken kod parçacığı bulunmaktadır:

Devamı 


Basit Bir Rest Api Client Geliştirelim 8

2023-05-12 | #diy-rest-api-client #do-it-yourself #net #rest-api

Bu noktada, geliştirmemiz gereken bir diğer önemli konu da güvenlikle ilgili olabilir. Özellikle, API çağrıları genellikle belirli bir kimlik doğrulama yöntemi gerektirir. Bunu sağlamak için, HTTP istemcimizi çok kullanılan iki kimlik doğrulama yöntemiyle, yani Basic Authentication ve Bearer (Token) Authentication ile uyumlu hale getirebiliriz. Bu amaçla, istemcimize iki yeni metot ekleyelim: public void SetBasicAuthentication(string username, string password) { var basicAuthValue = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{username}:{password}")); SetDefaultHeader("Authorization", $"Basic {basicAuthValue}"); } public void SetBearerToken(string token) { SetDefaultHeader("Authorization", $"Bearer {token}"); } Bu metodlar, Authorization başlığını ayarlar, böylece her HTTP talebi kimlik doğrulama bilgilerini içerir.

Devamı 