Ders 07 / 15
Okur Tanımı
Yazılmamış ön bilgi varsayımı iddiayı yanlış yapmaz, okunamaz yapar; üçüncü sürümde hâlâ doğru olan 18 iddianın yeni okur için okunabilir olanı okur tanımı yokken 3, tam yazılmışken 18'dir.
İçindekiler
Önceki ders taksonominin son boşluğunu kapattı: sürüm notu ve sorun giderme içeriğiyle birlikte altı okur sorusunun hepsi artık bir türe düşüyor. Doküman hangi sorunun hangi türde yanıtlandığını biliyor.
Bir tür soruyu ancak okur cümleyi çözebiliyorsa yanıtlar. Cümlenin doğru olması yetmez; cümlenin varsaydığı ön bilgi okurda yoksa ve doküman o varsayımı yazmamışsa, cümle okur için bir yanıt değil bir duvardır. Bu dersin sorusu şudur: yazılmamış bir ön bilgi varsayımı kaç iddiayı okunamaz kılar?
Okurun Kim Olduğu Yazılmamış Bir Karardır
Her teknik metin birisi için yazılır. Yazan, yazarken zihninde bir okur taşır: neyi bildiği, neyi kurmuş olduğu, hangi terimi tanıdığı. Bu tablo bir varsayımlar kümesidir ve her zaman vardır. Yazmak onu var etmez, yalnız görünür kılar. Yazmamak onu ortadan kaldırmaz, yalnız tartışılamaz kılar.
Yazılmamış varsayım belirli bir biçimde başarısız olur. Okur cümleye gelir, çözemez ve neden çözemediğini bilemez. Bilmesi gereken bir terim miydi, yoksa dokümanın tanımlaması gereken bir terim mi? Bu ayrımı yapamayan okur ya metni bırakır ya da yanlış yerde arar. Maliyet bilgisizliğin kendisi değil, bilgisizliğin adlandırılmamış olmasıdır.
Yazılı varsayım okuru bilgili yapmaz. Yaptığı tek şey duvarı bir tabelaya çevirmektir: bu metin şunu bildiğini varsayar. Okur o eksiği kapatmayı seçebilir, başka bir kaynağa gidebilir ya da metnin kendisi için olmadığına karar verebilir. Üçü de bir karardır; duvarda karar yoktur.
İki Ayrı Eksen
Kurs buraya kadar tek eksen ölçtü: bir iddia hâlâ doğru mu. Bu dersin eklediği ikinci eksen okunabilirlik: okur o cümleyi çözebiliyor mu. İki eksen bağımsızdır ve dört bileşim üretir.
Doğru ve okunabilir olan iddia dokümanın gerçek sermayesidir; okurun sorusunu kapatır. Doğru ama okunamaz olan iddia boşa yazılmış emektir: cümle doğrudur, kimse ondan yararlanamaz. Bayat ve okunabilir olan iddia en zararlısıdır; okur onu anlar, uygular ve yanılır. Bayat ve okunamaz olan iddia zarar da vermez, işe de yaramaz.
Bu ayrım bir ölçüm sonucudur, bir sınıflandırma tercihi değil. Aynı 56 iddia iki eksende ayrı ayrı sayılabilir ve iki sayının birbirini takip etmediği görülebilir. Ön bilgi varsayımını yazmak bir iddianın bayatlamasını geciktirmez; onu okunabilir yapar. Yüzey sıklığı değişmediği için bayat sayısı üç rejimde de aynı kalır.
Okur Tanımı Ne Yazar
Ölçülebilir bir okur tanımı dört şeyi yazar: okurun rolü, bilindiği varsayılan ön bilgiler, kapsam dışında bırakılanlar ve metnin sonunda okurun yapabilecek olduğu şey. Rol kişi değildir; bir kişi gün içinde iki rolde de okuyabilir.
# ornek dokuman parcasi , calistirilmamistir zayıf okur tanımı Bu belge, ürünü kullanmak isteyen herkes içindir. açık okur tanımı Rol: kurulumu yapılmış bir kurgu ürünü ilk kez çalıştıran okur. Bilindiği varsayılan: komut satırında dizin değiştirme ve dosya okuma. Bilinmediği varsayılan: ürünün veri modeli, kimlik düzeni, eşzamanlı çalışma. Kapsam dışı: dağıtım ve ölçekleme. Metnin sonunda okur: tek bir ölçümü çalıştırıp çıktısını okuyabilir.
İki tanım arasındaki fark üslup değildir. Birincisinden hiçbir iddia hakkında karar çıkarılamaz: “herkes” kümesi hiçbir ön bilgiyi dışarıda bırakmaz, dolayısıyla hiçbir cümle “bu okur için fazla” ya da “bu okur için eksik” diye işaretlenemez. İkincisi her iddia için bir eşleştirme yapılmasına izin verir: iddianın istediği ön bilgi listede var mı, yok mu. Okur tanımının ölçülebilirliği, dokümanın denetlenebilirliğinin ön koşuludur.
Kapsam dışı satırı özellikle önemlidir çünkü tek başına bir soruyu kapatır. Dağıtımı arayan okur ilk on satırda aradığının burada olmadığını öğrenir ve metni okumadan bırakır. Bu bir kayıp değil, doğru bir yönlendirmedir.
Ölçümün varsayımları:
- YD1 — 56 iddia ortak kurgudan gelir: dört tür, dört yüzey ve 17 çalıştırılabilir örneğe gömülü iddia. Kâhin kurgunun kendisidir; hangi iddianın hangi yüzeye bağlı olduğunu ve hangi ön bilgiyi istediğini biz yazdığımız için biliriz.
- YD2 — Her iddia bir ya da iki ön bilgi ister; ön bilgiler beş başlıktan seçilir. Dağılım kurgudan üretilir ve iddianın türüne bakmaz — ön bilgi bir yüzey değildir.
- YD3 — Üç okur rolü ölçülür: yeni okur beş ön bilgiden birini bilir, uygulayan üçünü, bakım yapan beşini. Rol kişi değildir, bir okuma durumudur.
- YD4 — Bir iddia, istediği ön bilgilerin hepsi ya okurda ya da okur tanımında yazılıysa okunabilir sayılır. Yazılı varsayım okuru bilgili yapmaz; eksiği adlandırır ve okur onu kapatabilir. Ölçüm bu adlandırmayı okunabilirlik sayar.
- YD5 — Üç okur tanımı rejimi denenir: yok (hiçbir varsayım yazılı değil), kısmi (iki varsayım yazılı), tam (beşi de yazılı).
- YD6 — Okunabilirlik bayatlamayı değiştirmez. Bir iddianın bayat olup olmadığı yalnız bağlandığı yüzeye ve sürüme bakar; okur tanımı bu hesaba girmez.
Ölçüm
"""Okur tanimi: yazilmamis on bilgi varsayimi kac iddiayi okunamaz kiliyor. Bolum 1 - on bilginin iddialara dagilimi. Bolum 2 - uc okur rolu ve uc okur tanimi rejimi. Bolum 3 - ucuncu surumde dogru/bayat/sessiz ile okunabilirligin kesismesi. """ 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} ONBILGI = ("kurulum", "komut satırı", "veri modeli", "kimlik", "eşzamanlılık") ROLLER = {"yeni okur": {"komut satırı"}, "uygulayan": {"komut satırı", "kurulum", "veri modeli"}, "bakım yapan": set(ONBILGI)} TANIM = {"yok": set(), "kısmi": {"kurulum", "komut satırı"}, "tam": set(ONBILGI)} 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 onbilgi_ata(liste, tohum=TOHUM): """Bu dersin eklediği tek şey: her iddianın gerektirdiği ön bilgi.""" r = uretec(tohum) for i in liste: gerek, adet = set(), 2 if r(4) == 0 else 1 while len(gerek) < adet: gerek.add(ONBILGI[r(len(ONBILGI))]) i["onbilgi"] = gerek return liste def bayat_mi(i, surum): return surum // SIKLIK[i["yuzey"]] >= 1 def okunabilir(i, rol, yazili): """Okurun bilmediği ve dokümanın yazmadığı ön bilgi iddiayı okunamaz kılar.""" return not (i["onbilgi"] - ROLLER[rol] - yazili) A = onbilgi_ata(iddialar()) print(f"iddia {len(A)} | örneğe gömülü {sum(i['gomulu'] for i in A)} | " f"iki ön bilgi isteyen {sum(len(i['onbilgi']) == 2 for i in A)}") print("ön bilgi " + " ".join(f"{o} {sum(o in i['onbilgi'] for i in A)}" for o in ONBILGI)) print() print(f"{'okur rolü':>12s}" + "".join(f" {'tanım ' + t:>12s}" for t in TANIM)) for rol in ROLLER: satir = f"{rol:>12s}" for t, yazili in TANIM.items(): satir += f" {sum(okunabilir(i, rol, yazili) for i in A):12d}" print(satir) print() kapali = sum(okunabilir(i, "yeni okur", set()) for i in A) print("yeni okur için tek başına yazılan ön bilgi açılan iddia") for o in ONBILGI: acik = sum(okunabilir(i, "yeni okur", {o}) for i in A) print(f" {o:40s} {acik - kapali:6d}") print() print("sürüm 3, yeni okur doğru+okunabilir doğru ama okunamaz bayat sessiz") for t, yazili in TANIM.items(): dogru = [i for i in A if not bayat_mi(i, 3)] bayat = [i for i in A if bayat_mi(i, 3)] sessiz = [i for i in bayat if not i["gomulu"]] okur = sum(okunabilir(i, "yeni okur", yazili) for i in dogru) print(f" tanım {t:12s} {okur:14d} {len(dogru) - okur:20d}" f" {len(bayat):6d} {len(sessiz):7d}")
iddia 56 | örneğe gömülü 17 | iki ön bilgi isteyen 13 ön bilgi kurulum 16 komut satırı 11 veri modeli 10 kimlik 13 eşzamanlılık 19 okur rolü tanım yok tanım kısmi tanım tam yeni okur 5 19 56 uygulayan 27 27 56 bakım yapan 56 56 56 yeni okur için tek başına yazılan ön bilgi açılan iddia kurulum 14 komut satırı 0 veri modeli 7 kimlik 9 eşzamanlılık 14 sürüm 3, yeni okur doğru+okunabilir doğru ama okunamaz bayat sessiz tanım yok 3 15 38 24 tanım kısmi 7 11 38 24 tanım tam 18 0 38 24
Rolün Ödettiği
İkinci tablo üç rolü yan yana koyuyor ve aradaki fark bir üslup farkı değil, bir büyüklük farkı. Okur tanımı yokken yeni okur 56 iddianın 5’ini okuyabiliyor. Aynı dokümandan bakım yapan 56’sını okuyor. İki okur aynı metne bakıyor ve biri onda birini alıyor.
Bu tablo yazarın en sık yaptığı hatayı sayıya çeviriyor: yazan kişi neredeyse her zaman bakım yapan rolündedir. Ürünü bilir, kurulumu yapmıştır, veri modelini tasarlamıştır. Kendi rolünden baktığında dokümanın 56/56 verdiğini görür ve metni yeterli bulur. Yeni okur için sayı 5’tir ve bu farkı yazan kendi başına göremez, çünkü eksik ön bilgi yazanda yoktur.
Ortadaki rol de öğreticidir. Uygulayan rolü kısmi tanımdan hiç yararlanmıyor: 27 ile 27 aynı. Kısmi tanımın yazdığı iki varsayımı uygulayan zaten biliyor. Okur tanımı, en az bilen role göre yazılmazsa hiçbir şey açmaz. Yazılan satırın değeri, doğruluğuyla değil, hangi okurun eksiğini adlandırdığıyla ölçülür.
Bir Doküman Kaç Rolü Taşır
Tablo bir soruyu doğrudan doğuruyor: aynı doküman hem yeni okuru hem bakım yapanı taşıyabilir mi? Sayılar taşıyamayacağını söylüyor. Yeni okura göre yazılmış bir metin, bakım yapanın zaten bildiği ön bilgileri satır satır tekrarlar; bakım yapana göre yazılmış bir metin yeni okura 5/56 verir. Ortada tek bir metnin ikisini birden karşıladığı bir ayar yoktur, çünkü açılan iddia sayısı ile tekrarlanan satır sayısı ters yönde hareket eder.
Kursun ilk konusu bu soruyu zaten yanıtlamıştı: dört tür farklı okurlar içindir. Öğretici yeni okur rolüne, nasıl yapılır uygulayan rolüne, referans bakım yapan rolüne yazılır; açıklama üçünü de okurlar ama farklı derinlikte. Öyleyse okur tanımı dokümanın tamamına değil, her türe ayrı ayrı yazılır ve her tür kendi rolünü ilan eder.
Bunun ölçülebilir sonucu şudur: bir metinde okunamaz iddia sayısı yüksekse iki ayrı kusurdan biri vardır. Ya okur tanımı eksiktir — o zaman çözüm birkaç satır yazmaktır. Ya da metin yanlış türdedir: referans olarak yazılmış bir metin öğretici gibi okunmaktadır ve çözüm yazmak değil, ayırmaktır. Okur tanımı bu iki kusuru birbirinden ayırt etmenin tek yoludur; tanım yazılmadan hangi kusurun bulunduğu bilinemez.
En Pahalı Yazılmamış Varsayım
Üçüncü tablo tek tek varsayımların ağırlığını veriyor. Yeni okur için eşzamanlılık ve kurulum varsayımlarının her biri tek başına 14 iddia açıyor; kimlik 9, veri modeli 7 açıyor. Komut satırı ise 0 açıyor — çünkü onu yeni okur zaten biliyor ve yazmak bir şey eklemiyor.
Sayılar toplanmıyor: 14 + 0 + 7 + 9 + 14 toplamı 44, oysa tam tanım 5’ten 56’ya, yani 51 iddia açıyor. Aradaki fark iki ön bilgi isteyen 13 iddiadan geliyor; onlar ancak iki varsayım birden yazıldığında açılıyor. Bu, okur tanımının parça parça yazılmasının neden beklenenden az kazandırdığını açıklıyor.
Pratik sonuç şudur: okur tanımı yazılırken sıralama önemlidir ve sıralamayı açtığı iddia sayısı belirler, yazma kolaylığı değil. Beş satırlık bir bölüm 51 iddia açıyorsa, o beş satır dokümanın en verimli beş satırıdır.
Bu kümede ölçülebilen en küçük fark 1/56 = 0,0179’dur. Tek tek varsayımların açtığı 7, 9 ve 14 iddia bu bandın çok üstündedir ve karşılaştırılabilir. Bir varsayımın diğerinden bir iddia fazla açması ise bu kümeyle savunulamaz; kurgu değişirse o sıra da değişir.
Bayatlamayla Kesişme
Son tablo iki ekseni birleştiriyor ve dersin en sıkı sonucu burada. Üçüncü sürümde dokümanın 38 iddiası bayat, 24’ü sessiz bayat, geriye 18 doğru iddia kalıyor. Bu üç sayı üç rejimde de aynı: okur tanımı yazmak hiçbir iddianın ömrünü uzatmıyor. Yüzey sıklığı değişmedi, bayatlama da değişmedi.
Değişen tek sütun okunabilirlik. Okur tanımı yokken, hayatta kalan 18 doğru iddianın yeni okur için okunabilir olanı 3. Yani doküman üçüncü sürümde hâlâ doğru 18 cümle taşıyor ve yeni okur bunların 15’ine erişemiyor. Tam tanımla aynı 18 cümlenin 18’i okunabilir hâle geliyor.
Bu iki sayının yan yana durması gerekiyor çünkü iki ayrı işi karıştırmayı engelliyor. Bayatlamayla savaşmak bir bakım işidir: yüzeyleri izlemek, denetim yapmak, üretilen içeriğe geçmek. Okunamazlıkla savaşmak bir yazım işidir ve bir kere yapılır: okur tanımı yazıldıktan sonra kavram yüzeyine bağlıdır ve yüzeylerin en yavaşı odur. Ürünün kavramları değişmedikçe okur tanımı doğru kalır; imzaya bağlı bir referans satırı iki sürümde bayatlarken okur tanımı on ikide bir yenilenir.
Özet
- Okurun kim olduğu her metinde bir varsayımdır; yazmak onu var etmez, tartışılabilir kılar. Yazılmamış varsayımın maliyeti okurun bilgisizliği değil, eksiğin adlandırılmamış olmasıdır.
- Okunabilirlik ile bayatlama bağımsız iki eksendir: bir iddia doğru olduğu hâlde okunamaz, bayat olduğu hâlde okunabilir olabilir. En zararlı bileşim bayat ve okunabilir olandır.
- Okur tanımı yokken yeni okur 56 iddianın 5’ini, bakım yapan 56’sını okur. Yazan kişi genellikle bakım yapan rolündedir ve bu farkı kendi başına göremez.
- Kısmi tanım uygulayan rolüne hiçbir şey açmaz (27 ile 27); tek tek varsayımlar 14, 0, 7, 9, 14 iddia açar ve toplamları tam tanımın açtığı 51’e ulaşmaz, çünkü 13 iddia iki varsayımı birden ister.
- Üçüncü sürümde bayat 38, sessiz 24, doğru 18 sayıları üç rejimde de aynıdır; okur tanımı yalnız o 18 doğru iddianın kaçının okunabildiğini değiştirir: 3 ile 18.
Sonraki Adım
Okur tanımı cümlenin çözülmesini sağlar; cümlenin bulunmasını sağlamaz. Tam tanımla yazılmış bir dokümanda yeni okur artık 56 iddianın hepsini okuyabilir, ama aradığı tek iddiaya ulaşmak için kaç satır taraması gerektiği hâlâ ölçülmedi. Sonraki ders başlık düzenine bakar: okurun sorusu ile onu yanıtlayan iddia arasındaki mesafe kaç adımdır, hangi başlıklandırma bu mesafeyi kısaltır ve başlığın kendisi hangi yüzeye bağlanır.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.