Proč ti vůbec v práci potřebuješ vedoucího? Na co?
Golang
Jak funguje hash tabulka? Jaká je složitost vkládání a čtení? Vlastnosti implementace v Go.
Máš představu, v jakém týmu bys rád pracoval? Jaký by měl být?
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?
Jak často jste ve svém týmu prováděli revize kódu?
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?
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") } }
Jaký je rozdíl mezi procesy, vlákny a goroutines v Go?
SELECT * c.id, -- vyberte všechny chaty (c.id, c.name) pro všechny uživatele podle jména ($1) where text > 'abc'
Co teď více chceš: vývoj produktu nebo platformy?
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 );
Co je to replikace databází a k čemu se používá? Jaké problémy mohou nastat?
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)?
Jak zabít proces v Linuxu? Co dělat, když příkaz kill pid nepomáhá?
Co je to HTTPS? Čím se liší od HTTP? Jak chrání před útokem 'muž uprostřed'?
Obecně popiš projekt — co to bylo pro koncového uživatele?
Co jsou EXPLAIN a EXPLAIN ANALYZE v PostgreSQL, v čem je rozdíl?
Jak je uvnitř uspořádán slice v Go? Jak funguje funkce append?
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é
Co je to závodní podmínka v Go? Uveďte příklad.