Tốt nhất 2018 trong Tech Talks

Trong hai năm qua, I váve đã xuất bản một danh sách các cuộc thảo luận công nghệ yêu thích của tôi từ năm trước (ở đây là phiên bản 2016 của bài đăng này và ở đây là phiên bản 2017).

Danh sách này không có nghĩa là toàn diện và tôi chắc chắn có nhiều cuộc đàm phán công nghệ từ năm 2018 mà tôi sẽ chỉ khám phá nhiều sau đó. Nhưng trong số các cuộc nói chuyện tôi đã tham dự hoặc theo dõi, đây là một số cuộc nói chuyện hay nhất (không theo thứ tự cụ thể nào).

  1. Tương lai của bộ vi xử lý, Sophie Wilson

Sophie Wilson, người tiên phong nổi tiếng của chip ARM ban đầu, dường như giữ niềm tin rằng Moore Moore Law sắp kết thúc (cùng với một số thứ khác được liệt kê sau trong bài này). Đây là một cuộc nói chuyện phi thường từ JuliaCon đi vào lịch sử, sự tiến hóa và tương lai của bộ vi xử lý.

Video

2. Bướm Bão bão: Gỡ lỗi các hệ thống hoạt động bệnh lý, Bryan Cantrill

Hai trong số các cuộc đàm phán đã lọt vào danh sách năm trước của tôi là Zebras và gỡ lỗi dưới lửa: Giữ đầu bạn khi các hệ thống mất trí. Đây là một cuộc nói chuyện trong một tĩnh mạch tương tự và được thực hiện với sự tinh tế của Cantrillian, vim và sức sống mà chúng tôi đã phát triển để mong đợi. Phần mềm được xây dựng như một chồng trừu tượng, với các vấn đề dường như nhỏ trong một lớp (những con bướm) có khả năng chuyển thành các vấn đề hiệu suất bệnh lý hệ thống trong một lớp khác (cơn bão). Với một cơn bão như vậy, làm thế nào để tìm thấy những con bướm?

Video slide

3. Đóng vòng lặp và tư duy mở: Cách kiểm soát các hệ thống, lớn và nhỏ, Colm MacCarthaigh

Phải thừa nhận rằng tôi đã xem tất cả các cuộc đàm phán từ AWS re: Invent, nhưng trong số những cuộc trò chuyện tôi đã xem, đây có thể là cuộc nói chuyện yêu thích của tôi. Nó đưa ra một số nguyên tắc thiết kế để xây dựng các hệ thống có độ ổn định cao và đáng tin cậy (như máy bay điều khiển).

  1. Kiểm tra tất cả mọi thứ
  2. Xác thực mật mã
  3. Tế bào, Vỏ sò và Cấm độc
  4. Khớp nối không đồng bộ
  5. Vòng phản hồi đóng
  6. Đẩy nhỏ và kéo lớn (cho cấu hình)
  7. Tránh bắt đầu lạnh và Caches lạnh
  8. Van tiết lưu
  9. Đồng bằng
  10. Phương thức và công việc liên tục

Thật thú vị khi tìm hiểu làm thế nào một số mẫu chống và thiết kế không trực quan có thể, trên thực tế, giúp cải thiện tính ổn định của các hệ thống. Có lẽ phần thú vị nhất của cuộc nói chuyện là ý tưởng rằng các hệ thống điều khiển ổn định yêu cầu một vòng lặp PID PID - các thành phần phái sinh, tỷ lệ, tích phân và có thể nhìn vào thiết kế của hệ thống và phát hiện ra nếu thiếu một trong những thứ này là siêu cường. Đây là lần đầu tiên tôi nghe thấy về vòng lặp PID PID này; bài nói chuyện khuyến nghị cuốn sách Thiết kế hệ thống điều khiển phân tán để tìm hiểu thêm về cách các nguyên tắc của lý thuyết điều khiển có thể áp dụng cho kỹ thuật hệ thống phân tán.

Thật thú vị khi tìm hiểu hệ thống phân cấp hoặc ưu tiên tại AWS: bảo mật, độ bền, tính sẵn có, tốc độ.

Video slide

4. Thời kỳ hoàng kim cho kiến ​​trúc máy tính, David Patterson và John Hennessy

