Какие типы каналов существуют в Go и для чего каждый используется?
Опиши flow хода игрока: как данные проходят от WebSocket до обновления состояния у второго игрока?
Расскажи про свою роль и состав команды на текущем проекте в Совкомбанке.
Проводил ли ты технические интервью и занимался ли менторством?
3. Усложнение: поддержать дебет/кредит (двойная запись). Cleanup CREATE TABLE accounts ( id BIGSERIAL PRIMARY KEY, owner_id BIGINT NOT NULL, currency VARCHAR(3) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE TABLE transactions ( id BIGSERIAL PRIMARY KEY, account_id BIGINT NOT NULL REFERENCES accounts(id), amount NUMERIC(18,2) NOT NULL CHECK (amount <> 0), created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE INDEX idx_transactions_account_id ON transactions(account_id); SELECT COALESCE(sum(amount), 0) AS balance FROM transactions WHERE account_id = :account_id; ALTER TABLE transactions ADD COLUMN type VARCHAR(6) NOT NULL CHECK (type IN ('debit', 'credit')); ALTER TABLE transactions DROP CONSTRAINT transactions_amount_check, ADD CONSTRAINT transactions_amount_check CHECK (amount > 0); SELECT COALESCE( SUM(CASE WHEN type = 'credit' THEN amount WHEN type = 'debit' THEN - amount ) AS balance FROM transactions WHERE account_id = :account_id;
Какая сложность операций с map в худшем случае при коллизиях?
Есть ли ещё гонки данных в реализации? Конкретно в методе Keys, который возвращает слайс ключей?
Какую бизнес-проблему решал антифрод-проект? Что было бы, если бы не вынесли его в отдельный сервис?
С какими инструментами и базами данных приходилось работать?
Расскажи про каждый из принципов SOLID
В первой компании вы работали по ТК или ГПХ?
Есть ли предофферы на руках?
Как протестировать функцию printNumber без ожидания секунды?
DaemonSet — какая логика работы?
Будем считать что задача на Go версии 1.18. Что изменится в поведении программы?
Что такое Outbox pattern и как он реализуется?
Как вы строили инбокс-паттерн?
Как решить проблему конкурентного бронирования при переходе на реальную базу данных?
Реализовать метод grpc-сервера AddItemAndOrder: 1. Добавить товары в корзину 2. Обязательно сообщить возможным потребителям о факте оформления корзины через брокер сообщений. 3. При изменении состава корзины надо пересчитывать basket.Total=sum(count*price) 4. Все элементы корзины должны быть уникальны по ключу ProductID 5. Для оформления корзины необходимо сменить ее статус на ordered 6. В оформленные корзины изменения вносить нельзя
Если бы ты был разработчиком языка Go, какую структуру данных использовал бы для реализации буферизированного канала?