mirror of
https://github.com/goavengers/go-interview.git
synced 2026-02-04 12:46:20 +00:00
6.0 KiB
6.0 KiB
Здесь собирается большая коллеция вопросов и ответов на них, необходимых не только для прохождения собеседований, но и для комплексного развития кругозора
Содержание
- Общие вопросы
- В чем отличие протоколов TCP и UDP? В каком случае UDP предпочтительнее?
- Что такое NAT?
- Что такое HTTP и HTTPS, в чем их отличия?
- Что такое SSL и TSL, есть ли между ними отличия?
- coming soon
- Вопросы по шаблонам проектирования
- TODO
- Вопросы про микросервисы
- TODO
- Вопросы про инфраструктуру и деплой
- Что такое сине-зеленый деплой(blue-green deployment)?
- Что такое Canary (канареечные развертывания)?
- Что такое Dark (скрытые) или А/В-развертывания?
- coming soon
- Вопросы про кеширование и базам данных
- Что такое индексы в MySQL, как и для чего их использовать и создавать?
- Что такое составной индекс, как и для чего их использовать и создавать?
- Как использовать индексы в JOIN запросах Mysql?
- Что такое частичные индексы, как и для чего их использовать и создавать?
- В чем отличия InnoDB и MyISAM?
- Возможен ли JOIN со вложенными запросами, как?
- Что такое дедлоки (deadlock), почему возникают, как можно недопускать?
- Что такое HAVING, что он делает как и зачем его использовать?
- Разница между WHERE и HAVING и можно ли использовать HAVING без группировки данных?
- Что такое EXPLAIN?
- Как узнать версию Mysql?
- Как можно оптимизировать ORDER BY RAND()?
- Как удалить индекс MySQL?
- coming soon
- Вопросы по языку Golang
- Что из себя представляет тип данных string в языке Golang? Можно ли изменить определенный символ в строке? Что происходит при склеивании строк?
- Вытекающий вопрос — как эффективно склеивать множество строк?
- Что будет происходить при конкуррентной записи в map? Как можно решить эту проблему?
- Расскажите о ООП в Golang.
- В чем различия goroutine от потока системы?
- Как огранить число потоков на системы при запуске Golang программы и возможно ли огранить их до 1 потока?
- Как устроен слайс и чем он отличается от массива?
- Как задать направление канала?
- Напишите собственную функцию Sleep, используя time.After
- Что такое буферизированный канал? Как создать такой канал с ёмкостью в 20 сообщений?
- Напишите программу, которая меняет местами два числа (x := 1; y := 2; swap(&x, &y) должно дать x=2 и y=1)
- Какое будет значение у переменной x после выполнения программы?
- Какое значение примет выражение (true && false) || (false && true) || !(false && false)?
- Мы знаем, что в десятичной системе самое большое число из одной цифры - это 9, а из двух - 99. В бинарной системе самое большое число из двух цифр это 11 (3), самое большое число из трех цифр это 111 (7) и самое большое число из 4 цифр это 1111 (15). Вопрос: каково самое большое число из 8 цифр? (Подсказка: 101-1=9 и 102-1=99)
- Вопросы о распределённых системах
- Как тестировать распределённую систему?
- coming soon
- Вопросы по организации кода
- Как тесты и TDD влияют на организацию кода?
- В чём разница между сцеплением и связанностью?
- Почему в TDD тесты пишутся прежде кода?
- Если у вашего кода плохая организация, как вы это поймёте?
