Μαθήματα: Προχωρημένα

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

Συγχρονισμός OTP

Είδαμε τις αφαιρέσεις της Elixir για το συγχρονισμό αλλά μερικές φορές χρειαζόμαστε μεγαλύτερο έλεγχο και για αυτό στρεφόμαστε στις συμπεριφορές OTP πάνω στις οποίες έχει χτιστεί η Elixir.

Σε αυτό το μάθημα θα εστιάσουμε στο σημαντικότερο κομμάτι: τους GenServers.

Επιτηρητές OTP

Οι Επιτηρητές είναι εξειδικευμένες διεργασίες με ένα σκοπό: την επισκόπηση άλλων διεργασιών. Αυτοί οι επιτηρητές μας επιτρέπουν να δημιουργούμε ανεκτικές στα σφάλματα εφαρμογές με το να επανεκινούν τις διεργασίες παιδιά όταν αποτυγχάνουν.

Η Κατανομή στο OTP

Μπορούμε να τρέξουμε τις εφαρμογές μας elixir σε ένα σύνολο διαφορετικών κόμβων που κατανέμονται σε ένα ή και πολλούς διακομιστές. Η Elixir μας επιτρέπει να επικοινωνούμε μεταξύ αυτών των κόμβων μέσω μερικών διαφορετικών μηχανισμών τους οποίους θα δούμε σε αυτό το μάθημα.

Μεταπρογραμματισμός

Ο Μεταπρογραμματισμός είναι η διαδικασία της χρήσης κώδικα που γράφει κώδικα. Στην Elixir αυτό μας δίνει τη δυνατότητα να επεκτείνουμε τη γλώσσα ώστε να καλύπτει τις ανάγκες μας και να αλλάζει τον κώδικά μας δυναμικά. Θα ξεκινήσουμε βλέποντας πως η Elixir παρουσιάζεται κάτω από το καπώ, πως να την αλλάξουμε, και τέλος πως να χρησιμοποιήσουμε αυτή τη γνώση για να την επεκτείνουμε.

Προειδοποίηση: ο Μεταπρογραμματισμός είναι δύσκολος και θα πρέπει να χρησιμοποιείται μόνο όταν είναι απολύτως απαραίτητος. Η υπερβολική χρήση είναι σχεδόν σίγουρο ότι θα οδηγήσει σε περίπλοκο κώδικα που θα είναι δύσκολο να καταλάβουμε και διορθώσουμε.

Projects Ομπρέλας

Μερικές φορές ένα project μπορεί να γίνει μεγάλο, ή και πολύ μεγάλο. Το εργαλείο χτισίματος Mix μας επιτρέπει να χωρίσουμε τον κώδικά μας σε πολλαπλές εφαρμογές και να κάνουμε τα Elixir projects μας πιο διαχειρίσιμα καθώς μεγαλώνουν.

Προδιαγραφές και τύποι

Σε αυτό το μάθημα θα μάθουμε για τα συντακτικά @spec και @type. Το πρώτο είναι συμπληρωματικό συντακτικού για να γράφουμε τεκμηρίωση που μπορεί να αναλυθεί από εργαλεία. Το δεύτερο μας βοηθάει να γράφουμε πιο ευανάγνωστο και εύκολο στην κατανόηση κώδικα.

Συμπεριφορές

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

Πρωτόκολλα

Σε αυτό το μάθημα θα δούμε τα Πρωτόκολλα, τί ακριβώς είναι, και πως τα χρησιμοποιούμε στην Elixir.