译者序

写代码的层次

初涉代码之时,我的关注点在于实现功能。初窥门径的我,不了解语言,不熟悉常见的编码技巧。那时,只要代码能够跑出想要的效果,我便欣喜若狂,无暇顾及其他。

积累一定经验之后,对于编写代码,我越来越有感觉,实现一个功能不再高不可攀。我开始了解在工程中编写代码,如何在一个系统而不仅仅是一个局部处理问题,如何解决各种bug,更重要的是,从中汲取教训,在编码中避免这些问题。

读一些软件开发的书,了解一下外面的世界,我知道了,除了自娱自乐外,代码应该是为明天而写。有个说法,对程序员最严厉的惩罚,就是让他维护自己编写的代码。于是,我开始尝试编写干净代码:短小的函数,清晰的结构……所做的一切无非就是让自己明天的日子好过一些。

历经磨练,代码逐渐干净,窃喜之际,我见到了Ruby。孤陋寡闻的我第一次听到了代码的表现力。原来代码不仅仅可以写得让开发人员容易理解,也可以让业务人员看懂。事实上,更容易懂的代码常常也意味着更容易维护。许多人关注的DSL,背后就是对于表现力的追求。

Scala就是Java平台上追求表现力的探索。

我是通过Java开始真正理解软件开发的,所以,对Java这个平台有一种难以割舍的情结。初见Scala,我看到的是,一个几乎不舍弃任何Java的优点,又能拥有更好表现力的“Java”。当有机会系统地了解这门语言时,我欣然接受了。

翻译向来是一件费力不讨好的事。认真准备的考试不见得能拿到满分,做最大的努力,做最坏的打算。于我,只希望这个译本得到的评价不是太糟糕就好。

感谢我的合作者,李剑,你给我这样的机会,让我知道,我居然还可以做翻译,你的认真让我受益良多。感谢本书的原作者Venkat Subramaniam,和你讨论让我们对Scala有了更深刻的理解。

最后,感谢我的父母,你们教会我踏实做人,支持着我沿着软件开发这条路一直走下去。

郑 晔

2010年4月18日于成都

目录

  • 版权声明
  • 读者推荐
  • 译者序
  • 第1章 简介
  • 第2章 起步
  • 第3章 Scala步入正轨
  • 第4章 Scala的类
  • 第5章 自适应类型
  • 第6章 函数值和闭包
  • 第7章 Trait和类型转换
  • 第8章 使用容器
  • 第9章 模式匹配和正则表达式
  • 第10章 并发编程
  • 第11章 与Java互操作
  • 第12章 用Scala做单元测试
  • 第13章 异常处理
  • 第14章 使用Scala
  • 附录A Web资源