关于go2 APi教程配置设计中一章的建议

配置设计一章中有这样一个函数:

func internalGet(path string, defaultValue ...interface{}) interface{} {
    // config 或者环境变量不存在的情况
    if !viper.IsSet(path) || helpers.Empty(viper.Get(path)) {
        if len(defaultValue) > 0 {
            return defaultValue[0]
        }
        return nil
    }
    return viper.Get(path)
}

该函数从配置列表中读取信息,如果配置不存在,则返回nil。我的建议是,这里不应该返回nil,而是应该直接panic,直接在日志中打印出找不到配置的错误提示,理由如下:

如果忘记做一项配置,按着这种逻辑,程序会正常运行,但是运行到使用该配置的位置,接口只会返回服务器错误,但是不打印具体原因,加大了调试难度,掩盖错误信息不是好的编程习惯。

讨论数量: 6
goStruct

我感觉是把go当php写了,整体风格上。

6个月前 评论
jobsssss (楼主) 6个月前
goStruct (作者) 6个月前
jobsssss (楼主) 6个月前
goStruct (作者) 6个月前
jobsssss (楼主) 6个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!