Async Ekspert
Polska wersja kursu online!
Twoja ścieżka do poznania asynchroniczności w .NET

Nie można teraz nabyć kursu. Zapisz się na wiadomości dla przyszłych Async Expertów!

Opis kursu

Kiedy środowisko .NET otrzymywało kolejne elementy związane z programowaniem asychronicznym i współbieżnym, odczucia i odbiór związany z nimi był mieszany. Z jednej strony otrzymywaliśmy niesamowite możliwości. Z drugiej powodowało to potrzebę nauczenia się i stosowania całkowicie nowych elementów języka jak i mechanizmów zawartych w samym .NET...

Szkoląc inżynierów na szkoleniach otwartych i zamkniętych, dyskutując na konferencjach, a także przeglądając dane ostatniej ankiety Dotnetos, w której wzięło udział niemal 500 osób z całego świata, zauważyliśmy że programowanie asynchroniczne i współbieżność jest dla Was bardzo ważne. Jest tematem, którego inżynierowie związani z .NET chcą się uczyć. Sami jesteśmy tego samego zdania. Jest dziś wręcz niewykonalne programowanie w .NET bez zrozumienia współbieżności i techniki async-await.

Aby pomóc Ci w zdobyciu tej wiedzy, zrozumieniu podstaw jak i zasad rządzących światem asynchroniczności i współbieżności, przygotowaliśmy kurs online Async Expert. Async Expert to 10 solidnych tygodni, w których przeprowadzimy Cię od podstaw asynchroniczności aż po synchronizację i kolekcje współbieżne. Aby umożliwić Ci weryfikację zdobytej wiedzy, przygotowaliśmy odpowiednio dobrane prace domowe. Dodatkowym bonusem są 3 spotkania LIVE z naszymi mentorami (Marc Gravel, Daniel Marbach, Steve Cleary), którzy pomogą odpowiedzieć na Twoje dodatkowe pytania. Całość dopełni komunikacja z nami poprzez platformę naszego kursu. Zapraszamy!


Nie można teraz nabyć kursu. Zapisz się na wiadomości dla przyszłych Async Expertów!

Plan kursu

1

Wstęp

  1. Omówienie kursu
  2. Podstawy BenchmarkDotNet
  3. Demo: sharplab.io
  4. Demo: ConcurrencyVisualizer
  5. Demo: Parallel Stacks/Tasks
  6. Zadanie domowe
2

Wątki

  1. Threads
  2. ThreadPool
  3. Demo: Używanie ThreadPool z różnymi API
  4. Demo: Używanie ThreadPool.BindHandle
  5. Zadanie domowe
3

Podstawy asynchroniczności

  1. Task API
  2. Podstawy async-await (oraz dema)
  3. Async eliding
  4. ValueTask
  5. Task API i async
  6. Zadanie domowe
4

Asynchroniczność 2

  1. Wykonanie, konteksty, scheduler
  2. Demo: własny SynchronizationContext
  3. Demo: Scheduler w Azure Durable Functions
  4. Sync vs async
  5. Demo: Używanie starych synchronicznych APIs
  6. Demo: Zróbmy deadlocka
  7. Fire and forget
  8. Demo: Logowanie asynchroniczne
  9. TaskCompletionSource
  10. Demo: Opakowanie API opartego o callbacki (Event-Based Asynchronous Pattern)
  11. Awaitables
  12. Demo: await await await false;
  13. Wartości lokalne
  14. Demo: StringBuilder i ThreadLocal
  15. Demo: Zakresy AsyncLocal
  16. Demo: Przekazywanie stanu
  17. Zadanie domowe
5

Asynchroniczność 3

  1. Agregacja wykonania Tasków
  2. Demo: oczekiwanie w kolejnosć wykonania
  3. Demo: Parallel.For z async vs Task.WhenAll
  4. Demo: testowanie z użyciem TaskCompletionSource oraz Task.WhenAny
  5. Anulowanie zadań z CancellationToken
  6. Demo: Implementacja timeoutu z WhenAny
  7. IAsyncDiposable
  8. IAsyncEnumerable
  9. Demo: gRPC oraz IAsyncEnumerable
  10. Demo: New SQL client
  11. Zadanie domowe
6

Współbieżność niskiego poziomu

  1. Hardware
  2. volatile
  3. Demo: Używanie epok w ConcurrentQueue
  4. Interlocked
  5. Demo: Prosta pula z Interlocked.Exchange
  6. Bariery i alignment
  7. Demo: Rezerwacja zakresu bufora w Aeron.NET z Interlocked.CompareExchange
  8. Zadanie domowe
