Modeleer een eenvoudig banksysteem: - Tabel `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Tabel `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Vereisten:** 1. Schrijf SQL om het schema te maken met de benodigde beperkingen (NOT NULL, FK, CHECK op `amount` niet nul). 2. Schrijf een query: - verkrijg het huidige saldo van de rekening op `account_id` (som van `amount`). 3. Extra uitdaging: ondersteuning voor debet/krediet (dubbele registratie). Opschonen
Golang
Hoe werkt de garbage collector in Go? Beschrijf de fasen en het algoritme.
Algemene indruk van het interview, het niveau van de kandidaat, aanbevelingen
Welke synchronisatie-primitieven zijn er in Go? Wat is het verschil tussen Mutex en RWMutex? Wanneer gebruik je atomics?
Hoe werkt de map in Go? Vertel over de interne structuur, buckets, botsingen.
Wat zijn de voordelen van goroutines ten opzichte van OS-threads?
Hoe optimaliseer je de zoekfunctie in een database? Wat zijn indexen en wat is hun complexiteit?
Vertel over de Go (scheduler). Hoe werkt het? Wat is hand-off?
3. Complexiteit: ondersteuning van debet/krediet (dubbele boekhouding). Opschoning CREATE TABLE rekeningen ( id BIGSERIAL PRIMARY KEY, owner_id BIGINT NOT NULL, currency VARCHAR(3) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE TABLE transacties ( id BIGSERIAL PRIMARY KEY, account_id BIGINT NOT NULL REFERENCES rekeningen(id), amount NUMERIC(18,2) NOT NULL CHECK (amount <> 0), created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE INDEX idx_transacties_account_id ON transacties(account_id); SELECT COALESCE(sum(amount), 0) AS balance FROM transacties WHERE account_id = :account_id; ALTER TABLE transacties ADD COLUMN type VARCHAR(6) NOT NULL CHECK (type IN ('debit', 'credit')); ALTER TABLE transacties DROP CONSTRAINT transacties_amount_check, ADD CONSTRAINT transacties_amount_check CHECK (amount > 0); SELECT COALESCE( SUM(CASE WHEN type = 'credit' THEN amount WHEN type = 'debit' THEN - amount ) AS balance FROM transacties WHERE account_id = :account_id;
Modeleer een eenvoudig banksysteem: - Tabel `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Tabel `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Vereisten:** 1. Schrijf SQL om het schema te maken met de benodigde beperkingen (NOT NULL, FK, CHECK op niet-nul `amount`). 2. Schrijf een query: - krijg het huidige saldo van de rekening op `account_id` (som van `amount`). 3. Extra uitdaging: ondersteuning voor debet/krediet (dubbele registratie). Opruimen.