Sobes.tech
Middle

Kendini tanımlayan mesajlar (Self-descriptive messages) prensibi hakkında bilgi verin.

sobes.tech yapay zeka

AI'dan gelen yanıt

Kendi kendini açıklayan mesajların ilkesi, mesajın, dış şemalara veya tanımlamalara başvurmadan, yorumlanması için gereken tüm bilgileri içerdiği anlamına gelir.

Anahtar yönler:

  • Bağlamdan bağımsızlık: Mesajı alan kişi, önceden yapısal veya alanların anlamını bilmek zorunda değildir.
  • Verilerin açık tanımı: Veri türleri, alan isimleri ve değerleri açıkça mesajda yer alır.
  • Esneklik: Mesajların yapısı, tüm katılımcıların sözleşmelerini veya şemalarını güncellemeye gerek kalmadan değiştirilebilir.

Bu ilkeleri destekleyen format örnekleri:

  • JSON: Anahtar-değer çiftleri kullanır, alan isimlerini açıkça tanımlar.

    {
      "userId": 123, // Kullanıcı kimliği
      "orderId": "abc-456", // Sipariş kimliği
      "items": [
        {
          "itemId": 101,
          "name": "Ürün A",
          "quantity": 2
        },
        {
          "itemId": 102,
          "name": "Ürün B",
          "quantity": 1
        }
      ]
    }
    
  • XML: Öğeleri tanımlamak için etiketler ve özellikler için öznitelikler kullanır.

    <!-- Kullanıcı siparişi -->
    <order userId="123">
      <orderId value="abc-456"></orderId>
      <items>
        <item itemId="101">
          <name>Ürün A</name>
          <quantity>2</quantity>
        </item>
        <item itemId="102">
          <name>Ürün B</name>
          <quantity>1</quantity>
        </item>
      </items>
    </order>
    

Avantajlar:

  • Entegrasyon kolaylığı: Yeni tüketiciler, yapısı hakkında önceden bilgi sahibi olmadan mesajları kolayca işleyebilir.
  • Değişikliklere dayanıklılık: Kaynaktaki mesaj yapısındaki değişiklikler, tüm tüketicilerin hemen güncellenmesini gerektirmez.
  • Hata ayıklama kolaylığı: Mesajlar okunması ve anlaşılması kolaydır.

Dezavantajlar:

  • Gereksiz veri yükü: Meta verilerin dahil edilmesi nedeniyle mesaj boyutu artabilir.
  • Daha karmaşık ayrıştırma: Farklı yapıları işleyebilen daha evrensel bir ayrıştırıcı gerektirir.

QA'da, kendi kendini açıklayan mesajlar, entegrasyon testlerini basitleştirir ve veri yapısının doğrudan mesajda görülebilmesini sağlar. Bu, özellikle mikroservis mimarilerinde, servislerin asenkron veya senkron farklı protokoller aracılığıyla etkileşimde bulunduğu durumlarda faydalıdır.