Ders 03 / 16
Yapılandırma Kıyaslamaları
Kıyaslama kılavuzunun 26 maddesi dört makine sınıfının taban çizgisine uygulanır: 104 kararın 11'i bu ortamda uygulanamaz, 42'si uyumsuz, uyum oranı iki ayrı paydayla iki ayrı sayı verir ve maddelerin tamamı uygulandığında 588 noktanın yazma yetkisi daralırken 48 meşru iş elle adıma düşer.
İçindekiler
Önceki iki derste hangi kalemin gerekli olduğuna ve hangi takvimin uygun olduğuna karar veren biri vardı; kararların gerekçesi hiçbir yerde yazılmadı. Yapılandırma kıyaslama kılavuzları bu boşluğu doldurmak için vardır: aynı kararları madde madde toplar ve bir taban çizgisi önerir. Kılavuzun kendisi bir dış kaynaktır, ortamı bilmez ve maddeleri bir uç noktanın hangi işi yaptığına göre yazılmamıştır.
Bu dersin ölçüsü kılavuzun kaç madde içerdiği değil, o maddelerin bu ortamda ne yaptığıdır. Üç ayrı durum tek bir orana sıkıştırıldığında karar taşıyan bilgi kaybolur.
Üç Ayrı Durum
Bir kılavuz maddesi bir makine sınıfına uygulandığında üç sonuçtan biri çıkar. Uyumlu: taban çizgi maddeyi zaten karşılıyor. Uyumsuz: taban çizgi maddeyi karşılamıyor ve karşılaması mümkün. Uygulanamaz: madde bu ortamda anlamlı değil ya da makinenin işini olanaksız kılar. Üçüncü durum ilk ikisinden farklıdır; ekran kilidi süresi ekranı olmayan bir makinede bir eksiklik değildir, kılavuzun o makine için yazılmamış olmasıdır.
Dördüncü bir eksen bunların üzerine biner: madde uygulandığında meşru bir iş duruyor mu. Bir maddenin uygulanabilir olması onun bedelsiz olduğu anlamına gelmez.
Bu dersin nokta sütunu da dikkatli okunmalıdır. Kılavuz maddeleri bir tutunma noktasını kaldırmaz — kaldırma işi ilk derste yapıldı ve kalan noktalar iş gerektirdiği için duruyor. Kılavuz maddesinin yaptığı şey, o noktanın tanımını yazabilen özne kümesini daraltmaktır. Üç dersin ölçüsü böylece sıralanır: birincisi noktanın kendisini kapattı, ikincisi noktanın bilinen bir yolla ulaşılabilir olduğu süreyi kısalttı, üçüncüsü noktaya yazabilen özne kümesini daraltıyor. Kapatılan nokta sayısı burada da sıfırdır.
- SS13. Yirmi altı maddelik kılavuz, dört makine sınıfı ve taban çizgi modeldir. Kılavuzun adı yazılmaz; maddeler tür düzeyinde yazılır ve gerçek bir denetim koşturulmaz.
- SS14. Bir madde bir sınıfta ya uygulanabilir ya uygulanamaz; kısmi uygulama modellenmiyor.
- SS15. Uyumluluk durumu taban çizgiden okunmuş sayılır ve modelde sabittir.
- SS16. Nokta sütunu, madde uygulandığında yazma yetkisi yöneticiye daralan nokta sayısıdır ve makine başınadır.
- SS17. Bedel, madde uygulandığında elle adıma düşen meşru iş sayısıdır; sınıf başına yazıldı.
- SS18. Makine sayıları önceki dersten gelir: 60, 24, 12 ve 6.
// kiyas/kilavuz.mjs — yapilandirma kiyaslama kilavuzunun taban cizgiye uygulanmasi MODELIDIR. // Kilavuz adi yazilmaz; maddeler tur duzeyinde yazilir. Gercek bir denetim kosturulmaz. export const SINIF = [ { ad: 'saha-dizustu', makine: 60 }, { ad: 'sube-ucu', makine: 24 }, { ad: 'toplayici', makine: 12 }, { ad: 'islem-sunucusu', makine: 6 }, ]; // satir: madde | yazma yetkisi daralan nokta (makine basina) | uygulanabilirlik | uyumluluk | bedel // uygulanabilirlik: u = uygulanabilir, x = bu ortamda uygulanamaz // uyumluluk: v = taban cizgi zaten uyumlu, a = uyumsuz, - = uygulanamadigi icin yok // bedel: madde uygulandiginda elle adima dusen mesru is sayisi (sinif basina rakam) export const MADDE = ` gereksiz-servis-kapatma 2 uuuu vvvv 0000 otomatik-calistirma-kisitlama 1 uuuu avvv 2000 zamanlanmis-gorev-yazma-kisiti 1 uuuu aavv 1100 oturum-betigi-yazma-kisiti 1 uuxu av-v 2001 surucu-imza-zorunlulugu 1 uuuu vvaa 0011 acilis-sirasi-kilidi 1 uuuu vvaa 0000 yerel-yonetici-uyeligi-kisiti 1 uuuu aavv 3200 uzak-yonetim-kisitlamasi 1 uuuu vvva 0001 yazilim-kaynagi-kisitlamasi 1 uuuu aaav 4210 betik-calisma-zamani-kisiti 1 uuxx aa-- 3200 eklenti-dizini-kilidi 1 uuxx av-- 1000 yonetim-araci-erisim-kisiti 1 xuuu -vaa 0011 varsayilan-hesap-devre-disi 0 uuuu vvvv 0000 parola-uzunlugu 0 uuuu vvvv 0000 hesap-kilitleme-esigi 0 uuuu vvva 0001 oturum-zaman-asimi 0 uuuu avvv 1000 ekran-kilidi-suresi 0 uuxx aa-- 2100 konak-guvenlik-duvari-varsayilani 0 uuuu aavv 1100 gelen-baglanti-kisitlamasi 0 uuuu vvaa 0022 paylasim-kapatma 0 uuuu avvv 1000 gunluk-saklama-suresi 0 uuuu aaav 0000 surec-olusturma-kaydi 0 uuuu aaaa 0000 gunluk-merkezilestirme 0 uxuu a-vv 0000 disk-sifreleme-zorunlulugu 0 uuuu avva 0000 tasinabilir-ortam-kisitlamasi 0 uuxu aa-v 3200 otomatik-guncelleme-zorunlulugu 0 uxuu v-aa 0011` .trim().split('\n').map((r) => { const [ad, nokta, uygul, uyum, bedel] = r.trim().split(/\s+/); return { ad, nokta: Number(nokta), uygul, uyum, bedel }; }); export const uygulanir = (m, i) => m.uygul[i] === 'u'; export const uyumlu = (m, i) => m.uyum[i] === 'v'; export const uyumsuz = (m, i) => m.uyum[i] === 'a'; export const bedeli = (m, i) => Number(m.bedel[i]); // Bir senaryo: hangi uyumsuz maddeler uygulaniyor. 'yok' | 'bedelsiz' | 'hepsi' export const uygulanan = (m, i, sen) => uyumsuz(m, i) && (sen === 'hepsi' || (sen === 'bedelsiz' && bedeli(m, i) === 0)); export function tara(sen) { let hucre = 0, uygulanamaz = 0, zatenUyumlu = 0, daralan = 0, duran = 0, istisna = 0; for (const m of MADDE) for (const [i, s] of SINIF.entries()) { hucre += 1; if (!uygulanir(m, i)) { uygulanamaz += 1; continue; } if (uyumlu(m, i)) { zatenUyumlu += 1; continue; } if (uygulanan(m, i, sen)) { daralan += m.nokta * s.makine; duran += bedeli(m, i); } else istisna += 1; } const uyumluSayi = zatenUyumlu + (hucre - uygulanamaz - zatenUyumlu - istisna); return { hucre, uygulanamaz, zatenUyumlu, daralan, duran, istisna, hamYuzde: (100 * uyumluSayi) / hucre, uygulanabilirYuzde: (100 * uyumluSayi) / (hucre - uygulanamaz) }; }
Maddelerin Taban Çizgiye Uygulanması
// kiyas/olc.mjs — uyumsuz kalem ile uygulanamayan kalem ayrilir; uyum yuzdesi ile daralan nokta import { SINIF, MADDE, uygulanir, uyumlu, uyumsuz, bedeli, tara } from './kilavuz.mjs'; const y = (g, ...s) => console.log(s.map((v, i) => (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join('').trimEnd()); const p1 = (x) => x.toFixed(1); const noktali = MADDE.filter((m) => m.nokta > 0); console.log(`${MADDE.length} kilavuz maddesi x ${SINIF.length} makine sinifi = ` + `${MADDE.length * SINIF.length} karar; ${noktali.length} madde tutunma noktasina dokunuyor`); const A = [-18, 7, 13, 8, 10, 12, 17, 8]; console.log('\n1. sinif basina madde durumu'); y(A, 'sinif', 'madde', 'uygulanamaz', 'uyumlu', 'uyumsuz', 'ham uyum %', 'uygulanabilir %', 'bedel'); for (const [i, s] of SINIF.entries()) { const ux = MADDE.filter((m) => !uygulanir(m, i)).length; const uv = MADDE.filter((m) => uyumlu(m, i)).length; const ua = MADDE.filter((m) => uyumsuz(m, i)).length; y(A, s.ad, MADDE.length, ux, uv, ua, p1((100 * uv) / MADDE.length), p1((100 * uv) / (MADDE.length - ux)), MADDE.filter((m) => uyumsuz(m, i)).reduce((a, m) => a + bedeli(m, i), 0)); } const B = [-34, 7, 13, 10, 15, 8]; console.log('\n2. tutunma noktasina dokunan maddeler'); y(B, 'madde', 'nokta', 'uygulanamaz', 'uyumsuz', 'daralan nokta', 'bedel'); for (const m of noktali) y(B, m.ad, m.nokta, SINIF.filter((_, i) => !uygulanir(m, i)).length, SINIF.filter((_, i) => uyumsuz(m, i)).length, SINIF.reduce((a, s, i) => a + (uyumsuz(m, i) ? m.nokta * s.makine : 0), 0), SINIF.reduce((a, _, i) => a + (uyumsuz(m, i) ? bedeli(m, i) : 0), 0)); const C = [-24, 12, 18, 15, 11, 10]; console.log('\n3. uc senaryo'); y(C, 'senaryo', 'ham uyum %', 'uygulanabilir %', 'daralan nokta', 'duran is', 'istisna'); for (const [ad, sen] of [['hicbiri uygulanmadi', 'yok'], ['bedelsizler uygulandi', 'bedelsiz'], ['hepsi uygulandi', 'hepsi']]) { const t = tara(sen); y(C, ad, p1(t.hamYuzde), p1(t.uygulanabilirYuzde), t.daralan, t.duran, t.istisna); } const t0 = tara('yok'), t1 = tara('bedelsiz'), t2 = tara('hepsi'); console.log(`\nuygulanamayan karar ${t0.uygulanamaz} / ${t0.hucre}`); console.log(`nokta kapatmayan madde ${MADDE.length - noktali.length} / ${MADDE.length}`); console.log(`uyum %${p1(t0.hamYuzde)} -> %${p1(t2.hamYuzde)} kazanci ` + `${t2.daralan} nokta, ${t2.duran} elle adim`); console.log(`bedelsiz adimin payi ${t1.daralan}/${t2.daralan} nokta, ` + `${t1.duran}/${t2.duran} elle adim`);
26 kilavuz maddesi x 4 makine sinifi = 104 karar; 12 madde tutunma noktasina dokunuyor 1. sinif basina madde durumu sinif madde uygulanamaz uyumlu uyumsuz ham uyum % uygulanabilir % bedel saha-dizustu 26 1 9 16 34.6 36.0 24 sube-ucu 26 2 15 9 57.7 62.5 11 toplayici 26 5 13 8 50.0 61.9 6 islem-sunucusu 26 3 14 9 53.8 60.9 7 2. tutunma noktasina dokunan maddeler madde nokta uygulanamaz uyumsuz daralan nokta bedel gereksiz-servis-kapatma 2 0 0 0 0 otomatik-calistirma-kisitlama 1 0 1 60 2 zamanlanmis-gorev-yazma-kisiti 1 0 2 84 2 oturum-betigi-yazma-kisiti 1 1 1 60 2 surucu-imza-zorunlulugu 1 0 2 18 2 acilis-sirasi-kilidi 1 0 2 18 0 yerel-yonetici-uyeligi-kisiti 1 0 2 84 5 uzak-yonetim-kisitlamasi 1 0 1 6 1 yazilim-kaynagi-kisitlamasi 1 0 3 96 7 betik-calisma-zamani-kisiti 1 2 2 84 5 eklenti-dizini-kilidi 1 2 1 60 1 yonetim-araci-erisim-kisiti 1 1 2 18 2 3. uc senaryo senaryo ham uyum % uygulanabilir % daralan nokta duran is istisna hicbiri uygulanmadi 49.0 54.8 0 0 42 bedelsizler uygulandi 60.6 67.7 18 0 30 hepsi uygulandi 89.4 100.0 588 48 0 uygulanamayan karar 11 / 104 nokta kapatmayan madde 14 / 26 uyum %49.0 -> %89.4 kazanci 588 nokta, 48 elle adim bedelsiz adimin payi 18/588 nokta, 0/48 elle adim
İki Uyum Yüzdesi
Birinci tablonun son iki yüzde sütunu aynı taban çizgiden iki farklı sayı üretiyor. Ham uyum, uyumlu maddeyi kılavuzun madde sayısına böler. Uygulanabilir uyum, aynı payı uygulanamayan maddeler düşüldükten sonraki paydaya böler. İkinci sayı her zaman birinciden büyüktür ve raporlarda yazılan genellikle odur.
Toplayıcı makine satırı farkın kaynağını gösteriyor. Ham uyum yüzde 50,0; uygulanabilir uyum yüzde 61,9. Aradaki 11,9 puanın tamamı beş maddenin paydadan düşmesinden geliyor — ekranı olmayan bir makinede ekran kilidi süresi, işini betikle yapan bir makinede betik çalışma zamanı kısıtı, sayaç verisi taşınabilir ortamla alındığı için taşınabilir ortam kısıtlaması. Bu beş maddenin uygulanamaz sayılması doğrudur. Yanlış olan, doğru bir kararın bir iyileşme gibi görünmesidir: hiçbir nokta daralmadı, hiçbir yapılandırma değişmedi, yüzde 11,9 puan arttı.
Üçüncü tablo bunun sınırını veriyor. Uyumsuz maddelerin hepsi uygulandığında uygulanabilir uyum yüzde 100’e çıkıyor, ham uyum yüzde 89,4’te kalıyor. On bir karar hiçbir zaman uyumlu olamaz, çünkü madde o ortamda anlamlı değil. “Yüzde yüz uyum” hedefi bu yüzden ölçülemez bir hedeftir; ölçülebilir hedef, uygulanamayan maddelerin adıyla yazılmasıdır.
Saha dizüstü bilgisayarı iki sayının da en düşük olduğu sınıftır (34,6 ve 36,0) ve bedeli en yüksek olan sınıftır (24 elle adım). İki sayı birlikte okunduğunda neden düşük olduğu görünür: on altı uyumsuz maddenin çoğu, kullanıcının kendi kurduğu kalemleri kısıtlıyor ve uygulanmaları meşru işi durduruyor. Uyumsuzluk burada bir ihmal değil, ödenmemiş bir bedeldir.
Nokta Kapatmayan Maddeler
Yirmi altı maddenin 14’ü hiçbir tutunma noktasına dokunmuyor. Parola uzunluğu, oturum zaman aşımı, günlük saklama süresi, süreç oluşturma kaydı ve gelen bağlantı kısıtlaması gerçek denetimlerdir ve başka şeyler için değerlidir; bu kursun ölçüsüne bir sayı eklemezler. Yine de uyum oranının paydasında öteki maddelerle aynı ağırlığı taşırlar.
Sonuç şudur: uyum oranı ile daralan nokta sayısı arasında sabit bir ilişki yoktur. Yüzde 49,0’dan 89,4’e çıkmak 588 noktanın yazma yetkisini daraltıyor, ama aynı 40 puanın büyük bir bölümü nokta sütununa hiç dokunmayan maddelerden geliyor. Tersi de mümkündür: yalnız nokta kapatmayan maddeleri uygulayan bir ekip oranı yükseltir ve nokta sütununda sıfır ilerleme kaydeder.
İkinci tablodaki gereksiz-servis-kapatma satırı aynı ilişkinin öbür ucudur. Makine başına 2 nokta
daraltan en güçlü maddedir ve dört sınıfta da zaten uyumludur — çünkü ilk derste yapılan iş tam
olarak buydu. Kılavuz bu maddede hiçbir şey eklemiyor; onaylıyor. Kılavuzun katkısı yalnız uyumsuz
sütununda ölçülebilir.
İstisna Listesi ve Bakım
Son iki satır kararı verecek kişinin önündeki takası veriyor. Bedeli sıfır olan uyumsuz maddeler uygulandığında uyum yüzde 60,6’ya çıkıyor, hiçbir meşru iş durmuyor — ve daralan nokta 588’in yalnız 18’i, yüzde 3’ü. Daraltmanın neredeyse tamamı bedelli maddelerdedir. Yazılım kaynağı kısıtlaması tek başına 96 nokta daraltıyor ve 7 elle adım getiriyor; yerel yönetici üyeliği kısıtı 84 nokta ve 5 adım. Ucuz olan hiçbir şey yapmıyor, iş yapan hiçbir şey ucuz değil.
Uygulanmayan her uyumsuz karar bir istisna kalemidir ve istisna bir kerelik bir iş değildir. Bedelsiz senaryoda 30, hiçbir şey uygulanmadığında 42 istisna kalemi kalıyor. Her kalem bir gerekçe, bir sahip ve bir yeniden değerlendirme tarihi ister; kılavuzun her yeni sürümünde maddeler yeniden eşlenir ve uygulanamaz işaretleri yeniden sınanır. Uygulanamayan 11 karar da aynı listede durur, çünkü bir makinenin işi değiştiğinde uygulanamaz olan uygulanabilir hâle gelir.
Bakımın ölçüsü budur: 104 kararın 53’ü — 42 uyumsuz artı 11 uygulanamaz — sürekli bakılan bir liste oluşturur. Bu, kılavuzu uygulamanın kılavuzu okumaktan çok daha pahalı olduğunu gösteren sayıdır.
İki işaret arasındaki sınır bu yüzden korunmalıdır. “Uygulanamaz” bir ortam gerçeğini anlatır ve paydayı küçültür; “uygulanmadı” bir kararı anlatır ve paydada kalır. İkisi arasındaki tek fark bir harftir ve harfi yazan kişi aynı zamanda oranı raporlayan kişidir. Bedeli yüksek bir maddenin uygulanamaz işaretlenmesi hem işi bitirir hem oranı yükseltir; sonuç, uyumsuz sütunu boş, ham uyum oranı yüksek ve daralan nokta sayısı sıfır olan bir tablodur. Bu tabloyu yanlıştan ayıran tek şey, her uygulanamaz işaretinin yanında hangi ortam koşulunun o maddeyi anlamsız kıldığının yazılmasıdır. Ekranı olmayan bir makine sınanabilir bir gerekçedir; “kısıtlama işimizi zorlaştırıyor” bir bedel bildirimidir ve uyumsuz sütununa yazılır.
Özet
- Bir kılavuz maddesi bir sınıfa uygulandığında üç sonuç çıkar: uyumlu, uyumsuz, uygulanamaz. 104 kararın 51’i uyumlu, 42’si uyumsuz, 11’i bu ortamda uygulanamaz.
- İki uyum oranı aynı taban çizgiden iki ayrı sayı verir: toplayıcı makinede ham 50,0, uygulanabilir 61,9. Aradaki 11,9 puan tek bir yapılandırma değişmeden, yalnız payda küçülerek kazanılır.
- Maddelerin tamamı uygulansa bile ham uyum yüzde 89,4’te kalır; 11 karar hiçbir zaman uyumlu olamaz. Ölçülebilir hedef yüzde yüz uyum değil, uygulanamayan maddelerin adıyla yazılmasıdır.
- Kılavuz maddesi tutunma noktasını kapatmaz, tanımını yazabilen özne kümesini daraltır: kapatılan nokta sıfır, daralan nokta 588. Üç dersin ölçüsü sırayla noktanın kendisi, açık kalma süresi ve yazabilen özne kümesidir.
- Yirmi altı maddenin 14’ü hiçbir noktaya dokunmaz ama uyum oranında ötekilerle aynı ağırlığı taşır; en güçlü madde ise dört sınıfta da zaten uyumludur, çünkü o iş ilk derste yapılmıştı.
- Bedelsiz uyumsuz maddeler 588 noktanın yalnız 18’ini daraltır; daraltmanın yüzde 97’si 48 elle adım karşılığında gelir. Uygulanmayan her karar bir istisna kalemidir ve 53 kalem sürekli bakım ister.
Sonraki Adım
Bu dersin en pahalı maddesi yazılım kaynağı kısıtlamasıydı: 96 nokta daraltıyor, 7 meşru işi elle adıma düşürüyor ve bir sınıfta zaten uyumlu. Maddenin arkasında tek satırla anılan bir karar var — uçta hangi yazılımın çalışabileceğine önceden karar verilmesi. Sonraki dersin konusu budur. Uygulama izin listesi bir yapılandırma maddesi değil, her çalıştırma denemesinde verilen bir karardır ve doğruluğu ancak gerçek bir çalıştırma kümesi üzerinde ölçülebilir: listenin kaç meşru kalemi engellediği, kaç kalemi elle onaya düşürdüğü ve imza tabanlı kuralla yol tabanlı kuralın birbirinden farklı olarak neyi kaçırdığı.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.