Sobes.tech

Golang

Jak je uvnitř uspořádán slice v Go? Jak funguje funkce append?

181

Je nutné navrhnout architekturu backendu pro messenger (Slack, Teams, Mattermost). Požadavky a omezení: pouze 1x1 chaty, bez skupinových chatů pouze textové zprávy, bez příloh služba je dostupná přes internet až 10 000 uživatelů v systému zprávy musí být doručovány rychle, během několika sekund je třeba zachovat pořadí zpráv, bez duplicit je možné posouvat chat do minulosti, tj. ukládat zprávy klienti jsou mobilní zařízení, jejich návrh není nutný navrhování autorizace není nutné

180

Pověz mi o zajímavém nebo složitém technickém úkolu, který jsi řešil

173

Máme databázi uživatelských hesel, hesla jsou hashována (funkce hashPassword), a je také známa sada znaků, které mohou být v heslech použity (proměnná alphabet). Naším úkolem je implementovat funkci RecoverPassword tak, aby obnovila heslo podle známého hashe a TestRecoverPassword byl úspěšný. Základní požadavky: Libovolná metoda je povolena 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() {

171

balíček hlavní import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func ObnovitHeslo(h []byte) string { return "" } func hashHeslo(vstup string) []byte { h := md5.Sum([]byte(vstup)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashHeslo(exp) act := ObnovitHeslo(h) if act != exp { fmt.Printf("Chyba: očekáváno %q, kapott %q\n", exp, act) ok = false } } if ok { fmt.Println("Všechny testy úspěšně proběhly") } }

170

Jaké HTTP metody existují? Které z nich jsou idempotentní?

169

Jak bude probíhat proces odesílání a přijímání zpráv mezi dvěma klienty? Popište úplný tok.

169

Recenze kódu: cache v Go s mutexem. Najděte problémy a navrhněte vylepšení. Podmínka: zatížení čtení/zápis 80/20.

166

package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func ObnovitHeslo(h []byte) string { return "" } func hashHeslo(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashHeslo(exp) act := ObnovitHeslo(h) if act != exp { fmt.Printf("Chyba: očakávané %q, získané %q\n", exp, act) ok = false } } if ok { fmt.Println("Všetky testy prešli úspešne") } } Pre správne spustenie kódu: vstupný bod -- funkcia main v balíku main Úloha: Implementujte funkciu ObnovitHeslo, ktorá na základe MD5 hash obnoví pôvodné heslo pozostávajúce zo znakov daného abecedy.

164

Jak implementovat graceful shutdown Go služby v Kubernetes při nasazení nové verze?

163

Popište strukturu HTTP požadavku a odpovědi. Jak jsou klasifikovány kódy odpovědí?

162

Co chceš teď — jaká jsou tvá očekávání od nové práce?

159

Proč zvažujete nové nabídky? Aktivní nebo pasivní hledání?

159

Jaké tabulky a pole jsou potřeba v databázi PostgreSQL pro tento messenger?

159

Co bylo nejtěžší a nejzajímavější při přechodu z monolitu na mikroservisy?

156

Co znamená, když proces v top ukazuje 150 % CPU? Je to normální?

154
/4