Список вопросов

  1. Базовые вопросы по golang

    1. Характеристики golang

    2. Какие технологические преимущества экосистемы Go вы можете назвать?

    3. Чем вам нравится golang

    4. Статическая или динамическая типизация? строготипизирован или нет

    5. Что вас огорчает в системе типов Go?

    6. Почему на Go практически не пишут расширений для других языков и динамических библиотек?

    7. Go - императивный или декларативный? А в чем разница?

    8. Что значит "A little copying is better than a little dependency"? Какие заповеди Роба Пайка вам известны?

    9. Что такое type-switch?

    10. Как сообщить компилятору, что наш тип реализует интерфейс?

    11. Как вы применяете пакеты internal?

    12. можно ли использовать один и тот же буфер []byte в нескольких горутинах?

    13. Почему иногда говорят, что в Go nil имеет тип?

    14. Как получить переменную, которая не-nil, но nil?

  2. ООП

    1. Какого типа?

    2. Что такое интерфейс

    3. Какие средства обобщенного программирования есть в Go?

    4. Как соблюдать SOLID при программировании на Go?

    5. Почему встраивание - не наследование?

    6. Где следует поместить описание интерфейса и почему?

    7. Ваш любимый способ делать dependency injection?

  3. Структуры данных

    1. Массив

      1. Как устроен

      2. Как работает append?

      3. как сделать из слайса массив?

    2. slice

      1. Внутреннее устройство

      2. Основные ошибки использования

      3. какое у slice zero value? какие операции над ним возможны?

    3. Map

      1. Как устроен

      2. Каков порядок перебора map?

      3. какая функция используется для хеширования в map?

      4. Что может быть ключем в map?

    4. Канал

      1. Назначение

      2. Внутреннее устройство

      3. Буферизация

      4. Закрытие

        1. Что будет, если писать в закрытый канал?

        2. Что будет, если читать из закрытого канала?

        3. Как закрывать канал со стороны читателя?

        4. Зачем может потребоваться схема “много писателей - один читатель”?

    1. Как вы отсортируете массив структур по алфавиту по полю Name?

    2. Удалить дубликаты из массива без переаллокации - можно ли?

    3. что лучше - список или массив?

    4. как вы реализуете разреженный массив на go?

  4. Горутины.

    1. Почему легковесны

    2. Как устроены

    3. Могут ли прерываться при длительной обработке

    4. Что такое thread pool, какого он размера и зачем он нужен?

    5. Что происходит, когда вы отправляете данные из горутины в сетевое соединение?

  5. Примитивы синхронизации

  6. Планировщик

    1. Какого типа многозадачность

    2. Как устроен планировщик

    3. Какие функции выполняет

  7. GC

    1. как устроен

  8. Алгоритмы

    1. Concurrency

      1. Mutex и RWMutex

        1. В чем разница?

        2. Что будет, если попытаться взять RLock и следом WLock?

    2. Сериализация/десериализация

    3. Коммуникация

    4. Что такое lock-free структуры данных, и есть ли в go такие?

    5. Как вы реализуете LRU cache на go?

  9. Паттерны проектирования на golang

Last updated

Was this helpful?