Golang
Πώς να αποκτήσετε πρόσβαση στον profiler pprof στον παραγωγικό διακομιστή;
Πώς λύνετε το πρόβλημα του ανταγωνιστικού κρατήματος κατά τη μετάβαση σε μια πραγματική βάση δεδομένων;
τύπος Sem διεπαφή { Lock() error TryLock() bool Release() Cap() int FreeSpace() int }
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount partner.Hold -= amount partner.Balance += amount if err := r.save(advertiser); err != nil { return err } if err := r.save(partner); err != nil { return err } r.totalPayouts++ return nil }
Εξ formalization των απαιτήσεων του συστήματος matchmaking: πώς να βρείτε ένα παιχνίδι, τι να κάνετε αν ο αντίπαλος δεν βρεθεί, πώς να επικυρώσετε τις κινήσεις, χρειάζεται χρονόμετρο, πώς να ενημερώσετε την κατάταξη, χρειάζεται ιστορικό παιχνιδιών, τι να κάνετε σε περίπτωση αποσύνδεσης;
Έχετε ποτέ κάνει κάτι για πολύ καιρό και τελικά να μην έχει υλοποιηθεί ή να έχει αναβληθεί;
Υπάρχουν προπροσφορές στα χέρια;
Ποια μικροϋπηρεσίες έχεις αναπτύξει; Τι είδους υπηρεσίες είναι αυτές;
Αν δημιουργήσετε έναν χάρτη, προσθέσετε ένα εκατομμύριο τιμές, στη συνέχεια διαγράψετε όλα τα στοιχεία και καλέσετε το GC, θα επιστρέψει η μνήμη στην αρχική της τιμή;
// Διορθώστε τον κώδικα ώστε οι αιτήσεις να είναι ανταγωνιστικές και να εμφανίζεται ο κωδικός απάντησης // και σε περίπτωση σφάλματος, εμφανίστε το λογισμικό και συνεχίστε την επεξεργασία package main import "net/http" var addrs = []string{"[link] "[link] "[link] "[link] "[link] "[link] "[link] func main() { var wg sync.WaitGroup data := make(map[string]bool) for _, url := range addrs { wg.Add(1) if !data[url] { data[url] = true go func(url string) { defer wg.Done() resp, err := http.Get(url) if err != nil { log.Println(err) return } log.Println(resp.StatusCode) }(url) } } wg.Wait() }
Τι είναι η σημειογραφία O (σημειογραφία Big O);
[όνομα] υπογράμμισε μια ασυμφωνία στην αξιολόγηση της μνήμης: δήλωσε το ένα, έγραψε το άλλο. Πώς να αξιολογήσουμε σωστά τη μνήμη;
// Ερώτηση 3 // Περιγράψτε ποια εργασία επιλύει αυτός ο κώδικας // Ποια προβλήματα υπάρχουν σε αυτήν την λύση; // Πώς θα ξαναγράφατε αυτόν τον κώδικα;
Γιατί στο sync.Map δεν υπάρχει μέθοδος για την λήψη του αριθμού των στοιχείων (len);
Μπορεί ένας δείκτης να δείχνει τόσο στη στοίβα όσο και στη σωρό;
Πώς επεξεργάζονται τα μηνύματα που αποστέλλονται σε χρήστες εκτός σύνδεσης;
Γιατί χρειάζεται ο συνδυασμός Load Balancer + API Gateway; Ποιος είναι ο ρόλος κάθε συστατικού;
Το γεγονός φτάνει στο πρώτο κέντρο δεδομένων από το Kafka, το πιάνουμε και το αποθηκεύουμε στο Redis. Πώς αυτά τα δεδομένα έφτασαν σε όλα τα τρία κέντρα δεδομένων;
Ή το Redis ήταν σε ένα μόνο κέντρο δεδομένων, και όλοι απευθύνονταν σε αυτό;
Ποια είναι η διαφορά μεταξύ πίνακα και slice στο Go;