Đây là một cuộc nói chuyện tuyệt vời về lịch sử và sự phát triển của bộ vi xử lý, việc chuyển từ các máy CISC sang RISC sang kết thúc của Moore Moore Law và Dennard mở rộng cơ hội chưa từng có cho những tiến bộ trong không gian kiến ​​trúc cụ thể của miền. Kiến trúc cụ thể của miền Domain bao gồm cả những tiến bộ về phần cứng (bộ xử lý mạng thần kinh cho việc học máy như TPU, cho đến GPU NVIDIA NVIDIA đến FGPA) cùng với phần mềm dành riêng cho miền (như Swift cho TensorFlow). Buổi nói chuyện kết thúc với câu chuyện về sự khởi đầu và phát triển của RISC V ISA.

Đối với những người thích một bài viết bằng văn bản cho video, tháng này, Communications Communications của ACM có một bài viết của Hennessy và Patterson (tác giả của cuốn sách nổi tiếng Kiến trúc máy tính) về chủ đề này. Định luật Moore cho các bóng bán dẫn có thể đã kết thúc, nhưng dường như có sự tăng trưởng của Luật Moore Moore về số lượng các bài học về máy học được xuất bản trong những năm gần đây.

Video [Hennessy tại Stanford, ~ 1 giờ]

Video [Patterson tại Facebook Hội thảo @Scale Hội thảo ~ 30 phút]

5. Hành vi khách hàng an toàn, Ariel Goh

Điều này phải rõ ràng đối với các hệ thống phân phối cũ, nhưng nó đáng để nhắc lại rằng khách hàng là một phần quan trọng của hệ thống phân tán và do đó phải tham gia vào các nỗ lực phục hồi. Đây là một cuộc nói chuyện tuyệt vời từ SRECon Châu Á / Úc về các thực tiễn tốt nhất cho thiết kế máy khách để cải thiện khả năng phục hồi của toàn bộ hệ thống. Các kỹ thuật được đề xuất bao gồm các yêu cầu khách hàng bị xáo trộn, thêm tính ngẫu nhiên để tất cả các khách hàng không vô tình kết thúc việc đồng bộ hóa khi họ thực hiện yêu cầu, khi không thử lại, thử lại, thử lại với backoff theo cấp số nhân (và gotchas đồng thời), thử lại ngân sách lỗi (như ngân sách lỗi ), di chuyển một số điều khiển đến máy chủ và thiết lập vòng phản hồi giữa máy chủ và máy khách, điều chỉnh thích ứng trên máy khách và nhiều hơn nữa.

Video

6. Cách phục vụ và bảo vệ (với cách ly khách hàng), Frances Johnson

Đây là một cuộc nói chuyện tuyệt vời khác từ SRECon Châu Á / Úc về việc bảo vệ một dịch vụ như Google Maps (với rất nhiều khách hàng nội bộ và bên ngoài) khỏi quá tải. Cuộc nói chuyện liên quan đến các vấn đề như quá tải hệ thống (và các vấn đề liên quan như hạ lưu bị lãng quên bởi quá tải hệ thống), thất bại tầng, các cạm bẫy của hạn ngạch tĩnh, ưu và nhược điểm của việc thực hiện các kỹ thuật xuống cấp duyên dáng ở các lớp khác nhau (khách hàng, cạnh, frontend, phụ trợ).

Video

7. Lý thuyết hiệu suất ứng dụng, Kavya Joshi

Đây là một cuộc nói chuyện đáng kinh ngạc (như mọi khi) của Kavya từ QCon London về cách sử dụng các kỹ thuật mô hình hiệu suất để có thể trả lời các câu hỏi như tải hệ thống nào có thể hỗ trợ mà không làm giảm thời gian phản hồi và cách phát hiện các tắc nghẽn sử dụng hệ thống. Cuộc nói chuyện trước tiên đưa chúng ta đi qua một ví dụ điển hình của máy chủ web để trình bày cách phân tích hiệu suất trong các hệ thống mở của hệ thống, theo sau là một ví dụ về các hệ thống khép kín, và cả hai đều dựa vào các giả định khác nhau và yêu cầu các kỹ thuật khác nhau để phân tích.

