您所在的位置:开发 > Java > Java+ > 与Scala的第一次亲密接触 Java如影相随

与Scala的第一次亲密接触 Java如影相随

2009-11-27 14:18 司马牵牛 编译 51CTO.com 字号:T | T
一键收藏,随时查看,分享好友!

你的第一个Scala真实项目是什么?近日在Scala英文社区中,发起了有关第一个Scala真实项目的讨论。讨论者们积极分享了自己的Scala项目经验,这些经验对Scala学习者们的选型有一定参考价值。

AD:

【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项目是什么呢?

【责任编辑:杨赛 TEL:(010)68476606】



分享到:

热点职位

更多>>

热点专题

更多>>

读书

点石成金:访客至上的网页设计秘笈(原书第2版)
有些网站看起来很清爽; 有些网站看起来很杂乱; 有些网站能让你轻松地找到资料; 有些网站让你犹如置身迷宫

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i