Golang
Как можно решить проблему деградации запросов на запись и чтение в одну таблицу с индексом путем масштабирования БД? Помогут ли методики типа шардирования и партиционирования?
Анализ кода на Go: что делает код, какие проблемы есть?
В каких случаях ты бы поднимала уровень изоляции? Когда использовать Serializable?
Расскажи про уровни изоляции транзакций в PostgreSQL
Расскажи про SELECT FOR UPDATE — для чего используется и как работает?
Чем ты занимался на работе?
Что такое graceful shutdown и как он работает в Go?
Что такое частичный индекс?
Чем отличается Entity от Value Object?
Расскажи про принцип единственной ответственности (SRP). Как его применить к функции CreateOrder?
Может ли Increaser стать реализацией Sender? Чем Increaser отличается от Sender логически?
Есть проблема потокобезопасности: если две горутины одновременно вызывают Lock с циклом, они могут перемешиваться между собой. Как это исправить?
Вы писатель, ведёте свой мини блог и там публикуете статьи. Пользователи(читатели) вашего блога, после авторизации, могут их просматривать\читать. Необходимо реализовать функциональность подсчета уникальных просмотров за день для каждой статьи. Функциональные требования: - Статистика за сегодня: Автор может видеть, сколько уникальных пользователей просмотрели его статью сегодня (данные накапливаются в реальном времени). - Статистика за прошедшие дни: Автор может видеть статистику за любой прошедший день (за вчера). Технические ограничения и условия: - Приложение работает на 1 сервере(1 pod) - Хранилище в памяти(in memory) - Время по UTC0
Сервис обработки обращений от пользователей Пользователь может отправить репорт Админы могут обрабатывать репорты Админ может дать фидбек пользователю DAU = 100 Availabilty = 99.95 % RPS = 100
WaitGroup под капотом использует Atomic для подсчёта. WaitGroup может принимать вес работы. Как бы ты переписал семафор, чтобы методы Lock(weight int), TryLock(weight int) и Release(weight int) принимали вес? Горутина захватывает ресурсы сразу на всю операцию, а после каждого стейджа (IO-bound, CPU-bound) освобождает по чуть-чуть. Как бы ты это реализовал?
Знаешь ли ты понятие взвешенный семафор? Что это такое?
За счёт чего отсекались дубли? Нельзя было по ID определить дубль? Зачем обогащать данные из Redis?
Чем Image отличается от контейнера?
Готов ли работать на своём оборудовании?
Что такое context в Go и зачем он нужен?