Kavramın hikâyesi
Önce iş karşılığını gör, gerektiğinde bağlamı aç.
İlk taramaİşte karşılaşacağın sinyaller
Gerilim ve çözüm · Bölüm 01
Hangi problemi çözer?
Feature Flag aynı deploy edilmiş sürüm içinde eski ve yeni davranış arasında kontrollü seçim sağlar. Böylece bir özellik önce iç kullanıcıya veya küçük bir gruba açılabilir, gözlenen sonuca göre kapsam genişletilebilir ya da yeni yol kapatılabilir.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Bu mekanizma test, izleme ve geri dönüş planı gereksinimini kaldırmaz; yalnızca kontrol yüzeyi ekler.
Gerçek hayat · Bölüm 02
Gerçek iş senaryosu
SCN-005'te yeni arama sıralaması deployment'dan sonra bazı kullanıcılarda yüksek hata oranı üretir. Değişiklik bir release flag'i arkasındaysa ekip önce etkilenen kapsamı ve mevcut flag değerini doğrular.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Incident koordinasyonu içinde yeni yolu kapatmak etkili bir mitigation adayı olabilir. Ardından hata oranının düştüğü gözlenir. Junior, “flag kapandı, incident bitti” sonucuna atlamaz; eski yolun sağlığını, veri yan etkilerini ve tam toparlanmayı ekip ölçütleriyle doğrular.
Duyacağın bağlam · Bölüm 03
Ekipte bunu nasıl duyabilirsin?
Temsili ekip konuşması: “Yeni arama yolu release flag'i arkasında. Önce etkilenen kohortu ve mevcut değeri teyit edelim; kapatırsak hata oranını ayrıca izleyip veri etkisi kalmış mı kontrol edeceğiz.”
Beklenti seviyesi · Bölüm 04
Junior hangi seviyede bilmeli?
- Tanı: Flag key, value/variant, targeting, rollout, owner, fallback ve cleanup terimlerinin aynı kontrol mekanizmasının farklı parçaları olduğunu fark edebilmelisin.
- Açıkla: Feature Flag'in deployment ile release kararını nasıl ayırdığını ve neden risksiz release garantisi vermediğini anlatabilmelisin.
- Uygula: Bir production sorununda hangi flag'in, hangi kapsamda ve hangi varsayılan davranışla değerlendirildiğini sorabilmeli; değişiklikten sonra sonucu gözlemleyebilmelisin.
- Şimdilik bilmesi gerekmeyen: Flag platformu seçmek, SDK/provider mimarisi kurmak, deney istatistiği tasarlamak ve organizasyon çapında flag governance sistemi oluşturmak.
İhtiyacın kökeni · Bölüm 05
Neden ortaya çıktı?
Bir kod değişikliğinin production'a taşınması ile yeni davranışın bütün kullanıcılara açılması aynı anda yapılmak zorunda olduğunda release kararı deployment anına bağlanır.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Ekipler eksik ya da kontrollü açılması gereken davranışı mevcut davranıştan ayırmak, küçük bir kullanıcı grubunda gözlemek veya sorun sırasında belirli bir yolu kapatmak için bu iki kararı ayrıştırmak ister.
Ekip etkisi · Bölüm 06
Şirketler neden kullanır?
Ekipler release zamanını deployment zamanından ayırmak, deney grupları oluşturmak, operasyonel bir kill switch sağlamak veya belirli kullanıcı gruplarına farklı davranış sunmak için flag kullanabilir.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Aynı altyapı bu amaçların tümünü desteklese bile flag'in sahibi, ömrü, değişiklik yetkisi ve kaldırma ölçütü amaca göre değişir. OpenFeature bu değerlendirme için vendor bağımsız teknik bir sözlük sunar; Fowler ve Unleash kaynakları ise farklı yönetim yaklaşımlarını gösterir. Bunlar tek bir sektör policy'si değildir.
Karar alanı · Bölüm 07
Trade-off ve bağlam
Flag hızlı kontrol ve kademeli açma sağlayabilir; karşılığında aynı sürümde birden fazla olası davranış, ek test kombinasyonu ve yanlış yapılandırma riski oluşur.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Kısa ömürlü flag kaldırılmazsa koşullu kod ve sahiplik belirsizliği büyür. Uzun ömürlü operational ve permission flag'ler ise geçici release flag'lerinden farklı yönetilmelidir. Güvenli kullanım; açık sahip, anlamlı isim, beklenen ömür, fallback, gözlem ve kaldırma planına bağlıdır.
Yanılgı radarı · Bölüm 08
Yaygın yanlış anlamalar
- “Feature Flag yalnızca boolean config'dir.” Yanlış; tipli varyantlar ve bağlama göre değerlendirme desteklenebilir.
- “Flag kullanınca deployment yapmadan yeni kod gelir.” Yanlış; flag mevcut deploy edilmiş davranışlar arasındaki seçimi kontrol eder.
- “Feature Flag uzun yaşayan branch'in başka adıdır.” Yanlış; flag runtime karar noktasıdır, branch source-control çalışma alanıdır.
- “Flag'i kapatmak her şeyi geri alır.” Yanlış; daha önce oluşan veri ve dış sistem etkileri sürebilir.
- “Daha çok flag her zaman daha güvenlidir.” Yanlış; flag envanteri test ve operasyon maliyeti taşır.
- “Permission flag gerçek authorization kontrolüdür.” Yanlış; ürün deneyimi hedeflemesi güvenlik yetkilendirmesinin yerine geçmez.
Gerilim ve çözüm1. bölüm