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

Kaspersky / Касперский - 2

  • Что такое event sourcing? architecture/patterns
  • О чем говорит CAP теорема? nosql-cache/general
  • Что такое CQRS? architecture/patterns
  • Какие есть уровни согласованности между системами можете назвать? architecture/system-design
  • Допустим есть 100 операций расчета квадратного корня. Если их запустить в 100 горутинах, то получим ли мы прирост по производительности? go/concurrency
  • Когда интерфейс равен nil? go/interfaces
  • Как проверить что значение интерфейса равно nil? go/interfaces

Задача: Необходимо просмотреть код, затем рассказать какие в нем могут быть проблемы и, если они есть, то как бы ты их пофиксил. go/basics

Заголовок раздела «Задача: Необходимо просмотреть код, затем рассказать какие в нем могут быть проблемы и, если они есть, то как бы ты их пофиксил. go/basics»
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()
}
func main() {
l := NewFileLogger("file.txt ")
defer Close()
}
type SequentialLogger struct {
wrppedLogger Logger
}
func NewSequentialLogger(wrppedLogger Logger) *SequentialLogger {}
func (sl *SequentialLogger) Log(message string) error {}
func (sl *SequentialLogger) Close() error {}