Sobes.tech

Πόσα μικροϋπηρεσίες υπάρχουν στη τρέχουσα εργασία σου και με ποιες εργάζεσαι άμεσα;

Middle+
Скоринг Бюро
115

Σε ποια ομάδα (μεταβλητές/αμετάβλητες) ανήκει το interface στο Go;

Senior
VK CloudVK Cloud
115

Ποια είναι η διαφορά μεταξύ σχεσιακών βάσεων δεδομένων και NoSQL;

Middle
VKVK
115

Φανταστείτε μια κατάσταση: δεν μπορείτε να βρείτε κοινό έδαφος με έναν δοκιμαστή στην ομάδα σας που συνεχώς 'σας τσιμπάει'. Πώς θα αλληλεπιδράσετε;

Middle
Еаптека
115

Μίλησε για μια δύσκολη εργασία που σε έκανε να ιδρώσεις. Ποια ήταν η κύρια δυσκολία;

Senior
Flant
115

Ποια από τις παρακάτω επιλογές είναι πιο πιθανό να συμβεί όταν προσπαθείτε να ξεκινήσετε πολύ μεγάλο αριθμό goroutines (π.χ. δεκάδες χιλιάδες) χωρίς επιπλέον έλεγχο; - Το κύριο πρόβλημα θα προκληθεί από το μπλοκάρισμα του παγκόσμιου mutex μέσα στο runtime, που θα οδηγήσει σε πλήρη διακοπή της εκτέλεσης του προγράμματος - Ο προγραμματιστής Go θα εκτελεί τις goroutines σε μικρές ομάδες με σειριακή σειρά, επομένως η αύξηση του αριθμού τους σχεδόν δεν επηρεάζει την κατανάλωση μνήμης - Ο μαζικός πολλαπλασιασμός των goroutines μπορεί να οδηγήσει σε σημαντική κατανάλωση μνήμης και επιπλέον κόστος του προγραμματιστή; σε τέτοιες περιπτώσεις, είναι κατάλληλη η χρήση ενός pool εργαζομένων - Αν ο αριθμός των goroutines υπερβαίνει τον αριθμό των λογικών επεξεργαστών, το Go θα αρχίσει αυτόματα να απορρίπτει νέες εκκινήσεις goroutines με ένα panic

Intern
AvitoAvito
114

Σημαίνει ότι όλα θα τελειώσουν τελικά μετά από αυτό το timeout; Δηλαδή, μπορεί κάτι ακόμα να μην λειτουργεί — ποιο είναι το πρόβλημα εδώ;

Intern
Озон банк
114

Πείτε μας για το σύστημα αυτόματης βαθμολόγησης: ποιος είναι ο σκοπός του, είναι μονολιθικό ή μικροϋπηρεσίες, και ποια ήταν η περιοχή ευθύνης σας;

Senior
А7
114

Περιγράψτε τη διαδικασία φόρτωσης του διακομιστή Linux από την εκκίνηση μέχρι την εκκίνηση του τερματικού

Senior
VKVK
114

Τι μπορεί να δει το επίπεδο του αποθετηρίου;

Senior
Small
114

Ποια λειτουργία έκανες και είσαι περήφανος; Διηγήσου για την τελευταία ενδιαφέρουσα εργασία.

Senior
WildberriesWildberries
114

Πες μου για την τελευταία σου εργασιακή εμπειρία

Senior
purrweb
114

Τι είναι τα κανάλια στο Go και ποιοι είναι οι τύποι τους;

Middle+
СБЕРСБЕР
114

Γιατί η προσέγγιση του Go για τον πολυνηματισμό είναι καλύτερη από άλλες γλώσσες;

Middle+
X5
114

Υπάρχει τρόπος να διαχειριστείτε και να ρυθμίσετε τον stop-the-world συλλέκτη απορριμμάτων στο Go;

Middle+
WildberriesWildberries
114

Υπάρχουν ερωτήσεις σχετικά με τα στάδια και τις ομάδες;

Middle+
X5 techX5 tech
114

Τι μπορεί να γίνει για να αποφευχθεί η εκκένωση του χάρτη σε μια υπηρεσία υψηλού φόρτου;

Middle+
OZONOZON
114

Μπορεί κανείς να γράψει σε ένα map από διαφορερα goroutines ταυτόχρονα; Τι θα συμβεί;

Senior
А7
114

Τι είναι ο Μέσος Όρος Φόρτου, πώς τον ελέγχετε και τι πρέπει να προσέχετε;

Senior
VKVK
114

func (c *Client) Send(ctx context.Context, messages []Message, maxWorkers int) error { sem := make(chan struct{}, maxWorkers) var wg sync.WaitGroup var resultErr error var once sync.Once for _, msg := range messages { wg.Add(1) go func(msg Message) { defer wg.Done() sem <- struct{}{} defer func() { <-sem }() body, err := json.Marshal(msg) if err != nil { once.Do(func() { resultErr = err; cancel() }) return } req, _ := http.NewRequestWithContext( ctx, http.MethodPost, c.url, bytes.NewReader(body), ) req.Header.Set("Content-Type", "application/json") resp, err := c.httpClient.Do(req) if err != nil { once.Do(func() { resultErr = err; cancel()}) return } defer resp.Body.Close() if resp.StatusCode >= 500 { once.Do(func() { resultErr = fmt.Errorf("server error") cancel()}) return } c.sentCount.Add(1) time.Sleep(time.Second) }(msg) } wg.Wait() }

Senior
UPSL
114
/412