Mimari (IT)Backend mimarı

İki alan sistemi entegrasyonunda Antikirlilik Katmanı (Anti-Corruption Layer, ACL) nasıl uygulanır ve ne için kullanılır?

Hintsage yapay zeka asistanı ile mülakatları geçin

Cevap.

Antikirlilik katmanı (ACL) — uygulamanın iç alan modelini dış sistemlerin etkilerinden korumak için kullanılan bir mimari kalıptır.

Neden gereklidir: Sisteminiz başka sistemlerle etkileşimde bulunuyorsa (örneğin, eski yazılımdan veya üçüncü taraf hizmetlerden veri ve iş mantığı alıyorsa), dış sözleşme değişebilir veya saptırmalar içerebilir. ACL, iç modelinizi iş mantığınızla uyumsuz değişikliklerden izole etmenizi sağlar.

Nasıl uygulanır: Ek bileşenler — adaptörler ve yüzeyler (facade), dış verileri/arayüzleri iç nesnelere dönüştürmek için tanıtılır. Bu, hizmetler, haritalayıcılar (mappers) veya özel DTO sınıfları olabilir.

Python örneği:

class ExternalOrder: def __init__(self, order_id, amount, created_at): self.order_id = order_id self.amount = amount self.created_at = created_at class InternalOrder: def __init__(self, id, total, timestamp): self.id = id self.total = total self.timestamp = timestamp class OrderAdapter: @staticmethod def from_external(external_order): return InternalOrder( id=external_order.order_id, total=external_order.amount, timestamp=external_order.created_at )

Burada OrderAdapter, iç sistemi dış sipariş yapısındaki değişikliklerden izole eder.

Ana özellikler:

  • Dış API'lerdeki kontrol edilemeyen değişikliklere karşı koruma.
  • Verilerin sizin kurallarınıza göre dönüştürülmesi ve filtrelenmesi.
  • Üçüncü taraf alanların kodunuza olan etkisinin en aza indirilmesi.

Sınav Soruları.

Tamamen bir ACL yerine POJO/DTO dönüştürücü katmanı kullanılabilir mi?

Hayır, basit haritalayıcılar iş mantığını korumaz ve tam anlamıyla adaptör görevi görmez. ACL, güvenli bir entegrasyonu sağlamak için bütünsel bir katmandır; bu da komutların, olayların ve iş hatalarının bağlam dönüşümünü içerir.

ACL'de dönüşüm için kaç katman kullanılabilir?

Tam izolasyon sağlamak için gereken sayıda katman kullanılabilir. Genellikle bu en az iki katmandır: yapı dönüşümü ve iş mantığı haritası (örneğin, durumlar, hata kodları ve erişim politikaları).

Dış sistemlerin hataları ACL'de nasıl işlenmelidir?

ACL, dış hataları iç istisna sınıflarına veya durum kodlarına yakalamalı ve adapte etmelidir. Asla üçüncü taraf sistemlerin hatalarını doğrudan uygulamanıza geçirmeyin.