Video slide

8. Amazon Aurora: Cân nhắc thiết kế cho các cơ sở dữ liệu quan hệ có nguồn gốc từ đám mây thông lượng cao, sailesh KRnamurthy

Đây là một cuộc thảo luận tuyệt đối từ Hội nghị Facebook @Scale về một số quyết định thiết kế và sự đánh đổi làm nền tảng cho Amazon Aurora, công cụ lưu trữ cung cấp nhiều dịch vụ cơ sở dữ liệu AWS phổ biến. Aurora được yêu cầu tự động mở rộng quy mô lên tới 64TB cho mỗi phiên bản cơ sở dữ liệu và cung cấp hiệu suất và tính khả dụng cao với tối đa 15 bản sao đọc có độ trễ thấp, phục hồi tại thời điểm, sao lưu liên tục lên S3 và sao chép qua ba Vùng sẵn có.

Có hai [1] [2] giấy trắng kèm theo được xuất bản bởi Amazon trên Aurora. Bài nói chuyện tham khảo nhiều điểm từ bài báo thứ hai nói riêng, với điểm chính là sự đồng thuận phân tán sẽ giết chết hiệu suất và trạng thái địa phương thực sự có thể là một điều tốt. Với việc sử dụng một bản ghi bất biến làm nguồn gốc của sự thật, Aurora tránh được sự đồng thuận phân tán cho các thay đổi thành viên bằng cách tận dụng một số giai đoạn nhất quán của vụ án với việc sử dụng các kỷ nguyên như một hình thức viết đại biểu và tránh đọc đại biểu. Nó rất thú vị trong thời đại mà các hệ thống giao dịch đang trở lại và Google Google giảng về lý do tại sao chúng ta nên chọn sự nhất quán mạnh mẽ, bất cứ khi nào có thể, Amazon chọn những sự đánh đổi khác nhau.

Video

9. Tương lai của lớp lưu trữ FoundationDB, Steve Atherton

Đây là một cuộc nói chuyện thú vị về tương lai của Lớp lưu trữ FoundationDB từ Hội nghị thượng đỉnh FoundationDB. FoundationDB là một kho lưu trữ giá trị khóa được phân phối, có trật tự, nhưng bản thân lớp lưu trữ không được phân phối và được truy cập bởi một quy trình từ một luồng duy nhất. Cuộc nói chuyện đi vào các yêu cầu của một công cụ lưu trữ mới, không yêu cầu (người viết đồng thời, độ trễ cam kết thấp), sau đó khám phá những ưu và nhược điểm của một số cấu trúc dữ liệu du jour (cây B +, cây LSM) và lý do đằng sau chọn Redwood phiên bản Cây B +.

Video

Một cuộc nói chuyện tuyệt vời khác từ Hội nghị thượng đỉnh FoundationDB là cuộc thảo luận về lớp tài liệu, video có thể được tìm thấy ở đây.

10. Kiểm thử tự động và tương lai của phát triển phần mềm, Will Wilson

Trước hết, Will có thể là một trong những diễn giả giỏi nhất mà tôi đã từng nói nói (bài nói trước của anh ấy về Hệ thống phân tán thử nghiệm với Mô phỏng xác định từ Strangeloop 2014 là một trong những mục yêu thích mọi thời đại của tôi).

Đây là một cuộc nói chuyện phi thường từ Hội nghị thượng đỉnh FoundationDB khai mạc, tạo ra một trường hợp khá hấp dẫn cho cách tiếp cận dựa trên AI để thử nghiệm. Bài nói chuyện xác định 3 vấn đề chính khi kiểm tra: tính mong manh (bài kiểm tra của bạn dựa vào các thuộc tính của hệ thống của bạn là ngẫu nhiên - đó không phải là vấn đề mà bạn nghĩ rằng bạn đang kiểm tra), thiếu tính toàn diện và không ổn định.

