Эйч
Эйч
  • Все менторы
Задачи/Go-разработчик/Безопасное списание с баланса пользователя

Безопасное списание с баланса пользователя

Условие задачи

Имеется таблица user, в которой хранится информация о балансе И есть функция на псевдокоде, которая выполняет списание: Определить, какие проблемы присутствуют в этом коде и как улучшить реализацию, учитывая что код используется в продакшене. Обратить внимание на конкурентность, атомарность, транзакции и возможные race condition.

gofunc withdrawBalance(user_id int32, amount float32) {
    balance = exec('select balance from user u where u.id=$1', user_id)
    if balance - amount >= 0.0 {
        exec('update user u set balance=balance-$1', amount)
        return exec('select balance from user u where u.id=$1', user_id)
    }
}

Профессия

Go-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта