İçeriğe geç
academia.sh

Kurs Orta

Trait'ler, Genellikler ve Hata Yönetimi

Yayın Güncelleme

Bu kursun sonunda

Kursa başla

01

Trait ve Genellikler

Bir davranış sözleşmesinin tipten bağımsız tanımlanması, genel kodun gereksinimini sınırla bildirmesi, sözleşmenin kendi içinde bir tip taşıması, çağrının derleme zamanında mı koşumda mı çözüleceğinin seçilmesi, yazılmayan gövdelerin türetilerek üretilmesi, ve işleçlerin sözleşme üzerinden davranış kazanması.

  1. 01 Trait Tanımı ve Gerçekleştirimi Bir trait, tipten bağımsız bir davranış sözleşmesi kurar ve varsayılan bir gövde taşıyabilir; on altı gövdelik bir ölçüm çekirdeği koşturulduğunda bu varsayılan gövdenin bir tip için dört kez, onu yeniden yazan bir tip için sıfır kez koştuğu görülür — kurs boyunca sorulacak soru budur: kaynakta yazdığın bu gövde kaç kez koştu?
  2. 02 Trait Sınırları Bir genel fonksiyonun tip parametresine bir trait sınırı koymak, kaynağa hiç adım eklemez — aynı gövde sınırlı ve sınırsız iki biçimde yazılıp koşturulduğunda ikisi de birebir aynı sayıyı verir; sınırın bedeli koşum defterine değil derlemeye yazılır ve bu sayıyla ölçülemez.
  3. 03 İlişkili Tipler Bir trait, tip parametresi almadan kendi içinde bir tip taşıyabilir — ilişkili tip; aynı sözleşme ilişkili tiple ve genellik parametresiyle yazıldığında koşum sayısı birebir aynı çıkar, fark çağıranın imzada ne yazmak zorunda kaldığındadır ve ilişkili tip bir tip için yalnız tek bir gerçekleştirime izin veren bir kısıt taşır.
  4. 04 Nesne Güvenliği ve Dinamik Gönderim Bir trait sınırıyla yazılmış çağrı derleme zamanında, bir trait nesnesi (dyn) üzerinden yazılmış çağrı koşum sırasında çözülür; ölçüm çekirdeğinde ikisi de iki kez koşar — fark sayıda değil, çağrının nasıl bulunduğundadır ve bu, yalnız nesne güvenliği koşulunu sağlayan traitler için mümkündür.
  5. 05 Türetilen Trait'ler Bir öznitelik satırı, bir trait'i elle yazmadan gerçekleştirebilir — türetme; elle yazılan gövde koşum defterine bir sayaç çağrısı koyabilirken, türetilmiş gövde kaynakta hiç yazılı olmadığı için sayılamaz ve yalnız davranışıyla gözlemlenebilir; üstelik aynı türetme iki farklı veri düzeninde iki farklı sonuç verir.
  6. 06 İşleç Aşırı Yükleme Bir işlecin (+ gibi) her kullanımı, arkasında görünmeyen bir trait çağrısıdır; üç terimli bir toplam iki kez çağırır, beş terimli bir toplam dört kez — işlecin kısa sözdizimi çağrı sayısını değiştirmez, yalnız çağrının kaynakta görünür olup olmadığını değiştirir ve bu sayı ancak koşum defteriyle bilinebilir.

02

Hata Yönetimi