Cuộc nói chuyện lập luận rằng các bài kiểm tra là tuyệt vời để tăng hồi quy nhưng gần như hoàn toàn vô dụng để phát hiện những điều chưa biết. Cuộc nói chuyện tiếp tục coi tất cả các vấn đề đã nói ở trên là các triệu chứng, với vấn đề thực sự tiềm ẩn là việc kiểm tra vẫn hoàn toàn thủ công. Ngay cả thử nghiệm tự động, trực tiếp, chỉ có điều liên quan đến Jenkins khi chạy bộ thử nghiệm do con người tạo ra. Cuộc nói chuyện sau đó đặt ra giấc mơ về thử nghiệm tự trị là nhu cầu tạo ra các thử nghiệm tự động, bên cạnh việc thực hiện các thử nghiệm tự động.

Video

11. Thiết kế hệ thống phân tán với TLA +, Hillel Wayne

Đây là một cuộc nói chuyện tuyệt vời có thể truy cập từ CodeMesh về việc sử dụng đặc tả chính thức để thiết kế các hệ thống phân tán. Hãy nghĩ về nó như một lời giới thiệu nhẹ nhàng về TLA +. Báo giá bao gồm:

Cung cấp cho một hệ thống đủ thời gian và nó sẽ làm mọi thứ, kể cả thất bại.
Mã không phải là thiết kế. Mã không cho bạn thấy hệ thống của bạn hoạt động như thế nào. Nó chỉ là sự thực hiện của bạn; Nó không phải là thiết kế của bạn, nó không thể là thiết kế của bạn. Và nếu bạn nghĩ rằng bạn có thể thiết kế một hệ thống và hiểu một hệ thống chỉ bằng mã, tôi có một cây cầu để bán cho bạn, và tôi sẽ bán cho bạn hai lần, đồng thời.

Video

12. Những gì chúng ta đã sai: Bài học từ sự ra đời của các dịch vụ vi mô tại Google, Ben Sigelman

Đây là một cơn lốc nói về con đẻ của điện toán phân tán tại Google, chạm vào mọi thứ mà Google có quyền thực hành hoàn toàn nhưng có nhiều điểm tương đồng với những gì chúng ta biết là những dịch vụ micros micros của ngày nay. Cuộc nói chuyện nhấn mạnh rằng ngành công nghiệp rộng lớn thực sự làm một số điều tốt hơn so với cách Google thực hiện (như lưới dịch vụ), khi nào và tại sao mô phỏng các lựa chọn và thực hành công nghệ của Google không hoạt động tốt cho phần còn lại của chúng tôi và tại sao nó trở nên đặc biệt quan trọng đối với có thể trả lời một số loại câu hỏi trước khi áp dụng mô hình kiến ​​trúc du jour (chẳng hạn như máy chủ không có máy chủ).

Video slide

13. Hội thảo thiết kế xử lý log phân tán, Laura Nolan, Phillip Tischler, Salim Virji

Đây là một cuộc nói chuyện hoàn toàn đáng kinh ngạc về thực tiễn của việc thiết kế một hệ thống phân tán quy mô lớn, bao gồm cách tiếp cận tỷ lệ, cách đánh giá sự đánh đổi dọc theo các trục khác nhau cũng như hàng tấn tính toán của phong bì để biện minh cho mỗi quyết định.

Sổ làm việc SRE (có sẵn miễn phí trực tuyến) từ Google có cả một chương gọi là Thiết kế hệ thống lớn không trừu tượng dành riêng cho chủ đề này và tôi đã nghe rằng đây là cuộc phỏng vấn quan trọng trong toàn bộ vòng phỏng vấn Google SRE, vì đây là một cuộc phỏng vấn là thống kê nhiều khả năng để vượt qua một ứng cử viên theo sau các cuộc phỏng vấn mã hóa. Cá nhân, tôi nghĩ rằng điều này không liên quan đến SRE nhưng nên đọc cho mọi người xây dựng và vận hành hệ thống phân tán.

Thật không may, tôi đã có thể tìm thấy một video cho việc này.

Slide

14. Cân bằng tải ở Hyper Scale, Alan Halachmi và Colm MacCarthaigh

