Что будет выведено в примере №39
Оба вызова печатают in TheClass: value является требованием протокола, и класс предоставляет его собственную реализацию.
Читать ответПодготовка к интервью
542 вопроса с собеседований в Avito
Что проверяют на интервью
Подборка объединяет вопросы, отмеченные на этапах интервью в Avito. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: mobile, go, frontend.
Каталог
Оба вызова печатают in TheClass: value является требованием протокола, и класс предоставляет его собственную реализацию.
Читать ответБудет напечатано только 7: printNumbers объявлена, но не вызывается. Запланированных ею блоков в реальном выполнении этого фрагмента нет.
Читать ответВ показанном фрагменте выводится только 7: функция showNumbers объявлена, но нигде не вызвана.
Читать ответВывод: in TheClass, затем in TheProtocol. Свойство value не объявлено требованием протокола, поэтому через протокольный тип выбирается extension.
Читать ответОбщий Dictionary читается и изменяется конкурентно без синхронизации. Защитить нужно все обращения; порядок insert/delete всё равно не определён.
Читать ответОбёртка может ограничить время ожидания вызывающего, но не принудительно остановить функцию без поддержки отмены. Буфер на один результат не даст работнику зависнуть на поздней отправке.
Читать ответЗапустите по горутине на URL, используйте общий HTTP-клиент с тайм-аутом и WaitGroup. Сетевая ошибка выводится отдельно от полученного HTTP-кода.
Читать ответБудет напечатано Bob и Bob. changeName переназначает локальную копию указателя, но не меняет объект, на который указывает переменная в main.
Читать ответРазделите записи, подписки и построение ленты; при большом числе читателей обычно нужен гибрид push и pull. Выбор определяется распределением подписчиков, а не только общим DAU.
Читать ответВместо горутины на каждый URL создайте фиксированный пул работников. Уберите log.Fatal из работника: он завершает весь процесс, а не только обработку неудачного запроса.
Читать ответРегрессионное тестирование — это проверка, что новые изменения в коде не нарушили уже существующую функциональность.
Читать ответПроцесс повторного выполнения тестов, выявивших дефекты, после внесения изменений в код для их устранения. Цель — убедиться, что дефект действительно исправлен и не воспроизводится.
Читать ответ