作者回复: 学习一些行业通用的语言还是需要的。
作者回复: 没什么不妥,实际上,我也经常这么做。在这个例子里,我选择了大家更容易理解的方式,适用面更广一些而已。
作者回复: 卫语句是前提条件,结果是提前返回。
至于你的第二个问题,看不懂中文时,就去看英文。
The Law of Demeter (“talk only to your friends”) is a good place to start, but think about it this way: you can play with your toys, with toys that you make, and with toys that someone gives you. You don’t ever, ever play with your toy’s toys.
人家的原文是 You don’t ever, ever play with your toy’s toys. 别动玩具的玩具,和迪米特法则说的是一回事,所以,你不理解的原因是翻译的不好。
作者回复: 好样的!
作者回复: 这是一个好问题。
我不建议针对不同的用户级别提供不同的 API,因为这是和具体业务演进强相关的,每添加一个用户级别,API 都要修改,稳定性非常差。
这里一定要有防腐层的概念在心里,API 接口是外部的,它里面传输的内容不一定和业务是一一映射的。所以,把传输中的用户级别通过一个工厂(factory)转换成一个业务对象是非常正常的。在第 11 讲会有讲到一个类似的问题。
这里的重点就是提供 API,就要思考 API 应该怎么设计,然后是,API 和业务对象之间如何映射。
作者回复: 肉眼可见的进步。
作者回复: 就是要打破这种认知。
作者回复: 同样的事,可以有不同的做法。
作者回复: 进一步有一步的欢喜。
作者回复: 多谢分享!
作者回复: 要的就是“万万没想到”
作者回复: switch本身不是问题,问题是重复。
作者回复: 优化的场景要单独算,那都是非常规写法。
作者回复: 主要是为了减少嵌套。
作者回复: 可以发到部落里的代码吐槽大会,让大家开开眼。
作者回复: 嗯,可以这么理解,也讲一些《重构》没讲的。