Sobes.tech

Golang

Modelować prosty system bankowy: - Tabela `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Tabela `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Wymagania:** 1. Napisać SQL do utworzenia schematu z potrzebnymi ograniczeniami (NOT NULL, FK, CHECK na `amount` niezerowe). 2. Napisać zapytanie: - uzyskać bieżący stan konta po `account_id` (suma `amount`). 3. Utrudnienie: obsługa debetu/kredytu (podwójny zapis). Czyszczenie

Middle+
170

Ogólne wrażenie z rozmowy kwalifikacyjnej, poziom kandydata, rekomendacje

Middle+
157

Jak działa garbage collector w Go? Opisz fazy i algorytm.

Middle+
144

Jakie są zalety goroutines w porównaniu do wątków systemu operacyjnego?

Middle+
140

Jak zoptymalizować wyszukiwanie w bazie danych? Czym są indeksy i jaka jest ich złożoność?

Middle+
139

Opowiedz o planowniku Go (scheduler). Jak on działa? Czym jest hand-off?

Middle+
134

Jakie primitive synchronizacji są dostępne w Go? Jaka jest różnica między Mutex a RWMutex? Kiedy używać atomików?

Middle+
120

Jak działa mapa w Go? Opowiedz o strukturze wewnętrznej, buckets, kolizjach.

Middle+
103

3. Złożoność: obsługa debetu/kredytu (podwójne księgowanie). Czyszczenie CREATE TABLE konta ( id BIGSERIAL PRIMARY KEY, owner_id BIGINT NOT NULL, currency VARCHAR(3) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE TABLE transakcje ( id BIGSERIAL PRIMARY KEY, account_id BIGINT NOT NULL REFERENCES konta(id), amount NUMERIC(18,2) NOT NULL CHECK (amount <> 0), created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE INDEX idx_transakcje ON transakcje(account_id); SELECT COALESCE(sum(amount), 0) AS balance FROM transakcje WHERE account_id = :account_id; ALTER TABLE transakcje ADD COLUMN type VARCHAR(6) NOT NULL CHECK (type IN ('debit', 'credit')); ALTER TABLE transakcje DROP CONSTRAINT transakcje_amount_check, ADD CONSTRAINT transakcje_amount_check CHECK (amount > 0); SELECT COALESCE( SUM(CASE WHEN type = 'credit' THEN amount WHEN type = 'debit' THEN - amount ) AS balance FROM transakcje WHERE account_id = :account_id;

Middle+
101

Modelować prosty system bankowy: - Tabela `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Tabela `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Wymagania:** 1. Napisać SQL do utworzenia schematu z potrzebnymi ograniczeniami (NOT NULL, FK, CHECK na `amount` niezerowe). 2. Napisać zapytanie: - uzyskać bieżący stan konta po `account_id` (suma `amount`). 3. Utrudnienie: obsługa debetu/kredytu (podwójny zapis). Sprzątanie.

Middle+
82