Golang
Jak ukládat hlasové zprávy v messengere typu WhatsApp? Proč je lepší ukládat obrázky do S3 než do Postgres? Jaké jsou možnosti ukládání obrázků v Postgres?
Spotřebitel přijímá zprávu z Kafka, ukládá ji do bufferu, když je batch připraven, zapíše ji a provede commit. Co se stane, pokud služba spadne v okamžiku sestavování batch?
Kolik mikroservis máte v Go a jak často se vyskytují úkoly, které zahrnují dva mikroservisy?
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 );
Které z následujících jsou prostředky synchronizace v Go? (kanály, sync.WaitGroup, sync.Mutex, sync.Cond)
Použili jste paralelizaci ke zrychlení zpracování?
Od jaké částky zvažujete své mzdové očekávání?
Pověz mi o svých zkušenostech s infrastrukturou a spolupráci s DevOps
Co je to Graceful Shutdown a proč je potřeba?
V čem se liší PARTITION BY od GROUP BY u poddotazu?
Jak probíhá rozšíření (rehash) v Swiss Tables?
Kolik lidí bylo v týmu a kdo zadával úkoly?
Jak dlouho plánuješ hledat novou práci? Máš stanovený časový rámec?
Úkol: «Ping-pong s timeoutem» Napište funkci pingPong, která: - Spustí dvě gorutiny: jedna generuje zprávy "ping", druhá — "pong". - Gorutiny si mají vyměňovat zprávy přes společný kanál striktně po sobě. - Výměna pokračuje 3 sekundy, poté by měl program skončit (pohotovostní vypnutí). - Použijte kontext pro zrušení s timeoutem. - Vypisujte každou zprávu na obrazovku spolu s časem (v milisekundách od začátku). Příklad očekávaného výstupu: 0ms: ping
Co je to přepínání kontextu gorutin? Kdo ho provádí?
Od jaké částky zvažujete nabídku z hlediska finančních očekávání?
Jak funguje hashovací tabulka?
Pověz mi o nejnáročnějším úkolu, který jsi dělal.
Mluvili jste o read-modelu s Redisem. Replikoval se Redis mezi datovými centry?
Můžeme předat slice jako parametr do funkce? Existují nějaké nuance v takovém předání?