Đây là một cuộc nói chuyện thực sự hấp dẫn từ hội thảo FacebookSc Network @Scale về sự phát triển của cân bằng tải tại AWS. Nó làm sáng tỏ HyperPlane, một hệ thống làm nền tảng cho AWS, S3 Load Balancer, VPC NAT Gateway và PrivateLink, v.v. Tôi đặc biệt thích tìm hiểu về nguyên tắc SHOCK được đề xuất (Tự chữa bệnh hoặc Công việc liên tục), điều này cho thấy rằng khi bạn xây dựng một hệ thống, nó sẽ có khả năng phục hồi trước những cú sốc lớn. Hoặc đặt khác đi, nếu có gì đó thay đổi lớn, hệ thống sẽ có thể tiếp tục như bình thường. Buổi nói chuyện đề xuất rằng:

1. Nỗ lực và phục hồi liên tục từ thất bại là những trạng thái tự nhiên
2. Luôn hoạt động trong chế độ sửa chữa. Khi một nút thất bại, Hyperplane thực sự hoạt động ít hơn!
3. Khi thiết kế hệ thống quy mô lớn, chúng tôi không muốn chúng phức tạp. Chúng tôi muốn chúng đơn giản nhất có thể. Để kết thúc này, chúng tôi muốn có càng ít chế độ hoạt động càng tốt (ví dụ: Siêu phẳng không có chế độ thử lại. Nó cõng trên cơ chế thử lại bẩm sinh TCP TCP). Đóng cọc trên các chế độ hoạt động khác nhau dẫn đến sự bùng nổ phức tạp kết hợp dẫn đến hệ thống cực kỳ khó kiểm tra. Chúng tôi muốn một hệ thống phù hợp và luôn thực hiện theo cách chúng tôi mong đợi.
4. Buổi nói chuyện cũng giới thiệu ý tưởng về shuffle shuffle, một kỹ thuật giảm thiểu DDoS (trong đó cách ly là kỹ thuật giảm thiểu chính) mà hiện tại, triển khai rộng rãi trên nhiều dịch vụ AWS.

Video

15. Cô lập không có container, Tyler McMullen

Một trong những lĩnh vực tôi quan tâm là những gì tôi đã mô tả với bạn bè là phổ tính toán của máy tính - VM, microVM, VM lồng nhau, và các thùng chứa (và hương vị của các thùng chứa hộp cát như của Kata) và các máy chủ không có máy chủ như một dịch vụ). Tôi đặc biệt quan tâm đến phổ cô lập trên mạng, cung cấp dịch vụ này - từ cách ly mức quy trình nghiêm ngặt đến cách ly thông qua hộp cát như động cơ V8. Một số công nghệ đã xuất hiện trong những năm gần đây trong không gian ảo hóa như gVisor (một trình ảo hóa thực thi một tập hợp con API Linux trong không gian người dùng) cho Firecracker - một trình giám sát máy ảo được xây dựng để chạy khối lượng công việc nhẹ và không có máy chủ trong các máy ảo siêu nhỏ , được xây dựng dựa trên crosvm (Trình theo dõi máy ảo của Chrome OS). Một trong những phát triển hấp dẫn nhất trong không gian này là WebAssugging. Ban đầu được thiết kế làm mục tiêu cho mã gốc chạy trên trình duyệt, WASM hiện đang được các nhà cung cấp CDN tận dụng để chạy mã tùy ý mà không cần bất kỳ hình thức cách ly dựa trên quy trình nào. Mặc dù tôi vẫn nghĩ rằng ban giám khảo về việc liệu hình thức cô lập này có thực sự vượt qua được hay không, đây là một cuộc nói chuyện hấp dẫn từ Strangeloop về chính chủ đề này giải thích các tính năng của WASM thậm chí có thể làm được điều này.

Video

16. Cách thức hoạt động của trình gỡ lỗi C ++, Simon Brand

Tiêu đề là khá tự giải thích. Các cuộc thảo luận giải thích mọi thứ từ các nhị phân ELF là gì, các ký hiệu DRAWF, các cơ chế về cách các điểm dừng hoạt động, bước qua mã thực sự đòi hỏi gì, làm việc với các ứng dụng đa luồng trong trình gỡ lỗi và hơn thế nữa. Đây chắc chắn là một trong ba cuộc nói chuyện hàng đầu của tôi trong danh sách các cuộc đàm phán đáng kinh ngạc này.

Video

17. Triết lý thiết kế phần mềm, John Ousterhout

