, ], n+ P3 M7 E G ' @2 ~6 ]- @. p$ h% \3 ~但如果驾驶技术不好的话,法拉利也能变成桑塔纳,甚至还不如。拿之前那段看起来似乎很 6 的代码来说吧,它并不是一段好的代码——尽管使用了新颖的技术,但难以理解。 0 V5 }9 B1 s. j" a' w9 W2 w 2 ?/ n9 m& r3 Q2 n3 B在 Java 8 之前,如果你想编写函数式代码的话,应该会使用 Google 的 Guava 类库,它是一个很棒的开源类库(不陌生吧),可以在一定程度上弥补 Java 原生类库的不足。我在它的 wiki 上看到下面这样一条建议,说得很富有远见: # `/ A* y" l% d6 |0 t: n+ x0 f- E1 X/ M9 p. X- v4 J/ I0 n
Excessive use of Guava’s functional programming idioms can lead to verbose, confusing, unreadable and inefficient code. … when you go to preposterous lengths to make your code “a one-line”, the Guava team weeps. - ^, X) J' x$ P6 y9 {应该能看得懂吧?大致的意思就是说,如果过度使用 Guava 的函数式编程的话,会导致代码冗长、混乱、不可读,甚至低效;如果有些开发者为了减少代码的长度,刻意把多行代码“优化”成一行代码时,Guava 甚至会被玩哭。 ! ?( a' i- A( a! ^0 }5 J% U, m2 a; h; h0 Z( r! F
我只能说,优秀的人真可怕,他不仅知道自己的长处,更了解自己的不足——说的就是你,Guava 的开发者。至于开头提到的那位大牛,他写的代码我就不敢恭维,只能说炫技炫到盲目自信吧。根据我的经验,只有很少一部分的大牛能够保持理智,在追求技术创新的同时意识到炫技的问题。3 b' z; E+ y- j* K1 ~/ L; F! H