Асінхроннае праграмаванне (поўны курс)

Асінхроннае праграмаванне (поўны курс)

Асінхроннае праграмаванне за апошні час стала не меней развітым кірункам, чым класічнае раўналежнае праграмаванне, а ў міры JavaSript, як у браўзэрах, так і ў Node.js, разуменне яго прыёмаў заняло адно з цэнтральных месцаў у фармаванні светапогляду распрацоўнікаў. Прапаную вашай увазе цэласны і найболей поўны курс з тлумачэннем усіх шырока распаўсюджаных метадаў асінхроннага праграмавання, адаптараў паміж імі і дапаможных праёмаў. Цяпер ён складаецца з 23 лекцый, 3 дакладаў і 28 рэпазітароў з мноствам прыкладаў кода на github. Усяго каля 17 гадзін відэа: спасылка на плэйліст.

Тлумачэнні да схемы

На схеме (вышэй) паказаны сувязі паміж рознымі спосабамі працы з асінхроннасцю. Каляровыя блокі адносяцца да асінхроннага праграмавання, а ч/б паказаны метады паралельнага праграмавання (семафоры, мьютэксы, бар'еры і г.д.) і сеткі Пятры, якія, як і асінхроннае праграмаванне і мадэль акцёраў, з'яўляюцца рознымі падыходамі да рэалізацыі паралельных вылічэнняў (яны дадзены на схеме толькі каб дакладней вызначыць месца асінхроннага праграмавання). Мадэль акцёраў звязана з асінхронным праграмаваннем таму, што рэалізацыя акцёраў без шматструменнасці таксама мае права на існаванне і служыць для структуравання асінхроннага кода. Пункцірнымі лініямі падзеі і канкурэнтная чарга звязаныя з колбекамі таму, што гэтыя абстракцыі грунтуюцца на колбеках, але ўсё ж фармуюць якасна новыя падыходы.

Тэмы лекцый

1. Асінхроннае праграмаванне (агляд)
2. Таймеры, таймаўты і EventEmitter
3. Асінхроннае праграмаванне на callback`ах
4. Неблакавальнае асінхроннае ітэраванне
5. Асінхроннасць з бібліятэкай async.js
6. Асінхроннасць на промісах
7. Асінхронныя функцыі і апрацоўка памылак
8. Асінхронныя адаптары: promisify, callbackify, asyncify
9. Асінхронныя калектары дадзеных
10. Неапрацаваныя памылкі ў промісах
11. Праблема асінхроннага стектрэйса
12. Генератары і асінхронныя генератары
13. Ітэратары і асінхронныя ітэратары
14. Адмена асінхронных аперацый
15. Асінхронная кампазіцыя функцый
16. Thenable і легкаважны await
17. Канкурэнтная асінхронная чарга
18. Патэрн адкрыты канструктар (Revealing Constructor)
19. Future: Асінхроннасць на ф'ючарах без стану
20. Deferred: Асінхроннасць на дыферах са станам
21. Мадэль акцёраў (Actor Model)
22. Патэрн Назіральнік (Observer + Observable)
23. Асінхроннасць на RxJS і патокі падзей

Пад кожным відэа ёсць спасылкі на рэпазітары з прыкладамі кода, якія разбіраюцца ў відэа. Я пастараўся паказаць, што не трэба зводзіць усё да адной абстракцыі асінхроннасці. Універсальнага падыходу да асінхроннасці не існуе, а для кожнага выпадку можна падабраць тыя метады, якія дазволяць пісаць код больш натуральна для гэтай канкрэтнай задачы. Вядома ж, гэты курс будуць дапаўняцца і я прашу ўсіх прапаноўваць новыя тэмы і кантрыб'юціць у прыклады кода. Асноўная задача курса - гэта паказаць як будаваць абстракцыі асінхроннасці знутры, а не проста навучыць імі карыстацца. Практычна ўсе абстракцыі не бяруцца з бібліятэк, а дадзены ў самай простай іх рэалізацыі і пакрокава разабрана іх работа.

Толькі зарэгістраваныя карыстачы могуць удзельнічаць у апытанні. Увайдзіце, Калі ласка.

Ваша стаўленне да курса?

  • Пагляджу ўвесь курс

  • Пагляджу выбарачна

  • Мне хапае аднаго падыходу

  • Буду кантрыб'юціць у курс

  • Не цікаўлюся асінхроннасцю

Прагаласавалі 8 карыстальнікаў. Устрымаўся 1 карыстач.

Крыніца: habr.com

Дадаць каментар