Size: a a a

2020 May 13

K

Karina in Go-go!
а кто это
потому gob.Encoder не пишет все за раз, видимо
скорее всего. нигде такого раньше не встречала
источник

RS

Roman Sharkov in Go-go!
Karina
type Line struct {
Browsers []string
Email string
Name string
}

type Lines struct {
ContentLines []Line
}

func FastSearch(out io.Writer) {
file, errOpenFile := os.Open(filePath)
if errOpenFile != nil {
 panic(errOpenFile)
}

fileContents, errFileRead := ioutil.ReadAll(file)
if errFileRead != nil {
 panic(errFileRead)
}

 var linesContent Lines
gob.NewEncoder(linesContent).Encode(fileContents)
}

func (l Lines) Write(data []byte) (n int, err error) {
fmt.Println("Aaaaa")

return 666, nil
}
1. почему у вас ошибки не называются err?
2. где defer file.Close() ?
3. почему “FastSearch” пишет? По моему название функции совершенно не соответствует тому что она делает
источник

а

а кто это in Go-go!
началось ревью
источник

DP

Daniel Podolsky in Go-go!
рома прав
источник

а

а кто это in Go-go!
Daniel Podolsky
рома прав
не спорю, но мне кажется код не дописан
источник

DP

Daniel Podolsky in Go-go!
не надо просовывать нам код, который слегка rotten
источник

RS

Roman Sharkov in Go-go!
а кто это
началось ревью
ну про паники я промолчал) очевидно функция для примера всего лишь, если бы это был полный review то от паник я бы запаниковал)
источник

K

Karina in Go-go!
Roman Sharkov
1. почему у вас ошибки не называются err?
2. где defer file.Close() ?
3. почему “FastSearch” пишет? По моему название функции совершенно не соответствует тому что она делает
1. оке, назову err.
2. будет
3. функция в процессе
источник

ВС

Владимир Столяров... in Go-go!
Roman Sharkov
1. почему у вас ошибки не называются err?
2. где defer file.Close() ?
3. почему “FastSearch” пишет? По моему название функции совершенно не соответствует тому что она делает
> 1. почему у вас ошибки не называются err?
по-моему это даже неплохо, или я не понял чего-то, видел подобные советы
источник

а

а кто это in Go-go!
Владимир Столяров
> 1. почему у вас ошибки не называются err?
по-моему это даже неплохо, или я не понял чего-то, видел подобные советы
а зачем так делать?
источник

K

Karina in Go-go!
чуваки, это код с курсов, расслабьтесь
источник

RS

Roman Sharkov in Go-go!
Владимир Столяров
> 1. почему у вас ошибки не называются err?
по-моему это даже неплохо, или я не понял чего-то, видел подобные советы
это плохо, потому-что это усложняет чтение
источник

RS

Roman Sharkov in Go-go!
у нас в кодовой базе повсюду эти..

resource, errFetchingResourceFromSomething := fetchResourceFromSomething()
if errFetchingResourceFromSomething != nil {
 return errFetchingResourceFromSomething
}


по словам авторов это, якобы, позволяет бороться с shadowing’ом, но по факту, как показывает практика, это приводит лишь к багам, чаще проверяем не те ошибки:

resource, errFetchingResourceFromSomething := fetchResourceFromSomething()
if errFetchingResourceFromSomething != nil {
 return errFetchingResourceFromSomething
}

resource, errDoingSomethingExtraordinary := doSomethingExtraordinary()
if errFetchingResourceFromSomething != nil { // hehe boy
 return errDoingSomethingExtraordinary
}


нежели:

resource, err := fetchResourceFromSomething()
if err != nil {
 return err
}

resource, err := doSomethingExtraordinary()
if err != nil {
 return err
}
источник

ВС

Владимир Столяров... in Go-go!
Вопрос к чату. Что лучше - увеличить время старта приложения, но обрабатывать быстро все запросы или же сократить время старта, но долго обрабатывать первый запрос?
Среда, допустим, k8s, если это важно
источник

DP

Daniel Podolsky in Go-go!
по мне - лучше долгий старт
источник

D🦆

Dmitry 🦆 in Go-go!
Без разницы, если долгий первый запрос и на пробы распространяется.
источник

RS

Roman Sharkov in Go-go!
Владимир Столяров
Вопрос к чату. Что лучше - увеличить время старта приложения, но обрабатывать быстро все запросы или же сократить время старта, но долго обрабатывать первый запрос?
Среда, допустим, k8s, если это важно
долгий старт лучше чем долгий первый запрос

в случае долгого старта мы знаем когда сервер будет готов к нагрузке
в случае с месленным первым запросом могут быть недопонимания и проблемы
источник

VS

Vladimir Smirnov in Go-go!
Владимир Столяров
Вопрос к чату. Что лучше - увеличить время старта приложения, но обрабатывать быстро все запросы или же сократить время старта, но долго обрабатывать первый запрос?
Среда, допустим, k8s, если это важно
А какие slo на запросы и что такое долго?
источник

ВС

Владимир Столяров... in Go-go!
конкретных требований нет, делаю тут собственный проект, и одна из библиотек при вызове по sync.Once грузит/парсит вшитую через gobindata базу, и процесс этот занимает секунды три
источник

а

а кто это in Go-go!
Владимир Столяров
конкретных требований нет, делаю тут собственный проект, и одна из библиотек при вызове по sync.Once грузит/парсит вшитую через gobindata базу, и процесс этот занимает секунды три
ну так если база используются в каждом запросе, то смысл имеет смысл грузить ее сразу
источник