Yokluğun bir tiple ifade edilmesi, başarısızlığın dönüş değeri olarak taşınması, hata yayılımının tek bir işaretle kısaltılması, hataların kendi tiplerine dönüştürülüp zincirlenmesi, ve kurtarılamaz durumun tasarımda ayrı bir yere konması.

  1. 01 Yokluğun Tiple İfadesi Bir değerin bulunmayabileceği bir tipte taşınması ve o değeri karşılayacak yedek gövdenin — hazır mı tembel mi yazıldığına göre — değer zaten varken bile çalışıp çalışmadığının ölçülmesi.
  2. 02 Başarısızlığın Dönüş Değeri Bir işlemin başarı ve başarısızlık yollarının kaynakta ayrı gövdeler olarak yazılması ve aynı işlev art arda çağrıldığında toplam çağrı sayısı sabit kalırken bu iki kolun kaç kez çalıştığının ayrışması.
  3. 03 Hata Yayılımının Kısa Yazımı Bir hatayı denetleyip erken dönmeyi tek bir işarete indirgeyen kısa yazımın, aynı işi elle yazılan bir dallanmayla birebir aynı sayıları verdiğinin — kaynağı kısalttığının, koşumu değiştirmediğinin — ölçülmesi.
  4. 04 Özel Hata Tipleri Soru işaretinin, çağıran taraf hiçbir dönüşüm çağrısı yazmadan bir hata tipini başka bir hata tipine çevirdiğinin ve bu örtük dönüşümün — elle yazılan bir dönüşümün aksine — çağıran taraftaki bağlam bilgisini taşıyamadığının ölçülmesi.
  5. 05 Panik ve Kurtarılamaz Hatalar Bir başarısızlığın çağırana hiçbir seçim bırakmadan kalan gövdeyi durdurduğu bir tasarımın, aynı başarısızlığın bir dönüş değeriyle karşılandığı tasarımla yan yana modellenmesi ve iki tasarımın kalan gövde için verdiği sayıların karşılaştırılması.

03

Kapanışlar ve Yineleyiciler

Bir gövdenin çevresini yakalayıp sonraya bırakılması, dolaşmanın tek bir sözleşmeye indirgenmesi, zincirlenen dönüşümlerin tüketilene dek beklemesi, ve veri biçimlerine dönüşümün alan başına koşan gövdelerle yapılması.

  1. 01 Kapanışlar Bir kapanışın gövdesi tanımlandığı satırda değil çağrıldığı anda koşuyor: aynı iş doğrudan çağrı, gecikmeli çağrı ve hiç çağrılmayan kapanış biçiminde yazılıp koşum sayıları karşılaştırılıyor ve taşıma ile yakalamanın kaynaktaki değere ne yaptığı ölçülüyor.
  2. 02 Yineleyici Trait'i Bir kaynağın üzerinde dolaşmanın tek bir sözleşmeye — sırada bir sonraki değeri isteyen tek bir çağrıya — indirgendiği ve bu sözleşmenin yalnızca istendiğinde ilerlediği ölçülüyor: kurulan bir zincir hiç tüketilmezse gövdesi hiç koşmuyor.
  3. 03 Yineleyici Bağdaştırıcıları Aynı dört elemanlı kaynaktan başlayan iki zincirin kaynak metni neredeyse aynı, ama biri gövdeyi her elemanda, öbürü yalnız gerektiği kadar koşturuyor: sayıyı belirleyenin zincirin uzunluğu değil ucuna bağlanan tüketici olduğu ve zincirlenen bağdaştırıcıların gövdelerinin eleman başına sırayla koştuğu ölçülüyor.
  4. 04 Dizileştirme Bir yapının alanlarına elle yazılmış bir dönüşüm gövdesi uygulanırken bu gövdenin alan başına kaç kez koştuğunun, iç içe bir yapıda bu sayının nasıl çarpımsal büyüdüğünün ve ters yönde — metinden yapıya — bir alanın başarısızlığının sonraki alanların gövdesini hiç çalıştırmadığının ölçülmesi; kursun on beş dersinde ölçülen bütün gövdeler burada tek bir tabloda toplanıyor.

Bitirme sınavı

Trait'ler, Genellikler ve Hata Yönetimi — Bitirme Sınavı

Hazırlanıyor

Bu kursun soru bankası henüz tamamlanmadı. Yeterli soru eklendiğinde sınav burada otomatik olarak açılır.

Aramak için yazmaya başlayın.

↑↓ ↵ Esc gezin · aç · kapat