Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Trade-off Analizi: Seçenekleri Senaryolarla Karşılaştırmak, Sensitivity ve Trade-off Point'ler
Seçenekleri birbirleriyle değil, öncelikli quality attribute senaryolarına karşı ve mümkünse bir spike'ın ölçümleriyle karşılaştırırsın; ATAM'ın sensitivity point, trade-off point ve risk kavramları kararın nerede kırılgan olduğunu gösterir. Bookstore kataloğu için cache yok, HybridCache ve Redis seçenekleri gerçek bir spike'la tartılıyor: p95 neden değişmedi, L2 eski fiyatı neden çözmedi ve weighted decision matrix neden yanıltıyor.
Microservice'lerin Bedeli: Ne Zaman Gereksiz, Ne Zaman Kaçınılmaz?
Microservices tek ekipli, ön koşulları (otomatik provisioning, monitoring, hızlı deploy) olmayan bir sistem için gereksizdir; birbirini bekleyen ekipler ve farklı ölçeklenen parçalar ölçülebilir hâle geldiğinde kaçınılmaz olur. Network çağrısının gerçek maliyeti ölçülerek, fallacies of distributed computing, Fowler'ın prerequisite'leri, Prime Video vakasının doğru okunuşu ve Bookstore için bir karar checklist'i.
Trade-off Düşüncesi: Mimaride Doğru Cevap Yok, En Az Kötü Seçenek Var
Mimaride her seçenek bir characteristic'i başka birinin pahasına kazanır; iş, bedeli görünür kılıp bilinçli kabul etmektir. Bookstore'da sipariş e-postasını senkron göndermek checkout'u SMTP'ye bağlayıp çift sipariş üretirken, Channel<T> ile queue'ya almak checkout'u 1 ms'ye indiriyor ama process kapanınca 3 e-postayı kaybediyor; one-way/two-way door, last responsible moment ve kararın neden'ini yazmak.
Yazılım Mimarisi Nedir? Design'dan Farkı ve Architect'in Rolü
Yazılım mimarisi, sistemin önemli property'lerini belirleyen ve geri alınması pahalı olan kararlardır; design ile arasında kesin bir çizgi değil, stratejik ve taktik uçlu bir spectrum vardır. SEI, ISO/IEC/IEEE 42010 ve Fowler/Johnson tanımları, FoSA'nın üç yasası, architect'in rolü ve kategori boyunca kullanılacak Bookstore örneği.