非常感谢实习期间的一位师兄给予的耐心教导,从他那里继承来了学习思维的连环三问:
1. 为什么要用这个东西(一种设计模式/一个类/一种框架/一种算法/一种数据结构/一种规范)?
2. 去掉这个东西会有什么影响?
3. 如果不用这个,我们可以拿什么来代替?
举个例子:
打印日志经常会同时返回errCode和errMessage,
为什么两个都要呢?
去掉其中某一个会有影响吗?
要是不用,有什么别的好的传递方式吗?
我的回答:errCode全局唯一,errMessage重在描述,一个errCode可以对应多个errMessage,在不同场景下提供个性化的描述,方便理解和日志错误定位。不过我认为去掉其中一个也是可以的,因为errMessage理论上也是全局唯一的。
师兄的回答:你的回答是一方面,不过在我理解,errCode还有另一个作用——方便外部调用者根据返回的errCode做自己的功能,例如关联到自己的错误类型上等等,简洁而明确,这一点errMessage则不是很好。