Code review: кэш на Go с мьютексом. Найди проблемы и предложи улучшения. Условие: нагрузка чтение/запись 80/20.
Расскажи про сборщик мусора в Go
Как работает планировщик горутин в Go (GMP модель)? Что такое M в GMP модели?
var defaultTxOptions = &sql.TxOptions{} const defaultCurrency = "RUB" func CreateUserWithDefaultCurrency(ctx context.Context, db *sql.DB, email, passwordHash string) error { tx, err := db.BeginTx(ctx, defaultTxOptions) if err != nil { return err } defer func() { if err != nil{ tx.Rollback() } }() _, err = tx.Exec("INSERT INTO users (email, password) VALUES (?, ?)", email, passwordHash) if err != nil { return err } rows, err := tx.Query("SELECT id FROM users WHERE email = ?", email) if err != nil { return err } defer rows.Close() id := 0 for rows.Next() { err = rows.Scan(&id) if err != nil { return err } } _, err = tx.Exec("INSERT INTO balances (user_id, currency, current_balance) VALUES (?, ?, 0)", id, defaultCurrency) if err != nil { return err } return tx.Commit() }
Как найти количество полигонов/вершин объектов в Blender?
В чем основное различие Kafka от RabbitMQ?
Чем отличается INNER JOIN от LEFT/RIGHT JOIN?
package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashPassword(exp) act := RecoverPassword(h) if act != exp { fmt.Printf("Ошибка: ожидалось %q, получено %q\n", exp, act) ok = false } } if ok { fmt.Println("Все тесты пройдены успешно") } } Для корректного исполнения кода: входная точка -- функция main в пакете main Задача: Реализовать функцию RecoverPassword, которая по MD5-хэшу восстанавливает исходный пароль, состоящий из символов из заданного алфавита.
Откуда взялось 5k RPS?
Как работает хеш-таблица?
Для чего на практике используют ключевое слово select?
Напишите SQL-запрос, который выведет **имя клиента**, его **город** и **общую сумму** всех его заказов. В итоговую выборку должны попасть только те клиенты, суммарные траты которых составляют **более 1000** у.е. --- **Схема данных:** 1. **Таблица `customers`:** - `customer_id` (int) – уникальный идентификатор клиента. - `customer_name` (varchar) – имя клиента. - `city` (varchar) – город проживания. 2. **Таблица `orders`:** - `order_id` (int) – уникальный номер заказа. - `customer_id` (int) – ID клиента, совершившего покупку. - `total_amount` (decimal) – сумма конкретного заказа.
В чём разница между буферизованным и небуферизованным каналом в Go?
Готовы к релокации в Грузию?
Какие типы переменных есть в Go?
Что делает команда top под капотом (вопрос от интервьюера)?
Можно ли структуру использовать для параметров HTTP-запроса?
Чем опасно долгоживущее TCP-соединение?
What pipeline?
Что ты ждёшь от команды/руководителя? Что он должен сделать, как помочь?