Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Kuralları Otomatikleştirmek: Pre-commit Hook, CI Kapısı, Legacy Kod Tabanına Kademeli Geçiş ve .git-blame-ignore-revs
Pre-commit hook hızlı geri bildirim verir ama --no-verify ile atlanır; convention'ı main'e girmeden durduran tek yer zorunlu bir CI kontrolüdür. Yazı Husky.Net ve lint-staged ile yalnız staged dosyaları formatlamayı, düzeltme komutunu söyleyen CI adımlarını, legacy kodda dokunulan dosyalar ile big bang arasındaki seçimi, .git-blame-ignore-revs'i, açık PR'ları çatışmasız güncellemeyi ve suppression politikasını gerçek çıktılarla anlatıyor.
Angular ve TypeScript'te Convention: Style Guide, Prettier ve ESLint'in Sorumluluk Paylaşımı
Angular projesinde biçim Prettier'ın, adlandırma ve selector kuralları ESLint'in olmalı ve ikisinin arasındaki sınırı eslint-config-prettier çizer: o olmadan kopyalanmış iki @stylistic kuralı Prettier'dan geçmiş kodda 110 hata üretti. Yazı Angular 22 Style Guide'ın kararlarını, eski projelerde tip son ekli adlandırmayı, yeni projede Prettier'ın 7 dosya bulmasını, naming-convention kuralını ve ESLint 10'un .eslintrc'yi yok saymasını gösteriyor.
C# Formatter Seçimi: dotnet format mı, CSharpier mı? Kuralı Tek Sahibe Vermek
İki formatter aynı kuralın sahibi olursa döngü hiç bitmez: 1.000 dosyalık Bookstore çözümünde dotnet format CSharpier çıktısında 6.002 sorun, CSharpier de dotnet format çıktısında 1.001 formatlanmamış dosya buldu. Çözüm whitespace'i CSharpier'a, stili analyzer'a vermek; yazı iki aracın çıktısını, süre ölçümünü, IDE0055'i kapatmanın neden yetmediğini ve sürümü dotnet tool manifest'iyle sabitlemeyi gösteriyor.
C# Convention'larını .editorconfig ile Kodlamak: Code-style Option'ları, Naming Rule'lar ve Build'de Zorlamak
Naming rule'un kendi severity satırı build'de okunmaz; kuralları dotnet build'de zorlamak için EnforceCodeStyleInBuild ile birlikte dotnet_diagnostic.IDE1006.severity gerekir. Yazı .editorconfig hiyerarşisini, code-style option'larının IDE kural ID'lerini, naming rule'ların symbols-style-severity üçlüsünü, test klasörü override'ını, category-Style'ın seçmediğin varsayılanları zorlamasını ve yalnız IDE'de çalışan kuralları gerçek build çıktılarıyla anlatıyor.
Coding Convention Nedir, Neden İnsana Değil Araca Bırakılır? Kaynaklar, Seviyeler ve Ekip Kararı
Coding convention'ın değeri kuralın kendisinden değil, tartışılmaz ve araçla uygulanır olmasından gelir: Bookstore'da tek satırlık bir indirim değişikliği editör ayarları yüzünden 55 satırlık diff'e gömüldü, .editorconfig ve dotnet format onu tekrar tek satıra indirdi. Yazı formatting, stil, naming ve mimari kural seviyelerini, kaynak seçimini ve ekipte kararı bir kez verip kayda geçirmeyi anlatıyor.