Cuốn sách Triết lý thiết kế phần mềm đã là cuốn sách kỹ thuật hay nhất tôi đọc năm 2018. Mỗi chương trong cuốn sách đều có giá trị bằng vàng, nhưng chương về các mô-đun sâu có lẽ là cuốn tôi trích dẫn nhiều nhất. Cuộc nói chuyện chạm đến một số ý tưởng chính và cờ đỏ được giới thiệu trong cuốn sách, nhưng nếu tôi là bạn, tôi sẽ chỉ mua cuốn sách và hoàn thành nó.

Sách video

18. Clangd: kiến ​​trúc của một máy chủ ngôn ngữ C ++ có thể mở rộng, Ilya Biryukov

Một trong những phát triển thú vị nhất của Microsoft trong những năm gần đây là Giao thức máy chủ ngôn ngữ. Bản phát hành 5.0 của trình biên dịch clang đã giới thiệu triển khai Clangd, LLVM, cho Giao thức máy chủ ngôn ngữ. Clangd là một triển khai của Giao thức máy chủ ngôn ngữ, để cung cấp các tính năng như hoàn thành mã, sửa lỗi, định nghĩa goto, đổi tên, v.v. cho các máy khách như trình soạn thảo nguồn C / C ++. Đây là một bài nói hay từ CPPCon đã chạm đến một số hạn chế của libclang và giải thích các động lực đằng sau sự phát triển của Clangd cũng như kiến ​​trúc chung của nó.

19. Đại diện Coroutine và ABI trong LLVM, John McCall

Các coroutines trong LLVM lần đầu tiên được thêm vào bởi Microsoft xông Gor Nishanov và được thiết kế xoay quanh nhu cầu của C ++ coroutines TS. Đây là một cuộc nói chuyện đáng kinh ngạc từ Cuộc họp của Nhà phát triển LLVM đi vào một số ưu và nhược điểm của các cân nhắc triển khai khác nhau, chẳng hạn như kiểm soát nhượng (chuyển ngữ cảnh, tách coroutine với chức năng nối lại chia sẻ và chức năng nối lại năng suất), để lưu trữ trạng thái cục bộ (coroutines , phân bổ phụ, sống thử ngăn xếp) để thu được dữ liệu, cũng như những thách thức trong việc tạo mã cho các tính năng ngôn ngữ được cung cấp bởi các coroutine như máy phát điện. Cuộc nói chuyện sau đó đề cập đến một số chi tiết về một loại hạ thấp khác gọi là hương trả lại tiếp tục hương vị cho ngôn ngữ lập trình Swift, trong đó một số tối ưu hóa xảy ra ở lớp Swift Swift và không trực tiếp ở cấp độ LLVM.

Video

PS: Tất cả các cuộc thảo luận từ Cuộc họp Nhà phát triển LLVM đều mang tính giáo dục sâu sắc. Tôi chỉ xem một cuộc nói chuyện này, nhưng tôi chắc chắn tôi cũng vui vẻ giới thiệu tất cả những người khác, một khi tôi đi xung quanh để xem họ.

20. Phát triển cơ sở hạ tầng Kotlin / bản địa với LLVM / Clang, Nikolay Igotti

Kotlin Native là một sự phát triển siêu thú vị trong những năm gần đây, cho phép mã Kotlin được biên dịch thành các nhị phân nền tảng (ELF, Mach-O, WASM, v.v.), do đó, nó có thể được chạy một cách tự nhiên ngoài việc có thể chạy bên trong JVM. Đây là một cuộc nói chuyện thực sự tốt từ Cuộc họp của Nhà phát triển LLVM châu Âu về cơ chế của Kotlin / Native, bao gồm một số thách thức trong việc thực hiện quản lý bộ nhớ bên ngoài JVM, xử lý các trường hợp ngoại lệ và chuyển sang WASM (không có thời gian chạy, không cấp phát bộ nhớ, không có trường hợp ngoại lệ, v.v.), cũng như một số vấn đề chung gặp phải với LLVM (codegen chậm và liên kết, thiếu API plugin LLDB công cộng, v.v.).

Video slide

21. Async tươi mới với Kotlin, Roman

