Αρχιτεκτονική εφαρμογών: γράψτε σαν προγραμματιστής, σκεφτείτε σαν αρχιτέκτονας - μάθημα 80.000 τρίψτε. από Slurm, εκπαίδευση 3 μηνών, Ημερομηνία 22 Ιανουαρίου 2024.
μικροαντικείμενα / / November 29, 2023
Μάθετε να γράφετε καθαρά και διαχειρίσιμα έργα, να δημιουργείτε συστήματα με δυνατότητα συντήρησης και να οργανώνετε κώδικα.
Θα κάνουμε όλα τα πιθανά λάθη κατά τη διάρκεια πρακτικών εργασιών δωρεάν, ώστε αργότερα να τα αποφύγετε στην εργασία σας και να εξοικονομήσετε εκατομμύρια.
Στο παρελθόν, πολλές εφαρμογές δημιουργήθηκαν χωρίς σχεδιασμό. Φαινόταν βολικό: χωρίς κόστος προγραμματισμού, γρήγορη δημιουργία πρωτοτύπων.
Όμως, με την πάροδο του χρόνου, οι πολύπλοκες εφαρμογές μετατράπηκαν σε ένα ανεξέλεγκτο καταδρομικό, που ορμούσε με πλήρη ταχύτητα προς το παγόβουνο.
Τότε ήταν που η αρχιτεκτονική έγινε ένα πραγματικό σωσίβιο. Μια εφαρμογή με καλά σχεδιασμένη αρχιτεκτονική είναι πιο εύκολη στην επέκταση, αλλαγή, δοκιμή, εντοπισμό σφαλμάτων και κατανόηση.
Η αρχιτεκτονική εφαρμογών είναι τέχνη. Η τέχνη του σχεδιασμού και της δημιουργίας συστημάτων μεγάλης κλίμακας.
Θα μάθετε να κατασκευάζετε διαγράμματα UML, να αναπαράγετε κώδικα, να σχεδιάζετε αρχιτεκτονικά όρια και να αναλύετε συστήματα. Κάθε συμμετέχων θα ολοκληρώσει ένα πρόγραμμα μαθημάτων: να σχεδιάσει και να περιγράψει πλήρως ένα πληροφοριακό σύστημα όπως συμβαίνει σε πραγματικές δραστηριότητες παραγωγής.
Εισαγωγική συνεδρία με ομιλητές
22 Ιανουαρίου στις 19:00
Ενότητα 1: Εισαγωγή στην Αρχιτεκτονική Εφαρμογών
22 Ιανουαρίου
Ας εξοικειωθούμε με τις προσεγγίσεις και τα παραδείγματα της αρχιτεκτονικής εφαρμογών
- Θέμα Ι. Το πρόβλημα είναι γιατί είναι σημαντικό να σχεδιάζουμε σωστά το λογισμικό. Γιατί χρειάζεται η αρχιτεκτονική, τι συμβαίνει όταν οι άνθρωποι δεν το σκέφτονται.
- Θέμα II. Η απομόνωση ως μέσο ελέγχου της πολυπλοκότητας. Κωδικός σπαγγέτι. Αρθρωτότητα. Σύζευξη. Στατικό δέσιμο, δυναμικό δέσιμο. Τα στοιχεία και οι αλληλεπιδράσεις τους. Ένα συστατικό ως ανεξάρτητη οντότητα. Σχεδιασμός χαλαρά συζευγμένων εξαρτημάτων. Δοκιμή εξαρτημάτων. Το MVC ως παράδειγμα αρθρωτού σχεδίου. Λόγοι αλλαγών, απομόνωση με βάση τους λόγους αλλαγών.
Δεύτερη ενότητα: Ενοποιημένη γλώσσα μοντελοποίησης
29 Ιανουαρίου
Ας κατακτήσουμε τη γλώσσα εμφάνισης γραφικών: θα μπορείτε να διαβάζετε και να σχεδιάζετε χρησιμοποιώντας αυτήν τη γλώσσα. Ας μάθουμε να χρησιμοποιούμε διαγράμματα για να απεικονίσουμε την αρχιτεκτονική και τις συνδέσεις.
- Θέμα Ι. Τα κύρια συστατικά, τι μπορεί να εκφραστεί με αυτά, σε τι χρειάζονται.
- Θέμα II. Διαγράμματα τάξης, δραστηριότητας, ακολουθίας και περίπτωσης χρήσης.
- Θέμα III. Μειονεκτήματα της UML. Μοντέλο C4. Εργαλεία
Τρίτη ενότητα: Αρχές OOP
12 Φεβρουαρίου
Θα μάθουμε να αναλύουμε σε υψηλό επίπεδο: θα ξέρετε πώς να λύσετε ένα πρόβλημα και χρησιμοποιώντας ποιο παράδειγμα.
- Θέμα Ι. Ανασκόπηση παραδειγμάτων προγραμματισμού.
- Θέμα II. Αρχές OOP. OOP ως μέσο αρχιτεκτονικής. Τάξεις και μέθοδοι. Η προσέγγιση αντικειμένων ως μέθοδος απομόνωσης. Διεπαφές και αφηρημένες τάξεις. Κληρονομικά προβλήματα.
- Θέμα III. Αρχές OOP: (ΣΤΕΡΕΟ, ΞΗΡΟ).
Συνεδρία AMA με ομιλητές
Ενότητα Τέταρτη: Μοτίβα σχεδίασης
26 Φεβρουαρίου
Θα μάθουμε να σχεδιάζουμε συστήματα χρησιμοποιώντας μοτίβα: θα κατανοήσετε τα πλεονεκτήματα και τους περιορισμούς των μοτίβων, θα μπορείτε να αναγνωρίζετε τα εφαρμοσμένα μοτίβα στα συστήματα
- Θέμα Ι. Τι είναι τα μοτίβα και γιατί χρειάζονται; Τα είδη τους.
- Θέμα II. Δημιουργικά και δομικά μοτίβα.
- Θέμα III. Πρότυπα συμπεριφοράς.
- Θέμα IV. Αντιπρότυπα.
Ενότητα πέμπτη: Καθαρή Αρχιτεκτονική
11 Μαρτίου
Θα μάθουμε να σχεδιάζουμε σύμφωνα με τα κριτήρια της καθαρής αρχιτεκτονικής, να βρίσκουμε αποκλίσεις από την καθαρή αρχιτεκτονική και να προτείνουμε επιλογές για λύση συστήματος. Θα μάθουμε πώς να εφαρμόζουμε τη διάταξη κώδικα, να σχεδιάζουμε και να σχεδιάζουμε αρχιτεκτονικά όρια για να απλοποιήσουμε περαιτέρω αλλαγές και συντήρηση του κώδικα.
- Θέμα Ι. Σύζευξη & Συνοχή.
- Θέμα II. Αρχιτεκτονικά όρια.
- Θέμα III. Καθαρή αρχιτεκτονική.
Ενότητα Έκτη: Διάφορες Αρχιτεκτονικές Προσεγγίσεις
25 Μαρτίου
Θα μάθουμε να επιλέγουμε μια προσέγγιση για την επίλυση ορισμένων προβλημάτων παραγωγής, να εξηγούμε τα πλεονεκτήματα ή τις δικές μας λύσεις άλλων ανθρώπων. Θα μπορέσουμε να βρούμε κατάλληλες λύσεις για τα καθήκοντα που έχουν ανατεθεί, λαμβάνοντας υπόψη την τρέχουσα κατάσταση
- Θέμα Ι. Απαιτήσεις, θεματική περιοχή. Ανάλυση. Λειτουργικές/μη λειτουργικές απαιτήσεις.
- Θέμα II. Αρχιτεκτονικά στυλ. Onion, πολυεπίπεδο, προσανατολισμένο στις υπηρεσίες, microservice, με γνώμονα την εκδήλωση.
- Θέμα III. Αρχιτεκτονική εφαρμογών. MVC, MVP, MVVM, MV*.
Συνεδρία AMA με ομιλητές
Έβδομη ενότητα: αρχιτεκτονική παντού
1 Απριλίου
Θα μάθουμε να εφαρμόζουμε γνώσεις σχετικά με την αρχιτεκτονική σε διάφορα επίπεδα κλίμακας (όχι μόνο τη διάταξη τάξεων και ενοτήτων, αλλά και ολόκληρα συστήματα)
- Θέμα Ι. Τύποι αρχιτεκτόνων και τα καθήκοντά τους.
- Θέμα II. Αρχιτεκτονικές σε διαφορετικά επίπεδα (ενσωματωμένο, εφαρμογή, κατανεμημένο σύστημα, cloud-native υπηρεσία).
Όγδοη ενότητα: σύνοψη
8 Απριλίου
Ας μάθουμε πώς να επιλέγουμε εύκολα ένα εργαλείο για μια συγκεκριμένη εργασία
- Θέμα Ι. Ανασκόπηση των κύριων εργαλείων και τεχνολογιών, η θέση τους στην αρχιτεκτονική και αρχές επιλογής.
- Αποθήκευση δεδομένων: S3, Ceph, Posgres, MongoDB, Clickhouse, Neo4J, Cassandra, KeyValue.
- Ουρές: AMQP, Rabbit, Kafka, MQTT.
- Γλώσσες: Python, Java, GO, C++, Javascript/Typescript.
- Διεπαφή: Κονσόλα, εγγενείς εφαρμογές, WEB: React, Vue, Angular, Jquery, υβριδικά, chatbots.
- Εργαλεία υποδομής: docker, k8s, terraform, ansible.