耳目一新的Java 8
这篇书评可能有关键情节透露
花了18天,把这书通读一遍,体验了一下代码,并作了些笔记,发布在我的oschina博客和我的csdn博客上。
Java 8 的新特性主要有Lambda表达式、Stream流、接口的默认方法。这些特性出现,我认为可以帮助码农们写出更加优雅的代码。譬如,在Java8前按照策略模式,需要编写接口,非要新建一个类文件或者new 一个接口并写上待实现的方法语句,很麻烦。在Java8之后使用Lambda表达式后,就轻松多了。再譬如,以前命令式编码换成Java8流声明式编码,让代码显得更加简练。
本书还有些翻译问题,譬如:
- P292 14.4.2 用模式匹配力挽狂澜 ——原句“构建编译器或者处理商务规则的引擎,这一工具尤其有用。”这句中的“商务”一词对应英语版的是“business”,把“商务”换成“业务”更符合语境。
- P276 14.4.1 高阶函数——原句:“比如,一个计算口袋的程序可能有这样的一个Map<String, Function<Double, Double>>,它将字符串sin映射到方法Function<Double,Double>,实现对Math::sin的方法引用。”当看到这句中的“一个计算口袋的程序”,情不自禁地WTF,对应一下英文版的,原是“a pocket calculator program”,应翻译为“一个袖珍计算器的程序”。
翻译问题一直存在的。最终解决问题也只能靠读者自己。如果读者自己英语水平杠杠的,直接读英文原版。英语水平有待提高的我的解决方法是,读中文译版时,发现别扭,就翻开英文版的对应部分,便可豁然开朗。
接着,当读到第13章函数式的思考时,产生了久久不能平静的共鸣。函数式编程支持无副作用的方法和声明式编程。在日常开发当中,如经常写有副作用的方法,东一下该了成员变量,西一下又成员变量,周而复始,维护成本就水涨船高。因此,慢慢养成一个习惯——写方法体时,知道输入是什么,输出是什么,一心一意。这样习惯会让我觉得脚踏实地实现小目标,任务也一步一步地被完成,并且日后维护也没那么费劲啊。阅读到第13章后,仿佛在芸芸众生找到一个知己,感慨万千,三月不知肉味。
最后,用最终章的结束语结束吧!“Java 8已经占据了一个非常好的位置,可以暂时歇口气,但这绝不是终点!”