Golang
Kako čuvati glasovne poruke u aplikaciji za razmenu poruka poput WhatsApp? Zašto je bolje čuvati slike u S3 nego u Postgresu? Koje opcije za čuvanje slika u Postgresu postoje?
Konzument prima poruku iz Kafka, skladišti je u bafer, kada je batch spreman, zapisuje i commit-uje. Šta će se desiti ako servis padne u trenutku pravljenja batch-a?
Koliko mikroservisa imate na Go i koliko često se javljaju zadaci koji uključuju dva mikroservisa?
Условие Има 3 същности: потребител, чат, съобщение • Потребителят има име и дата на регистрация • Чатът има име и дата на създаване • Съобщението има текст, автор и дата на създаване • Потребителят може да участва в няколко чата едновременно • Съобщението задължително принадлежи към чат, не може да принадлежи към повече от един чат едновременно • Трябва да се опише предметната област под формата на таблици -- разпределен -- message_count в чатов лимит 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 );
Koje od sledećih sredstava za sinhronizaciju u Go? (kanali, sync.WaitGroup, sync.Mutex, sync.Cond)
Da li je korišćena paralelizacija za ubrzanje obrade?
Od koje sume razmatraš svoja očekivanja u vezi sa platom?
Ispričaj o svom iskustvu u infrastrukturi i saradnji sa DevOps-om
Šta je Graceful Shutdown i zašto je potreban?
Čime se razlikuje PARTITION BY od GROUP BY za podupit?
Kako se vrši proširenje (rehash) u Swiss Tables?
Колико људи је било у тиму и ко је постављао задатке?
Колико планираш да траје тражење новог посла? Имаш ли временски оквир?
Zadatak: «Ping-pong sa timeout-om» Napišite funkciju pingPong koja: - Pokreće dve goroutine: jedna generiše poruke "ping", druga — "pong". - Goroutine-ovi treba da razmenjuju poruke putem zajedničkog kanala striktno redom. - Razmena traje 3 sekunde, nakon čega program treba da se završi (graceful shutdown). - Koristite kontekst za otkazivanje sa timeout-om. - Prikazujte svaku poruku na ekranu zajedno sa vremenom (u milisekundama od starta). Primer očekivanog izlaza: 0ms: ping
Šta je prebacivanje konteksta gorutina? Ko to obavlja?
Od koje sume razmatraš ponudu u skladu sa finansijskim očekivanjima?
Kako funkcioniše hash tabela?
Ispričaj mi o najtežem zadatku koji si radio.
Da li ste govorili o read-modelu sa Redis-om? Da li je Redis replikovan između data centara?
Можемо ли да проследимо слайс као параметар унутар функције? Да ли постоје неки детаљи у таквом преносу?