
Pemrograman asinkron baru-baru ini menjadi tidak kurang dikembangkan daripada pemrograman paralel klasik, dan di dunia JavaScript, baik di browser maupun di Node.js, pemahaman tentang tekniknya telah mengambil salah satu tempat sentral dalam membentuk pandangan dunia pengembang. Saya membawa Anda pada kursus holistik dan paling komprehensif dengan penjelasan tentang semua metode pemrograman asinkron yang tersebar luas, adaptor di antara mereka dan bukaan tambahan. Sekarang terdiri dari 23 kuliah, 3 laporan dan 28 repositori dengan banyak kode sampel di github. Hanya sekitar 17 jam video: tautan ke daftar putar .
Penjelasan untuk skema
Diagram (di atas) menunjukkan hubungan antara berbagai cara bekerja dengan sinkronisasi. Blok berwarna mengacu pada pemrograman asinkron, sementara b / w menunjukkan metode pemrograman paralel (semaphores, mutex, barriers, dll.) Dan petri nets, yang, seperti pemrograman asinkron dan model aktor, merupakan pendekatan yang berbeda untuk implementasi komputasi paralel (mereka diberikan dalam diagram hanya untuk lebih akurat menentukan lokasi pemrograman asinkron). Model aktor dikaitkan dengan pemrograman asinkron karena implementasi aktor tanpa multithreading juga memiliki hak untuk ada dan berfungsi untuk menyusun kode asinkron. Garis putus-putus peristiwa dan antrian kompetitif dikaitkan dengan callback karena abstraksi ini didasarkan pada callback, tetapi tetap membentuk pendekatan baru yang kualitatif.
Topik kuliah
1. pemrograman Asynchronous (ikhtisar)
2. Pengatur Waktu, Timeout, dan EventEmitter
3. Pemrograman asinkron pada panggilan balik
4. iterasi asinkron Non-blocking
5. Asynchrony dengan perpustakaan async.js
6. Asinkron promosi
7. Fungsi asinkron dan penanganan kesalahan
8. Asynchronous adapter: promisify, callbackify, asyncify
9. Pengumpul data tidak sinkron
10. Kesalahan janji yang belum diproses
11. Masalah stackrace asinkron
12. Generator dan generator asinkron
13. Iterator dan iterator asinkron
14. Pembatalan operasi asinkron
15. Komposisi fungsi yang tidak sinkron
16. Menunggu dan ringan menunggu
17. Antrian asinkron yang kompetitif
18. Mengungkap Pola Konstruktor
19. Masa Depan: Asynchrony pada futures stateless
20. Ditangguhkan: Asynchrony on defers state
21. Model Aktor
22. Pola Pengamat (Pengamat + Dapat Diamati)
23. Asynchrony pada RxJS dan event stream
Di bawah setiap video, ada tautan ke repositori dengan contoh kode yang memahami video. Saya mencoba menunjukkan bahwa tidak perlu mengurangi semuanya menjadi satu abstraksi asinkron. Pendekatan universal untuk asinkron tidak ada, dan untuk setiap kasus, Anda dapat memilih metode yang memungkinkan Anda untuk menulis kode secara lebih alami untuk tugas khusus ini. Tentu saja, kursus ini akan ditambah dan saya meminta semua orang untuk menyarankan topik baru dan berkontribusi pada contoh kode. Tujuan utama dari kursus ini adalah untuk menunjukkan bagaimana membangun abstraksi asinkron dari dalam, dan bukan hanya untuk mengajarkan cara menggunakannya. Hampir semua abstraksi tidak diambil dari perpustakaan, tetapi diberikan dalam implementasinya yang paling sederhana dan pekerjaan mereka diurutkan secara bertahap.