Ασύγχρονος προγραμματισμός (πλήρες μάθημα)

Ασύγχρονος προγραμματισμός (πλήρες μάθημα)

Ο ασύγχρονος προγραμματισμός έχει πρόσφατα αναπτυχθεί όχι λιγότερο από τον κλασικό παράλληλο προγραμματισμό, και στον κόσμο της JavaSript, τόσο στα προγράμματα περιήγησης όσο και στο Node.js, η κατανόηση των τεχνικών του έχει πάρει μια από τις κεντρικές θέσεις στη διαμόρφωση της κοσμοθεωρίας των προγραμματιστών. Φέρνω στην προσοχή σας ένα ολιστικό και πιο πλήρες μάθημα με επεξήγηση όλων των διαδεδομένων μεθόδων ασύγχρονου προγραμματισμού, προσαρμογών μεταξύ τους και βοηθητικών ανοιγμάτων. Αυτή τη στιγμή αποτελείται από 23 διαλέξεις, 3 αναφορές και 28 αποθετήρια με πολλά παραδείγματα κώδικα στο github. Σύνολο περίπου 17 ώρες βίντεο: σύνδεσμο προς τη λίστα αναπαραγωγής.

Επεξήγηση του καθεστώτος

Το διάγραμμα (παραπάνω) δείχνει τις συνδέσεις μεταξύ διαφορετικών τρόπων εργασίας με ασύγχρονο. Τα έγχρωμα μπλοκ αναφέρονται σε ασύγχρονο προγραμματισμό και το b/w δείχνει μεθόδους παράλληλου προγραμματισμού (σηματογράφοι, mutexes, εμπόδια, κ.λπ.) και δίκτυα Petri, τα οποία, όπως ο ασύγχρονος προγραμματισμός και το μοντέλο ηθοποιών, είναι διαφορετικές προσεγγίσεις για την υλοποίηση παράλληλων υπολογιστών (είναι δίνεται στο διάγραμμα μόνο για να προσδιοριστεί με μεγαλύτερη ακρίβεια η θέση του ασύγχρονου προγραμματισμού). Το μοντέλο ηθοποιού σχετίζεται με τον ασύγχρονο προγραμματισμό, επειδή η υλοποίηση των ηθοποιών χωρίς πολυνηματική σύνδεση έχει επίσης δικαίωμα ύπαρξης και χρησιμεύει στη δομή του ασύγχρονου κώδικα. Οι διακεκομμένες γραμμές συνδέουν συμβάντα και την ταυτόχρονη ουρά με επανάκληση επειδή αυτές οι αφαιρέσεις βασίζονται σε επανακλήσεις, αλλά εξακολουθούν να αποτελούν ποιοτικά νέες προσεγγίσεις.

Θέματα διάλεξης

1. Ασύγχρονος προγραμματισμός (επισκόπηση)
2. Χρονοδιακόπτες, timeouts και EventEmitter
3. Ασύγχρονος προγραμματισμός με χρήση επανακλήσεων
4. Μη αποκλειστική ασύγχρονη επανάληψη
5. Ασυγχρονισμός με τη βιβλιοθήκη async.js
6. Ασυγχρονισμός στις υποσχέσεις
7. Ασύγχρονες λειτουργίες και χειρισμός σφαλμάτων
8. Ασύγχρονοι προσαρμογείς: promisify, callbackify, asyncify
9. Ασύγχρονοι συλλέκτες δεδομένων
10. Ανεξέλεγκτα λάθη στις υποσχέσεις
11. Το πρόβλημα του ασύγχρονου stacktrace
12. Γεννήτριες και ασύγχρονες γεννήτριες
13. Επαναληπτικοί και ασύγχρονοι επαναλήπτες
14. Ακύρωση ασύγχρονων λειτουργιών
15. Σύνθεση ασύγχρονης συνάρτησης
16. Στη συνέχεια και ελαφρύ σε αναμονή
17. Ταυτόχρονη ασύγχρονη ουρά
18. Ανοιχτός κατασκευαστής μοτίβων (Revealing Constructor)
19. Μέλλον: Ασύγχρονος σε συμβόλαια μελλοντικής εκπλήρωσης ανιθαγενών
20. Deferred: Ασύγχρονος στα stateful διαφορικά
21. Ηθοποιός Μοντέλο
22. Παρατηρητής Μοτίβου (Παρατηρητής + Παρατηρήσιμος)
23. Ασυγχρονισμός σε ροές RxJS και συμβάντων

Κάτω από κάθε βίντεο υπάρχουν σύνδεσμοι προς αποθετήρια με παραδείγματα κώδικα που εξηγούνται στο βίντεο. Προσπάθησα να δείξω ότι δεν υπάρχει ανάγκη να ανάγονται τα πάντα σε μια αφαίρεση ασυγχρονισμού. Δεν υπάρχει καθολική προσέγγιση για τον ασύγχρονο και για κάθε περίπτωση μπορείτε να επιλέξετε εκείνες τις μεθόδους που θα σας επιτρέψουν να γράψετε κώδικα πιο φυσικά για αυτήν τη συγκεκριμένη εργασία. Φυσικά, αυτό το μάθημα θα συμπληρωθεί και ζητώ από όλους να προτείνουν νέα θέματα και να συνεισφέρουν παραδείγματα κώδικα. Ο κύριος στόχος του μαθήματος είναι να δείξει πώς να χτίζετε ασύγχρονες αφαιρέσεις εκ των έσω και όχι απλώς να διδάξετε πώς να τις χρησιμοποιείτε. Σχεδόν όλες οι αφαιρέσεις δεν λαμβάνονται από βιβλιοθήκες, αλλά δίνονται στην απλούστερη υλοποίησή τους και η δουλειά τους αναλύεται βήμα προς βήμα.

Μόνο εγγεγραμμένοι χρήστες μπορούν να συμμετάσχουν στην έρευνα. Συνδεθείτε, Σας παρακαλούμε.

Ποια είναι η γνώμη σας για το μάθημα;

  • Θα παρακολουθήσω όλη την πορεία

  • Θα κοιτάξω επιλεκτικά

  • Μια προσέγγιση μου αρκεί

  • Θα συνεισφέρω στο μάθημα

  • Δεν με ενδιαφέρει ο ασυγχρονισμός

Ψήφισαν 8 χρήστες. 1 χρήστης απείχε.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο