小编Jac*_*ack的帖子

如何保存和重用Scala实用程序代码

在项目中收集和使用有用的Scala实用程序函数的好方法是什么.这里关注的是非常简单的独立功能,例如:

def toBinary(i: Int, digits: Int = 8) =
    String.format("%" + digits + "s", i.toBinaryString).replace(' ', '0')

def concat(ss: String*) = ss filter (_.nonEmpty) mkString ", "
concat: (ss: String*)String
Run Code Online (Sandbox Code Playgroud)

这个问题是基本的,我知道;-)但是,我知道总有一种最佳的方法可以做某事.例如,重用Scala交互式shell中的代码,Idea,Eclipse,有或没有SBT,将库放在GitHub等上,可以快速为这样一个简单问题引入最佳和非最佳方法.

scala

7
推荐指数
1
解决办法
4519
查看次数

适用于Xcode,IntelliJ Idea和Phonegap(又名Cordova)的gitignore模板

有没有人有一个很好的预先推出的gitignore文件用于使用Xcode和PhoneGap的iPhone开发?

目前我正在使用:

.idea
.DS_Store
*.swp
*~.nib

build/
adhoc/

.xcodeproj/ !*.xcodeproj/project.pbxproj

*.mode1v3
*.mode2v3

build/

xcuserdata
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否理想.例如,更新Phonegap有点搞砸了很多东西.此外,如果另一个开发人员只是使用Xcode构建项目,那么git将获取一些更改.

奇怪的是,Xcode没有列在这个列表中:https://github.com/github/gitignore

git xcode cordova

7
推荐指数
1
解决办法
2373
查看次数

新的Scala项目的NoSQL(例如MongoDB)或RDMS(例如PostgreSQL)?

我正在Scala开发一个全新的项目.它只是一堆CRUD操作的应用程序,但是,由于一些古怪的要求,Play2或Lift不符合要求,所以我将从头开始开发应用程序.这意味着Anorm或ScalaQuery成为数据库集成的不太明显的选择,让我有一个问题:是时候尝试新的东西了吗?

我过去的技术堆栈主要包括Java和PostgreSQL,我有ORM和纯SQL的经验.像MongoDB这样的NoSQL数据库管理系统是典型RDBMS的良好替代品,还是特殊情况的应用程序数据存储?此外,数据库的选择如何影响更大的Scala系统设计(如果有的话)?例如,您使用类似JSON的接口与数据库进行通信,以及Web和REST服务之间的JSON这一事实并不意味着如果中间的所有内容都成为Scala对象,或者它是什么?

我基本上要求有人从关系数据库转移到对象/文档类型数据库,特别是使用Scala.我知道即将发布的SLICK承诺提供良好的RDBMS集成.那么,如果像TypeSafe这样的公司决定在TypeSafe堆栈中建立RDBMS集成部分,那么我将使用Casbah集成到MongoDB上游吗?

如果这个问题看起来有点含糊,请道歉.我希望有正确见解或经验的人能够提供帮助.

更新:

不向SLICK添加链接的道歉(这是相当新的).开始:

更新2:

对于技术我个人的第一场胜利通常为开发人员的生产力 -这相当于轻巧简单:快速学习,容易维护,没有魔法

architecture scala mongodb scalaquery casbah

7
推荐指数
1
解决办法
2883
查看次数

清除Scala Worksheet的输出

每次在Scala IDE中保存Scala工作表时,每个表达式的输出都将作为注释打印在编辑器的右侧.有没有办法从Scala工作表清除此输出,以便您可以剪切和粘贴代码?

目前,我的解决方案是保存我的工作表错误,以便输出消失.必须有更好的方法...键盘快捷方式或其他东西.

scala scala-ide

7
推荐指数
1
解决办法
587
查看次数

specs2的JVM内存设置

SBT使用specs2spray-testkit在我的一些较大的验收风格测试中保持内存不足.我有10个演出或RAM可用,目前我开始SBT(使用SBT附加脚本),MaxPermSize为512m,Xms为1024m,Xmx为2g.

验收测试按特定顺序贯穿客户的整个业务流程,因此将验收测试分成多个较小的测试并不容易.

任何想法如何更好地配置我的环境,或者我应该注意的问题将不胜感激.

