Golang
Ποια στρατηγική caching να επιλέξετε — cache-aside ή write-through — λαμβάνοντας υπόψη το μοτίβο συμπεριφοράς των χρηστών κατά τον έλεγχο της κατάστασης της παραγγελίας;
Ποιοι κανόνες εργασίας με κανάλια πρέπει να γνωρίζετε κατά την ανάπτυξη (κλειστό, ανοιχτό, πότε τι μπορεί να γίνει);
Γράψτε μια εργασία στη γλώσσα Go — πρακτική ενότητα (προβλήματα από τη ζωή του προγραμματιστή, χωρίς αλγόριθμους): βελτιώστε ή διορθώστε μια υπηρεσία. Διάρκεια — 1,5 ώρες.
Αν οι χρήστες διαμαρτύρονται για την αλλαγή στο μοντέλο monetization, αλλά η επιχείρηση έχει ένα σαφές σχέδιο — τι πρέπει να κάνει;
Ζωντανός κώδικας: σημαφόρος — πώς λειτουργεί και υλοποίηση με βάση ένα buffer-αρισμένο κανάλι.
Ποια μεθοδολογία χρησιμοποιείτε: Scrum, Kanban ή ένα μείγμα;
Ποιος είναι ο περιορισμός ενός σημαφόρου και ενός καναλιού με buffer ως λύσεις για τον περιορισμό των παράλληλων αιτημάτων;
Έχετε ακούσει ποτέ ξανά για την [εταιρεία] ή τα προϊόντα μας;
Τι είναι οι εκτιμήσεις;
Με τι δεν θα ήθελες να έρθεις αντιμέτωπος πια στη δουλειά;
Ποιο είναι το επίπεδό σας — middle, middle+, senior;
Ανάλυση κώδικα σε Go: τι κάνει ο κώδικας, ποια προβλήματα υπάρχουν;
Σε ποια ομάδα (μεταβλητές/αμετάβλητες) ανήκει το interface στο Go;
Τι είναι τα tokens εξουσιοδότησης και ποια υπάρχουν;
Ποια είναι η διαφορά μεταξύ σχεσιακών βάσεων δεδομένων και NoSQL;
Σχεδιασμός ενός κλιμακούμενου συστήματος ανταλλαγής μηνυμάτων που υποστηρίζει 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 συγχρονισμό μηνυμάτων και αποδείξεων παράδοσης. - Δεν είναι σαφές πώς πραγματοποιείται η κατανομή φόρτου μεταξύ βάσεων δεδομένων και υπηρεσιών, ειδικά σε περιόδους αιχμής. **Κρίσιμα σημεία που πρέπει να ληφθούν υπόψη:**
Καταγράψτε τη βασική στοίβα σε Go
Έχετε ποτέ χρειαστεί να καταγράψετε ώρες, να παρακολουθείτε τον χρόνο σε κάποιο σύστημα;
""" Οι θέσεις στον κινηματογράφο είναι τοποθετημένες σε μια σειρά. Ένας θεατής που μόλις ήρθε επιλέγει μια θέση, για να καθίσει όσο το δυνατόν πιο μακριά από τους άλλους θεατές στη σειρά. Δηλαδή, η απόσταση από αυτή τη θέση, στην οποία θα καθίσει, μέχρι τον πλησιέστερο θεατή πρέπει να είναι μέγιστη. Εγγυάται ότι πάντα υπάρχουν ελεύθερες θέσεις στη σειρά και ότι ήδη κάθεται τουλάχιστον ένας θεατής. Γράψτε μια συνάρτηση που, δεδομένης μιας σειράς θέσεων (ένας πίνακας μηδενικών και ένα), επιστρέφει την απόσταση (αριθμός διαστημάτων μεταξύ των καθισμάτων) από τη επιλεγμένη θέση μέχρι τον πλησιέστερο θεατή. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 [0, 0, 0, 1] [1, 0, 0, 0] place = ((right - left) / 2) """ func maxPlaces(arr []int) int { }
Τι είναι η σύγκρουση κλειδώματος;