小编Seb*_*ber的帖子

Scala中Null/Nothing/Unit的用法

我刚读过:http://oldfashionedsoftware.com/2008/08/20/a-post-about-nothing/

据我所知,这Null是一个特点,它的唯一例子是null.

当一个方法采用Null参数时,我们只能传递一个Null引用或null直接传递它,但不能传递任何其他引用,即使它是null(nullString: String = null例如).

我只是想知道在哪些情况下使用这个Null特性可能会有用.还有没有什么特质,我真的没有看到更多的例子.


我真的不明白使用Nothing和Unit作为返回类型之间的区别是什么,因为两者都没有返回任何结果,当我有一个执行日志记录的方法时,如何知道使用哪一个?


除了返回类型之外,您是否将Unit/Null/Nothing用作其他东西?

scala

91
推荐指数
5
解决办法
6万
查看次数

为什么使用单例而不是静态方法?

我从来没有找到关于帮助器/实用程序类的这些简单问题的良好答案:

为什么我要创建一个单例(无状态)而不是使用静态方法?

如果对象没有状态,为什么需要对象实例?

java singleton design-patterns

89
推荐指数
4
解决办法
4万
查看次数

在Eclipse中对maven依赖项进行排序

只是想知道Eclipse中是否可以按字母顺序对Maven依赖项进行排序?

这是困扰我有200个未订购的罐子的清单...... :(

java dependencies maven-2 dependency-management maven

68
推荐指数
4
解决办法
2万
查看次数

在Scala中抛出异常,什么是"官方规则"

我正在关注Coursera的Scala课程.我也开始阅读Odersky的Scala书.

我经常听到的是,在函数式语言中抛出异常并不是一个好主意,因为它会破坏控制流,我们通常会返回一个带有失败或成功的Either.似乎Scala 2.10也将提供那个方向的Try.

但是在书和课程中,马丁奥德斯基似乎并没有(至少现在)说异常是坏的,而且他经常使用它们.我也注意到方法断言/要求......

最后我有点困惑,因为我想遵循最佳实践,但他们不清楚,语言似乎是双向的...

有人可以解释一下我应该在哪种情况下使用什么?

scala exception try-catch either

49
推荐指数
2
解决办法
2万
查看次数

OT和CRDT之间的差异

有人可以简单解释一下Operational Transform和CRDT之间的主要区别吗?

据我所知,这两种算法都允许数据在分布式系统的不同节点上收敛而不会发生冲突.

在哪个用例中你会使用哪种算法?据我所知,OT主要用于文本,CRDT更通用,可以处理更高级的结构吗?

CRDT比OT更强大吗?


我问这个问题是因为我试图了解如何为HTML文档实现协作编辑器,并且不确定首先查看哪个方向.我看到了ShareJS项目,以及他们尝试在contenteditables元素上的浏览器上支持富文本协作.在ShareJS中我没有看到任何使用CRDT的尝试.

我们也知道Google Docs正在使用OT,它在富文档的实时版本中运行良好.谷歌是否选择使用OT,因为CRDT当时并不为人所知?或者它今天也是一个不错的选择?

我也有兴趣了解其他用例,比如在数据库上使用这些算法.Riak似乎使用CRDT.OT也可用于同步数据库的节点,是Paxos/Zab/Raft的替代品吗?

algorithm nosql paxos operational-transform crdt

45
推荐指数
2
解决办法
7723
查看次数

Graylog2和Kibana之间的主要区别是什么?

Graylog2和Kibana之间的主要区别是什么?

我们已经使用了Graylog2,但我必须承认我并不喜欢UI.只是想知道如果切换到Kibana可能会有所帮助.

logging logstash graylog2 kibana

44
推荐指数
2
解决办法
4万
查看次数

在没有XML配置的情况下初始化数据库,但使用@Configuration

我想知道如何在不创建XML文件的情况下初始化数据库.

我已经使用这种工作正常的初始化,但在我目前的情况下,我不想创建XML:

<jdbc:initialize-database data-source="dataSource">
  <jdbc:script location="classpath:com/foo/sql/db-schema.sql"/>
  <jdbc:script location="classpath:com/foo/sql/db-test-data.sql"/>
</jdbc:initialize-database>
Run Code Online (Sandbox Code Playgroud)

我知道我可以创建一个嵌入式数据库:

EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
EmbeddedDatabase db = builder.setType(H2).addScript("my-schema.sql").addScript("my-test-data.sql").build();
Run Code Online (Sandbox Code Playgroud)

在我的例子中,数据库和模式是使用Liquibase创建的.

我只想用Spring和我的自定义数据集初始化它,而不必每次都为此创建一个新的XML文件.

可能吗?

java spring h2

43
推荐指数
4
解决办法
3万
查看次数

滚动事件:requestAnimationFrame VS requestIdleCallback VS被动事件侦听器

我们知道,通常建议去掉滚动侦听器,以便在用户滚动时UX更好.

但是,我经常找到像Paul Lewis这样有影响力的人推荐使用的图书馆文章requestAnimationFrame.但是,随着Web平台的快速发展,某些建议可能会随着时间的推移而被弃用.

我看到的问题是处理滚动事件有很多不同的用例,例如构建视差网站,或处理无限滚动和分页.

我看到3个可以在UX方面有所作为的主要工具:

所以,我想知道,每个用例(我只有2个,但你可以拿出其他的),我现在应该使用什么样的工具来获得非常好的滚动体验?

更确切地说,我的主要问题将与无限滚动视图和分页(通常不必触发视觉动画,但我们想要一个良好的滚动体验)更相关,是否更好地用+被动滚动requestAnimationFrame的组合替换requestIdleCallback事件处理程序 我也想知道什么时候requestIdleCallback用于调用API或处理API响应以使滚动执行得更好,或者浏览器可能已经为我们处理了什么?

javascript dom requestanimationframe requestidlecallback passive-event-listeners

43
推荐指数
1
解决办法
2万
查看次数

在Scala中对密封特性进行迭代?

我只是想知道是否有可能在Scala中迭代密封的特征?如果没有,为什么不可能?由于特性是密封的,应该可以吗?

我想做的是这样的:

sealed trait ResizedImageKey {

  /**
   * Get the dimensions to use on the resized image associated with this key
   */
  def getDimension(originalDimension: Dimension): Dimension

}

case class Dimension(width: Int,  height: Int)

case object Large extends ResizedImageKey {
  def getDimension(originalDimension: Dimension) = Dimension(1000,1000)
}

case object Medium extends ResizedImageKey{
  def getDimension(originalDimension: Dimension) = Dimension(500,500)
}

case object Small extends ResizedImageKey{
  def getDimension(originalDimension: Dimension) = Dimension(100,100)
}
Run Code Online (Sandbox Code Playgroud)

通过给枚举值赋予实现,我可以用Java完成.Scala中有同等的东西吗?

enumeration scala sealed scala-macros

38
推荐指数
3
解决办法
1万
查看次数

ThisBuild和Global范围有什么区别?

有人可以解释我写这两行之间的区别:

resolvers in ThisBuild ++= appResolvers

resolvers in Global ++= appResolvers
Run Code Online (Sandbox Code Playgroud)

sbt

35
推荐指数
2
解决办法
5779
查看次数