|
|
1
3
对你的项目提出以下问题: “什么手术需要副作用?”“什么功能已经被Java库所覆盖?”然后在scala中实现其余部分。 不过,我要警告的是,由于需要使用多种语言/环境,混合项目从本质上来说比独立项目更困难。所以,鉴于你对scala的经验不多,我建议你先玩一些玩具项目,也许是你全部目标的一部分。这也会给你一个分水岭应该在哪里发生的感觉。 |
|
|
2
10
两件事:
所以答案是:无论你想要什么部分。您的scala代码不需要是纯功能的。您的Scala代码可以调用Java库。你可以用Java编写的任何部分都可以用斯卡拉编写。 现在,一些更实际的考虑。当第一次尝试scala时,有些人会选择程序中相对孤立的、非任务关键的部分来用scala编写。如果您喜欢这种方法,单元测试是一个很好的候选者。 如果你熟悉Java,并且在过去学习过Haskell,我建议把斯卡拉当作一个“更好的Java”。从根本上讲,斯卡拉编译成非常类似Java输出的JVM字节码。唯一的区别是斯卡拉更“有生产力”:它产生的字节码比Java代码多。scala与haskell有很多共同之处(第一类函数,因为理解类似于haskell的do符号,有限的类型推理),但它也非常不同(默认情况下,它不是懒惰的,也不是纯粹的)。因此,您可以使用Haskell的一些见解来激发您的Scala风格,但是“在引擎盖下”,它都是Java字节码。 |
|
|
3
6
本着您的问题精神,我建议您在scala中编写任何涉及对集合进行大量操作或处理XML的代码。 scala的集合库是scala最重要的功能特性,通过使用它,您将体验到极大的loc减少。是的,有Java替代品,比如谷歌的收藏库,但是你问你应该用斯卡拉写什么。:-) scala还具有对XML的本地处理。如果尝试使用DOM代码并使其在scala上工作,您可能会发现转换很困难。但是,如果您尝试处理这个问题和scala透视图,然后从头开始为scala编写它,您将获得收益。 我也建议使用演员,但我不确定你能把它与Struts 2代码集成在Java上。但是如果您有并发代码,请考虑一下scala中的参与者。 |
|
|
4
5
听起来可能很傻,但为什么不写你的 整个项目 在斯卡拉?这是一种奇妙的语言,它比Java更具表现力,同时保持对现有Java库的二进制兼容访问。 |