Golang
Τι συμβαίνει αν το defer βρίσκεται έξω από τη goroutine και όχι μέσα σε αυτή;
/* Υπάρχει μια εφαρμογή με αρχιτεκτονική μικροϋπηρεσιών. Ένα μικροϋπηρεσία μπορεί να αποδοθεί μέσω μιας διεπαφής Backend. Για πρόσβαση σε ένα αντίγραφο της μικροϋπηρεσίας, μπορείτε να χρησιμοποιήσετε τον τύπο BackendImpl, ο οποίος έχει ήδη υλοποιηθεί. Κάθε μικροϋπηρεσία έχει αρκετές δεκάδες εκτελούμενα αντίγραφα, καθένα προσβάσιμο μέσω της δικής του διεύθυνσης addr. Ωστόσο, τα μεμονωμένα αντίγραφα της μικροϋπηρεσίας δεν είναι αξιόπιστα: μπορούν να πέσουν, να είναι μη προσβάσιμα ή υπερφορτωμένα. Επομένως, πρέπει να υλοποιήσετε τον τύπο Balancer, ο οποίος υλοποιεί επίσης το interface Backend και πραγματοποιεί φορτωτική ισορροπία από την πλευρά του πελάτη μεταξύ των αντιγράφων της μικροϋπηρεσίας, επιλέγοντας κάθε φορά το **ελάχιστα φορτωμένο** αντίγραφο. */ type Request interface{} type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr περιέχει ip:port ενός συγκεκριμένου αντιγράφου func NewBackend(addr string) *BackendImpl type Balancer struct { // TODO } var _ Backend = &Balancer{} // addrs περιέχουν τις διευθύνσεις όλων των ισορροπημένων αντιγράφων func NewBalancer(addrs []string) *Balancer { // TODO }
Πόσα άτομα συμμετείχαν στο μεγαλύτερο έργο στο οποίο εργαστήκατε; Λιγότερα από δέκα, δεκάδες, εκατοντάδες;
Πες μου, ποια προβλήματα βλέπεις αυτήν τη στιγμή στην υλοποίηση της cache;
Γιατί κάναμε χειροκίνητο commit offset αντί για αυτόματο commit;
Ποια είναι η διαφορά μεταξύ Mutex και RWMutex;
Πώς να βελτιστοποιήσετε μια συναλλαγή με κλείδωμα γραμμής υπό υψηλό φόρτο (πρόβλημα bottleneck κατά την εγγραφή με κωδικό πρόσκλησης);
Τι είναι το API Gateway και γιατί το χρειαζόμαστε;
Ποια είναι η διαφορά μεταξύ κοντεϊνεροποίησης και εικονικοποίησης;
Πώς οργανώνουμε την γεωγραφική κατανομή με τρεις περιοχές με αυστηρή συνέπεια για συναλλαγές χρημάτων; Ποια αναπαραγωγή να χρησιμοποιήσουμε (master-master ή master-slave);
Ποιος είναι ο ρόλος ενός καναλιού σε μια μη buffer-ποιημένη μετάδοση, αν τα δεδομένα πηγαίνουν από στοίβα σε στοίβα;
Πώς θα εντοπίσετε και θα εξαλείψετε τα σημεία συμφόρησης που σχετίζονται με τον προγραμματιστή σε εφαρμογές υψηλού φορτίου;
Μίλησε για το τρέχον έργο: πάνω σε τι εργάζεσαι, ποια είναι τα βασικά καθήκοντα και η τεχνολογική στοίβα;
Τι συμβαίνει με το χάρτη όταν δεν υπάρχει αρκετή διαθέσιμη μνήμη; Τι είναι ένα overflow-bucket και υπό ποια συνθήκη δημιουργείται;
Σε ποια επιλογή μετατροπής τύπου είναι πιθανό το πανικό και ποια κατασκευή το αποτρέπει;
Ποια μορφή εργασίας προτιμάς, έχεις στρατιωτικό πιστοποιητικό και ποιες είναι οι οικονομικές σου προσδοκίες;
Υπάρχουν εταιρείες ή κλάδοι που δεν είστε διατεθειμένοι να εξετάσετε;
Πότε είστε έτοιμοι να ξεκινήσετε να εργάζεστε; Χρειάζεστε χρόνο για ξεκούραση μετά την απόλυση;
Εξηγήστε τη διαφορά μεταξύ κοντεϊνεροποίησης και εικονικοποίησης
Πες μας για την εμπειρία σου στην υποδομή και την αλληλεπίδραση με το DevOps