Перейти к содержимому

Vkusvill / ВкусВилл

  • Какие бывают целочисленные типы данных в Go? go/basics
  • Чем отличается int8 от int32? go/basics
  • По какому принципу выбирается целочисленный тип для задачи? go/basics
  • Для чего используются структуры? go/structs-methods
  • Чем отличается метод от функции? go/structs-methods
  • Помимо структур какие-либо еще объекты могут иметь методы? go/structs-methods
  • Можем передать функцию в качестве параметра? go/basics
  • Что относят к типу функции? go/basics
  • Что такое анонимная функция? go/basics
  • Что представляют собой строки в Go? go/strings-runes
  • Что будет в принте? go/puzzles
s:="abcd "
println([1])
  • Какому символу это соответствует? go/strings-runes
  • Что будет в выводе если сделать так? go/puzzles
s:="abcd "
s[1]='c'
println(s)
  • Как можно итерироваться по строке? (написать два примера) go/strings-runes
  • Что представляет собой слайс и чем отличается от массива? go/slices-arrays
  • В массив можно добавить еще элемент? go/slices-arrays
  • Что такое тип map и для чего используются? go/maps
  • Какая сложность чтения и записи в map? algorithms/complexity
  • Для чего используется defer? go/errors-panic
  • Можно ли выполнять несколько раз defer в функции? go/errors-panic
  • Какие есть основные кейсы где используется defer? go/errors-panic
  • Почему в Go нет цикла while? go/stdlib-tooling
  • Что выведет? go/puzzles
m := map[string]int{}
fmt.Println(cap(m))
  • Как реализовано ооп в Go? go/basics
  • Встраивание полноценно заменят наследование? go/interfaces
  • Что такое утиная типизация? go/interfaces
  • Как удостовериться объекты удовлетворяют одному типу? go/interfaces
  • Что такое интерфейс? go/interfaces
  • Как определить что тип удовлетворяет интерфейсу? go/interfaces
  • Что такое каналы и для чего нужны? go/channels
  • Можно ли сказать что небуферизованный канал это канал с буфером 1? go/channels
  • Что такое solid? architecture/principles
  • Что такое ddd? architecture/principles
  • Какие в Go есть утилиты для оптимизации? go/stdlib-tooling
  • Что можно отладить при помощи pprof? go/perf-profiling
  • Как работает сборщик мусора? go/memory-gc
  • Почему сборщик останнавливает программу? go/memory-gc
  • Какую память очищает сборщик мусора? go/memory-gc
  • Почему он стек не очищает? go/memory-gc
  • Стек или кучу выгоднее использовать? go/memory-gc
  • Как интерфейсы влияют на производительность программы? go/interfaces
  • Что делает эта строчка? go/puzzles
s := make([]int, 3)
  • Что будет если сделать так? go/puzzles
s := make([]int, 3, 0)
m := make(map[string]int, 10)
  • Какие тесты писал для Go? testing/general
  • Моки использовал? testing/unit-mocks
  • Как замокать бд? testing/unit-mocks
  • Можно ли гнать тесты с реальной бд? testing/integration-e2e
  • Что такое измерение покрытия тестами? testing/unit-mocks
  • С restfull api работал? network/http
  • Чем rest api отличает от rpc? network/http
  • В rest и grpc в каком виде данные передаются? network/http
  • Чем protobuf отличается от json? network/grpc
  • Grpc какой протокол использует для передачи данных по сети? network/grpc
  • С какими брокерами ссобщения работал? brokers/general
  • Чем отличается rabbitmq от kafka? brokers/kafka
  • Для чего нужна консьюмер группа в кафке? brokers/kafka
  • Если есть три партиции на один топик и мы отправляем туда сообщение, то в какое кол-во партиций это сообщение попадет? brokers/kafka
  • Сколько консьюмеров можно создать на три партиции? brokers/general
  • С какими бд работал? sql/general
  • Как работает индекс в бд? sql/indexes
  • Что такое составной индекс? sql/indexes
  • Важна ли последовательность в составном индексе? sql/indexes
  • Что такое селективность индекса? sql/indexes
  • Как посчитать селективность индекса? sql/indexes
  • Какие плюсы и минусы шардирования? sql/replication-scaling

Задача: Написать функцию которая вернет N целых уникальных чисел. go/basics

Заголовок раздела «Задача: Написать функцию которая вернет N целых уникальных чисел. go/basics»
x := rand.Int()

Задача: Реализовать Cacher для Cache. Методы вызываются из разных горутин и должны быть потокобезопасными. Чистить кэш не надл, TTL задается в конструкторе. По истечению TTL поведение такое, как будто значение в кэше не было записано. go/concurrency

Заголовок раздела «Задача: Реализовать Cacher для Cache. Методы вызываются из разных горутин и должны быть потокобезопасными. Чистить кэш не надл, TTL задается в конструкторе. По истечению TTL поведение такое, как будто значение в кэше не было записано. go/concurrency»
type Cacher interface {
Get(string) (string, bool)
Set(string, string)
}
type Cache struct {
}
func NewCache(ttl time.Duration) *Cache {
return &Cache{}
}
  • Чем отличаются методы mu.Lock и mu.RLock? sql/transactions
  • Рассказать подробно по работе кода go/puzzles