9

我正在为生产应用程序首次涉足 scala。该应用程序当前打包为一个战争文件。我的计划是创建一个 scala 编译工件的 jar 文件,并将其添加到 lib 文件夹中以存放 war 文件。我的增强是通过 Jersey 公开的一个 mysql 支持的应用程序,并将通过 HttpClient 调用与第三方站点集成。我知道如何通过普通的 java 做到这一点。但是当在 scala 中做这件事时,我在几个决策点上犹豫不决。

  1. scala 2.7.7 还是 2.8 RC?
  2. 通过querulous的 JDBC这个 API 准备好投入生产了吗?
  3. sbt vs maven。我对 Maven 很满意。
  4. 是否有 HttpClient 的 scala 惯用包装器(或者我应该像在 java 中一样使用它)?

我很想听听您对 scala 开始的评论和经验。

4

2 回答 2

11
  1. 我会使用 2.8.0。2.8 中有太多有用的功能。此外,2.8 即将发布最终版本。如果你刚刚开始,为什么不从那开始呢?FWIW,自 Beta1 以来,我一直在使用 2.8.0,在我每天使用的各种工具和库中。虽然有一些错误,但它们还不足以让我退回到 2.7.7。不过,YMMV。
  2. 这不会使您的决定变得更容易,但是数据库访问还有其他可能性。例如,我一直在使用SQueryL;我喜欢。ORBroker是另一种选择。
  3. 如果您对 Maven 感到满意,那么请务必使用它。就个人而言,我更喜欢 SBT。当我需要实现特殊的构建逻辑时,我可以获得真正的编程语言的全部功能。同样有用的是,我不必处理 XML 配置文件。(XML 对数据很有用,但对于人工编辑的配置文件来说,它是一种糟糕的格式。)
  4. 你可以试试 Databinder Dispatch。请参阅这篇文章以获得很好的概述。
于 2010-06-18T01:46:55.887 回答
1
  1. 如果您只是要开始开发,Scala 2.8 GA 可能会在您投入生产时可用。即使不是,我也会选择最新鲜的 2.8RC 包,而不是坚持 2.7.7。2.8 不仅有许多很棒的功能,而且还包含许多 2.7.7 的错误修正。
  2. 如今,为 Scala 设计的生产就绪型 ORM 并不多。我可能会选择Lift Persistence,因为 Lift Framework 背后的专业团队和友好的社区。但是如果你不想冒险,你应该考虑使用久经考验的 Java ORM:Hibernate、JPA、iBatis(最近更名为 myBatis)等。
  3. 你应该试试 SBT!它与 maven POM 兼容,因此迁移到 SBT 对您来说应该不会太痛苦。使用 SBT 的好处:
    • 它是为 Scala 设计的,因此您将摆脱为 Maven 维护无数插件的负担,使其与 Scala 一致地工作
    • 您将能够在 Scala 中编写构建脚本(与 XML 相比,这是一种了不起的体验)
    • SBT 有一个杀手锏 -连续的任何东西(构建、测试、部署)。SBT 监控您的代码,检测代码何时更改,并触发操作(测试、重新部署等)。
于 2010-06-18T15:40:22.863 回答