Sobes.tech

Задача по PostgreSQL: обеспечить консистентность баланса и защиту от отрицательного баланса при 10 одновременных запросах на списание

Senior
РТК ИТ
4

Есть таблицы счетов и их позиций. Найти счета, у которых `invoices.total` **НЕ совпадает** с суммой позиций (hours * rate). ## Таблица `invoices`: | id | total | |----|-------| | 1 | 5000 | | 2 | 8000 | | 3 | 3200 | | 4 | 1500 | ## Таблица `invoice_lines`: | invoice_id | service_name | hours | rate | |------------|--------------|-------|------| | 1 | consulting | 10 | 500 | -- 5000 ✓ | 2 | design | 8 | 800 | -- } | 2 | development | 5 | 500 | -- 8900 ≠ 8000 ✗ | 3 | testing | 4 | 800 | -- 3200 ✓ | 4 | support | 2 | 500 | -- } | 4 | analytics | 3 | 300 | -- 1900 ≠ 1500 ✗ ## Ожидаемый результат: | id | total | actual_sum | |----|-------|------------| | 2 | 8000 | 8900 | | 4 | 1500 | 1900 | SELECT id, total, actual_sum ...

Middle
Лоция
4

Кто писал сообщения в Kafka? Как происходило изменение формата сообщений?

Senior
Альфа-БанкАльфа-Банк
4

Почему тест падал с NullPointerException и как это исправить?

Senior
VKVK
4

Какие типы операций есть в стримах (Stream API)?

Senior
aiins
4

В чём разница между Story Points и оценкой по времени?

Senior
СБЕРСБЕР
4

Как у вас в команде происходит оценка задач на грумингах?

Senior
СБЕРСБЕР
4

Как будет выглядеть решение той же задачи с помощью Spring Data JPA?

Middle
Финансовые платформы
4

Как Spring выстраивает процесс создания бинов с момента запуска приложения? Как работают автоконфигурации и conditional аннотации?

Senior
Сбер Право
4

Расскажи про продукт, над которым работал в Магните.

Senior
СБЕРСБЕР
4

Что такое B-Tree и почему он используется в реляционных БД, а не красно-чёрное дерево?

Senior
01.tech
4

Как устроена HashMap внутри и как работает?

Senior
01.tech
4

Чем HAVING отличается от WHERE?

Senior
СБЕРСБЕР
4

Чем Dockerfile отличается от Docker Compose файла?

Senior
Альфа-БанкАльфа-Банк
4

Реализовать свой перечислимый тип (enum), как если бы до появления современного enum в Java 1.5. Нужно реализовать контракт современного Java-enum: • можно легко получать любое значение енумa • безопасное сравнение значений по ссылке (==) • каждое значение имеет строковое имя, совпадающее с названием значения • каждое значение имеет целочисленный идентификатор `ordinal`, который содержит номер значения в порядке его объявления в энуме • можно получить список всех значений енумa • можно получить значение по его `ordinal` • можно получить значение по его имени Для примера можно взять список валют. Важно, чтобы список был потенциально расширяемым, потому что качество кода будет определять, насколько беспроблемно в будущем пройдет добавление значений в енум. class Currency { // TODO } --- Дана табличка user_orders |ts|user_id|order_value| Для каждого пользователя вернуть сумму первой покупки.

Senior
OZONOZON
4

Какая проблема возникнет в продакшн окружении при многопоточном доступе к сервису (несколько REST-запросов параллельно)?

Senior
VKVK
4

На какой уровень дохода ориентируешься?

Middle+
ГосуслугиГосуслуги
4

Как вы проводили дедупликацию данных?

Senior
Octo
4

Почему готовые отчёты хранятся в MongoDB, а не в S3/объектном хранилище?

Middle
Ecom
4

Обладает ли топик Kafka свойством FIFO (First In, First Out)?

Senior
ИП Ганус Александр Андреевич
4
/710