Positive Technologies
- В чем плюсы и минусы Go?
go/basics - Работал ли с докером? Что такое multistage build?
containers/docker - Как дебажить сервисы в кластере?
devops/observability - Пользовался ли инструментами для удаленной разработки в кубере?
containers/kubernetes - Пользуешься ли дебаггером?
hr-behavioral/general - Что такое SOLID в целом и применительно к Go?
architecture/principles - Можешь рассказать про чистую архитектуру и слои?
architecture/principles - Что такое сервисы/хэндлеры/репозитории/слои/адаптеры и юзкейсы?
architecture/patterns - Что такое dependency injection?
architecture/principles - Как реализован параллелизм в Go и какие средства синхронизации есть?
go/concurrency - Что будет, если писать или читать в/из закрытого канала?
go/channels - Что будет, если писать или читать в/из канала nil?
go/channels - C какими БД работал?
sql/general - Что такое ACID, транзакции, уровни изоляции, аномалии?
sql/transactions - Что такое миграции? Какие пакеты для миграций использовал в Go?
sql/orm-drivers - Что можешь рассказать про связи one-to-one, one-to-many, many-to-many?
go/interfaces - Что такое нормализация БД? Какие есть нормальные формы?
sql/schema-design - Что можешь рассказать про анализирование SQL запросов?
sql/general - REST/GRPC разница и когда какой применяется?
network/http - Как шарили Прото файлы между сервисами, если один зависит от другого и что-то меняется в proto?
network/grpc - Что такое идемпотентность и как ее реализовать?
architecture/microservices - Что выведет?
go/puzzles
Задача: (код без описания) go/basics
Заголовок раздела «Задача: (код без описания) go/basics»func handlel(s1 []int) { s1[0] = 111}
func handle2(s1 []int) { s1 = append(s1, 12345)}
func main() { s1 := []int{0, 1, 2}
log.Printf("before: %v ", s1)
handlel(s1) log.Printf("after handle1: %v ", s1) // что будет напечатано?
handle2(s1) log.Printf("after handle2: %v ", s1) // что будет напечатано?}- Доп вопрос: какие типы данных в Go ведут себя так же как слайс (у которого под капотом ссылка на массив?)
go/slices-arrays - Еще доп вопрос: какой тип данных под капотом у мапы по аналогии со слайсами на массив? (Ответ - hmap - https://go.dev/src/runtime/map.go )
go/maps - Еще доп вопрос: что будет, если заменить слайс на массив в примере выше?
go/slices-arrays - Что выведет?
go/puzzles
Задача: (код без описания) go/basics
Заголовок раздела «Задача: (код без описания) go/basics»type Example struct{}type MyInterface any
func example1() MyInterface { var e *Example return e}
func example2() MyInterface { return nil }
func main() { fmt.Println(example1()) fmt.Println(example2()) fmt.Println(example1() == example2()) // ?}- Что выведет?
go/puzzles
Задача: (код без описания) go/basics
Заголовок раздела «Задача: (код без описания) go/basics»func main() { num := make(chan int) values := []int{1, 2, 3} for _, v := range values { go func() { num <- v }() } for _ = range values { fmt.Println(<-num) // ? }}- Доп вопрос: как поправить для старых версий, чтоб выводилось 1, 2, 3 в случ порядке, а не 3, 3, 3 (v:= v)
go/puzzles - Спроектировать handler
architecture/system-design
Задача: (код без описания) go/basics
Заголовок раздела «Задача: (код без описания) go/basics»func LongTask() int { result := callService() // >5 min // process result return result}
func main() { // init server handler := func(w http.ResponseWriter, r *http.Request) { // write response } http.HandleFunc("/", handler) // run server}callService медленный (до 5 минут), надо отдавать свежий результат вызова callService (время жизни - полчаса). Можно сделать background job через таймер, который вызывает callService и засовывает в структуру с мьютексом, а хэндлер отдает клиенту.
- Есть таблицы sites (id, url и vulnerability_id) и vulnerabilities. У одного сайта может быть много уязвимостей. Как связать таблицы? (У vulnerability указать site_id или сделать таблицу связей id, site_id, vuln_id - поле id обязательно? В некоторых бд дa, а вообще нет)
security/appsec - Написать запрос, который выведет все сайты, у которых есть уязвимости.
security/appsec - Написать запрос, который выведет число уязвимостей на сайтах.
security/appsec - Зачем нужен group by и отличие от order by.
sql/query-optimization - чем разница where и having?
sql/query-optimization - Что такое агрегатные функции? Примеры.
sql/general - Можно ли использовать where с join? (Дa)
sql/query-optimization - Какие есть join-ы и чем отличаются? (Left/right/cross join)
sql/query-optimization - Что такое индексы в БД и какие типы бывают?
sql/indexes - Что такое btrее индекс? Чем отличается balanced trее от binary tree
sql/indexes - В чем минус индексов? (Занимают место и надо апдейтить на insert/update/delete - лишнее время).
sql/indexes - Есть ли смысл в индексе для поля enum из 4-х значений? (Нe особо, ибо выборка по индексу должна отдавать процентов 10-15, иначе выигрыша особо не будет, учитывая чтение индекса по сравнению с чтением всей таблицы).
sql/indexes - Что такое селективность индексов? Какие там границы?
sql/indexes