Как безопасно добавить параметр $1 в SQL
Запишите WHERE email = $1 и передайте email отдельным аргументом драйверу. Не вставляйте кавычки вокруг $1 и не формируйте SQL через fmt.Sprintf с вводом.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Запишите WHERE email = $1 и передайте email отдельным аргументом драйверу. Не вставляйте кавычки вокруг $1 и не формируйте SQL через fmt.Sprintf с вводом.
Читать ответИспользуйте скользящее окно: расширяйте его справа, а при достижении target сокращайте слева. Для положительных чисел это O(n) времени и O(1) памяти.
Читать ответOi — псевдоним таблицы order_items, заданный непосредственно после её имени. Он сокращает ссылки на столбцы и устраняет неоднозначность при соединениях.
Читать ответВывод: len: 3, cap: 999900, затем «Первый элемент: 100». Подслайс удерживает весь исходный массив, поэтому runtime.GC не освобождает его.
Читать ответStatus должен быстро прочитать состояние по ID, отличая неизвестную задачу от queued, running, done и failed. Чтение синхронизируют с worker, который обновляет запись.
Читать ответПри уникальном возрастающем id следующая страница выбирается условием id > last_id и LIMIT 50. ORDER BY id должен совпадать с направлением курсора.
Читать ответДобавьте устойчивый ORDER BY и LIMIT 50, а OFFSET вычисляйте как (page − 1) × 50. Номер страницы должен быть положительным.
Читать ответПервый вывод — [1 2]: append внутри modifySlice выделяет новый массив, потому что len и cap равны 2. Чтение затем через *[10]any выходит за выделенный массив и небезопасно.
Читать ответПосле i-го успешного задания отправляйте 100*i/n. Отправка должна учитывать отмену, иначе медленный или ушедший получатель заблокирует выполнение.
Читать ответНакапливайте записи вместе с cookies, сбрасывайте буфер до переполнения, затем подтверждайте каждый cookie строго по порядку. Commit возможен только после успешного Process соответствующих данных.
Читать ответДля трёх лучших различных уровней зарплаты используйте DENSE_RANK по отделу и оставьте rank ≤ 3. Тогда все сотрудники с одинаковой зарплатой попадут вместе.
Читать ответХраните очередь и статусы под коротким mutex, а Process выполняйте только в фиксированном числе workers вне блокировки. Queue копирует вход, создаёт ID и быстро возвращает его.
Читать ответ