Αν η υπηρεσία επιστρέφει σφάλμα 500, πώς θα αντιμετωπίσετε το πρόβλημα;
Golang
Γνωρίζετε το μοντέλο MVCC;
Περιγράψτε τη διαδικασία μεταγλώττισης ενός προγράμματος Go: τι συμβαίνει κατά την εκτέλεση του go build;
Χρησιμοποιείτε TDD; Πώς καλύπτετε τον κώδικά σας με δοκιμές;
Πώς να προσεγγίσετε με ασφάλεια ένα τμήμα μνήμης από πολλές goroutines; Πότε να χρησιμοποιείτε mutex και πότε ατομικούς;
Γιατί οι διαρροές goroutine θεωρούνται πιο κρίσιμες από τις κλασικές διαρροές μνήμης όσον αφορά τον αντίκτυπο στο runtime;
Τι είναι οι συμβολοσειρές στο Go και ποια είναι τα χαρακτηριστικά τους;
Πώς επηρεάζει το GOGC την απόδοση της υπηρεσίας; Τι είναι το STW και πώς επηρεάζει την καθυστέρηση;
Πώς λειτουργεί ο προγραμματιστής goroutine στο Go; Μιλήστε για το μοντέλο GMP.
Τι είναι οι goroutines στο Go; Πώς λειτουργεί ο προγραμματιστής του Go (μοντέλο GMP);
Πείτε μας για τους brokers μηνυμάτων: ποιοι τύποι υπάρχουν, πώς λειτουργεί το Kafka;
Γιατί δεν μπορούμε να τοποθετήσουμε δείκτες σε όλες τις στήλες ενός πίνακα;
Περιγράψτε τη διαδικασία ανάλυσης και βελτιστοποίησης μιας μακράς ερώτησης SQL.
Αναφέρετε την εμπειρία σας, ό,τι θεωρείτε απαραίτητο και σχετικό για αυτή τη θέση.
Τι είναι η ανάλυση διαφυγής; Σε ποιες περιπτώσεις ένα αντικείμενο πηγαίνει στη σωρό;
Πείτε μας για το πακέτο unsafe στο Go. Πότε βοήθησε στη δουλειά σας;
Πώς αλληλεπιδρούσαν οι αντίγραφα υπηρεσιών στο Kubernetes και ποια πληροφορία μοιράζονταν;
#διευκρίνιση #τεχνική 1. Τι είναι υπέροχο στο Go; - goroutines και ο προγραμματιστής που επιτρέπει να δουλεύεις χωρίς να σκέφτεσαι πώς λειτουργεί με τον ανταγωνισμό. 2. Ποια μειονεκτήματα βλέπεις στο Go; - διαχείριση σφαλμάτων 3. Πώς ήρθες στο Go; 4. Πώς διασφαλίζεται η ελαφρότητα στο Go και γιατί οι goroutines μετακινούνται πιο γρήγορα; Γιατί δεν μπορούσε να γίνει το ίδιο στα λειτουργικά συστήματα; 5. Για τι θυσιάζουμε όταν αντικαθιστούμε τα νήματα OS με goroutines; 6. Τι είναι ο ανταγωνισμός και η παράλληλη επεξεργασία; 7. Τι είναι το interface net.Listener και ποια είναι τα μεθόδιά του; 8. Έχεις εργαστεί απευθείας με δίκτυα ή μέσω frameworks και ποια; 9. Πώς διαφέρει το TCP από το UDP και τι είναι και για ποιο σκοπό χρησιμοποιούνται; 10. Ποιοι είναι οι κίνδυνοι κατά τη χρήση TCP και UDP; 11. Τι είναι το bigEndian και το littleEndian; 12. Τι είναι το TLS; 13. Ποιες μέθοδοι υπάρχουν για τη μετάδοση δεδομένων μεταξύ μικροϋπηρεσιών (π.χ., εντολές/αιτήματα/απαντήσεις/μεταφορά αρχείων); Ποιες αρχιτεκτονικές ή εργαλεία ανάπτυξης μπορούμε να επιλέξουμε και ποιες είναι οι λεπτομέρειες τους; 14. Ποιες μέθοδοι υπάρχουν για τη μετάδοση δεδομένων μέσω δικτύου και ποια είναι τα πλεονεκτήματα/μειονεκτήματα; 15. Με ποιες βάσεις δεδομένων εργάστηκες και ποια εργαλεία χρησιμοποίησες; 16. Ποια βιβλιοθήκη χρησιμοποίησες για κάθε βάση δεδομένων στο Go; 17. Πώς αντιμετωπίζεις την αύξηση της βάσης δεδομένων κατά την ανάπτυξη; 18. Αν άλλαξε το σχήμα της βάσης δεδομένων, τροποποιήθηκαν τα πεδία, πώς λύνεις αυτό το πρόβλημα χωρίς να χάσεις παλιά δεδομένα; Πώς κάνεις μεταναστεύσεις και ποια είναι τα πλεονεκτήματα/μειονεκτήματα τους; 19. Πώς αλλάζεις τη βάση δεδομένων σε παραγωγή; Ποιος το έκανε; 20. Πώς μπορείς να αποσυνθέσεις το συστατικό που εργάζεται με τη βάση δεδομένων από τη βασική λογική, ώστε όλες οι ερωτήσεις SQL και ORM να μην διασκορπίζονται στον κώδικα; Βάλε το σε έναν ξεχωριστό φάκελο και χρησιμοποίησε interfaces και tags; 21. Γιατί χρειάζονται οι δείκτες και ποια είναι τα μειονεκτήματά τους; 22. Σου δόθηκε η εργασία: γράψε κώδικα που θα τοποθετήσεις στο έργο και πώς θα τεκμηριώσεις το αποτέλεσμα; 23. Ποια τεκμηρίωση χρησιμοποιείς συνήθως και γιατί + πού πηγαίνει; Για παράδειγμα, τι είναι αυτό το interface, για ποιο σκοπό χρησιμοποιείται κ.λπ.; Υπήρξε τέτοια κατάσταση; 24. Χρησιμοποιείς ενεργά το go doc και είναι πρακτική σου; 25. Τις προδιαγραφές ή το markdown τις τεκμηριώνεις και πώς το κάνεις; 26. Ποιο ήταν το workflow σου, από ποιος έρχονταν τα καθήκοντα και τι συνέβη μετά; 27. Πόσο λεπτομερείς είναι οι εργασίες; Δηλαδή, χρειάζεται μόνο να μπεις ή πρέπει και να σκεφτείς αρχιτεκτονικά και να ρωτήσεις κάποιον; 28. Σε ένα έργο με πολλές goroutines, ποια μέσα συγχρονισμού χρησιμοποιούνται ώστε όλες να ολοκληρώνονται με ασφάλεια; 29. Πού χρησιμοποίησες goroutines; 30. Πόσα bytes καταλαμβάνει ένα interface; 31. Τι είναι το httpHandler, τι λαμβάνει και τι δομή έχει και τι επιστρέφει, ποια είναι τα επιχειρήματα και η υπογραφή; Για ποιο λόγο χρειάζεται και πού χρησιμοποιείται περαιτέρω; 32. Τι είναι το middleware και πώς το χρησιμοποιείς; Πώς ήταν στο έργο σου; 33. Ποιες ιδιότητες της γλώσσας Go επιτρέπουν την κατασκευή αυτών των middleware και τι είναι, τι δέχεται και τι παράγει; 34. Έχουμε μια λειτουργία που δέχεται μια λειτουργία και μετά την εκτέλεση ξεκινά μια goroutine και κάνει callback, και της δίνουμε μια μέθοδο δομής, που επίσης δεν δέχεται τίποτα και δεν επιστρέφει τίποτα - θα υπάρξει σφάλμα μεταγλώττισης ή κάτι άλλο; Δηλαδή, η υπογραφή της είναι κενή και έχουμε μια μέθοδο που ζητά μια τέτοια λειτουργία, και αντί να δώσουμε μια καθαρή λειτουργία, δώσαμε μια μέθοδο, δηλαδή ένα αντικείμενο.μέθοδο. 35. Υπάρχει μια λειτουργία που δέχεται int32 και προσπαθούμε να της δώσουμε int16, τι θα συμβεί και σε ποιο στάδιο; 36. Πόσα bytes καταλαμβάνει στη μνήμη ένα slice σε amd64, π.χ.; 24 bytes, και τα δεδομένα δεν μεταφέρονται στη λειτουργία; 37. Πώς μπορείς να υλοποιήσεις ένα σύνολο στο Go και ποια είναι τα πλεονεκτήματα και οι λεπτομέρειες; 38. Τι είναι το UUID και το χρησιμοποίησες στο έργο σου, πού και ποια βιβλιοθήκη χρησιμοποίησες; 39. Έχεις ένα map με 1.000.000 στοιχεία, τι θα συμβεί αν προσθέσεις ακόμα 1 στοιχείο; Ποια σενάρια είναι πιθανά και πώς αλλάζει η ταχύτητα πρόσβασης στα δεδομένα; 41. Χρησιμοποίησες Docker (container/pods); Και ποια άλλα services υπήρχαν πριν το Docker, όπως "πώς αναπτύσσεις το binary σε server"; Πώς πακετάρεις τον κώδικα και πώς τον μετατρέπεις ώστε η υπηρεσία να ξεκινά με την εκκίνηση του OS;
Το anti-fraud είναι μια μεγάλη υπηρεσία ή μέρος ενός μεγαλύτερου συστήματος; Πώς αλληλεπιδρά με άλλες υπηρεσίες;
Τι συμβαίνει σε ολόκληρο το πρόγραμμα αν προκύψει panic στον χειριστή HTTP;