Kaspersky / Касперский - 1
- Разница между буферизированным каналом размера один и небуферизированным (когда эффективнее)?
go/channels - Как устроены каналы?
go/channels - Как отдаются значения с одной горутины в другую?
go/concurrency - Преимущества горутин перед потоками ОС?
linux-os/processes - Размер стека у горутины?
go/concurrency - Чем отличаются потоки от процессов?
linux-os/processes - Зачем нужно кэширование, плюсы/минусы, алгоритмы обновления, lru/lfu?
nosql-cache/caching - Как масштабировать приложение, вертикальное/горизонтальное масштабирование?
architecture/system-design - Как масштабировать базу: синхронная репликация, шардирование?
sql/replication-scaling - Как работает репликация?
sql/replication-scaling - Балансировка нагрузки?
network/balancing - Алгоритмы балансировки?
network/balancing - Клиентская балансировка?
network/balancing - Что происходит когда вбиваешь google.com в браузерере, зачем нужен DNS?
network/dns-tls
Задача: Что выведет на экран go/puzzles
Заголовок раздела «Задача: Что выведет на экран go/puzzles»type Count int
func (c Count) Increment() { c++}
func main() { var count Count
count.Increment()
fmt.Print(count)}func main() { fmt.Println("Hello ")}
type Logger interface { Log(message string) err Close() error}
type FileLogger struct{ file *os.File }
func NewFileLogger(fileName string) (*FileLogger, error) { f, err := os.Create(fileName) if err != nil { return nil, err }
return &FileLogger{f}, nil}
func (f FileLogger) Log(message string) error { _, err := f.file.WriteString(message + "\n ")
return err}func (f FileLogger) Close() error { return f.file.Close()}
type SequentialLogger struct { wrppedLogger Logger}
func NewSequentialLogger(wrppedLogger Logger) SequentialLogger {}
func (sl SequentialLogger) Log(message string) error {}
func (sl SequentialLogger) Close() error {}