Sobes.tech

Golang

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

Middle+
171

Come funziona il garbage collector in Go? Descrivi le fasi e l'algoritmo.

Middle+
171

Impressione generale del colloquio, livello del candidato, raccomandazioni

Middle+
160

Quali sono i vantaggi delle goroutine rispetto ai thread del sistema operativo?

Middle+
145

Come ottimizzare la ricerca in un database? Cosa sono gli indici e qual è la loro complessità?

Middle+
142

Parli del pianificatore di Go (scheduler). Come funziona? Cos'è il hand-off?

Middle+
136

Quali primitive di sincronizzazione ci sono in Go? Qual è la differenza tra Mutex e RWMutex? Quando usare gli atomici?

Middle+
120

Come funziona una mappa in Go? Racconta della struttura interna, buckets, collisioni.

Middle+
119

3. Complessità: supportare addebito/credito (registrazione doppia). Pulizia CREATE TABLE conti ( id BIGSERIAL PRIMARY KEY, owner_id BIGINT NOT NULL, currency VARCHAR(3) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE TABLE transazioni ( id BIGSERIAL PRIMARY KEY, account_id BIGINT NOT NULL REFERENCES conti(id), amount NUMERIC(18,2) NOT NULL CHECK (amount <> 0), created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE INDEX idx_transazioni ON transazioni(account_id); SELECT COALESCE(sum(amount), 0) AS balance FROM transazioni WHERE account_id = :account_id; ALTER TABLE transazioni ADD COLUMN type VARCHAR(6) NOT NULL CHECK (type IN ('debit', 'credit')); ALTER TABLE transazioni DROP CONSTRAINT transazioni_amount_check, ADD CONSTRAINT transazioni_amount_check CHECK (amount > 0); SELECT COALESCE( SUM(CASE WHEN type = 'credit' THEN amount WHEN type = 'debit' THEN - amount ) AS balance FROM transazioni WHERE account_id = :account_id;

Middle+
106

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 debito/credito (registrazione doppia). Pulizia.

Middle+
93