7

Synchronizacja

  1. Wzajemne wykluczanie
  2. Demo: dekompilacja locka
  3. Demo: Nieblokujące użycie Monitor.TryEnter
  4. Demo: Limitowanie obiektów Task z SemaphoreSlim
  5. ReaderWriterLock
  6. Demo: Budowa własnej puli obiektów string z ReaderWriterLock
  7. Wait handles
  8. Demo: Reagowanie na zdarzenia z AutoResetEvent
  9. Asynchroniczne mechanizmy wykluczania
  10. Demo: Debugowanie deadlocka
  11. Zadanie domowe
8

Współbieżne struktury danych

  1. Podstawy
  2. BlockingCollection
  3. Demo: BlockingCollection z CancellationToken
  4. ConcurrentStack
  5. Demo: Cache obiektów z ConcurrentStack
  6. ConcurrentQueue
  7. Demo: Pula pamięci w Kestrel ASP.NET z ConcurrentQueue
  8. ConcurrentDictionary
  9. Demo: Efektywny cache z użyciem ConcurrentDictionary.GetOrAdd
  10. ConcurrentBag
  11. Zadanie domowe
9

Nowe współbieżne struktury danych

  1. Channels
  2. Demo: Zapisywanie metryk z Bounded Channels
  3. Pipelines
  4. Demo: Użycie Pipelines w StackExchange.Redis z wywłaszczaniem i ConcurrentQueue
  5. Zadanie domowe
10

Zagadnienia dodatkowe

  1. Demo: IValueTaskSource z Interlocked.CompareExchange
  2. Demo: IValueTaskSource bazujący na tablicy i tokenie
  3. ValueTask i używanie puli w .NET 5
  4. False Sharing
  5. F# async vs C# async
  6. Demo: Hostowanie serisów z IHostBuilder, IHostedService opartych o ConcurrentQueue
  7. Demo: Obserwacja thread contention w JetBrains Timeline
  8. PLINQ vs Parallel.ForEach oraz rozróżnienie CPU/IO
  9. Zadanie domowe
  10. Podsumowanie kursu

Co zyskuję?

🌶 Dostęp do 10-tygodniowego kursu Async Expert - dostęp do pełnego materiału z kursu Async Expert

🌶 Sesje z Mentorami - 3x sesja LIVE z międzynarodowymi Mentorami programu, specjalistami w zakresie programowania asynchronicznego. Sesje będą nagrywane i udostępnione do późniejszego wglądu.

🌶 Dostęp do platformy - dostęp do platformy, na którym poza nagraniami, możliwe będą dyskusje i kontakt z prowadzącym jak i innymi uczestnikami.

🌶 Dostęp do repozytorium - poza nagraniami, interakcją z innymi uczestnikami i spotkaniami LIVE z Mentorami programu, otrzymujesz dostęp do repozytorium z przykładami kodu.


Nie można teraz nabyć kursu. Zapisz się na wiadomości dla przyszłych Async Expertów!

Autorzy kursu

Szymon Kulec


Współzałożyciel Dotnetos, Microsoft MVP, architekt, speaker


Z zamiłowaniem łączę architekturę i oprogramowanie wysokiej wydajności. Chętnie dzielę się szeroką wiedzą na temat współczesnych architektur, systemów rozproszonych oraz zasad rządzących niskopoziomowym światem niezwykle wydajnych aplikacji.

Konrad Kokosa


Współzałożyciel Dotnetos, Microsoft MVP, autor, speaker


Jestem autorem książki Pro .NET Memory Management, a przy tym niezależnym konsultantem, blogerem, prelegentem i ćwierkaczem [patrz: Twitter]. Swoją pasją dzielę się jako trener w obszarze .NET, specjalizując się m.in. wydajności i diagnostyki aplikacji.

Łukasz Pyrzyk


Współzałożyciel Dotnetos, Microsoft MVP, autor, speaker


Jestem software developerem zainteresowanym tematami wydajności, mikroserwisami oraz optymalizacjami. Do tego prelegentem (bardziej niż blogerem) i aktywnym użytkownikiem Twittera.

Mentorzy kursu

Marc Gravell


Microsoft MVP, Starszy główny developer oprogramowania w Stack Overflow


