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

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

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

责任编辑:yangsai 来源: 51CTO.com
相关推荐

2017-08-08 12:50:51

Serverless云端数据库

2013-02-25 09:43:22

LambdasJava8

2010-01-29 09:01:40

.NET 4.0

2018-06-12 11:19:28

2020-05-06 07:18:59

数据中台架构

2015-11-03 11:39:18

清华大学OpenStackEasyStack

2018-08-16 11:30:12

JavaCPU缓存

2012-10-19 09:27:23

Ruby

2009-05-15 08:59:32

Windows 7微软操作系统

2010-05-25 13:17:28

MySQL数据库

2011-07-21 21:01:37

诺基亚塞班苹果

2009-06-08 16:00:00

ASP.NET 3.5

2015-08-05 10:54:49

2017-03-22 15:38:28

代码架构Java

2023-04-12 08:14:10

mysql关联字段索引

2022-03-16 14:59:28

打包debian模板文件

2012-04-13 10:11:58

Windows 8泄露

2023-09-11 00:14:46

后端团队项目

2022-08-15 08:16:56

shiroWeb认证

2015-07-27 17:48:20

麦迪
点赞
收藏

51CTO技术栈公众号