İçeriğe geç
academia.sh

Kurs Orta

Standart Kütüphane ve Ağ Uygulamaları

Bu kursun sonunda

Kursa başla

01

Ağ ve Veri Biçimleri

İstek işleyicilerinin ve ara katman kalıbının standart kitaplıkta kurulması, istemci tarafında zaman aşımı ve gövde kapatma sorumluluğu, yapı etiketleriyle alan adlarının karşıya taşınması, şablonların yalnız metin üretmesi, iki tarafın paylaştığı bir tarifle sözleşme temelli iletişim, ve uzun süreli bağlantılarda çerçevelemenin taşıdığı tek ortak bilgi.

  1. 01 HTTP Sunucusu Kursun açılış dersi. Bir isteğin taşıdığı yol, üstbilgi ve gövdenin üçünün de tip bilgisi taşımadığı `net/http/httptest` ile gerçek bağlantı noktası açmadan ölçülüyor; ara katman kalıbının bir işleyiciyi saran başka bir işleyici olduğu üç halkalı bir zincirle koşturuluyor. Sınırlayıcı ölçüm: içerik tipi üstbilgisi bir ipucudur, tip değil — yanlış bir ipucu sunucu tarafında hiçbir hata üretmiyor, hata yalnızca gövdeyi o ipucuna göre çözmeye çalışan tarafta ortaya çıkıyor.
  2. 02 HTTP İstemcisi Önceki ders sınırı alıcı taraftan ölçtü; bu ders aynı sınırı gönderen taraftan ölçüyor. Zaman aşımı bir süreyle değil, iptal edilmiş bir bağlamla kuruluyor. Bağlantının yeniden kullanılıp kullanılmadığı yanıt gövdesinin kapatılıp kapatılmadığına bağlı: gövde okunup kapatılınca sonraki istek aynı bağlantıyı kullanıyor, kapatılmayınca kullanmıyor. Sınırlayıcı ölçüm: yanıt gövdesi bir okuyucudur, bir değer değil — bir kez okunduktan sonra ikinci okuma boş dönüyor.
  3. 03 JSON Dizileştirme Kursun bağlayıcı sayısı burada üretiliyor: on üç sınır geçişinin 1'inde tip bilgisi korunuyor, 5'inde yeniden kuruluyor, 7'sinde kayboluyor. Bir yapının alan adlarını karşıya taşıyan tarif yapı etiketidir; aynı bayt dizisi tarifsiz bir kaba çözüldüğünde tamsayı `float64` olur, alıcıda karşılığı olmayan bir alan sessizce düşer ve hiçbir hata çıkmaz. Sınırlayıcı ölçüm: geri kuruldu görünmesi doğru kuruldu anlamına gelmiyor.
  4. 04 Şablonlar Aynı şablon metni iki farklı Go tipinden (bir tamsayı, bir ondalıklı sayı) geçirildiğinde bayt bayt aynı çıktıyı üretir; kaynaktaki tip bilgisi çıkışta tümüyle kayboluyor. Bir alan adı çıktıda yalnızca şablonun kendi metninde yazılmışsa görünür — tip sisteminden gelmez. Metin ve HTML şablonları aynı veriyi kaçırma bakımından farklı bayt dizilerine çevirir. Sınırlayıcı ölçüm: şablon alan adlarını çalışma zamanında arar, olmayan bir alan derlemede değil çalıştırmada belli olur, ve hata çıktının ortasında doğar.
  5. 05 Sözleşme Temelli Servis İletişimi İki bağımsız sürecin kaynağı aynı paylaşılan tariften (alan adı, alan tipi, JSON etiketi listesi) text/template ile üretiliyor ve ayrı ayrı derlenip çalıştırılıyor. Tarif ortakken üç alanın üçü de tipini koruyor — kursun on üç sınır geçişi arasında korunuyor sınıfına giren tek satır. Tarif ayrışınca (alıcı tarafın üreticisi güncel değilse) geçiş sessizce bozuluyor: üç alandan ikisi korunuyor, biri hiç hata vermeden kayboluyor.
  6. 06 Gerçek Zamanlı İletişim Uzun süreli bir bağlantı, gerçek bağlantı noktası açılmadan, io.Reader ve io.Writer'ı gerçekleştiren bir bayt arabelleğiyle modelleniyor. Sunucu üç mesajı art arda, aralarında bir istek beklemeden itiyor. Çerçevesiz bir akışta üç itme tek bir bayt dizisine karışıyor ve sabit boyutlu okumalar hiçbir mesajı doğru ayıramıyor (0/3); uzunluk ön ekiyle çerçevelenen akışta üçü de doğru geri ayrışıyor (3/3). Sınırlayıcı ölçüm: çerçeveleme mesajın nerede bittiğini veriyor, içindeki değerin tipini vermiyor.

