Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Atomik Sorgu Yapısının (AQC) Bilinçli Olarak DTO Yerine Dizi Kullanmasının Nedenleri
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Atomik Sorgu Yapısının (AQC) Bilinçli Olarak DTO Yerine Dizi Kullanmasının Nedenleri

Yazılım

Atomik Sorgu Yapısının (AQC) Bilinçli Olarak DTO Yerine Dizi Kullanmasının Nedenleri

teknomers
Son güncelleme: 17 Mart 2026 02:44
teknomers
Paylaş
Paylaş

Why Atomic Query Construction (AQC) Intentionally Uses Arrays Instead of DTOs

Atomic Query Construction (AQC) deseniyle ilgili sıkça sorulan bir soru var:

Parametreler neden DTO’lar yerine diziler olarak geçiyor?

DTO’lar başlangıçta daha “temiz” bir çözüm olarak görünebilir. Tür güvenliği, yapı ve açık sözleşmeler sağlarlar. Ancak birçok mimaride DTO kullanımı mantıklıdır.

Fakat AQC, diziler etrafında kasıtlı olarak tasarlanmıştır ve bunların DTO’larla değiştirilmesi, desenin temel fikirlerinden birini zayıflatır.


AQC Parametre Tabanlıdır

AQC’nin temel fikri basittir:

Parametreler sorguyu şekillendirir.

Her bir parametre, belirli bir atomik mantık parçasını etkinleştirir.

Örneğin:

$params = [
            'category_id' => 5,
            'min_price' => 100,
            'max_price' => 500,
            'with' => ['brand']
        ];

Sorgu sınıfı içinde:

$query = Product::query();

if (!empty($params['category_id'])) {
    $query->where('category_id', $params['category_id']);
}

if (!empty($params['min_price'])) {
    $query->where('price', '>=', $params['min_price']);
}

