__slots__
Python中的目的是什么- 特别是关于我何时想要使用它,何时不想使用它?
为什么语言的名称是"Clojure"?
我用Google搜索了一下,在#clojure中问道.到目前为止,没有运气.
我有一个缓存,我想定期检查和修剪.在Java中,我会做以下事情:
new Thread(new Runnable() {
void run() {
while (true) {
Thread.sleep(1000);
// clear the cache's old entries
}
}
}).start();
Run Code Online (Sandbox Code Playgroud)
当然,我有一些线程安全类型的问题可以用作缓存,但是把它放在一边,我的问题很简单.什么是Scala运行重复后台任务的方式 - 您不希望在应用程序的主线程中运行?
我曾经使用过一些演员,我猜我在这个场景中的问题是我没有任何东西可以生成一条消息,是时候清除缓存了.或者更确切地说,我可以想象生成这些消息的唯一方法是创建一个线程来执行它...
编辑:我需要人们对答案进行投票 - 他们对我来说都很好看
通常,在Java中,当我有一个向其他对象提供某种通知的对象时,我将使用Listener/Observer模式.
是否有更像Scala的方式来做到这一点?我应该在Scala中使用这种模式,还是我应该利用的语言中还有其他东西?
我正在运行Mac OS 10.6,Java 1.6_17,Scala 2.8.1 final.我正在尝试使用Skype4Java进行简单的Skype通话,方法如下:
$>export JAVA_OPTS=-d32
$>scala -classpath .:./skype/release/skype.jar
scala> com.skype.Skype.makeCall("echotest")
Run Code Online (Sandbox Code Playgroud)
我收到了错误
"invalid attempt to access memory at location 0x0 ... bus error".
Run Code Online (Sandbox Code Playgroud)
有没有人经历过这个并找到解决方案?
注意:当我使用命令行java运行它时,我可以通过调用其中一个示例来完美地使用此api.尝试使用命令行scala执行相同的示例失败,并显示上述错误.
首先,我想就增加关于这个主题的无数问题而道歉.我理解MVVM和MVC之间的基本区别.我不明白的是M.的确切定义.
在我对MVC的理解中(与维基百科上的内容一致),模型封装了应用程序的状态(以及可能的业务逻辑).它让View知道什么时候发生了变化.它可以实现为具有允许存储或检索数据的方法的类.它可能有一个接口,允许View监听数据的变化.
我在MVVM中读过类似的模型描述.但是,我经常发现人们将模型称为代表您在业务领域中建模的事物的类.在他的文章中,John Papa将模型称为"表示描述特定实体的数据点的类.例如,具有CompanyName和CustomerId等属性的Customer类.他继续解释说,"我有一个班级,负责打网络服务去获取我的数据,并为我的ViewModel填充我的模型".
通常,我会将一些域概念称为域类的类.我同意模型引用那些类,但它不拥有它们.我同意John的观点,即用服务获得的数据填充这些类的工作是一个好主意.他似乎暗示这是ViewModel或其他一些作品.我认为这是模型的关键工作.当然,有一个类(或其他)来做它,但该类是模型本身的一部分.
MVC/MVVM中的M是模型的一些域概念的类吗?或者是封装应用程序数据的东西?
我喜欢有人告诉我,我并不疯狂,而且在某个地方,MS阵营中的人们从根本上改变了模型在这些模式中的含义.呃,也许我在错误的地方虽然:)
我设计了一个ExtJS GridPanel并从数据库中填充数据.我的要求是当点击网格行(如编辑按钮)从网格获取id并填充具有特定数据的窗口(使用来自数据库的id的反向数据).我怎样才能实现这一目标?
我很欣赏一个基本的 Pedestal 示例,说明如何 (1) 设置在服务器重启后仍然存在的 cookie 和 (2) 使用基于 cookie 的会话;特别是如何获取和设置值。
我有点惊讶没有找到一个使用的例子ring.middleware.session/wrap-session
(源代码在这里:https : //github.com/ring-clojure/ring/blob/master/ring-core/src/ring/middleware/session.clj) .
根据这个使用 Ring 中间件的 Pedestal 示例代码,有两个关键的东西要添加到你的service.clj
. 首先,定义会话拦截器:
; aliases for namespace :require
[io.pedestal.http.ring-middlewares :as middlewares]
[ring.middleware.session.cookie :as cookie]
(definterceptor session-interceptor
(middlewares/session {:store (cookie/cookie-store)}))
Run Code Online (Sandbox Code Playgroud)
但是,示例代码有这个警告:
在此示例代码中,我们没有指定会话数据在发送回浏览器之前使用的加密密钥。这有两个后果,第一个是我们需要在整个服务中使用相同的拦截器实例,以便会话数据对所有路径都是可读和可写的。第二个后果是当服务器进程结束时会话数据将变得不可恢复。即使浏览器保留了 cookie,它也不是不可恢复的密文,会话拦截器会将其视为不存在。
如何克服上述限制?
其次,添加session-interceptor
到您的路线(以下是我的示例代码):
(defroutes routes
[[["/"
{:get [:root root/index]}
^:interceptors [session-interceptor
(body-params/body-params)
bootstrap/html-body]]]]
Run Code Online (Sandbox Code Playgroud)
我知道上面的设置步骤会导致 Ring 中间件向:session
请求映射添加一个键。所以获取很容易:(:session request)
. 但是我如何以及在哪里添加到会话中?一个例子将不胜感激。
是否有任何类似于Ruby的http://www.codeclimate.com或metric_fu的Clojure工具?自动代码审查以生成质量指标的东西.