8 лучших(по моему мнению) замечаний на код ревью

Не нужно создавать map при каждом входящем запросе. Суть была в том, что я прописал создание map[string]string на каждый входящий http запрос, хотя её можно было создать один раз при инициализации сервиса. Возможно позже сделаю отдельный пост на эту тему.

2. Чем короче области видимости переменной, тем короче должно быть её имя. Вместо: if sampleText := func(); sampleText {return SampleText } Должно быть: if s := func(); s { return s}

3. Поменять название параметра в конфиге с timeout_get на get_timeout т.к. это "йода-style"(отсылка к звездным войнам).

4. Выделять заранее память при создании массива. Вместо: s := []int Должно быть: s := make([]int, 0, 9)

5. Нет проверок на nil.Даже если согласно бизнес-логики и другой части программы данное поле не может быть nil. Вместо: func SampleText(Oslic *customType) string {return Oslic.DoSomeThing() } Должно быть: func SampleText(Oslic *customType) string { if Oslic != nil {return Oslic.DoSomeThing() }return "" }

6. Нет юнит тестовЗамечание было не мне, но все же.

7. Нет комментариев к функции Вместо: func SampleText() {… }

Должно быть: // SampleText описание функцииfunc SampleText() { …}

8. Слишком сложные unit-тесты. По какой-то причине я старался подобрать к тестам резолверов нормальные параметры, чтобы они работали, когда надо было просто проверить, что они вернут ошибку и сонар это "засчитает" как покрытие.

#go #codequality

8 лучших(по моему мнению) замечаний на код ревью | Сетка — социальная сеть от hh.ru