Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
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.
Object Diagram ve Package Diagram: Anlık Görüntü ve .NET Solution'ının Bağımlılık Haritası
Object diagram belli bir andaki somut instance'ları ve link'leri çizerek class diagram'daki multiplicity hatalarını yakalar, package diagram ise project'ler arasındaki bağımlılıkları göstererek katman ihlallerini görünür kılar. Yazıda #42 talebinin snapshot'ı yanlış bir 0..1'i ortaya çıkarıyor, solution'ın package diagram'ı da csproj dosyalarından üretilip Domain'e sızan EF Core bağımlılığı CI'da yakalanıyor.
Component Prensipleri: .NET Solution'ını Project'lere Bölmek (REP, CCP, CRP, ADP, SDP, SAP)
Bir solution'ı project'lere bölerken birlikte değişen class'lar aynı project'te durmalı, bağımlılıklar döngüsüz ve stabil olana doğru akmalı, stabil project'ler de abstract olmalı. Herkesin bağımlı olduğu Common project'inin bedelini ölçmek, instability ve abstractness metriklerini gerçek bir solution'da hesaplamak ve main sequence'i doğru okumak.