Twitter开源其Scala最佳实践Effective Scala

http://twitter.github.com/effectivescala/
Scala是Twitter的主要应用编程语言之一,大部分基础架构是使用Scala编写,我们有几个大型库包在支持应用,Scala是一种大型高效语言, 我们的经验告诉我们在实践中要谨慎使用. 它的陷阱在哪里,哪个特性我们很喜欢,另外哪些应该注意回避?当我们在实现“纯函数风格”时, 又要注意些什么呢?换句话: 我们已经实践发现的有利于这个语言的高效使用吗?这个指南试图提炼出我们的实践经验为随笔,提供一系列最佳实践. 我们的Scala使用主要是创建大量形成分布式系统的服务,我们的建议可能有偏见,但是大部分建议可以转为其他领域,这不是法律文书,有偏差请谅解。

Scala提供了需要工具用于简化表达,少打字代表少阅读,少阅读代表能快速阅读, 简洁能够增加清晰度(大道至简). 但是简洁也是一种双刃剑,会导致其反面效果,导致阅读者的正确理解度不够。

综上所及,Scala作为一个编程语言,你不是在写Java,Haskell, Python; Scala并不像这些语言中任何一种,为了能够有效使用这个语言,你必须使用其术语解决你的问题,将java语境带入Scala是没有用的,有违背其最初意图。

阅读这本指南,我们是假设读者熟悉下列教程:
Scala School
Learning Scala
Learning Scala in Small Bites
......

待续

只要是来自实践,代码的风格影响比较小,通过固化风格并不能继承好与坏,每个人都有自己的风格,但是系统的同样风格统一有利于阅读. 阅读者总是熟悉一种特定风格,没有精力去掌握一些如本地方言之类的特殊风格,或能破译语言的另外一个隐藏角落。

这点对于Scala特别重要,它的语法有高度重叠,一个例子是方法调用,方法调用是使用 “.”方法不同调用方式表示不同的语法,一个精心选择的格式风格解决人与机器的分歧上会有很大帮助。

我们将Scala风格指南放在这些规则中。

非常有理.