Sobes.tech

Golang

Jak funguje hash tabulka? Jaká je složitost vkládání a čtení? Vlastnosti implementace v Go.

207

Máš představu, v jakém týmu bys rád pracoval? Jaký by měl být?

205

Pokud bys měl na výběr mezi dvěma společnostmi nebo dvěma týmy, na co bys dával pozor a jak bys vybíral?

202

Stalo se vám někdy, že jste něco dlouho dělali a nakonec to nebylo implementováno nebo odloženo do zásobníku?

197

Pro správné spuštění kódu: vstupní bod -- funkce main v balíčku main 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() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashPassword(exp) act := RecoverPassword(h) if act != exp { fmt.Printf("Chyba: očekáváno %q, získáno %q\n", exp, act) ok = false } } if ok { fmt.Println("Všechny testy úspěšně prošly") } }

192

Jaký je rozdíl mezi procesy, vlákny a goroutines v Go?

191

SELECT * c.id, -- vyberte všechny chaty (c.id, c.name) pro všechny uživatele podle jména ($1) where text > 'abc'

190

Podmínka Existují 3 entity: uživatel, chat, zpráva • Uživatel má jméno a datum registrace • Chat má název a datum vytvoření • Zpráva má text, autora a datum vytvoření • Uživatel může být současně v několika chatech • Zpráva musí nutně patřit do jednoho chatu, nemůže patřit více chatům současně • Doménu je třeba popsat ve formě tabulek -- distribuovaný -- message_count v chatech limit 100 --getShard(time zone) -> shard_id -> 1 --getShard(time zone) -> shard_id -> 2 --shard1 [1..100] --shard2 [101..200] CREATE TABLE users ( id int PRIMARY KEY, name varchar(255) NOT NULL, reg_at TIMESTAMP NOT NULL DEFAULT NOW() ); CREATE TABLE chats ( id int PRIMARY KEY, name VARCHAR(255) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT NOW(), message_count int NOT NULL CHECK <= 100 ); CREATE TABLE user_chats ( user_id int not null REFERENCES users(id), chat_id int NOT NULL REFERENCES chats(id), PRIMARY KEY (user_id, chat_id) ); CREATE TABLE messages ( id int PRIMARY KEY, chat_id int NOT NULL REFERENCES chats(id), author_id int NOT NULL REFERENCES users(id), created_at TIMESTAMP NOT NULL DEFAULT NOW(), text TEXT NOT NULL );

189

Co je to replikace databází a k čemu se používá? Jaké problémy mohou nastat?

187

Co je sharding a k čemu se používá? Jak vybrat klíč sharding pro tabulky taxi služby (řidiči, zákazníci, objednávky)?

187

Jak zabít proces v Linuxu? Co dělat, když příkaz kill pid nepomáhá?

185

Co je to HTTPS? Čím se liší od HTTP? Jak chrání před útokem 'muž uprostřed'?

184

Obecně popiš projekt — co to bylo pro koncového uživatele?

183

Co jsou EXPLAIN a EXPLAIN ANALYZE v PostgreSQL, v čem je rozdíl?

182

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
/4