Golang
Biglietto militare?
Parlami del tuo progetto. Cosa fai lì?
// Il cliente passa un oggetto (Task) con i dati per eseguire il compito, // nel nostro esempio useremo una struttura vuota. // // Il gestore può elaborare al massimo N compiti contemporaneamente, // e non più di X compiti possono essere messi in coda. // Se non c'è spazio in coda, si restituisce immediatamente un errore al cliente. // // Il compito viene preso in carico se ci sono processori liberi. // Simuliamo la durata dell'elaborazione con time.Sleep(5*time.Second). // Appena un compito termina, prendiamo il prossimo dalla coda. // Se la coda è vuota, aspettiamo nuovi compiti dai clienti. // // Con un asterisco: ampliare la struttura Task e ottenere gli stati dei compiti tramite una richiesta separata. 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 { // implementazione in sospeso } type Task interface { Do() }
Come viene garantita la sicurezza su REST e Kafka? Cos'è HTTPS/TLS?
Chi si occupa del deployment — gli sviluppatori o DevOps?
Perché hanno suddiviso il monolito in microservizi?
Perché hai lasciato l'azienda?
Domanda 4: Trova gli errori nel codice con canali e goroutine (chiusura doppia del canale)
La mappa standard in Go è sicura per la concorrenza? Quali alternative esistono?
Cos'è l'iterazione su una stringa tramite for range in Go? Cosa sono le variabili i e v all'interno del ciclo, quali sono i loro tipi di dato?
Perché una mappa normale in Go non è sicura per le scritture concorrenti?
Quali tipi di indici esistono e come capire se è necessario un indice?
Come uccidere un processo in Linux? Cosa fare se kill pid non funziona?
Può confermare l'esperienza tramite il libretto di lavoro?
Cos'è ACID? Livelli di isolamento delle transazioni?
Modellare un sistema bancario semplice: - Tabella `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Tabella `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Requisiti:** 1. Scrivere SQL per creare lo schema con le restrizioni necessarie (NOT NULL, FK, CHECK su `amount` non nullo). 2. Scrivere una query: - ottenere il saldo attuale del conto per `account_id` (somma di `amount`). 3. Difficoltà aggiuntiva: supportare addebito/credito (registrazione doppia). Pulizia
Come evitare le condizioni di gara? Come funziona un Mutex?
Come è stato impostato il limite di velocità? Su cosa si basava e dove è stato implementato? Cosa è stato usato tecnicamente?
Come è organizzata la mappa sotto il cofano in Go?
Come interagivano le repliche dei servizi in Kubernetes e quali informazioni condividevano?