Sobes.tech
Senior

#διευκρίνιση #τεχνική 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;