Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
6 yazı bulundu #kalite
Statik Analiz Nedir, Ne Bulur, Ne Bulamaz? Linter, Analyzer, Type Checker ve SAST Farkı
Test ve Kalite SERİ 01

Statik Analiz Nedir, Ne Bulur, Ne Bulamaz? Linter, Analyzer, Type Checker ve SAST Farkı

Statik analiz kodu çalıştırmadan bug pattern'lerini ve kural ihlallerini yakalar, ama kodda yazılı olmayan business rule'ları göremez. Bookstore'da bir fiyat içe aktarma PR'ında .NET 10'un varsayılan ayarları 2 sorun, Recommended mod 7 diagnostic buldu; build temizlendikten sonra bile eksi fiyat ve 329,90'ı 32990 okuyan bir hata veritabanına kadar gitti. Yazı araç spektrumunu, severity'yi, IDE'den dashboard'a katmanları ve legacy projede ratchet stratejisini anlatıyor.

14 Kas 2026 12 dk 13
.NET Analyzer'ları: AnalysisLevel, CA Kuralları, .globalconfig, WarningsAsErrors ve Legacy Projede Kademeli Açmak
Test ve Kalite SERİ 02

.NET Analyzer'ları: AnalysisLevel, CA Kuralları, .globalconfig, WarningsAsErrors ve Legacy Projede Kademeli Açmak

AnalysisLevel'ı 10.0-recommended gibi bir sürüme sabitlemek, SDK yükseltmesinin kendiliğinden yeni kural açıp CI'ı kırmasını önler; Bookstore'da .NET 11 SDK'sı latest ile CA2028 hatası verdi, sabit seviyede temiz geçti. Yazı .globalconfig ile .editorconfig'in rolünü, Türkçe i ile kupon eşleşmeyen CA1309'u, SQL injection'ı gösteren CA2100'ü, hedefli WarningsAsErrors'ı, gerekçeli bastırmayı ve SARIF ile PR annotation'ını gerçek çıktılarla anlatıyor.

14 Kas 2026 15 dk 14
Third-Party Analyzer'lar ve Kendi Roslyn Analyzer'ını Yazmak: BannedApiAnalyzers, Popüler Paketler, DiagnosticAnalyzer ve CodeFix
Test ve Kalite SERİ 03

Third-Party Analyzer'lar ve Kendi Roslyn Analyzer'ını Yazmak: BannedApiAnalyzers, Popüler Paketler, DiagnosticAnalyzer ve CodeFix

Bir kural yalnız 'şu API'yi kullanma' diyorsa BannedApiAnalyzers yeter; code fix, ekibe özgü mantık ya da bağlama göre mesaj gerekiyorsa kendi Roslyn analyzer'ını yazarsın. Bookstore'da Meziantou, Roslynator ve SonarAnalyzer 87 uyarı ve 14 kat analiz süresi getirdi ama DateTime.UtcNow'ı varsayılan ayarlarla yakalamadı. Yazı TimeProvider kuralını operation callback'li bir analyzer, ayrı assembly'de code fix, Microsoft.CodeAnalysis.Testing testleri ve NuGet paketiyle yazıyor.

14 Kas 2026 14 dk 14
Angular ve TypeScript'te ESLint: Flat Config, typescript-eslint Type-Aware Kurallar ve angular-eslint Template Kuralları
Test ve Kalite SERİ 04

Angular ve TypeScript'te ESLint: Flat Config, typescript-eslint Type-Aware Kurallar ve angular-eslint Template Kuralları

Promise'leri await etmeyen kodu ancak tip bilgisi kullanan kurallar yakalar: Bookstore'un Angular istemcisinde ng add angular-eslint'in config'i bir PR'da 2 sorun buldu, strictTypeChecked ve projectService ile bu sayı 12'ye çıktı. Yazı ESLint 10'un flat config zorunluluğunu, no-floating-promises ve no-misused-promises bug'larını, accessibility template kurallarını, type-aware lint'in maliyetini, cache'in eski sonuç vermesini ve TypeScript 7 ile uyumsuzluğu gerçek çıktılarla anlatıyor.

14 Kas 2026 13 dk 15
SonarQube ile Quality Gate: Community Build mi Server mı, Quality Profile, Yeni Kod Odaklı Gate ve CI Entegrasyonu
Test ve Kalite SERİ 05

SonarQube ile Quality Gate: Community Build mi Server mı, Quality Profile, Yeni Kod Odaklı Gate ve CI Entegrasyonu

SonarQube'un varsayılan gate'i yalnız yeni koda bakar: yeni issue sıfır, yeni kodda coverage en az %80. Bookstore'da build'i ve testleri temiz olan 'benzer kitaplar' endpoint'i gate'i %10,3 yeni kod coverage'ıyla kırdı, iki test sonrası geçti. Yazı Community Build'i Docker'da PostgreSQL ile kurmayı, SonarScanner for .NET'i, Sonar way core profilini, Roslyn ile çift raporlamayı, eski coverage raporu tuzağını ve Community Build'in PR analizi olmayışını gerçek çıktılarla anlatıyor.

14 Kas 2026 13 dk 14
Statik Analizde Neler Değişti: .NET 5–11 Analyzer'ları, TSLint'ten ESLint 10'a, TypeScript 7 ve Yeni Nesil Linter'lar
Test ve Kalite SERİ 06

Statik Analizde Neler Değişti: .NET 5–11 Analyzer'ları, TSLint'ten ESLint 10'a, TypeScript 7 ve Yeni Nesil Linter'lar

Analyzer'lar .NET 5'ten beri SDK'nın parçası ve her sürüm yeni kural getiriyor: aynı kod .NET 10 SDK'sıyla sıfır, .NET 11 SDK'sıyla dört uyarı verdi (CA2026, CA2027, CA1877, CA2028). Yazı .NET 6–11 kural tarihini, CA2028'in source-generated regex'i görmemesini, .eslintrc'den flat config'e otomatik taşımanın angular-eslint 22'de neden yetmediğini, TypeScript 7'nin typescript-eslint'i beklettiğini, Oxlint ve Biome'un Bookstore'daki sonuçlarını ve Sonar'ın yeni adlarını anlatıyor.

14 Kas 2026 12 dk 12
Blog Haritası