Sobes.tech

Υπάρχουν 3 οντότητες: χρήστης, συνομιλία, μήνυμα • Ο χρήστης έχει όνομα και ημερομηνία εγγραφής • Η συνομιλία έχει όνομα και ημερομηνία δημιουργίας • Το μήνυμα έχει κείμενο, συγγραφέα και ημερομηνία δημιουργίας • Ο χρήστης μπορεί να ανήκει σε πολλές συνομιλίες ταυτόχρονα • Το μήνυμα ανήκει υποχρεωτικά σε μια συνομιλία και δεν μπορεί να ανήκει σε περισσότερες από μία ταυτόχρονα • Πρέπει να περιγραφεί ο τομέας σε μορφή πινάκων

183

Πώς λειτουργεί εσωτερικά ένα slice στο Go; Πώς λειτουργεί η συνάρτηση append;

183

Τι είναι μια κατάσταση αγώνα (race condition) στο Go; Δώστε ένα παράδειγμα.

182

Τι είναι το EXPLAIN και το EXPLAIN ANALYZE στο PostgreSQL, ποια είναι η διαφορά;

182

Πες μας για μια ενδιαφέρουσα/πολύπλοκη τεχνική εργασία που έλυσες

175

Πόσα χρόνια εμπορικής εμπειρίας ανάπτυξης με Go;

175

Έχουμε μια βάση δεδομένων με κωδικούς χρηστών, οι κωδικοί είναι 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() {

173

Με ποιες βάσεις δεδομένων εργάστηκες πιο στενά;

171

πακέτο κύριο εισαγωγή ( "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("Όλοι οι έλεγχοι πέρασαν επιτυχώς") } }

170

Ποια HTTP methods υπάρχουν; Ποια από αυτά είναι ιδιομεταβατικά;

169

Πώς θα πραγματοποιηθεί η διαδικασία αποστολής και λήψης μηνυμάτων μεταξύ δύο πελατών; Περιγράψτε τη πλήρη ροή.

169

Ανασκόπηση κώδικα: cache σε Go με mutex. Βρείτε προβλήματα και προτείνετε βελτιώσεις. Συνθήκη: φόρτωση ανάγνωσης/εγγραφής 80/20.

167

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.

164

Πώς υλοποιείτε ένα graceful shutdown της υπηρεσίας Go στο Kubernetes κατά την ανάπτυξη μιας νέας έκδοσης;

163

Περιγράψτε τη δομή ενός αιτήματος και μιας απάντησης HTTP. Πώς ταξινομούνται οι κωδικοί απάντησης;

162

Γιατί εξετάζεις νέες προτάσεις; Ενεργητική ή παθητική αναζήτηση;

161

Τι θέλεις τώρα — ποιες είναι οι προσδοκίες σου από τη νέα δουλειά;

159

Ποιοι πίνακες και πεδία χρειάζονται στη βάση δεδομένων PostgreSQL για αυτόν τον μεσάζοντα;

159

Τι ήταν το πιο δύσκολο και το πιο ενδιαφέρον στη μετάβαση από μονολίθο σε μικροϋπηρεσίες;

156

Τι σημαίνει όταν η διαδικασία στην κορυφή δείχνει 150% CPU; Είναι αυτό φυσιολογικό;

154
/4