Files
go-interview/README.md
2020-06-01 17:10:03 +03:00

64 lines
5.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div align="center">
<img width="325" height="281" src="https://github.com/goavengers/go-interview/blob/master/img/go-inter.jpeg">
<h1>Вопросы и ответы для собеседования Back-end/Golang разработчика и не только</h1>
<h5>Вместе мы разберемся!</h5>
</div>
Здесь собирается большая коллеция вопросов и ответов на них, необходимых не только для прохождения собеседований, но и для комплексного развития кругозора
## Содержание
1. [Общие вопросы](docs/COMMON.md)
- В чем отличие протоколов TCP и UDP? В каком случае UDP предпочтительнее?
- Что такое NAT?
- Что такое HTTP и HTTPS, в чем их отличия?
- Что такое SSL и TSL, есть ли между ними отличия?
- coming soon
2. [Вопросы по шаблонам проектирования](docs/DESIGN_PATTERNS.md)
- TODO
3. [Вопросы про микросервисы](docs/MICROSERVICES.md)
- TODO
4. [Вопросы про инфраструктуру и деплой](docs/INFRASTRUCTURE_AND_DEPLOY.md)
- Что такое сине-зеленый деплой(blue-green deployment)?
- Что такое Canary (канареечные развертывания)?
- Что такое Dark (скрытые) или А/В-развертывания?
- coming soon
5. [Вопросы про кеширование и базам данных](docs/CACHE_AND_DB.md)
- Что такое индексы в MySQL, как и для чего их использовать и создавать?
- Что такое составной индекс, как и для чего их использовать и создавать?
- Как использовать индексы в JOIN запросах Mysql?
- Что такое частичные индексы, как и для чего их использовать и создавать?
- В чем отличия InnoDB и MyISAM?
- Возможен ли JOIN со вложенными запросами, как?
- Что такое дедлоки (deadlock), почему возникают, как можно недопускать?
- Что такое HAVING, что он делает как и зачем его использовать?
- Разница между WHERE и HAVING и можно ли использовать HAVING без группировки данных?
- Что такое EXPLAIN?
- Как узнать версию Mysql?
- Как можно оптимизировать ORDER BY RAND()?
- Как удалить индекс MySQL?
- coming soon
6. [Вопросы по языку Golang](docs/GOLANG.md)
- Что из себя представляет тип данных string в языке Golang? Можно ли изменить определенный символ в строке? Что происходит при склеивании строк?
- Вытекающий вопрос как эффективно склеивать множество строк?
- Что будет происходить при конкуррентной записи в map? Как можно решить эту проблему?
- Расскажите о ООП в Golang.
- В чем различия goroutine от потока системы?
- Как огранить число потоков на системы при запуске Golang программы и возможно ли огранить их до 1 потока?
- Как устроен слайс и чем он отличается от массива?
- [Как задать направление канала?](docs/GOLANG.md#8)
- [Напишите собственную функцию Sleep, используя time.After](docs/GOLANG.md#9)
- [Что такое буферизированный канал? Как создать такой канал с ёмкостью в 20 сообщений?](docs/GOLANG.md#10)
7. [Вопросы о распределённых системах](docs/DISTRIBUTED_SYSTEMS.md)
- Как тестировать распределённую систему?
- coming soon
8. [Вопросы по организации кода](docs/CODE_DESIGN.md)
- Как тесты и TDD влияют на организацию кода?
- В чём разница между сцеплением и связанностью?
- Почему в TDD тесты пишутся прежде кода?
- Если у вашего кода плохая организация, как вы это поймёте?
## Как мне добавить свой вопрос-ответ?
- [Ознакомтесь с шаблоном составления](TEMPLATE.md)