为了它的价值,我在Ubuntu下使用Oracle Java,该项目使用Scala 2.10,sbt 0.12.2,使用specs2 1.14喷涂1.1-M7.

在测试之外运行系统时,或者在使用较小的测试时,一切都像发条一样运行.只有在较大的测试中,事情才会变得坚果.

sbt spray specs2

7
推荐指数
2
解决办法
1047
查看次数

通过SBT运行Scala应用程序时,权限被拒绝绑定到端口

我正在尝试使用SBT运行我的Scala代码,但是得到以下错误.SBT使用命令行和IntelliJ Idea都会发生这种情况.

    [error] (run-main) org.jboss.netty.channel.ChannelException:
    Failed to bind to: /127.0.0.1:80
    org.jboss.netty.channel.ChannelException: Failed to bind to: /127.0.0.1:80
    ....
    ....
    Caused by: java.net.SocketException: Permission denied
Run Code Online (Sandbox Code Playgroud)

我配置什么来允许端口访问.当我尝试在我的本地Mac和远程Ubuntu服务器上运行时,会发生这种情况.

使用"sudo sbt"运行sbt可以解决问题,但这不是解决方案.我在哪里可以设置允许我的Scala应用访问端口80的权限.

scala sbt netty

6
推荐指数
1
解决办法
5113
查看次数

仅使用某些键映射

关于Scala中的映射,if ms - (k, 1, m)返回包含ms的所有映射的映射,除了具有给定键x,1和m的任何映射.

然后,什么语句将返回ms的所有映射的映射,只有 给定的键x,1和mie我正在寻找ms的子集,其中只有k,1和m是键.

这有效,但很糟糕:

scala> val originalMap = Map("age" -> "20", "name" -> "jack", "hobby" -> "jumping")
ms: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map(age -> 20, name -> jack, hobby -> jumping)

scala> val interestingKeys = List("name", "hobby")
interesting: List[java.lang.String] = List(name, hobby)

scala> val notInterestingMap = originalMap -- interestingKeys
notInterestingMap: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map(age -> 20)

scala> val interestingMap = originalMap -- notInterestingMap.keySet
interestingMap: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map(name -> jack, hobby -> jumping)
Run Code Online (Sandbox Code Playgroud)

scala

6
推荐指数
2
解决办法
3296
查看次数

混合Akka 2,Play2-mini框架和HTTP

随着Akka 2的发布,Akka HTTP模块已被替换为使用Play2-mini的选项,其中Play2-mini看起来像Play2减去模型视图控制器.

该线在实现REST服务和创建HTTP客户端之间变灰.例如,假设我想在一个服务(即HTTP代理)中创建Web服务(不一定是REST)和HTTP客户端.我使用Akka还是Play2-mini?

我已经在Finagle中创建了这样的服务,并希望用Akka和/或Play2-mini重做练习,看看它是如何比较的.

从高层次来看,架构是什么样的?这些产品如何结合在一起?

scala akka playframework play2-mini

6
推荐指数
1
解决办法
3852
查看次数

从Scala中的选项内的选项中提取值

鉴于以下内容:

val x = Some(Some(1))
Run Code Online (Sandbox Code Playgroud)

获得1的最简洁方法是什么(如果不存在则为-1)?

我正在从数据库查询返回的元组创建一个对象实例.元组中的一个值看起来像这样,所以我想要一个很好的短'one liner'来获取值或将参数设置为-1.

scala slick

6
推荐指数
1
解决办法
2744
查看次数

无法使用Slick更新记录

类和表定义如下所示:

case class Group(
  id: Long = -1,
  id_parent: Long = -1,
  label: String = "",
  description: String = "")

  object Groups extends Table[Group]("GROUPS") {
    def id = column[Long]("ID", O.PrimaryKey, O.AutoInc)
    def id_parent = column[Long]("ID_PARENT")
    def label = column[String]("LABEL")
    def description = column[String]("DESC")
    def * = id ~ id_parent ~ label ~ design <> (Group, Group.unapply _)
    def autoInc = id_parent ~ label ~ design returning id into {
      case ((_, _, _), id) => id
    }
  }
Run Code Online (Sandbox Code Playgroud)

要更新记录,我可以这样做:

  def …
Run Code Online (Sandbox Code Playgroud)

scala slick

6
推荐指数
1
解决办法
4943
查看次数