Golang
Έχετε ακούσει κάτι για το μοτίβο Transactional Outbox;
Ποιο ήταν το μεγαλύτερο λάθος;
Τι είναι τα κανάλια στο Go, ποια υπάρχουν και ποια είναι τα χαρακτηριστικά τους;
Πόσο ενδιαφέρον είναι αυτό που περιέγραψα για την εταιρεία; Πόσο ταιριάζει με αυτό που ψάχνεις;
Τι είναι το SOLID; Εξήγησε τις αρχές.
Πώς γίνεται η μεταφορά δεδομένων μεταξύ διαφορετικών υπηρεσιών στην υποδομή; Μέσω broker, απευθείας, gRPC;
Γράψτε μια εργασία στη γλώσσα Go — πρακτική ενότητα (προβλήματα από τη ζωή του προγραμματιστή, χωρίς αλγόριθμους): βελτιώστε ή διορθώστε μια υπηρεσία. Διάρκεια — 1,5 ώρες.
Ποια είναι η μέση αλγοριθμική πολυπλοκότητα ανάγνωσης από έναν πίνακα κατακερματισμού;
Πείτε μας για τη σύνθεση της ομάδας, τις ζώνες ευθύνης των υπηρεσιών και τον κύκλο κυκλοφορίας.
Γράψτε έναν κώδικα με ομάδα εργαζομένων για την επεξεργασία μιας λίστας URL με παράλληλα αιτήματα HTTP.
Πώς μπορεί να βελτιστοποιηθεί η αναζήτηση σε μια βάση δεδομένων; Τι είναι οι δείκτες και ποια είναι η πολυπλοκότητά τους;
Πώς λειτουργούν οι ατομικές λειτουργίες;
Με ποια κριτήρια διαχωρίζανε τις καταναλωτικές ομάδες;
Πώς να διασφαλίσετε την παράδοση γεγονότων σε ένα ασταθές δίκτυο (το δίκτυο μπορεί να διακοπεί, τα γεγονότα δεν πρέπει να χαθούν);
Ο συλλέκτης απορριμμάτων στο Go είναι μπλοκαριστικός ή όχι; Είναι ορατό το αποτέλεσμα του στην παραγωγή;
Ποια είναι η διαφορά μεταξύ Kafka και RabbitMQ;
Πώς θα αξιολογούσατε τον εαυτό σας ως προγραμματιστή Golang; Είστε τώρα middle, middle+, senior;
Ποια εργαλεία οπτικοποίησης σχημάτων αρχιτεκτονικής έχεις χρησιμοποιήσει και για ποιες περιπτώσεις;
Σχεδιασμός ενός κλιμακούμενου συστήματος ανταλλαγής μηνυμάτων που υποστηρίζει 150 εκατομμύρια χρήστες, 75 εκατομμύρια DAU, 225 εκατομμύρια MAU, 1,2 εκατομμύρια peak QPS ανάγνωσης / 300k εγγραφής, 5 εκατομμύρια ταυτόχρονους χρήστες, 60 PB νέων δεδομένων ετησίως, 30% ετήσια ανάπτυξη, SLA 99,95%, p99 <200 ms για ανάγνωση, <300 ms για εγγραφή. ΠΕΡΙΒΑΛΛΟΝ Απαιτείται ο σχεδιασμός ενός διανεμημένου συστήματος ανταλλαγής μηνυμάτων, παρόμοιου με το WhatsApp, που υποστηρίζει 1:1 και ομαδικές συνομιλίες, διασφαλίζει την παράδοση μηνυμάτων, εμφανίζει online καταστάσεις χρηστών και επιτρέπει τη μεταφορά πολυμέσων (φωτογραφίες, βίντεο, ήχο). Το σύστημα πρέπει να παρέχει υψηλή διαθεσιμότητα και χαμηλή καθυστέρηση, να υποστηρίζει υψηλό παράλληλο χειρισμό και να κλιμακώνεται σε παγκόσμιο επίπεδο. ΑΠΑΙΤΗΣΕΙΣ ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑΣ - Υποστήριξη προσωπικών (1:1) και ομαδικών συνομιλιών με δυνατότητα προσθήκης/αφαίρεσης συμμετεχόντων - Αποστολή και λήψη κειμένων και πολυμέσων Δεν φαίνεται να υπάρχει σαφής υλοποίηση μηχανισμού end-to-end κρυπτογράφησης σε επίπεδο υπηρεσιών ή πελατών, εκτός από μια γενική σημείωση. - Απουσιάζει σαφής περιγραφή του sharding και της αναπαραγωγής βάσεων δεδομένων βάσει chat_id ή user_id για κλιμάκωση και αντοχή σε σφάλματα. - Δεν υπάρχει σαφής συστατικό ή μηχανισμός για την offline συγχρονισμό μηνυμάτων και αποδείξεων παράδοσης. - Δεν είναι σαφές πώς πραγματοποιείται η κατανομή φόρτου μεταξύ βάσεων δεδομένων και υπηρεσιών, ειδικά σε περιόδους αιχμής. **Κρίσιμα σημεία που πρέπει να ληφθούν υπόψη:**
Έχετε εμπειρία με CI/CD; Τι κάνατε;