Golang
Защо решихте да разделите монолита на 3 независими услуги? На какво се базираше това решение?
Колко време работиш в Go, работиш ли в [фирма]?
Какъв формат на работа разглеждате в момента?
Защо услугата беше на TypeScript и защо беше прехвърлена на Go?
Какво е празен интерфейс (interface{}) и как се различава от any?
Какво е необходимо, за да стартирате услуга в Kubernetes?
Какво ще се случи, ако в тема има 5 партиции, а в една група потребители 10 потребителя?
А централното логване — какво беше направено?
Как работеше двигателят на правилата?
Какви видове разпределени транзакции съществуват?
Какво е контекст в Go и за какво служи?
Разкажи за последната интересна задача, която си реализирал самостоятелно
Какво, напротив, те мотивира в работата? От кои задачи получаваш най-голямо удоволствие?
Къде се виждаш в бъдеще — като експерт, Tech Lead, архитект?
На каква сума разчитате?
Ако писател (горутин, който запълва канала с стойности) реши да затвори канала, какво ще се случи? Как трябва да реагира читателят, какви проблеми могат да възникнат и как да се справят с тях?
Разкажете ми за Circuit Breaker — какво е и как работи?
тип Sem интерфейс { Lock() error //връща грешка, ако каналът е пълен TryLock() bool // просто се опитваме да заключим, ако успее, връща true Release() //освобождаване на канала Cap() int // брой горутини FreeSpace() int //показва колко свободно място има в канала } //структура //channel - помислете за буфер //capacity int //mutex
func merge(chs ...<-chan int) <-chan int { ... } package main import ( "fmt" "sync" ) func main() { var wg sync.WaitGroup for i := 0; i < 5; i++ { wg.Add(1) go func(n int) { defer wg.Done() fmt.Println(i) }(i) } wg.Wait() }
В момента работите ли? Планирате ли да смените работното си място?