Ders 15 / 15
Geri Bildirim Döngüsü
Sessiz bayatlama ancak okur bildirdiğinde görünür: 240 ziyaret 39 sessiz iddianın 31'ini açığa çıkarır, 39'unun tamamı için 960 ziyaret gerekir ve bildirim başına bedel 5,0'dan 24,6 ziyarete yükselir.
İçindekiler
Önceki ders doküman denetiminin sessiz bayatı bulduğunu gösterdi: elli altı iddianın hepsi okunursa otuz dokuzunun da yanlış olduğu görülür. Denetimin sorunu bulamaması değil, başlamamasıdır. Kimsenin takviminde kendiliğinden yer almaz ve yapılmadığı sürece o otuz dokuz iddia yerinde durur.
Ama bu süre boyunca doküman okunmaya devam eder. Her gün birileri onu açar, bir cümleyi okur, ona göre davranır ve yanılır. Bu dersin sorusu şudur: okur, denetimin yapmadığı işi ne kadar yapar? Sessiz bayatlamanın tek doğal düşmanı, ona çarpan ve bunu söyleyen kişidir. Ölçüm o kişilerin kaçının gerektiğini sayar.
Okurun Çarptığı İddia
Bir okur dokümana bir soruyla gelir ve bir iddiaya çarpar. Üç durum olabilir. İddia doğruysa okur işini yapar ve geri bildirim üretmez. İddia bayatsa ve örneğe gömülüyse okur bir hata görür: örnek çalışmaz, ekranda bir arıza vardır ve okur bunu bir arıza olarak bildirir. İddia bayatsa ve sessizse okur bir arıza görmez — dokümanda yazanı yapar, beklediği sonucu alamaz ve ne olduğunu bilmez.
Üçüncü durumun kritik yanı, okurun kendi hatası ile dokümanın hatası arasında ayrım yapamamasıdır. Doküman bir yetke gibi okunur; onunla çelişen bir sonuç alan okurun ilk varsayımı kendi yanlışıdır. Kimi tekrar dener, kimi vazgeçer, kimi kendi yolunu bulur ve yalnız bir bölümü “burada yazan yanlış” der. Ölçüm bu payı üçte bir alır.
Destek Talebinden Doküman Eksiğine
Bildirim bir doküman eksiği olarak değil, bir çalışmama olarak gelir. Onu doküman kaydına çevirmek üç soruyla yapılır: okur hangi cümleye dayanarak davrandı, o cümle hangi yüzeye bağlı, ve yüzey ne zaman değişti.
# ornek destek talebi ve dokuman kaydi , calistirilmamistir talep: "ölçüm gönderiyorum, kayıt kimliği yerine hata dönüyor" dayandığı cümle : referans / olcum_gonder — kaynak alanı zorunludur bağlı yüzey : imza değişim sürümü : 2 kayıt : bayat iddia, sessiz; aynı yüzeye bağlı 21 iddia daha var
Son satır bu işin asıl kazancıdır. Bir bildirim tek bir cümleyi düzeltmek için değil, aynı yüzeye bağlı öbür iddiaları aramak için kullanılır. Okur bir iddia bildirmiştir; bildirdiği şey aslında bir yüzeyin değiştiğidir ve o yüzeye yirmi iki iddia bağlıdır. Tek bildirim, hedefi belli bir doküman denetimini tetikler.
Ölçümün Varsayımları
- DI31 — Elli altı iddia, dört tür ve dört yüzey ortak kurgudan alınır; ölçüm on ikinci sürümde yapılır ve o sürümde iddiaların hepsi bayattır. Ses çıkaran 17, sessiz 39.
- DI32 — Her okur ziyareti bir iddiaya düşer ve iddialar eşit olasılıkla seçilir. Gerçek bir kurulumda ilgi dağılımı eşit değildir; eşit dağılım kapsamanın iyimser kestirimidir.
- DI33 — Gömülü bayat iddiaya çarpan okur bunu her zaman bildirir; örnek çalışmamıştır ve arıza tartışılmaz.
- DI34 — Sessiz bayat iddiaya çarpan okurların üçte biri bildirir; kalanı kendi hatası sayar, vazgeçer ya da kendi yolunu bulur.
- DI35 — Aynı iddia birden çok kez bildirilse de bir kez sayılır; ölçülen şey ziyaret değil, açığa çıkan iddia sayısıdır.
- DI36 — Bildirim yalnız açığa çıkarır; düzeltmeyi ölçüm saymaz. Doküman ziyaretler boyunca değişmez ve yeni bayatlama eklenmez.
- DI37 — Rastgelelik ortak kurgunun üretecinden gelir ve tek modülle çağrılır; kümenin çözünürlüğü otuz dokuz sessiz iddiada 1/39’dur.
Ölçüm
"""Geri bildirim dongusu: sessiz bayatlamanin okur uzerinden gorunur olmasi. Bolum 1 - artan okur ziyaretiyle bildirilen sessiz iddia sayisi. Bolum 2 - iki yuz kirk ziyaretten sonra tur basina kalan sessiz bayat. """ TOHUM = 20260816 TURLER = { "öğretici": {"akis": 9, "imza": 3, "ad": 2, "kavram": 1}, "nasıl yapılır": {"akis": 6, "imza": 5, "ad": 2, "kavram": 1}, "açıklama": {"akis": 1, "imza": 1, "ad": 1, "kavram": 9}, "referans": {"akis": 0, "imza": 13, "ad": 2, "kavram": 0}, } SIKLIK = {"imza": 2, "akis": 3, "ad": 5, "kavram": 12} ORNEKLI = {"öğretici": 0.60, "nasıl yapılır": 0.70, "açıklama": 0.10, "referans": 0.00} SURUM = 12 ZIYARET = (30, 60, 120, 240, 480, 960) BILDIRIM_PAYI = 3 # sessiz bayata carpan okurun bildirme payi: ucte bir def uretec(tohum): d = tohum % 2147483646 + 1 def r(n): nonlocal d d = (d * 48271) % 2147483647 return d % n return r def iddialar(): liste, no = [], 0 for tur, dagilim in TURLER.items(): hedef = 0 for yuzey, adet in dagilim.items(): for _ in range(adet): no += 1 hedef += ORNEKLI[tur] gomulu = hedef >= 1 and yuzey != "kavram" if gomulu: hedef -= 1 liste.append({"no": no, "tur": tur, "yuzey": yuzey, "gomulu": gomulu}) return liste def bayat_mi(iddia, surum): return surum // SIKLIK[iddia["yuzey"]] >= 1 def dongu(liste, ziyaret_sayisi): """Her ziyaret bir iddiaya duser. Gomulu bayat ornek calistirilinca gorunur; sessiz bayat ancak okur bildirdiginde gorunur.""" r = uretec(TOHUM) carpan, bildirilen = set(), set() for _ in range(ziyaret_sayisi): iddia = liste[r(len(liste))] if not bayat_mi(iddia, SURUM): continue carpan.add(iddia["no"]) if iddia["gomulu"] or r(BILDIRIM_PAYI) == 0: bildirilen.add(iddia["no"]) return carpan, bildirilen L = iddialar() BAYAT = [i for i in L if bayat_mi(i, SURUM)] SESSIZ = [i for i in BAYAT if not i["gomulu"]] print(f"{SURUM}. sürümde iddia {len(L)}, bayat {len(BAYAT)}, ses çıkaran " f"{len(BAYAT) - len(SESSIZ)}, sessiz {len(SESSIZ)} " f"({len(SESSIZ) / len(BAYAT):.4f})") print() print(f"{'ziyaret':>8s} {'çarpılan':>9s} {'bildirilen sessiz':>18s} " f"{'kapsama':>8s} {'bildirim başına ziyaret':>24s}") for z in ZIYARET: carpan, bildirilen = dongu(L, z) b = [i for i in SESSIZ if i["no"] in bildirilen] print(f"{z:8d} {len(carpan):9d} {len(b):18d} " f"{len(b) / len(SESSIZ):8.4f} {z / len(b):24.1f}") print() _, bildirilen = dongu(L, 240) print(f"{'tür':>15s} {'sessiz':>7s} {'240 ziyarette bildirilen':>25s} " f"{'kalan':>6s}") for tur in TURLER: grup = [i for i in SESSIZ if i["tur"] == tur] b = [i for i in grup if i["no"] in bildirilen] print(f"{tur:>15s} {len(grup):7d} {len(b):25d} {len(grup) - len(b):6d}")
12. sürümde iddia 56, bayat 56, ses çıkaran 17, sessiz 39 (0.6964)
ziyaret çarpılan bildirilen sessiz kapsama bildirim başına ziyaret
30 20 6 0.1538 5.0
60 34 10 0.2564 6.0
120 47 19 0.4872 6.3
240 54 31 0.7949 7.7
480 56 36 0.9231 13.3
960 56 39 1.0000 24.6
tür sessiz 240 ziyarette bildirilen kalan
öğretici 7 6 1
nasıl yapılır 5 3 2
açıklama 12 9 3
referans 15 13 2
Döngü Çalışır, Yavaş Çalışır
Son sütun kapanır: kapsama 1,0000. Yeterince okur geldiğinde sessiz bayatların hepsi açığa çıkar. Geri bildirim döngüsü, üçüncü iddianın gerçekten panzehiridir; doküman denetiminden bağımsız olarak, kimsenin takvimine bir şey koymadan çalışır.
Bedeli sağdaki sütundadır. İlk otuz ziyaret 6 sessiz iddia açığa çıkarır: bildirim başına 5,0 ziyaret. İki yüz kırk ziyarette kapsama 0,7949’a ulaşır ve bedel 7,7’ye çıkar. Son üç iddia için dört yüz seksenden dokuz yüz altmışa geçmek gerekir ve bildirim başına ziyaret 24,6 olur. Kapsama doyduğunda maliyet beş kat artar, çünkü kalan iddialar az okunan ya da bildirilmesi düşük olasılıklı olanlardır.
çarpılan sütunu bu farkı ayırır. Dört yüz sekseninci ziyarette elli altı iddianın hepsine
çarpılmıştır; yani doküman baştan sona okunmuştur. Buna karşılık bildirilen sessiz sayısı
36’dır. Aradaki üç iddia, çarpılmış ama bildirilmemiştir: okur onları okumuş, yanılmış
ve söylememiştir. Okunmak düzelmek değildir.
Alt tablo iki yüz kırk ziyaretin türlere göre dağılımını verir. Referansın on beş sessiz iddiasının 13’ü, açıklamanın on ikisinin 9’u bildirilmiştir. Kalan sekiz iddia dört türe dağılır ve hiçbir tür temizlenmemiştir. Bu, önceki dersin denetim tablosuyla doğrudan karşılaştırılabilir: aynı otuz dokuz iddiayı tam kapsamlı bir doküman denetimi 56 iddia okuyarak tek geçişte bulur; geri bildirim döngüsü 960 ziyaretle bulur ve o ziyaretlerin her biri yanlış bir cümle okumuş bir okurdur.
Karşılaştırma iki yolun rollerini belirler. Denetim ucuzdur ve başlatılması gerekir; döngü kendiliğinden çalışır ve bedelini okur öder. İkisi birbirinin yerine geçmez: döngü olmadan denetim nereye bakacağını bilmez, denetim olmadan döngü ödediği bedeli düşüremez.
Özet
- Sessiz bayatlama kendini göstermez; görünür hâle gelmesinin tek doğal yolu ona çarpan okurun bunu bildirmesidir.
- Okur bildirimi bir doküman eksiğine üç soruyla çevrilir: dayanılan cümle, bağlı olduğu yüzey, yüzeyin değiştiği sürüm. Bir bildirim aynı yüzeye bağlı öbür iddiaları da hedef hâline getirir.
- Otuz dokuz sessiz iddianın 31’i 240 ziyarette, 39’u 960 ziyarette açığa çıkar; kapsama 1,0000’a ulaşır ama bildirim başına bedel 5,0 ziyaretten 24,6 ziyarete yükselir.
- Dört yüz seksen ziyarette elli altı iddianın hepsine çarpılmış olmasına karşın bildirilen sessiz sayısı 36’dır; okunmuş olmak düzeltilmiş olmak değildir.
- Doküman denetimi aynı otuz dokuzu 56 iddia okuyarak bulur; döngünün bedelini yanılan okur öder. İkisi birbirinin yerine geçmez.
Kurs Kapanışı
Kurs tek bir ölçü kurdu ve on beş derste onu taşıdı: bir dokümanın sayısı uzunluğu değil, hâlâ doğru olan iddia sayısıdır — ve bayatlayanların kaçının sessiz olduğudur. Her ders kendi ölçümünü çalıştırdı; aşağıdaki tablonun her satırı o dersin kendi çıktı bloğundan okunmuştur.
| ders | ölçülen | doğru kalan ya da sessiz bayat |
|---|---|---|
| Teknik Yazarlığın Kapsamı | iddia, tür, yüzey ve gömülülük dağılımı | sürüm 0’da 56/56 doğru; gömülü 17, sessiz 39; imza değişimi 22 iddia düşürür, sessiz payı 0,7727 |
| Öğretici, Nasıl Yapılır, Açıklama ve Referans | dört türün ikinci sürümdeki ömrü | açıklama 11/12 (0,9167), referans 2/15 (0,1333); ömür oranı 6,875 kat |
| Depo Belgeleri | üç depo belgesinin yüzey dağılımı ve yarılanma sürümü | yarılanma 3 / 3 / 12; sürüm 12’de karar kaydı 0/10 ve 10 sessiz |
| API Referansı | elle yazılan ile üretilen referansın karşılaştırması | sürüm 6’da elle 0/15, üretilen 13/15; kurtarılamayan 2 iddia ad yüzeyinde |
| Sürüm Notları | not biçiminin tarihlenebilir kıldığı iddia sayısı | ham liste 17/56 ve sessizlerden 0/39; anlam listesi 56/56 ve 39/39 |
| Sorun Giderme İçeriği | belirtiden başlayan metnin karşıladığı okur kararı | belirti–neden–çözüm 51/51 (1,0000); kapsanan iddia 17/56, erişilemeyen 39 |
| Okur Tanımı | ön bilgi varsayımının okunabilir kıldığı iddia | sürüm 3’te doğru 18; okunabilir 3’ten 18’e çıkar, bayat 38 ve sessiz 24 değişmez |
| Yapı ve Başlıklandırma | okurun sorusuna ulaşana kadar okuduğu birim | ortalama adım 26,38’den 7,00’a; sürüm 6’da iki düzeyli düzende 24 sessiz bayat başlık |
| Stil Rehberi | ikili adlandırmanın ürettiği belirsizlik | serbest rejimde aranan adla bulunan 25/56; yeniden adlandırmada kaçan 31, sessizi 23 |
| Örnek ve Kod Parçacıkları | gömülülük oranının sessizliğe etkisi | sürüm 12’de 0/56 doğru, sessiz 39 (0,6964); rejime göre 0,8571 ile 0,4464 arası |
| Görsel Kullanımı | diyagramın bağlandığı yüzey ve sesi | doğru/bayat değişmez (0/56); sessiz 39’dan karma şemada 56’ya çıkar |
| Kod ile Birlikte Doküman | dokümanın incelemeye girmesinin bayatlamaya etkisi | birlikte sürümleme 300/672 ve 39 sessiz; inceleme 43/672 ve 15 sessiz |
| Doküman Üretim Yaklaşımları | üretimin kurtardığı ve kurtaramadığı yüzey | sürüm 12’de kaynaktan üretim 22/56 doğru; kalan 34 bayatın 22’si sessiz |
| Bayatlama ve Doküman Denetimi | denetim kapsamının bulduğu sessiz bayat | sürüm 12’de 56/56 bayat ve 39 sessiz (0,6964); denetimsiz bulunan yalnız 17 |
| Geri Bildirim Döngüsü | okur bildiriminin açığa çıkardığı sessiz iddia | 240 ziyarette 31/39 (0,7949), 960 ziyarette 39/39; bedel 5,0’dan 24,6’ya |
Kursun kendi kuralına kendi uyması bir biçim şartı değildi. Her ölçüm çalıştırıldı, her çıktı bloğu koşumdan alındı; bu derslerin gömülü iddiaları da bayatladıklarında ses çıkaracaktır.
Bu kurs Yazılım Geliştirme Pratiği müfredatının sonuncusudur. Beş kurs beş ayrı şeyi ölçtü ve hepsi aynı soruyu farklı bir nesneye sordu: yapılan iş geriye ne bırakıyor?
| kurs | ölçü ekseni |
|---|---|
| Sürüm Kontrolüne Giriş | kaydın hangi bölgede durduğu ve oradan geri getirilebilirliği |
| Dallanma ve İşbirliği | tarihçenin yanıtlayabildiği soru |
| İleri Git | işlemin dokunduğu nesne sayısı |
| Kod İnceleme ve Ekip Süreci | bakılan eksen ve okunan öbek |
| Teknik Yazarlık ve Dokümantasyon | kaç iddia hâlâ doğru, kaçı sessizce bayat |
Birinci satır kursun kendi derslerinden okunmuştur: çalışma dizini, hazırlık alanı ve nesne veritabanı ayrımı, kurtarılabilirliğin ölçütünün içeriğin nesne veritabanına yazılmış olması, sıfırlanan işlemelerin veritabanında kalması ve erişilemez nesnelerin silinmemesi — hepsi tek bir ekseni kurar.
Beş kurs birlikte bir ekip disiplini kurdu: değişikliğin kaydedilmesi, birden çok kişi arasında tümleştirilmesi, tarihçenin yönetilmesi, başkası tarafından okunması ve anlatılması. Hepsinin ortak yanı, dilden bağımsız olmalarıdır; sayılan şey hiçbir zaman yazılan kodun kendisi değil, onun çevresindeki işti. Sıradaki müfredatlar bu çevreden merkeze döner ve dilin kendisini ölçer: bir dilin sunduğu yapılar, o yapıların zorunlu kıldığı kararlar ve kararların programa bıraktığı iz.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.