История изменений
Исправление
KRoN73,
(текущая версия)
:
Тема холиворная.
Лично меня больше достаёт даже не сам факт проверок, которых могло бы не быть, а постоянный дубляж числа аргументом при возврате ошибки. На каждой проверке — типа такого:
if len(parts) == 0 {
return nil, nil, ErrNoComponents
}
h, err := mh.FromB58String(parts[0])
if err != nil {
log.Debug("given path element is not a base58 string.\n")
return nil, nil, err
}
Поменял число аргументов функции — добро пожаловать на переписывание всех возвратов... Это «эргономика программирования» уровня 1980-х годов.
И при этом трейс ошибок теряется. В итоге получаешь наверху ошибку и часто, чтобы понять откуда она, нужно изучать потроха в глубину.
Исходная версия
KRoN73,
:
Тема холиворная.
Лично меня больше достаёт даже не сам факт проверок, которых могло бы не быть, а постоянный дубляж числа аргументом при возврате ошибки. На каждой проверке — типа такого:
if len(parts) == 0 {
return nil, nil, ErrNoComponents
}
h, err := mh.FromB58String(parts[0])
if err != nil {
log.Debug("given path element is not a base58 string.\n")
return nil, nil, err
}
Поменял число аргументов функции — добро пожаловать на переписывание всех возвратов... Это «эргономика программирования» уровня 1980-х годов.