2018'in En İyisi Teknoloji Konuşmaları

Son iki yıldır, önceki yılın en sevdiğim teknik konuşmalarımın bir listesini yayınladım (işte bu yazının 2016 baskısı ve 2017 baskısı).

Bu liste hiçbir şekilde kapsamlı değildir ve 2018'den çok daha sonra keşfedeceğim çok sayıda teknik görüşme olduğundan eminim. Ancak katıldığım veya izlediğim görüşmeler arasında bunlar en iyilerdi (belli bir sıra ile değil).

  1. Mikroişlemcilerin Geleceği, Sophie Wilson

Orijinal ARM çipinin öncüsü olan Sophie Wilson, Moore Yasasının sona erdiğine (bu yazının ilerisinde listelenen bazı kişilerle birlikte) inancına sahip görünüyor. Bu, JuliaCon'un mikroişlemcilerin tarihçesine, evrimine ve geleceğine giden olağanüstü bir konuşmasıydı.

Video

2. Hurricane’in Butterfly: Patolojik olarak performans gösteren sistemlerde hata ayıklama, Bryan Cantrill

Geçen yılki listemdeki müzakerelerden ikisi Zebralar oldu ve ateş altında hata ayıklama yapıldı: Sistemler aklını kaybettiğinde kafanı tut. Bu, benzer bir damardaki bir konuşmaydı ve beklediğimiz gibi yetiştirdiğimiz özlü Cantrillian yetenek, vim ve güçle teslim edildi. Yazılım bir soyutlama yığını olarak inşa edilmiştir, bir katmanda görünüşte küçük sorunlar (kelebekler) diğerinde sistemik patolojik performans sorunlarına dönüşme potansiyeline sahip (kasırga). Böyle bir kasırga verildiğinde, kelebekler nasıl bulunur?

Slayt Video

3. Yakın Döngüler ve Açılış Zihinleri: Sistemlerin Kontrolü, Büyük ve Küçük, Colm MacCarthaigh

Kuşkusuz, AWS’den gelen tüm konuşmaları izlemedim: Invent, ama izlediğimlerin bu benim en sevdiğim konuşmasıydı. Oldukça kararlı ve güvenilir sistemler (örneğin kontrol uçakları) oluşturmak için bazı tasarım ilkelerini ortaya koymaktadır.

  1. Her şeyi sağlama
  2. Şifreleme Kimlik Doğrulama
  3. Hücreler, Kabuklar ve “Zehirli Lezzetler”
  4. Asenkron Kaplin
  5. Kapalı Geribildirim Döngüleri
  6. Küçük İtme ve Büyük Çekme (konfigürasyon için)
  7. Soğuk Başlamalardan ve Soğuk Önbelleklerden Kaçının
  8. Gaz kumandası
  9. deltalar
  10. Modalite ve Sürekli Çalışma

Bazı anti-paternlerin ve sezgisel olmayan tasarımların, aslında sistemlerin kararlılığını arttırmaya nasıl yardımcı olabileceğini öğrenmek çok etkileyiciydi. Muhtemelen konuşmanın en ilginç kısmı, kararlı kontrol sistemlerinin “PID döngüsü” - orantılı, integral, türevsel bileşenler gerektirdiği ve bunların herhangi birinin eksik olması durumunda sistemin tasarımına ve noktasına bakabilmesi fikriydi. süper güç. Bu “PID döngüsü” nü ilk duyduğumda; Konuşma, kontrol teorisi ilkelerinin dağıtılmış sistemler mühendisliğine nasıl uygulanabileceği hakkında daha fazla bilgi edinmek için Dağıtılmış Kontrol Sistemleri Tasarımı kitabını önerir.

AWS'de hiyerarşi veya öncelikleri öğrenmek de ilginçti: güvenlik, dayanıklılık, bulunabilirlik, hız.

Video Slaytları

4. Bilgisayar Mimarisi için Altın Çağ, David Patterson ve John Hennessy

