Golang
Πώς να κλιμακώσετε ένα σύστημα: από έναν διακομιστή σε μια ανθεκτική αρχιτεκτονική (load balancers, βάση δεδομένων);
Ποια είναι η διαφορά μεταξύ ενός ισοσταθμιστή φορτίου L4 και ενός L7;
Πώς να αποθηκεύσετε σωστά το URL του εξωτερικού υπηρεσίας;
Τι είναι ένα map στο Go; Πώς είναι δομημένο (νέα υλοποίηση στο Go 1.24);
Μπορεί ένα slice να συγκριθεί με διπλή ισότητα (==);
Ποια είναι η διαφορά μεταξύ EXPLAIN και EXPLAIN ANALYZE;
[όνομα] μίλησε για την εργασιακή του εμπειρία στη Vendere και τι κατάφερε σε τρία χρόνια.
Για τι ευθύνονται τα StatefulSets και πότε χρησιμοποιούνται;
Πώς κλιμακώνεται το Kafka;
Ποιοι τύποι δεδομένων στο Go είναι αναφορές;
Τι είναι ο ανταγωνισμός και ο παραλληλισμός; Πώς διαφέρουν; Μπορούν να συνυπάρχουν;
Πόση μνήμη καταλαμβάνει ο τύπος bool;
Μίλησε για τα slices στο Go.
Шарт 3 ұғым бар: пайдаланушы, чат, хабарлама • Пайдаланушының аты және тіркелу күні бар • Чаттың аты және құру күні бар • Хабарламаның мәтіні, авторы және құру күні бар • Пайдаланушы бір уақытта бірнеше чатта болуы мүмкін • Хабарлама міндетті түрде чатқа тиесілі болуы керек, ол бір уақытта бірнеше чатқа тиесілі бола алмайды • Ауданды кестелер түрінде сипаттау керек -- тарату -- message_count чаттарда шектеу 100 --getShard(time zone) -> shard_id -> 1 --getShard(time zone) -> shard_id -> 2 --shard1 [1..100] --shard2 [101..200] CREATE TABLE users ( id int PRIMARY KEY, name varchar(255) NOT NULL, reg_at TIMESTAMP NOT NULL DEFAULT NOW() ); CREATE TABLE chats ( id int PRIMARY KEY, name VARCHAR(255) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT NOW(), message_count int NOT NULL CHECK <= 100 ); CREATE TABLE user_chats ( user_id int not null REFERENCES users(id), chat_id int NOT NULL REFERENCES chats(id), PRIMARY KEY (user_id, chat_id) ); CREATE TABLE messages ( id int PRIMARY KEY, chat_id int NOT NULL REFERENCES chats(id), author_id int NOT NULL REFERENCES users(id), created_at TIMESTAMP NOT NULL DEFAULT NOW(), text TEXT NOT NULL );
Έχετε εργαστεί με συναλλαγές σε επίπεδο επιχειρηματικών διαδικασιών — SELECT FOR UPDATE, rollback σε περίπτωση πτώσης του εξωτερικού API;
Τι λύνει το Repeatable Read και τι όχι; (ανωμαλία Repeatable Read)
Πώς λειτουργεί το GOMAXPROCS και για ποιο λόγο χρειάζεται το P (επεξεργαστής) στο μοντέλο GMP;
/* Υπάρχουν δύο διακομιστές PostgreSQL: * PROD - διακομιστής OLTP, * STATS - διακομιστής για μακρές αναλυτικές ερωτήσεις. Στον τρέχοντα διακομιστή, στη βάση δεδομένων prod, υπάρχει ένας μεγάλος πίνακας (10Tb) με την ακόλουθη δομή: CREATE TABLE profiles( id SERIAL, data JSONB ) Στον πίνακα μπορεί να υπάρχουν "τρύπες", δηλαδή ορισμένα `id` μπορεί να λείπουν. Πρέπει να γράψετε ένα πρόγραμμα για να αντιγράψετε τον πίνακα profiles από το PROD στο STATS. Υποθέτουμε ότι θα χρησιμοποιηθούν οι ακόλουθες διεπαφές για εργασία με βάσεις δεδομένων: type Row []interface{} type Database interface { // η υλοποίηση της διεπαφής Database μπορεί να επανασυνδέσει // η κλήση SaveRows είναι idempotent io.Closer GetMaxID(ctx context.Context) (uint64, error) LoadRows(ctx context.Context, minID, maxID uint64) ([]Row, error) // [minID, maxID] SaveRows(ctx context.Context, rows []Row) error } func Connect(ctx context.Context, dbname string) (Database, error) // CopyTable // Αν full=false, συνεχίστε τη μεταφορά δεδομένων από το σημείο του προηγούμενου σφάλματος // Αν full=true, μεταφέρετε όλα τα δεδομένα func CopyTable(fromName string, toName string, full bool) error { // ... ο κώδικάς σας } Αν δοθεί η επιλογή `full=false`, το πρόγραμμα πρέπει να συνεχίσει τη μεταφορά δεδομένων από το σημείο του προηγούμενου σφάλματος. Αν `full=true`, πρέπει να μεταφέρει όλα τα δεδομένα. **Βασικό επίπεδο**: - σειριακή μεταφορά δεδομένων σε ένα ρεύμα - ανάκτηση μετά από σφάλμα (επιλογή `full=false`) Πρόσθετες πληροφορίες: - αν χρειάζεται, μπορείτε να επεκτείνετε τη διεπαφή προσθέτοντας δικές σας μεθόδους - αν χρειάζεται, μπορείτε να χρησιμοποιήσετε απευθείας το πακέτο **database/sql**
Τι κάνατε με την καθυστέρηση του καταναλωτή κατά την επαναρύθμιση ή διακοπή της υπηρεσίας;
Έχετε ποτέ χρειαστεί να προγραμματίσετε σε C;