Group-IB - 1
- Чем отличается процесс от потока?
linux-os/processes - Если в одном потоке был открыт файл, то можно передать хендлер в другой поток?
go/concurrency - Что такое зомби процесс и как они появляются?
linux-os/processes - Что такое горутина в Go и как она соотносится с тредами ОС?
go/concurrency - Какие примитивы синхронизации есть в Go?
go/basics - В каких случаях могут потребоваться буферизированные каналы?
go/channels - Какой порядок на чтение и запись в очереди канала?
algorithms/data-structures - Какие кейсы хорошо решаются с mysql, clickhouse и elasticsearch, а какие плохо?
nosql-cache/clickhouse - В mongo есть предел для горизонтального скейла?
nosql-cache/mongodb - Какие операции плохо работают на mongo?
nosql-cache/mongodb - Через орм или чистый sql работаете с бд и какие критерии выбоа?
sql/general - Как работает https и как работает сертификат?
network/http - Как проверяется публичный ключ?
security/crypto - Что такое http 2.0 и какие основные отличия?
network/http - А про http 3.0 что можете рассказать?
network/http - Сколько можно одновременно создать tcp соединений c одного хоста?
network/tcp-udp
Задача 1. Что выведет данный код
Заголовок раздела «Задача 1. Что выведет данный код»Задача: (код без описания) go/stdlib-tooling
Заголовок раздела «Задача: (код без описания) go/stdlib-tooling»func main() { a := []int{1, 2, 3, 4, 5} for _, i := range a { go func() { fmt.Println(i) }() }}func main() { a := map[string]int{} b := make(map[string]int, 10)
a["test "]++ b["test "]++
fmt.Println(a["test "]) fmt.Println(b["test "])}func main() { a := []int{1, 2, 3} b := a[:2]
b[0] = 2
fmt.Println(a[0])}func main() { a := []int{1, 2} b := a[:] b = append(b, 3, 4, 5) b[0] = 2
fmt.Println(a[0])}Задача 4. Что выведет данный код
Заголовок раздела «Задача 4. Что выведет данный код»Задача: Задача 5. Есть две таблицы A и B. В каждой из них по одному стобцу A.x и B.y со значениями 1, 2 и 1, 1. Что выведут следующие запросы? go/puzzles
Заголовок раздела «Задача: Задача 5. Есть две таблицы A и B. В каждой из них по одному стобцу A.x и B.y со значениями 1, 2 и 1, 1. Что выведут следующие запросы? go/puzzles»SELECT A.x, B.y FROM A LEFT JOIN B ON B.y =A.x;SELECT A.x, B.y FROM A INNER JOIN B ON B.y =A.x;Задача: Задача 6. Есть таблица X с полями X.a, X.b, X.с типа int. Необходимо построить индекс так, чтобы эффективно выполнялись следующие три запроса. sql/indexes
Заголовок раздела «Задача: Задача 6. Есть таблица X с полями X.a, X.b, X.с типа int. Необходимо построить индекс так, чтобы эффективно выполнялись следующие три запроса. sql/indexes»SELECT*FROM X WHERE a =A AND b =B AND c=C;SELECT*FROM X WHERE b =B;SELECT*FROM X WHERE a >A AND b =B AND c=C;Дополнительные вопросы
Заголовок раздела «Дополнительные вопросы»- есть ли разница для составного индекса от запросов
a = A and b = Bиb = B and a = A?sql/indexes - индекс на
(b, a, c)или(b, c, a)будет работать быстрее и почему?sql/indexes
Задача 6. Что выведет данный код и почему
Заголовок раздела «Задача 6. Что выведет данный код и почему»Задача: (код без описания) go/basics
Заголовок раздела «Задача: (код без описания) go/basics»func callCallbacks(a, b func()) { go a() go b()}
func example() { firstDone := make(chan struct{}) secondDone := make(chan struct{})
callCallbacks( func() { fmt.Printf("a ") close(firstDone) }, func() { fmt.Printf("b ") close(secondDone) }, )
count := 0 for count < 2 { select { case <-firstDone: count++ case <-secondDone: count++ }
fmt.Printf("%d ", count) }}
func main() { example()}