Bu, mikroişlemcilerin tarihi ve evrimi, CISC'den RISC makinelerine geçiş, Moore’un Yasası ve Dennard ölçeklemesinin sonuna geçişi “etki alanına özgü mimari” alanındaki ilerlemeler için eşsiz fırsatlar sunan harika bir konuşmaydı. “Etki alanına özgü mimari”, etki alanına özgü yazılımla birlikte (Swift for TensorFlow gibi) donanımda (TPU'lar, NVIDIA’nın GPU’larına FGPA’lar gibi makine öğrenmesi için sinir ağı işlemcileri) her iki gelişmeyi de içerir. Konuşma, RISC V ISA'nın başlangıcı ve büyümesinin öyküsü ile sona eriyor.

Bir videoya yazılı bir makale tercih edenler için, bu ayki ACM'nin İletişimi, Hennessy ve Patterson'un (ünlü kitabın Bilgisayar Mimarisi kitabının yazarları) bu konuda yazdığı bir makaleye sahiptir. Moore’un transistörler yasası sona ermiş olabilir, ancak son yıllarda yayınlanan makine öğrenim kağıtlarının sayısında bir Moore Yasası esque büyümesi var gibi görünüyor.

Video [Stanford'da Hennessy, ~ 1 saat]

Video [Facebook'taki @Scale Konferansında Patterson ~ 30 dakika]

5. Güvenli Müşteri Davranışı, Ariel Goh

Bu, eski eller dağıtılmış sistemler için açık olmalıdır, ancak müşterilerin dağıtılmış bir sistemin önemli bir parçası olduğunu ve dolayısıyla esneklik çabalarına katılmaları gerektiğini yinelemeye değer. Bu, SRECon Asia / Australia’nın tüm sistemin esnekliğini artırmak için müşteri tasarımında en iyi uygulamalar hakkında yaptığı harika bir konuşma. Önerilen teknikler arasında, müşteri isteklerinin titizliği, rastgele eklenmesi, böylece tüm müşterilerin isteklerini yaptıklarında yanlışlıkla denemeye son vermemeleri, yeniden denememeleri, yeniden denemeleri denemeleri, yeniden denemeleri, katlanarak geri ödemeleri yeniden denemeleri (ve eşlik eden getcha'ları), “yeniden deneme bütçeleri” (hata bütçeleri gibi) ), kontrolün bir kısmını sunucuya taşımak ve sunucu ile istemciler arasında bir geri besleme döngüsü oluşturmak, istemcilere uyarlanabilir kısmak ve daha fazlası.

Video

6. Nasıl Hizmet Edilir ve Korunur (Müşteri İzolasyonuyla), Frances Johnson

Bu, SRECon Asia / Australia’nın Google Maps gibi bir hizmeti (dahili ve harici müşterilerin bolluğu olan) aşırı yüklenmeye karşı koruma konusunda bir başka mükemmel konuşma. Konuşma, sistemin aşırı yüklenmesi (ve aşağı akışlar gibi bir sistemin aşırı yüklenmesinden habersiz aşağı yönlü sorunlar gibi devam eden sorunlar), basamaklı başarısızlık, statik kota tuzakları, yığının farklı katmanlarında zarif parçalanma tekniklerinin uygulanmasının artıları ve eksileri gibi konulara değinmektedir. kenar, ön uç, arka uç).

Video

7. Uygulamalı Performans Teorisi, Kavya Joshi

Bu, QCon London'dan Kavya'nın (her zaman olduğu gibi) QCon London'dan inanılmaz bir konuşma olup, bir sistemin yanıt süresini azaltmadan hangi ek yükü destekleyebileceği ve sistemin kullanım darboğazlarını nasıl tespit edebileceği gibi soruları cevaplayabilmek için performans modelleme tekniklerinin nasıl kullanılacağı üzerine yapılan inanılmaz bir konuşmadır. Konuşma, önce “açık sistemler” ve ardından “kapalı sistemler” örneğinin nasıl performans gösterdiğini ve her ikisinin de farklı varsayımlara nasıl dayandığını ve analiz etmek için farklı teknikler gerektirdiğini göstermek için tipik bir web sunucusu örneğinden geçer.

Slayt Video

8. Amazon Aurora: Yüksek verimli bulut-yerel ilişkisel veritabanları için tasarım konuları, Sailesh Krishnamurthy

Bu, birçok popüler AWS veritabanı teklifini destekleyen depolama motoru Amazon Aurora'nın temelini oluşturan bazı tasarım kararları ve takaslar hakkında Facebook’un @Scale Konferansı’ndan kesinlikle harikaydı. Aurora'nın veritabanı örneği başına 64 TB'a kadar otomatik ölçeklendirdiği ve 15'e kadar düşük gecikmeli okuma kopyası, zaman içinde kurtarma, S3'e sürekli yedekleme ve üç Kullanılabilirlik Bölgesi'nde çoğaltma ile yüksek performans ve kullanılabilirlik sağladığı iddia ediliyor.

Amazon tarafından Aurora'da yayınlanan beyaz kitaplara eşlik eden iki [1] [2] yazı var. Konuşma, özellikle ikinci bildiriden birçok noktaya atıfta bulunur; ana paket dağıtılmış fikir birliğinin performansı düşürdüğü ve yerel durumun gerçekten iyi bir şey olabileceğidir. Değişmez bir kütüğün gerçeğin kaynağı olarak kullanılmasıyla, Aurora, bazı “tutarlılık vaatlarını” kullanarak, yazılı bir çekirdek olarak bir muhafız olarak çağların kullanılması ve yeter sayıların okutulmasından kaçınılmasıyla, üyelik değişikliklerinde dağıtılmış fikir birliğinden kaçınılır. İşlemsel sistemlerin geri dönüşü bir şey haline getirdiği ve Google’ın neden mümkünse farklı kıvamlar seçtiği konusunda güçlü tutarlılığı seçmemiz gerektiği konusunda vaaz verme çağında ilginç.

Video

9. FoundationDB Depolama Katmanının Geleceği, Steve Atherton

Bu FoundationDB Zirvesi'nden FoundationDB'nin Depolama Katmanı'nın geleceği hakkında heyecan verici bir konuşma oldu. FoundationDB dağıtılmış, sipariş edilmiş bir anahtar değer deposudur, ancak depolama katmanının kendisi dağıtılmamıştır ve tek bir iş parçacığından tek bir işlemle erişilir. Konuşma, yeni bir depolama motorunun gereksinimlerine, eşzamanlı olmayanlara (eşzamanlı yazarlar, düşük işlem gecikme süresi) gereksinimlerine giriyor, daha sonra çeşitli veri yapılarının (B + ağaçları, LSM ağaçları) veri yapılarının artılarını ve eksilerini ve Redwood versiyonunu seçmenin arkasındaki nedenleri araştırıyor B + ağacı.

Video

FoundationDB Zirvesi'nden bir başka harika konuşma da videosu burada bulunan belge katmanındaki konuşmaydı.

10. Özerk Test ve Yazılım Geliştirmenin Geleceği, Will Wilson

Her şeyden önce, Will muhtemelen şimdiye kadar konuşmayı izlediğim en iyi konuşmacılardan biri.

Bu, AI odaklı bir test için oldukça zorlayıcı bir durum sunan açılış Vakfı DB Zirvesi'nden gelen olağanüstü bir konuşma. Konuşma, testle ilgili 3 ana problemi tanımlar: kırılganlık (testiniz, sisteminizin tesadüfi özelliklerine dayanıyor - test ettiğinizi düşündüğünüz şeyler değil), yorulmama ve lapa lapa eksikliği.

Konuşma, testlerin gerilemeleri arttırmak için harika olduğunu, ancak bilinmeyenlerin bilinmeyenlerini tespit etmek için neredeyse tamamen yararsız olduğunu savunuyor. Konuşma, yukarıda bahsedilen tüm problemleri belirtiler olarak görmeye devam ediyor, asıl temel sorun ise testlerin hala tamamen manuel olmasıdır. “Otomatikleştirilmiş testler” bile, yalnızca insanlar tarafından elle yazılmış bir test paketi işleten Jenkins'i içerir. Daha sonra konuşma, otomatik testlerin yürütülmesine ek olarak, otomatik test oluşturma gereksinimi olarak özerk test rüyasını ortaya koymaktadır.

Video

11. TLA +, Hillel Wayne ile Dağıtık Sistemlerin Tasarlanması

Bu, dağıtılmış sistemlerin tasarımı için resmi şartnamelerin kullanımı üzerine CodeMesh'in müthiş erişilebilir bir konuşmasıydı. TLA + 'ya nazik bir giriş olarak düşünün. Teklif verilebilecekler:

Bir sisteme yeterli zaman verin, başarısızlık dahil her şeyi yapar.
Kod tasarım değil. Kod, sisteminizin nasıl çalıştığını göstermez. Bu sadece sizin uygulamanızdır; tasarımınız olması gerekmiyor, tasarımınız olamaz. Ve eğer bir sistemi tasarlayıp, sadece kodu olan bir sistemi anlayabileceğinizi düşünüyorsanız, size satacağım bir köprüm var ve onu aynı anda iki kez satacağım.

Video

12. Yanlış Neler Aldık: Google'da Mikro Hizmetlerin Doğuşundan Alınan Dersler, Ben Sigelman

Bu, Google’ın ana bilgisayarları hakkında bir kasırga konuşmasıydı; Google’ın bugünlerde “mikro servisler” olarak bildiklerimize tam anlamıyla ama güçlü paralelliklere sahip olan uygulamalar için doğru olan her şeye değiniyordu. Konuşma, geniş sektörün gerçekte Google’ın yaptığından (hizmet ağları gibi) ne kadar iyi şeyler yaptığını, Google’ın teknolojik tercihlerini ve uygulamalarını taklit etmenin neden ve neden bu kadar önemli hale geldiğini vurgulamaktadır. Jour mimari paradigmaları kabul etmeden önce bazı soru türlerine cevap verebilecek (örneğin “sunucusuz”).

Video Slaytları

13. Dağıtılmış Log-Processing Tasarım Çalıştayı, Laura Nolan, Phillip Tischler, Salim Virji

Bu, ölçeklendirmeye nasıl yaklaşılacağı, çeşitli eksenler boyunca gerçekleşen travmaların nasıl değerlendirileceği ve her bir kararı doğrulamak için zarf hesaplamalarının tonlarca tonu dahil olmak üzere, büyük ölçekli dağıtılmış bir sistemin inşa edilmesinin pratiklikleri üzerine kesinlikle inanılmaz bir konuşma.

Google’dan SRE Çalışma Kitabı (çevrimiçi olarak ücretsiz olarak erişilebilir), bu konuya adanan Özet Dışı Büyük Sistem Tasarımı olarak adlandırılan bir bölüme sahiptir ve Google SRE görüşme döngüsünün tamamında en önemli görüşme olduğunu duydum. İstatistiksel olarak, kodlama görüşmelerinin ardından bir adayı açma olasılığı daha yüksektir. Şahsen, bunun sadece SRE'lerle ilgili olmadığını, ancak dağıtık sistemler inşa eden ve işleten herkes için okuması gerektiğini düşünüyorum.

Ne yazık ki, bunun için bir video bulamadım.

Slaytlar

14. Hiper Skalada Yük Dengeleme, Alan Halachmi ve Colm MacCarthaigh

Bu, AWS’de yük dengelemenin evrimi hakkında Facebook’un Networking @Scale konferansından gerçekten etkileyici bir konuşma. AWS’nin S3 Yük Dengeleyicisini, VPC NAT Ağ Geçidini ve PrivateLink’i ve daha fazlasını temel alan bir sistem olan HyperPlane’e ışık tutuyor. Özellikle, bir sistem kurduğunuzda büyük şoklara bile dayanıklı olması gerektiğini öneren SHOCK prensibi hakkında (Kendi Kendini İyileştirme veya Sürekli Çalışma) öğrenmekten keyif aldım. Ya da farklı bir ifadeyle, “eğer büyük bir şey değişirse, sistem normal şekilde devam edebilmelidir”. Konuşma şunu önermektedir:

1. Sürekli çaba ve başarısızlıktan kurtarma doğal hallerdir.
2. Daima tamir modunda çalışın. Bir düğüm başarısız olduğunda, Hyperplane aslında daha az iş yapar!
3. Büyük ölçekli sistemler tasarlarken, karmaşık olmalarını istemeyiz. Mümkün olduğunca basit olmalarını istiyoruz. Bu amaçla, olabildiğince az çalışma modu istiyoruz (Örneğin, Hyperplane'in yeniden deneme modu yok. TCP’nin doğal yeniden deneme mekanizması üzerinde atlar). Farklı çalışma modlarının kazınması, sistemin test edilmesi inanılmaz derecede zor olmasıyla birlikte karmaşık bir patlamaya neden olur. Tutarlı ve her zaman beklediğimiz gibi davranan bir sistem istiyoruz.
4. Konuşma aynı zamanda birçok AWS hizmetinde yaygın olarak kullanılan bir DDoS azaltma tekniği (izolasyonun birincil azaltma tekniği olduğu) shuffle paylaşımı fikrini de ortaya koymaktadır.

Video

15. Konteynersiz İzolasyon, Tyler McMullen

İlgi alanlarımdan biri, arkadaşlara “hesaplama yelpazesi” - VM'ler, mikroVM'ler, iç içe VM'ler, konteynerler (ve Kata konteynerleri gibi “sandboxed konteynerlerin lezzetleri”) ve “sunucusuz” (veya işlevler) olarak tanımladığım şeydir. hizmet olarak). Özellikle, katı işlem seviyesinde yalıtımdan V8 gibi bir sanal alan üzerinden yalıtmaya kadar, bu teklifin “izolasyon spektrumuyla” özellikle ilgileniyorum. Son yıllarda sanallaştırma alanında, gVisor (kullanıcı alanında Linux çekirdeği API alt kümesini uygulayan bir hipervizör olan) gibi sanallaştırma alanında, mikro-VM'lerde hafif ve sunucusuz iş yüklerini çalıştırmak için inşa edilmiş bir sanal makine monitörü olan Firecracker gibi birçok teknoloji ortaya çıkmıştır. , kendisi crosvm (Chrome OS'nin Sanal Makine Monitörü) üzerine inşa edilmiştir. Bu alandaki en etkileyici gelişmelerden biri WebAsembly. Başlangıçta, yerel kodun tarayıcılarda çalıştırılması için bir hedef olarak tasarlanan WASM, artık CDN sağlayıcıları tarafından herhangi bir işlem tabanlı yalıtım olmadan rasgele kod çalıştırmak için kullanılıyor. Jürinin hala bu tecrit biçiminin gerçekten geçip geçmediği üzerine çıktığını düşünürken, Strangeloop’tan WASM’ın bu konuyu biraz çekingen kılan özelliklerini açıklayan bu konu hakkında büyüleyici bir konuşma oldu.

Video

16. C ++ Debuggers Nasıl Çalışır, Simon Brand

Başlık oldukça açıklayıcı. Görüşmelerde ELF ikili dosyalarının ne olduğu, DRAWF sembolleri, sınır değerlerin çalışma şekli, koddan geçme işleminin gerçekte ne olduğu, hata ayıklayıcıda çok iş parçacıklı uygulamalarla çalışma ve daha birçok şey anlatılmaktadır. Bu kesinlikle bu inanılmaz sohbetler listesindeki ilk üç konuşmamdan biri.

Video

17. Yazılım Tasarım Felsefesi, John Ousterhout

Bir Yazılım Tasarımı Felsefesi kitabı, 2018 yılında okuduğum en iyi teknik kitabı verdi. Kitaptaki her bir bölüm, altın olarak ağırlığına değer, ancak derin modüllerle ilgili bölüm, muhtemelen en çok bahsettiğim bölüm. Konuşma, kitapta tanıtılan bazı ana fikirlere ve kırmızı bayraklara değiniyor, ancak siz yerinde olsam, sadece kitabı satın alır ve onunla birlikte çalışırdım.

Video Kitabı

18. Clangd: ölçeklenebilir bir C ++ dil sunucusunun mimarisi, Ilya Biryukov

Son yıllarda Microsoft'un en ilginç gelişmelerinden biri Dil Sunucusu Protokolü olmuştur. Clang derleyicisinin 5.0 sürümü, LLVM’nin Dil Sunucu Protokolü'nün uygulaması olan Clangd’ı tanıttı. Clangd, C / C ++ kaynak editörleri gibi istemciler için kod tamamlama, düzeltme, genel tanım, yeniden adlandırma, vb. Gibi özellikler sağlamak için Dil Sunucusu Protokolünün bir uygulamasıdır. Bu, CPPCon'dan libclang'ın bazı sınırlamalarına değinen iyi bir konuşmaydı ve genel mimarisinin yanı sıra Clangd'ın gelişmesinin arkasındaki motivasyonları açıklıyor.

19. LLVM'de Coroutine Temsilleri ve ABI, John McCall

LLVM’deki koroinler ilk olarak Microsoft’un Gor Nishanov tarafından eklenmiştir ve C ++ koroutinleri TS’in ihtiyaçları doğrultusunda tasarlanmıştır. Bu, LLVM Geliştirici Toplantısı'ndan, ceding kontrolü (bağlam değiştirme, paylaşılan sürdürmeyle birlikte koroutin ve verim sürdürme fonksiyonları) gibi yerel uygulamaların (yığın halinde koroinler) depolanması gibi çeşitli uygulama hususlarının artıları ve eksilerinden bazılarına giren inanılmaz bir konuşmaydı. , veri tahsisi için yan tahsis, yığın birlikte yaşama) ve ayrıca jeneratörler gibi koroinler tarafından desteklenen dil özellikleri için kod oluşturma zorlukları. Daha sonra konuşma, Swift programlama dili için “geri dönen lezzet çeşidi” adı verilen farklı bir düşürme türünün ayrıntılarından bazılarına değinir;

Video

Not: LLVM Developer’ın Toplantısı’ndaki tüm görüşmeler derinlemesine eğiticidir. Bu konuşmayı yalnızca izledim, ancak eminim ki onları izlemeye gittikten sonra, diğerlerini de mutlu bir şekilde tavsiye edeceğim.

20. LLVM / Clang, Nikolay Igotti ile Kotlin / Yerel altyapının geliştirilmesi

Kotlin Native, son yıllarda Kotlin kodunun platform ikili dosyalarına (ELF, Mach-O, WASM vb.) Derlenmesini sağlayan son derece ilginç bir gelişmedir, bu nedenle bir JVM içinde çalışmanın yanı sıra yerel olarak da çalıştırılabilir. Bu, Avrupa LLVM Geliştirici Toplantısı'ndan JVM dışında bellek yönetimi uygulama, istisnalar hariç tutma ve WASM'ye aktarma (çalışma zamanı olmayan, bellek ayırıcı, istisnalar vb.) ve ayrıca LLVM ile karşılaşılan genel sorunların bazıları (yavaş kodgen ve bağlantı, açık LLDB eklenti API'si vb.).

Slayt Video

21. Kotlin, Roman Elizarov ile Taze Asenkron

Asenkron programlamanın spektrumu geniş ve çeşitlidir. Bu, Goto Kopenhag'ın bu asenkron programlamanın bazı paradigmalarını, özellikle Futures'la geri çağırma temelli yaklaşımını destekleyen zorluklarla ilgili harika bir konuşmasıydı. Konuşma, Kotlin'in bir durum makinesi oluşturmak için devamları ve askı noktalarını kullanarak kaputun altındayken kullanıcıya (senkronize ilkel aracılığıyla) eşzamanlı bir arayüz sağlayarak bu problemi coroutinler ile nasıl çözmeyi hedeflediğini ele almaya devam ediyor. Konuşmanın en etkileyici kısmı, Kotlin’in yaklaşımı ile eşzamansızlığın / beklemenin C # yaklaşımı arasındaki karşılaştırmaydı, Kotlin’in tasarım seçimlerinin ardındaki temel, eşzamanlılığın zor ve ergo olması gerektiği idi. Konuşma, CSP-esque modellerinin bile Kotlin’in korotin ilkelleri kullanılarak nasıl uygulanabileceği ile sona eriyor.

Video

22. Kotlin Yerel Uyuşmazlık Modeli, Nikolay Igotti

Kotlin'in dil seviyesinde eşzamanlılık ilkesi yoktur. Kotlin yukarıda belirtilen konuşmalarda koroinler, JVM'yi hedef alan kütüphane temelli bir yapıdır. Kotlin / Native, bir nesnenin tek bir yürütme bağlamına ait olduğunu veya değişmez olduğunu (paylaşılan XOR değişebilir) koruyarak, JVM stili paylaşılan nesne yığınını ve kilitlenmesini önler. Bu, “harici olarak adlandırılmayan nesne altyazılarıyla” nasıl başarılacağına dair KotlinConf'tan çok güzel bir konuşma oldu.

Ayrıca, Kotlin'in bir dil olarak tip sistemine dahil olan değişkenliği yoktur. İmkansızlık, tüm nesnelerin geçişli kapatılmasını belirli bir nesneden ulaşılabilir hale getirebilen kılan dondurma kavramıyla sağlanır. Ek olarak, Kotlin / Native ayrıca nesnelerin sahipliğini yürütme bağlamlarında devretmeyi de sağlar. Konuşma, Kotlin / Native tarafından “ayrılabilir nesne grafikleri”, atom ve aktör tarzı “çalışanlar” gibi temel güvenli eşzamanlılık ilkellerini, referans sayma esaslı bellek yönetiminin Kotlin / Native'de nasıl çalıştığını ve diğerleriyle birlikte çalışabilirliği nasıl sağladığını tanıtıyor çalıştırıcıları.

Slayt Video

23. Rust, Bryan Cantrill'de bir İşletim Sistemi yazma zamanı geldi mi?

Rust'un “bir çekirdek yazmak için tasarlanmış bir dil” olduğu teorisini sık sık bir başkasına ya da başka bir koltuğa maruz bıraktım.

Öyle mi?

Bu, Rust'un neden sistem yazılımı yazmak için özellikle uygun olduğu konusundaki en iyi uzmandan, hem de Rust'ta tüm bir çekirdeği yazma potansiyelinin bazı zorlukları hakkında harika bir konuşma. Bilgi işlem tarihinin yıllarını gezmeyi seviyorsanız ve bu bilgiyi, iyi düşünülmüş ve gerekçeli düşünmeyle desteklenmiş olan nadir sıcak ateşleme markalarını seviyorsanız, bu sizin için bir konuşma olabilir.

Slayt Video

24. “İplik güvenli” derken ne demek istiyorsunuz? Geoffrey Romer

Bu, “yanlış işleyen” gibi sık sık yanlış soyutlama seviyesinde işleyen “iş parçacığı güvenli” gibi terimleri ya da “veri yarışı” ve “yarış koşulu” gibi daha kesin terimleri açıklığa kavuşturmayı amaçlayan CPPCon'dan muhteşem bir konuşmadı. Konuşma “API yarışı” nı ve “API yarışı” etrafında inşa edilebilecek değişmezleri, ardından hem C ++ kütüphanesi hem de uygulama yazarları için önerilerde bulundu.

Video

25. Hızlı Güvenli Değişken Devlet, Ben Cohen

Değişken duruma gelince, kendi başına değiştirilemez durum değil, kötü olan paylaşılan değişken durum olduğunu hatırlamak önemlidir. Functional Swift konferansından, yerel değişken durumun güvenlik veya performanstan ödün vermeden ne zaman ve nasıl kullanılacağı hakkında harika bir konuşma yapıldı. Konuşma, Swift'de bazı mutasyon işlevlerinde olası hata kategorilerini önleyerek belirli bir fonksiyonel lezzet veren bazı dil özelliklerinden geçer.

Video

26. Hata İşleminin Dozu ve Donts, Joe Armstrong

Bu konuşmayı GOTO Kopenhag'da canlı izlemekten zevk duydum. Bu konuşmanın asıl amacı tek bir makine kullanarak hata toleransı elde etmenin imkansız olmasıdır; Böylece mesaj geçmesi kaçınılmaz hale gelir. Hataya dayanıklı dağıtık sistemler inşa etmek hataların tespit edilip üzerinde hareket etmesine neden olur. Hata işleme felsefesi, en ihtiyatlı olanı, derleme zamanında yazılımın doğru olarak kanıtlanabileceği ve yazılımın fiilen yanlış olduğu varsayıldığı ve çalışma zamanında başarısız olması beklenen bir düşüncedir. Küçük şeylerden oluşan büyük meclislerin doğru olduğunu kanıtlamak imkansızdır; bu nedenle, doğru olması gereken bir sistemin alt kümesi olan “hata çekirdeğini” tanımlayabilmek önemli hale gelir. Bir programcı olarak ne yapacağınızı bilmiyorsanız, çarpın. Ardından yazılımınız daha basit hale gelir.

Erlang programlama dilinin varlığına ilişkin 45 dakikalık bir açıklama olarak düşünmenizden affedilirsiniz.

Video

27. QUIC: Web, Ian Swett ve Jana Iyengar için TCP Değişimi Geliştirme ve Dağıtma

Bu, Google’da geliştirilen QUIC protokolüne, tasarım kararlarına (neden UDP’nin üstüne kat, neden daha iyi kayıp kurtarma, esnek tıkanıklık kontrolü) ve Linux’taki QUIC’i ölçeklendiren sayısız maceraya giriş niteliğindedir. .

Slayt Video

28. Ağ Tanıtımı: Evraklara Modern Bir Alternatif, Josh Graessley, Tommy Pauly, Eric Kinnear

Bağlantı kurma veya veri aktarımı (tıkanmasız soketler ile bile) veya mobilite söz konusu olduğunda soketleri kullanmak zor olabilir.

Network.framework, Apple platformlarındaki soketlere alternatif olan modern bir taşıma API'sidir. WWDC 2018'den, ilk bağlantı kuruluşunun anatomisi boyunca bir bağlantının yaşam döngüsüne doğru yürüdü ve farklı aşamalarda yapılan sayısız optimizasyonla bu harika bir yürüyüş oldu. Ayrıca, bu listedeki muhtemelen en iyi sunulan konuşmadır.

Video

29. Kubernetler ve Sunucusuz Yol, Kelsey Hightower

Bu Kelsey Hightower'ın bir konuşması.

Artık söylememe gerek var mı? Bence değil.

Video

30. Oyun Geliştirme için Pas Kullanımı, Catherine West

Konuşma, “Bu muhtemelen en sıkıcı konuşma…” diyerek başlar.

Değil.

Aslında bu listedeki en iyi konuşma olabilir.

Video