Phổ của lập trình không đồng bộ rất rộng và đa dạng. Đây là một cuộc nói chuyện tuyệt vời từ Goto Copenhagen về những thách thức làm nền tảng cho một số mô hình lập trình không đồng bộ này, đặc biệt là cách tiếp cận dựa trên cuộc gọi lại với Futures. Cuộc nói chuyện sau đó tiếp tục giải quyết cách mà Kotlin nhắm đến để giải quyết vấn đề này với các coroutines bằng cách cung cấp giao diện đồng bộ cho người dùng (thông qua hệ thống treo nguyên thủy) trong khi sử dụng máy liên tục và các điểm treo để xây dựng một máy trạng thái. Phần hấp dẫn nhất của cuộc nói chuyện là so sánh giữa cách tiếp cận của Kotlin và cách tiếp cận C # của async / await, với phần chính đằng sau các lựa chọn thiết kế của Kotlin tựa là sự đồng thời là khó và ergo phải rõ ràng. Cuộc nói chuyện kết thúc với việc làm thế nào thậm chí các mẫu CSP-esque có thể được thực hiện bằng cách sử dụng các nguyên thủy coroutine của Kotlin.

Video

22. Mô hình đồng thời bản địa của Kotlin, Nikolay Igotti

Kotlin không có nguyên thủy đồng thời ở cấp độ ngôn ngữ. Kotlin coroutines như được mô tả trong một cuộc nói chuyện ở trên là một cấu trúc dựa trên thư viện nhắm vào JVM. Phong cách JVM của Kotlin / Native eschews chia sẻ và khóa đối tượng bằng cách duy trì một bất biến rằng một đối tượng được sở hữu bởi một bối cảnh thực thi duy nhất hoặc nó là bất biến (có thể thay đổi XOR). Đây là một cuộc nói chuyện tuyệt vời từ KotlinConf, đi sâu vào cách thức đạt được điều này với bản đồ con đối tượng không được đề cập bên ngoài.

Hơn nữa, Kotlin như một ngôn ngữ không có tính bất biến được xây dựng trong hệ thống loại. Tính bất biến được thực hiện bằng khái niệm đóng băng, làm cho sự đóng cửa quá độ của tất cả các đối tượng có thể tiếp cận được từ một đối tượng nhất định không thể thay đổi. Ngoài ra, Kotlin / Native cũng cho phép chuyển quyền sở hữu các đối tượng qua các bối cảnh thực thi. Buổi nói chuyện giới thiệu các nguyên tắc đồng thời an toàn cơ bản được cung cấp bởi Kotlin / Native như đồ thị đối tượng có thể tháo rời, đồ thị, nguyên tử và phong cách diễn viên, các công cụ quản lý bộ nhớ dựa trên tính năng tham chiếu trong Kotlin / Native cũng như cách nó đạt được khả năng tương tác với người khác thời gian chạy

Video slide

23. Đã đến lúc viết một Hệ điều hành tại Rust, Bryan Cantrill

Iveve thường phải chịu một ai đó hoặc những người ngồi trên ghế khác đưa ra giả thuyết rằng Rust là ngôn ngữ được thiết kế để viết một hạt nhân trong hồi.

Vâng, phải không?

Đây là một cuộc nói chuyện tuyệt vời từ chuyên gia hàng đầu về chủ đề tại sao Rust đặc biệt phù hợp với phần mềm viết hệ thống, cũng như một số thách thức trong việc viết toàn bộ kernel trong Rust. Nếu bạn thích những chuyến đi trong lịch sử điện toán và thương hiệu nóng bỏng hiếm hoi đó thực sự được củng cố bởi tư duy được thông tin đầy đủ và lý luận, thì đây có thể là cuộc nói chuyện dành cho bạn.

Video slide

24. Ý của bạn là gì về chủ đề an toàn của luồng?, Geoffrey Romer

Đây là một cuộc nói chuyện tuyệt vời từ CPPCon nhằm mục đích phân biệt các thuật ngữ như Hồi giáo an toàn theo chủ đề hay các thuật ngữ chính xác hơn như cuộc đua dữ liệu của Google và điều kiện cuộc đua trên đường sắt thường hoạt động ở mức độ trừu tượng sai. Cuộc nói chuyện đề xuất sử dụng khái niệm về một cuộc đua API API và các bất biến có thể được xây dựng xung quanh một cuộc đua API API, tiếp theo là các khuyến nghị cho cả thư viện C ++ và các tác giả ứng dụng xung quanh

