Υπάρχουν 3 οντότητες: χρήστης, συνομιλία, μήνυμα • Ο χρήστης έχει όνομα και ημερομηνία εγγραφής • Η συνομιλία έχει όνομα και ημερομηνία δημιουργίας • Το μήνυμα έχει κείμενο, συγγραφέα και ημερομηνία δημιουργίας • Ο χρήστης μπορεί να ανήκει σε πολλές συνομιλίες ταυτόχρονα • Το μήνυμα ανήκει υποχρεωτικά σε μια συνομιλία και δεν μπορεί να ανήκει σε περισσότερες από μία ταυτόχρονα • Πρέπει να περιγραφεί ο τομέας σε μορφή πινάκων
Golang
Πώς λειτουργεί εσωτερικά ένα slice στο Go; Πώς λειτουργεί η συνάρτηση append;
Τι είναι μια κατάσταση αγώνα (race condition) στο Go; Δώστε ένα παράδειγμα.
Τι είναι το EXPLAIN και το EXPLAIN ANALYZE στο PostgreSQL, ποια είναι η διαφορά;
Πες μας για μια ενδιαφέρουσα/πολύπλοκη τεχνική εργασία που έλυσες
Πόσα χρόνια εμπορικής εμπειρίας ανάπτυξης με Go;
Έχουμε μια βάση δεδομένων με κωδικούς χρηστών, οι κωδικοί είναι hash (λειτουργία hashPassword), και γνωρίζουμε επίσης το σύνολο χαρακτήρων που μπορούν να χρησιμοποιηθούν στους κωδικούς (μεταβλητή alphabet). Το καθήκον μας είναι να υλοποιήσουμε τη λειτουργία RecoverPassword ώστε να ανακτήσει τον κωδικό από το γνωστό hash και να ολοκληρωθεί επιτυχώς το TestRecoverPassword. Βασικές απαιτήσεις: Οποιαδήποτε μέθοδος επιτρέπεται package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() {
Με ποιες βάσεις δεδομένων εργάστηκες πιο στενά;
πακέτο κύριο εισαγωγή ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func ΑνάκτησηΚωδικού(h []byte) string { return "" } func hashΚωδικού(εισαγωγή string) []byte { h := md5.Sum([]byte(εισαγωγή)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashΚωδικού(exp) act := ΑνάκτησηΚωδικού(h) if act != exp { fmt.Printf("Σφάλμα: αναμενόταν %q, λήφθηκε %q\n", exp, act) ok = false } } if ok { fmt.Println("Όλοι οι έλεγχοι πέρασαν επιτυχώς") } }
Ποια HTTP methods υπάρχουν; Ποια από αυτά είναι ιδιομεταβατικά;
Πώς θα πραγματοποιηθεί η διαδικασία αποστολής και λήψης μηνυμάτων μεταξύ δύο πελατών; Περιγράψτε τη πλήρη ροή.
Ανασκόπηση κώδικα: cache σε Go με mutex. Βρείτε προβλήματα και προτείνετε βελτιώσεις. Συνθήκη: φόρτωση ανάγνωσης/εγγραφής 80/20.
package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func AnaktisiKodu(h []byte) string { return "" } func hashKodu(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashKodu(exp) act := AnaktisiKodu(h) if act != exp { fmt.Printf("Lathos: varakozas %q, kapott %q\n", exp, act) ok = false } } if ok { fmt.Println("Minden teszt sikeresen lefutott") } } A helyes kód futtatásához: belépési pont -- main függvény a main csomagban Feladat: Implementálja az AnaktisiKodu függvényt, amely a MD5 hash alapján rekonstruálja az eredeti jelszót, a megadott ábécé karaktereiből.
Πώς υλοποιείτε ένα graceful shutdown της υπηρεσίας Go στο Kubernetes κατά την ανάπτυξη μιας νέας έκδοσης;
Περιγράψτε τη δομή ενός αιτήματος και μιας απάντησης HTTP. Πώς ταξινομούνται οι κωδικοί απάντησης;
Γιατί εξετάζεις νέες προτάσεις; Ενεργητική ή παθητική αναζήτηση;
Τι θέλεις τώρα — ποιες είναι οι προσδοκίες σου από τη νέα δουλειά;
Ποιοι πίνακες και πεδία χρειάζονται στη βάση δεδομένων PostgreSQL για αυτόν τον μεσάζοντα;
Τι ήταν το πιο δύσκολο και το πιο ενδιαφέρον στη μετάβαση από μονολίθο σε μικροϋπηρεσίες;
Τι σημαίνει όταν η διαδικασία στην κορυφή δείχνει 150% CPU; Είναι αυτό φυσιολογικό;