Pracował z Async'em w .NET na wielu obszarach i od samego początku: Async jest głównym komponentem i wątkiem w całej jego bibliotece. Przez swoje zaangażowanie, utrzymywanie Dapper'a, 'StackExchange.Redis' oraz 'protobuf-net' Marc pozostaje wieloletnim Microsoft MVP! Stack Overflow buduje od 10 lat skupiając się na jego wydajności, dostępie do danych i łączności w .NET!

Daniel Marbach


Microsoft MVP, Inżynier oprogramowania w Particular Software


Programowaniem asynchronicznym przekształca umysły i czasoprzestrzeń. Występował na wielu konferencjach i forach z tematem asynchronicznego programowania oraz rozwoju motywowanego jakością. Lubi podnosić ciężary, pić ciemno paloną kawę, bawić się z synem i kodować, dopóki nie wyłączy mu się (zaprogramowany) router.

Steve Cleary


Microsoft MVP, Autor "Concurrency in C# Cookbook”


Źródło odpowiedzi na pytania dotyczące Async’a na Stack Overflow. W wolnym czasie jest mężem, tatą… i programuje. Obecnie posługuje się C#/C++/JavaScript’em, ale pozostaje zainteresowany wieloma językami.


Nie można teraz nabyć kursu. Zapisz się na wiadomości dla przyszłych Async Expertów!

Pytania i odpowiedzi

🌶 Jaki język programowania będzie używany w przykładach?

Wszystkie przykłady jak i cała nasza praca będzie wykonywana w języku C#.

🌶 Jaka wersja .NET będzie używana w przykładach?

Będziemy bazowali na przykłady w wersji LTS .NET Core 3.1 z zaznaczeniem różnic względem .NET Framework

🌶 Kiedy rozpoczyna się program i jak długo trwa?

Kurs rozpoczynamy 15 czerwca 2020. Co tydzień otrzymujesz dostęp do kolejnego tygodnia - modułu. Nowy materiał dodawany jest co tydzień, aby Cię nie przytłoczyć i aby cała grupa przechodziła materiał w tym samym momencie.

🌶 W jakiej formie jest ten kurs?

Kurs jest w formie wideo. Nagrania zamieszczone są na platformie. Po podaniu loginu i hasła masz dostęp do swojego konta. Poza nagraniami platforma udostępnia też forum, dzięki któremu możesz porozumiewać się z prowadzącym i innymi uczestnikami. Linki, hasła i login zostaną podane na tydzień przed uruchomieniem kursu.

🌶 Jak długo będę miał dostęp do kursu?

Otrzymasz dożywotni dostęp do tej edycji kursu wraz z aktualizacjami.

🌶 Co, jeżeli nie jestem zadowolony z kursu?

Jeżeli uznasz, że kurs nie jest dla Ciebie otrzymasz zwrot pieniędzy. Masz na to 30 dni od daty zakupu. Po prostu napisz na [email protected], a zwrócimy Ci 100% pieniędzy.

🌶 Czy dostanę cały kurs od razu?

Nie. Dodajemy nowe materiały każdego tygodnia, aby Cię nie przytłoczyć i aby cała grupa przechodziła materiał w tym samym momencie.

🌶 Czy otrzymam fakturę?

Tak, za zakup otrzymasz fakturę VAT. Faktura zostanie wysłana w ciągu kilku dni na adres e-mail podany przy zamówieniu.

🌶 Jak mogę zapłacić za kurs?

Płatność odbywa się przez nas sklep. Dowolna forma płatności wspierana przez sklep jest dla nas ok.

🌶 Czy mogę zapłacić później, na raty, itp.?

Nie. Jeżeli nie posiadasz środków w tym momencie, dołączenie później będzie możliwe, ale kurs będzie kosztował więcej.

🌶 Ile osób może korzystać z jednego konta podczas kursu?

Z jednego konta, tworzonego na podstawie adresu e-mail podanego podczas zakupu kursu może korzystać jedna osoba. Jeśli jesteś zainteresowany zakupem większej ilości dostępów, napisz do nas na adres [email protected]

🌶 Co jeżeli mam z czymś problem lub coś jest niejasne?

Napisz do mnie na adres e-mail: [email protected]

Podziel się!

Jeżeli uważasz, że Async Expert to świetna dawka wiedzy, podziel się ze znajomymi. Wystarczy, że użyjesz jednego z przycisków poniżej!
Dziękujemy!