❓ Как можно нарушить принцип подстановки Барбары Лисков
Anonymous Poll
8%
Наследовать тип и добавить новые методы без изменения существующих
7%
Использовать интерфейс вместо конкретной реализации
2%
Следовать контракту базового класса при переопределении методов
84%
Наследовать тип, но изменить поведение метода так, что он перестанет удовлетворять ожиданиям
❓ Что представляет собой объект типа cookiejar.Jar
Anonymous Poll
13%
Он является контейнером для одного cookie
22%
Он управляет cookies, но не взаимодействует с HTTP-запросами
46%
Контейнер, который автоматически сохраняет и извлекает из HTTP-запросов и ответов
22%
Он используется исключительно для синхронизации cookie между различными приложениями
❓ Что из этого не является обязательным элементом для отправки письма через пакет mail
Anonymous Poll
12%
SMTP-сервер
79%
Тема письма
12%
Адрес отправителя
4%
Адрес получателя
❓ Какой алгоритм сортировки использует O(n+k) дополнительной памяти?
Anonymous Poll
13%
Быстрая сортировка
37%
Пирамидальная сортировка
22%
Сортировка выбором
34%
Блочная сортировка
❓ Что делает expvar.NewInt("requests")
Anonymous Poll
10%
Создаёт новый HTTP хендлер
82%
Создаёт целочисленную переменную и публикует её
7%
Обнуляет счётчик переменной
4%
Удаляет переменную
❓ Чем отличается %v от %+v при выводе структуры
Anonymous Poll
83%
%+v включает имена полей
10%
%v выводит тип
2%
Они идентичны
11%
%+v добавляет перенос строки
❓ Что делает метод Flush() в библиотеке bufio
Anonymous Poll
2%
Снова читает файл
5%
Перезаписывает файл
91%
Сбрасывает данные из буфера в файл
3%
Закрывает файл после записи
❓ Что произойдёт, если два маршрута в Go-пакете net/http пересекаются и соответствуют одному запросу
Anonymous Poll
38%
Будет выбран первый зарегистрированный маршрут
26%
Выберется последний зарегистрированный маршрут
23%
Произойдёт ошибка маршрутизации
14%
Будут выполнены оба обработчика маршрутов
❓ Какой тип данных используется для работы с результатами запроса db.Query()
Anonymous Poll
15%
sql.QueryResult
1%
[]Product
14%
*sql.Result
72%
*sql.Rows
❓Что будет при вызове GET метода user/1
Anonymous Poll
45%
Вызов HandlerA
16%
Вызов HandlerB
14%
Вызовутся оба хэндлера
36%
Паника
❓ Что произойдёт, если данные в таблице SQL не могут быть преобразованы в тип Go
Anonymous Poll
7%
будет возвращена пустая строка
6%
данные будут проигнорированы
14%
возникнет паника
75%
метод rows.Scan() вернёт ошибку
❓ Что следует сделать после завершения работы с rows в Go
Anonymous Poll
46%
применить метод rows.Close()
2%
сохранить результат в файл
13%
вызвать метод db.Close()
47%
вызвать метод rows.Close() для закрытия соединения с набором данных
❓ Чем отличаются math.Floor и math.Ceil
Anonymous Poll
21%
Floor округляет вверх, Ceil — вниз
66%
Floor округляет вниз, Ceil — вверх
1%
Они делают одно и то же
15%
Ceil возвращает целое число, Floor — дробное
❓ Реализуйте безопасное деление двух чисел с обработкой NaN и бесконечностей
Go сам корректно обрабатывает все случаи деления, однако кастомная функция может быть полезна при ряде случаев:
1. Явная проверка ошибок
Когда важно отлавливать ошибочные значения (NaN, Inf) и, например, логировать их, возвращать 0, nil, или выдавать ошибку.
2. Инкапсуляция поведения
Если нужно, чтобы при делении на ноль возвращалось 0, а не Inf, или паника — можно задать своё поведение.
3. Работа в критичных системах
В некоторых проектах (финтех, медицинские расчёты, физика) нельзя полагаться на «плавающее» поведение — нужно жёстко контролировать результат и явно обрабатывать особые случаи.
4. Единый интерфейс
Например, может быть функция и для int, и для float64 — чтобы не повторять везде проверки на 0.
🐸Библиотека задач по Go
Go сам корректно обрабатывает все случаи деления, однако кастомная функция может быть полезна при ряде случаев:
1. Явная проверка ошибок
Когда важно отлавливать ошибочные значения (NaN, Inf) и, например, логировать их, возвращать 0, nil, или выдавать ошибку.
2. Инкапсуляция поведения
Если нужно, чтобы при делении на ноль возвращалось 0, а не Inf, или паника — можно задать своё поведение.
3. Работа в критичных системах
В некоторых проектах (финтех, медицинские расчёты, физика) нельзя полагаться на «плавающее» поведение — нужно жёстко контролировать результат и явно обрабатывать особые случаи.
4. Единый интерфейс
Например, может быть функция и для int, и для float64 — чтобы не повторять везде проверки на 0.
🐸Библиотека задач по Go
❓ Что такое method value
Anonymous Poll
31%
Тип данных, хранящий метод
7%
Общая функция без получателя
7%
Функция, не связанная с типом
57%
Метод, связанный с конкретным экземпляром типа
❓ В каком из случаев в Go целесообразно использовать кучу (heap) из стандартного пакета container/heap
Anonymous Poll
15%
Быстро удалить элементы с конца среза
54%
Организовать очередь с приоритетами
25%
Избежать утечек памяти
9%
Обрабатывать сигналы от операционной системы