#t#【51CTO.com精选译文】Scala编程语言在国内还刚刚起步,很多人还都在学习,使用Scala真正做过项目的比较少。相比之下,国外做过Scala真实项目的开发者就要多一些。你的***个真正的Scala项目是什么?Scala英文社区近日发起了这样一个话题,并很快引来了几十篇回复。大部分这样的Scala项目都是与Java程序关系密切的。51CTO编辑从回复中挑选了几条,希望对学习Scala的读者们能有一些参考价值。
51CTO编辑推荐:Scala编程语言专题
Case 1. Kelvin:
对我而言,我是在一个已有的 Java 程序中***次“真正地”使用 Scala。首先通过 ScalaTest,利用 BDD,然后逐步转换已有的 Java 类。每个可以利用 case 类或模式匹配进行简化的地方,都是一个很好的机会来使用 scala。
此外,我还结合网络和串行通讯编写了一些程序,个人使用的,家庭自动化之类的东西。
目前,我最棒的纯 Scala 项目是 autoproxy-plugin,最近刚刚发布在 github 上。
Case 2. Rex:
我***个真正的 Scala 程序是一个半脚本程序,管理数据分析所需的 Java 程序,调用其他几个程序用于数据分析和演示,以及查看多个输出文件,读取这些文件,进行一些计算,还有根据结果更改参数来调用其他程序。
另外,这个程序的 GUI 非常简洁,用户可以选择想要分析的目录(并且这个程序可依据合理的默认设置处理所有其他一切事务)。
我之所以选择 Scala,因为我有一些混合的字符串处理/脚本,在 Java 中非常麻烦,还有高性能的数据输入输出和矢量计算,想要在标准的基本语言中做到足够快速,也非常难。
还有,使用它工作一段时间之后,我发现,将想要的结果映射(map)到 Scala 代码中的能力变强了,相对于映射到其他代码,出错率明显降低了。这让调试变得尤其简单,很多东西***次尝试就成功了。(我不能完全弄明白为什么会这样,但我觉得,在适当的时候,大量使用 map/foreach/filter 和 closure 一定是这个原因的一部分。)
Case 3. Andrew:
我的***个也是目前***一个 Scala 程序是,结合每个文件的 tag 标签和由 http://last.fm 提取的元数据,生成 MP3 列表。将这些东西结合在一起,我可以将每个音频与一组词(比如 rock 或 chilean 或其他任何词)关联起来,然后就可以能明白哪些音频是关联的(因为它们具有相同的词),从而就能够生成一个歌曲列表,其中的歌曲是相互关联的。
代码不值得评论,而且目前有点小故障,不过你可以在这里查看。
也许最有趣的是我如何定义数据库模式的:点击这里。
那些“真正的工作”都是由 Java 库(通过 Empire DB 访问数据,图像用的是 jgrapht,等等)来完成的。
Case 4. Kris:
我***个真正的 Scala 程序是一个为订阅服务制作的账单系统。这个星期,这个系统刚刚跨过了一个里程碑——该系统目前已经处理了超过 100 万美元的交易 :)
该项目开始是使用 Java,在测试架构中使用了一些 Scala。一旦这个语言的表达能力变得清晰,Scala 将很快不再局限于测试这个小笼子。
那么,你的***个真正的Scala项目是什么呢?