02

Sistem ve Veri Erişimi

Okuyucu ve yazıcı soyutlamalarının bayt düzeyinde çalışması, varlıkların ikili dosyaya gömülmesiyle kaynağın derleme zamanında bağlanması, süre ve saat dilimi işlemlerinin metne dönüşürken kaybettiği, anahtar–değer temelli günlüğün alan adlarını taşıması, sürücü arayüzünün dar tip kümesi ve bağlantı havuzunun yaşam döngüsü, bayrak ayrıştırmanın dizgiden tip geri kurması.

  1. 01 Dosya ve Girdi/Çıktı Arayüzleri Dört ayrı kaynak (dosya, arabellek, dizgi ve daha önce ölçülen ağ gövdesi) aynı iki yöntemden — okuma ve yazma — geçirilir ve hiçbirinin sınırı aşarken tip bilgisi taşımadığı gösterilir. Sınırlayıcı ölçüm, küçük bir arabellekle okumanın veriyi ve dosya sonunu ayrı adımlarda döndürdüğünü ve bu ayrımı yönetmenin çağıranın işi olduğunu koşturarak ortaya koyuyor.
  2. 02 Gömülü Kaynaklar Bir kaynak dosyanın go:embed yönergesiyle üç ayrı Go tipine (dizgi, bayt dilimi, dosya sistemi) aynı içerikle bağlandığı ve bu içeriğin diskte duran dosyayla birebir eşleştiği ölçülür. Sınırlayıcı ölçüm, bir kez derlenmiş ikilinin kaynak dosya diskten silindikten sonra bile aynı içeriği ürettiğini koşturarak gösteriyor: bağ derleme zamanında kuruluyor, koşum zamanında dosyaya hiç ihtiyaç kalmıyor.
  3. 03 Zaman İşlemleri Bir anın metne dönüp geri gelmesi ölçülür: an kendisi Equal ile korunuyor, ama sayısal saat dilimi ofseti geri kurulsa bile bölgenin adı taşınmıyor. time.Duration'ın bir sayı değil kendi tipiyle taşınan bir değer olduğu gösterilir. Sınırlayıcı ölçüm, aynı anı gösteren iki değerin Equal ile eşit çıkarken == ve String() ile farklı çıktığını koşturarak ortaya koyuyor.
  4. 04 Yapılandırılmış Günlükleme Aynı olay iki biçimde günlüğe yazılır: düz metin ile anahtar-değer temelli günlük. Anahtar-değer biçiminin, alan sırası değişse bile alan adlarını taşıdığı ve düz metnin kaybettiği ayrıştırılabilirliği koruduğu ölçülür. Sınırlayıcı ölçüm, alan adlarının korunmasına rağmen tiplerin korunmadığını gösteriyor: bir tam sayı da metin olarak geliyor ve geri kurmak okuyan tarafın kendi tarifini gerektiriyor.
  5. 05 Veritabanı Erişimi Bir kukla sürücüyle beş sütunluk bir sorgu koşturulur: sürücünün dar tip kümesinden gelen değerlerin üçü, hedef değişkenin kendi Scan yöntemiyle özel bir Go tipine geri kurulur, ikisi zaten sürücünün doğal tipiyle örtüşür. Sınırlayıcı ölçüm, taramanın hedefin tipine baktığını ve uyumsuz bir hedefin çalışma zamanında hata verdiğini, bağlantı havuzu ölçümü ise kapatılmayan bir satır kümesinin havuzu tıkadığını koşturarak gösteriyor.
  6. 06 Komut Satırı Uygulamaları Kursun ve konunun son dersi. Bir bayrak ayrıştırıcısına elle verilen dizgi dizisinden tam sayı, mantıksal, süre ve dizgi tiplerinin geri kurulması; tanınmayan bir bayrağın ayrıştırmayı durdurduğu; alt komut yapısında her alt komutun kendi bayrak kümesini taşıdığı koşturularak ölçülüyor. Sınırlayıcı ölçüm: ayrıştırıcı beklenen tipi geri kurur, değerin anlamını değil — negatif bir adet hiçbir hata üretmeden geçiyor. Kurs kapanışında on iki dersin ölçtüğü sınır geçişleri tek bir tabloda toparlanıyor.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat