Files
go-interview/docs/PODOLSKY.md
2022-02-10 09:43:42 +03:00

4.2 KiB
Raw Blame History

Вопросы от Данила Подольского на позицию Senior Golang Backend Developer в компанию Evrone

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

В основном Императивный. Разница в подходе:

  • императивный - как сделать (прямо пошагово);
  • декларативный - что сделать (итоговый результат).

Что такое type switch?

Сравнение типов переменной, а не ее значений.

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

Если наш тип реализует все методы интерфейса, значит он реализует этот интерфейс.

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

Если capacity исходного массива достаточно, он используется повторно. В противном случае выделяется новый базовый массив достаточной длины и данные копируются

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

Zero value у slice == nil Возможные операции: len, cap, append.

Как устроен тип map?

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

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

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

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

Что такое сериализация? Зачем она нужна?

Сколько времени в минутах займет у вас написание процедуры обращения односвязного списка?

Где следует поместить описание интерфейса: в пакете с реализацией или в пакете, где этот интерфейс используется? Почему?

Предположим, ваша функция должна возвращать детализированные Recoverable и Fatal ошибки. Как это реализовано в пакете net? Как это надо делать в современном Go?

Главный недостаток стандартного логгера?

Есть ли для Go хороший orm? Ответ обоснуйте.

Какой у вас любимый линтер?

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

Какие типы мьютексов предоставляет stdlib?

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

Способы поиска проблем производительности на проде?

Стандартный набор метрик prometheus в Go -программе?

Как встроить стандартный профайлер в свое приложение?

Overhead от стандартного профайлера?

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

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

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

Какие технологические недостатки языка Go вы можете назвать?