与Scala的第一次亲密接触 Java如影相随
创始人
2024-06-13 02:30:50
0次

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

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...