Rutube - 1
- Можешь рассказать про многопоточность и параллельность в Go?
go/concurrency - Какая свять между процессом, тредом и горутиной?
go/concurrency - Что такое М?
go/runtime - Какие способы общение между горутинами и какие проблемы могут возникнуть?
go/concurrency - Какое отличие между Mutex и RWMutex?
go/sync - Если кол-во операций на чтение и запись одинаково, то есть ли смысл использовать RWMutex и почему?
go/sync - Что такое блокировка?
sql/transactions - Что можешь сказать про atomic?
go/sync - Почему у мьютекса и атомика нет проблем с конкурентностью?
go/concurrency - Что еще есть в пакете sync?
go/sync - Что такое func init и как использовать?
go/stdlib-tooling - Можно ли в одном пакете сделать несколько func init?
go/stdlib-tooling - Что такое контекст и как его можно использовать?
go/context - Можно ли передавать userID через контекст?
go/context - Как реализовать enum в Go?
go/basics - Что такое iota?
go/stdlib-tooling - Что такое string и в чем особенность?
go/strings-runes - Если string перевести в слайс байтов и поменять его, то как отразится на базовом string?
go/slices-arrays - Какие есть ссылочные типы в Go?
go/basics - Что делает функция unsafe.Sizeof?
go/memory-gc - Что будет если записать в закрытый канал?
go/channels - Что будет если читать из закрытого канала?
go/channels - Что будет с циклом range когда канал буферизированный?
go/channels - Почему каналы быстрые и легковесные?
go/channels - Что такое протоколы сетевого взаимодействия?
network/general - За что отвечает прикладной уровень?
network/general - HTTP работает поверх какого протокола?
network/http - В чем разница между HTTP1, HTTP1.1 и HTTP2.0?
network/http - Какая структура HTTP запроса?
go/structs-methods - Какие заголовки являются обязательными?
network/http - Какие есть HTTP методы?
network/http - В чем разнича между PUT и PATCH?
network/http - Что делают методы HEAD и OPTIONS?
network/http - С какими ограничениями HTTP приходилось сталкиваться?
network/http - Что такое 172.22.33.0/24 и как расшифровывается?
network/general - Что такое reverse proxy, для чего используется и как работает?
network/balancing - Какae есть HTTP авторизации?
security/auth - Какая структура у JWT токена?
go/structs-methods - Что можно сделать если у клиента украли JWT токен?
security/auth - Что можно сделать чтобы предотвратить это в будущем?
misc/general - С какими бд работал?
sql/general - В монго индексы есть?
sql/indexes - Какого типа индексы?
sql/indexes - Как они работают?
misc/general - Какого типа балансировка у индекса b-tree?
network/balancing - Какие плюсы и минусы у индекса b-tree?
sql/indexes - С какими очередями работал?
algorithms/data-structures - В RabbitMQ куда отправляем сообщения и откуда забираем?
brokers/rabbitmq - В Kafka куда отправляем сообщения и откуда забираем?
brokers/kafka - Можем записать сообщение в отдельную партицию?
brokers/kafka - Что такое консьюмер группа?
brokers/general - Было две партиции и два консьюмера, потом один консьюмер умер. Что произойдет и что можно сделать?
brokers/general - Что такое offset pointer?
go/basics - Какой в pg синтаксис у select?
go/channels - Какие есть уровни изоляции?
sql/transactions - Какие бывают джоины и какой по дефолту в pg?
sql/general
Задача: Что будет в принте? go/basics
Заголовок раздела «Задача: Что будет в принте? go/basics»func main() { foo := make([]int, 0, 4) foo = append(foo, 1, 2, 3) bar := append(foo, 4) baz := append(foo, 5)
fmt.Println(bar) fmt.Println(baz)}Задача: Что будет в принте? go/basics
Заголовок раздела «Задача: Что будет в принте? go/basics»func main() { var i = 1
defer func(a int) { fmt.Println(a) }(i)
defer func() { fmt.Println(i) }()
i = 2}Задача: Что будет в принте? go/basics
Заголовок раздела «Задача: Что будет в принте? go/basics»type User struct { Valid bool Id int64 Number int32}
type CUser struct { Id int64 Number int32 Valid bool}
func main() { user := User{} cuser := CUser{}
if unsafe.Sizeof(user) == unsafe.Sizeof(cuser) { fmt.Println("struct size are equal ") }}Задача: Что нужно сделать чтобы код работал? go/basics
Заголовок раздела «Задача: Что нужно сделать чтобы код работал? go/basics»func main() { ch := make(chan int) wg := &sync.WaitGroup{}
wg.Add(3) for i := 3; i < 3; i++ { go func(v int) { defer wg.Done() ch <- v * v }(i) }
wg.Wait()
var sum int for v := range ch { sum += v }
fmt.Println(sum)}Задача: Что получим? sql/general
Заголовок раздела «Задача: Что получим? sql/general»select*from tab1 right join tab2;-- tab2 - пусто