Golang
Bilet militar?
Spune-mi despre proiectul tău. Ce faci acolo?
// Clientul transmite un obiect (Task) cu date pentru executarea sarcinii, // în exemplul nostru vom folosi o structură goală. // // Scheduler-ul poate procesa nu mai mult de N sarcini simultan, // și nu mai mult de X sarcini pot fi puse în coadă pentru procesare. // Dacă nu există loc în coadă, se returnează imediat o eroare clientului. // // Sarcina este preluată pentru procesare dacă există procesatoare libere. // Simulăm durata procesării cu time.Sleep(5*time.Second). // De îndată ce o sarcină s-a terminat, luăm următoarea din coadă. // Dacă coada este goală, așteptăm sarcini noi de la clienți. // // Cu un asterisc: extindeți structura Task și obțineți starea sarcinilor printr-o solicitare separată. package scheduler type Scheduler interface { AddTask(t Task) error Close() } type scheduler struct { queue chan Task wg sync.WaitGroup } func New(workers, queue int) Scheduler { // implementare în așteptare } type Task interface { Do() }
Cum se asigură securitatea pe REST și Kafka? Ce este HTTPS/TLS?
Cine se ocupă de implementare — dezvoltatorii sau DevOps?
De ce s-a împărțit monolitul în microservicii?
De ce ai părăsit compania?
Întrebarea 4: Găsiți erori în codul cu canale și goroutines (închiderea dublă a canalului)
Harta standard în Go este sigură pentru concurență? Care sunt alternativele?
De ce este un map obișnuit în Go nesigur pentru scrierea concurentă?
Ce tipuri de indecși există și cum să înțelegi dacă ai nevoie de un index?
Cum să omorâm un proces în Linux? Ce să facem dacă kill pid nu funcționează?
Puteți confirma experiența prin carnetul de muncă?
Ce este ACID? Nivelurile de izolare a tranzacțiilor?
Modelați un sistem bancar simplu: - Tabelul `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Tabelul `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Cerinte:** 1. Scrieți SQL pentru crearea schemei cu restricțiile necesare (NOT NULL, FK, CHECK pe `amount` nenul). 2. Scrieți o interogare: - obțineți soldul curent al contului după `account_id` (suma `amount`). 3. Dificultate suplimentară: suport pentru debit/credit (înregistrare dublă). Curățare
Cum se evită condițiile de cursă? Cum funcționează un Mutex?
Cum a fost stabilit limitul de rată? Pe ce s-a bazat și unde a fost implementat? Ce s-a folosit tehnic?
Cum este organizată harta sub capot în Go?
Cum interacționau replicile serviciilor în Kubernetes și ce informații împărțeau?
Ce primitive de sincronizare există în Go?