if (!empty($params['max_price'])) {
    $query->where('price', 'with($params['with']);
}

Her parametre ayrı ayrı nihai sorguya katkıda bulunur.

Bu, sorgu bileşimini dinamik hale getirir.

Ve burada dizilerin önemi devreye giriyor.


Parametrelerin Kartezyen Esnekliği

AQC, parametrelerin serbestçe bir araya gelme fikrini benimser.

Beş isteğe bağlı parametreye sahip olduğunuzda:

category_id
brand_id
price_min
price_max
with

Yalnızca beş senaryo yoktur.

Onlarca olası kombinasyon vardır.

Örnekler:

category_id
category_id + brand_id
category_id + price_min
brand_id + price_max
price_min + price_max
category_id + brand_id + with
brand_id + price_min + price_max

Kombinasyon sayısı hızla artar.

Diziler, parametrelerin sadece mevcut veya mevcut olmaması gerektiği için bu durumu doğal olarak sağlar.

Her parametre, bir sorgu mantığını etkinleştiren bir anahtar gibi çalışır.

DTO’lar, her alanın önceden tanımlanmasını bekleyen katı bir yapı teşvik ettiği için bu ortamda iyi çalışmaz.

AQC, katı yapılara göre tasarlanmamıştır.

Bu, kombinasyonel esneklik için tasarlanmıştır.


DTO’lar Gereksiz Bir Katılık Getirir

Bir DTO genellikle şu şekilde görünür:

class ProductQueryDTO
{
    public ?int $categoryId;
    public ?int $brandId;
    public ?int $priceMin;
    public ?int $priceMax;
}

Bu anında birkaç probleme yol açar.


1. DTO’lar Yapıyı Çok Erken Tanımlar

DTO’lar tüm olası parametreleri en başından belirlemeye zorlar.

Ama sorgular gelişir.

Yarın şunları ekleyebilirsiniz:

min_stock
max_stock
rating
visibility
published_at

Artık DTO’nuz büyüyor. Daha sonra başka bir geliştirici, biraz farklı bir sorgu için başka bir DTO oluşturuyor.

Kısa sürede DTO’lar çoğalmaya başlar.


2. DTO’lar Ekstra Bir Katman Ekler

AQC sınıfları zaten tek bir amaç için hizmet ediyor: sorguları oluşturmak ve yürütmek.

DTO’lar tanımlandığında bir çeviri katmanı ekliyorsunuz:

Request → DTO → AQC → Query

Dizilerle akış basit kalır:

Request → AQC → Query

AQC, gereksiz katmanlardan kaçınmayı amaçlar.


3. DTO’lar Dinamik Bileşimi Azaltır

DTO’lar sabit bir sözleşme ifade eder.

Ama AQC, koşullu sorgu parçaları üzerine kurulmuştur.

Her parametre bir mantık parçasını etkinleştirir.

Diziler, yapısal kısıtlamalar olmadığında parametrelerin kaybolup kaybolmadığını gösterebildikleri için bunu doğal olarak destekler.


Diziler AQC Felsefesine Uyar

AQC birkaç net fikre dayalıdır:

  • Bir sınıf = bir amaç
  • Parametreler sorgu davranışını kontrol eder
  • Sorgular koşullu olarak birleştirilir
  • Kontrolörler ince kalır

Diziler bu felsefe ile mükemmel bir uyum içindedir.

Her parametre, bir atomik sorgu segmentini tetikleyen bir anahtar gibidir.

Bu da AQC sınıfındaki sorgu oluşturucunun son derece esnek olmasını sağlar ve başka yerlerde karmaşıklık getirmez.


Son Düşünce

DTO’lar birçok mimari modelde faydalıdır.

Ama AQC, kasıtlı olarak parametre tabanlıdır ve diziler sorgu bileşiminin dinamik doğasını korur.

Her parametre, atomik bir sorgu parçasını etkinleştirir ve diziler bu parçaların serbestçe bir araya gelmesini sağlar.

DTO’ları bu desene zorlamak, deseni iyileştirmez.

Bu, sistemi ağırlaştırırken, AQC’nin sağladığı esnekliği ortadan kaldırır.

Kaynak: Orijinal Makale

Contents
  • AQC Parametre Tabanlıdır
  • Parametrelerin Kartezyen Esnekliği
  • DTO’lar Gereksiz Bir Katılık Getirir
    • 1. DTO’lar Yapıyı Çok Erken Tanımlar
    • 2. DTO’lar Ekstra Bir Katman Ekler
    • 3. DTO’lar Dinamik Bileşimi Azaltır
  • Diziler AQC Felsefesine Uyar
  • Son Düşünce
Nginx’i Başlatma, Durdurma ve Yeniden Başlatma Yöntemleri
Gerçek Zamanlı İkili Opsiyonlar Platformu Kurmanın Zor Kısmı Grafik Değildi
VMware’de “Başka bir işlem dosyanın bir bölümünü kilitlediğinden bu işlem dosyaya erişemiyor.” Hatasının Çözümü
Çirkin Kodunuzu Yayınlayın – DEV Community
Laravel’de Güvensiz Testler: CI’nizin Neden Rastgele Başarısız Olduğu
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Netanyahu’nun AI Klonu Olmadığını Kanıtlama Mücadelesi
Sonraki Makale Sözlük OpenAI’ye Dava Açtı

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Anthropic Yeni Modellerine Erişimi Durdururken Hindistan’ın AI Geleceği Tartışılıyor
Genel
Meta’nın Beijing’e tepki olarak 2 milyar dolarlık anlaşmayı geri çektiği iddia edildi
Yapay Zeka
Mumbai’de Web Geliştirme Hizmetleri: HTML, CSS, PHP, Laravel, React ve Next.js
Yazılım
SteelSeries’ten Beklenen Eğlenceli South Park Oyun Aksesuarı
Oyun
Amazon güvenlik araştırması Beyaz Saray’ın Anthropic Fable yasağına neden oldu
Liste
Eski çalışan, eski işvereni hedef alan siber saldırılarla hapse girdi!
Siber Güvenlik
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?