LINUX.ORG.RU

История изменений

Исправление 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-х годов.