Video

25. Nhà nước đột biến an toàn nhanh, Ben Cohen

Khi nói đến trạng thái có thể thay đổi, điều quan trọng cần nhớ là nó đã chia sẻ trạng thái có thể thay đổi là xấu, không phải là trạng thái có thể thay đổi theo từng trạng thái. Đây là một cuộc nói chuyện tuyệt vời từ hội nghị Functional Swift về thời điểm và cách sử dụng trạng thái có thể thay đổi cục bộ mà không làm mất đi sự an toàn hoặc hiệu suất. Bài nói chuyện đi qua một số tính năng ngôn ngữ trong Swift cho vay một hương vị chức năng nhất định bằng cách ngăn chặn một số loại lỗi nhất định có thể xảy ra trong các chức năng đột biến.

Video

26. Dos và Donts của Xử lý lỗi, Joe Armstrong

Tôi rất vui khi được xem buổi nói chuyện này trực tiếp tại GOTO Copenhagen. Lực đẩy chính của cuộc nói chuyện này là nó không thể đạt được khả năng chịu lỗi khi sử dụng một máy duy nhất; tin nhắn đi qua vì thế trở nên không thể tránh khỏi. Xây dựng các hệ thống phân tán chịu lỗi giúp phát hiện và xử lý các lỗi. Triết lý xử lý lỗi được coi là khôn ngoan nhất là một phần mềm có thể được chứng minh là chính xác tại thời điểm biên dịch và khi phần mềm được coi là không chính xác và dự kiến ​​sẽ thất bại khi chạy. Tập hợp lớn của những điều nhỏ là không thể chứng minh chính xác; do đó, điều quan trọng là có thể xác định kernel lỗi lỗi, một tập hợp con của hệ thống phải chính xác. Nếu là một lập trình viên, bạn không biết làm gì, sụp đổ. Sau đó, phần mềm của bạn trở nên đơn giản hơn.

Bạn đã được tha thứ khi nghĩ về nó như một lời giải thích 45 phút cho sự tồn tại của ngôn ngữ lập trình Erlang.

Video

27. QUIC: Phát triển và triển khai thay thế TCP cho Web, Ian Swett và Jana Iyengar

Đây là một cuộc nói chuyện tuyệt vời từ NetDev, giới thiệu về giao thức QUIC được phát triển tại Google, các quyết định thiết kế (tại sao lại đặt nó lên trên UDP, phục hồi mất mát tốt hơn, kiểm soát tắc nghẽn linh hoạt) nó cũng như vô số cuộc phiêu lưu mở rộng QUIC trên Linux .

Video slide

28. Giới thiệu Network.framework: Một thay thế hiện đại cho Sockets, Josh Graessley, Tommy Pauly, Eric Kinnear

Ổ cắm có thể khó sử dụng khi thiết lập kết nối hoặc truyền dữ liệu (ngay cả với ổ cắm không chặn) hoặc tính di động.

Network.framework là một API giao thông hiện đại, có thể thay thế cho socket trên các nền tảng của Apple. Đây là một bước đi tuyệt vời từ WWDC 2018 đã đưa người ta đi qua giải phẫu của một cơ sở kết nối ban đầu đến vòng đời của một kết nối, cùng với vô số tối ưu hóa được thực hiện ở các giai đoạn khác nhau. Nó cũng có thể là bài nói chuyện được trình bày tốt nhất trong danh sách này.

Video

29. Kubernetes và con đường đến máy chủ, Kelsey Hightower

Đó là một cuộc nói chuyện của Kelsey Hightower.

Tôi có cần nói nữa không? Tôi nghĩ là không.

Video

30. Sử dụng Rust để phát triển trò chơi, Catherine West

Cuộc nói chuyện bắt đầu bằng cách nói chuyện Đây có lẽ là cuộc nói chuyện nhàm chán nhất

Nó không có.

Nó thực sự có thể là cuộc nói chuyện tốt nhất trong danh sách này.

Video