Golang
Έχετε αυτήν τη στιγμή άλλες συνεντεύξεις ή προσφορές;
Πείτε όλες τις μεθόδους HTTP (ρήματα) που γνωρίζετε.
Από τι μπορεί να ξεκινήσει κανείς όταν επιλέγει τον αριθμό των shards για την cache, αν το φορτίο δεν είναι γνωστό εκ των προτέρων;
Πώς είχατε αναπτύξει το PostgreSQL; Μιλήστε μου για την σταθερότητα και την κλιμάκωση.
Η διαδικασία μέσω GPH δεν αντικατοπτρίζεται στο βιβλιάριο εργασίας;
Πώς πραγματοποιήσατε την κλιμάκωση των καταναλωτών Kafka; Με ποια κριτήρια;
κύριο πακέτο import ( "fmt" "sync" ) func main() { for i := 0; i < 5; i++ { go fmt.Println(i) } }
Πού είναι καλύτερο να ορίζετε το διεπαφή — στον χώρο υλοποίησης ή στον χώρο χρήσης;
Τι είναι η διαμέριση και το sharding; Τα έχετε χρησιμοποιήσει;
Η υπηρεσία πάγωσε μετά τη σύνδεση του δέκατου καταστήματος στη λειτουργία στατιστικών. Τι θα κάνεις; Πώς θα διαγνώσεις και θα βελτιστοποιήσεις τη βάση δεδομένων;
Τι συμβαίνει σε περίπτωση συγκρούσεων κατακερματισμού σε έναν χάρτη;
Πες μας για την εμπειρία σου στην Tinkoff — πώς προσληφθήκες και τι έκανες;
Ζωντανός κώδικας: εργασία με goroutines — ανταγωνιστική πρόσβαση σε κοινά δεδομένα, συνθήκη αγώνα, λύση μέσω mutex. Διαφορά μεταξύ sync.Mutex και sync.RWMutex.
Ποια είναι η διαφορά μεταξύ buffer και μη buffer καναλιών;
Τι ψάχνεις τώρα για τον εαυτό σου στη νέα σου δουλειά;
Μπορείτε να μιλήσετε για την αρχιτεκτονική του μετασχηματιστή;
Σε ποιες περιπτώσεις είναι πιο κατάλληλο ένας προγραμματιστής να γράψει κώδικα χειροκίνητα αντί να βασίζεται σε λύσεις που παράγονται από AI;
Οι ενημερώσεις εγγράφων φτάνουν στην υπηρεσία message Document { string Url = 1; // URL του εγγράφου, ο μοναδικός του αναγνωριστικός uint64 PubDate = 2; // δηλωμένος χρόνος δημοσίευσης του εγγράφου uint64 FetchTime = 3; // χρόνος λήψης αυτής της ενημέρωσης εγγράφου, μπορεί να θεωρηθεί ως αναγνωριστικό έκδοσης. Το ζεύγος (Url, FetchTime) είναι μοναδικό. string Text = 4; // κείμενο του εγγράφου uint64 FirstFetchTime = 5; // αρχικά απουσιάζει, πρέπει να συμπληρωθεί } Τα έγγραφα μπορούν να φτάσουν σε οποιαδήποτε σειρά (όχι με τη σειρά που ενημερώθηκαν), και μπορεί να υπάρχουν διπλά μηνύματα. Είναι απαραίτητο να δημιουργηθούν στην έξοδο ίδια μηνύματα, αλλά με διορθωμένα πεδία σύμφωνα με τους ακόλουθους κανόνες (όλα τα παρακάτω αφορούν μια ομάδα εγγράφων με το ίδιο πεδίο Url): Το πεδίο Text και FetchTime πρέπει να είναι ίσα με αυτά του εγγράφου με το μεγαλύτερο FetchTime που έχει ληφθεί μέχρι τώρα. Το πεδίο PubDate πρέπει να είναι ίσο με αυτό του μηνύματος με το μικρότερο FetchTime. Το πεδίο FirstFetchTime πρέπει να είναι ίσο με την ελάχιστη τιμή FetchTime. Με άλλα λόγια, σε κάθε στιγμή παίρνουμε το PubDate και το FirstFetchTime από την πρώτη έκδοση που έχει ληφθεί μέχρι τώρα (αν τα ταξινομήσουμε κατά FetchTime), και το Text από την τελευταία. Ο διασυνδεδεμένος κώδικας μπορεί να υλοποιηθεί ως: type Processor interface { Process(doc *Document) (*Document, error) } Αυτός ο κώδικας θα λειτουργεί σε μια υπηρεσία που διαβάζει μηνύματα από μια ουρά (Kafka ή παρόμοια), και επίσης γράφει το αποτέλεσμα στην ουρά. Αν το Process επιστρέφει Null, τίποτα δεν γράφεται στην ουρά.
Ξέρετε Linux και σε ποιο επίπεδο;
Έχετε ακούσει για το Domain-Driven Design (DDD); Έχετε εμπειρία στην εφαρμογή των μοτίβων DDD;