小编mwa*_*wal的帖子

Laravel存储库

Laravel中存储库的优点是什么?它似乎是从应用程序的业务逻辑中抽象出Model层.虽然它实际上似乎只是使整个请求生命周期变得更加复杂,但收益微乎其微.

有人能否了解Laravel存储库的优势?


编辑

在使用存储库一段时间后,我将添加以下内容:

  • 存储库强制执行单一职责
  • 存储库应该只返回一个实体集合
  • 虽然与依赖注射分开但概念是兄弟
  • 实际存储实现的存储抽象(例如MySQL)
  • 更容易测试

php laravel laravel-4

19
推荐指数
1
解决办法
7733
查看次数

在heroku上开发node.js中的时钟和工作者

我正在开发一种服务,需要每五分钟为不同的用户分析来自社交媒体网络的数据.我正在node.js中开发它,我将在Heroku上实现它.

根据Heroku网站上的这篇文章,最好的方法是将调度程序的逻辑与工作者的逻辑分开.事实上,我们的想法是让一个dyno致力于安排任务以避免重复.这个dyno指示一个工人农场(根据需要n dynos)来完成任务.

这是这个架构的proc文件:

web:    node web.js
worker: node worker.js
clock:  node clock.js
Run Code Online (Sandbox Code Playgroud)

问题是如何在node.js中实现它.我用Google搜索,建议使用消息队列系统(如IronMQ,RabbitMQ或CloudAMQP).但我正在尝试设置我的代码和应用程​​序简单,并且需要附加组件.

问题是:有没有办法直接从我的调度程序(时钟)与工作人员dynos进行通信?

谢谢你的回答.

architecture scheduler heroku worker node.js

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

SVG 剪辑路径不起作用 - 同一页面上有多个 svgs

我在一页上有多个 svgs,并从 illustrator 中单独导出它们。我还通过 omgsvg 传递它们,这减少了文件大小。

然而,当我查看插入了所有单独 svgs 的完整页面(通过我的服务器端 html 渲染引擎)时,许多剪辑路径似乎不起作用。有的可以,有的不行,我不明白为什么。

Svgomg 提供了帮助,但并没有完全解决问题。有些路径仍然无法运行。

但是,当直接在 Chrome 或插图程序中一次加载一个单独的 svgs 时,所有剪辑路径都可以正常工作!它们只有在 html 页面中组合在一起时才会失败。

svg clip-path

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

从通用函数中删除一种方法

我已将以下方法添加到泛型函数中,speak但现在想在REPL中删除此特定方法,而不删除其余的泛型函数的方法。

(defmethod speak :around ((c courtier) string)           ; [1]
  (format t "Does the King believe that ~A?" string)
  (if (eql (read) 'yes)
      (if (next-method-p) (call-next-method))            ; [2]
      (format t "Indeed, it is a preposterous idea.~%"))
  'bow)

[1] The :around method replaces the primary method for the type.
[2] Then it decides whether to call the primary method or not.
Run Code Online (Sandbox Code Playgroud)

该函数的文档链接remove-method没有示例,我不知道引用:around上面实际方法的语法是什么。

(remove-method #'speak)
TOO FEW ARGUMENTS

(remove-method #'speak :around)
NO-APPLICABLE-METHOD

Run Code Online (Sandbox Code Playgroud)

common-lisp clos

5
推荐指数
1
解决办法
93
查看次数

使用vue.js时,我可以在内联svg中使用<style>吗?

我在html5页面上渲染svgs内联.为了方便起见,我希望在每个svgs中都有一个嵌套样式块,而不是使用表示属性或将所有内容移动到主样式表.

但是我现在也在使用vue.js,似乎存在冲突.

尝试此操作时,我在浏览器控制台中出现错误(svg最初出现,然后变黑),这似乎是来自Vue加载程序.

老实说,我并不清楚究竟发生了什么.如果有人想解释,将不胜感激!谢谢.

vue.js inline-svg

4
推荐指数
1
解决办法
2092
查看次数

Homebrew 查找不依赖任何其他已安装包的已安装包

以前,我已经用自制软件安装了一些东西,它们具有依赖项,当我删除软件包本身时,我省略了删除这些依赖项(自制软件当然不会自动为您执行此操作,这是有充分理由的)。

现在,为了稍微整理一下我的系统,我想确定所有其他安装的不需要的 brew 包,以便我可以手动确定我想要保留的那些与那些我很乐意保留的消除。

要手动执行此操作,我会brew list在输出的每个项目上执行此操作,brew uses --installed <name-of-package-from-brew-list>以检查每个包是否被任何其他已安装的包使用(然后,如果答案是否定的,如果我是对于最初安装它的原因感到好奇,我也可以这样做brew uses <name-of-installed-package>,这可能会向我表明我过去使用的软件包,但后来卸载后实际安装了它)

这都是非常手动的,我想知道 xargs 是否可以提供帮助。

我尝试使用它不起作用:

brew list | xargs brew uses --installed > test.txt

我根本没有从该命令中得到任何输出,一个空白文件(但该命令需要几秒钟才能运行)。

我有什么不对的地方xargs

homebrew xargs

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

宏与函数

宏的早期步骤,并寻求澄清。

(defmacro nil! (x)      
  (list 'setf x nil))
Run Code Online (Sandbox Code Playgroud)

保罗·格雷厄姆(Paul Graham)在ANSI CL的p169上写道

nil!ntimes并且while都必须编写为宏,因为它们都必须控制对其参数进行求值的方式。

我看了一下nil!,想了一下,我想尝试将其作为函数编写。事实证明他是对的,正如预期的那样,但希望找出原因。如果我做

(defun nil!f (x)
  (setf x nil))

(setf a 9)
(nil!f a)
; a is still 9, not nil
Run Code Online (Sandbox Code Playgroud)

强迫自己这样做之后,我注意到这是函数的一种奇怪用法,因为通常我不会使用setf参数。如果要setf使用函数,则很有可能是全局变量,而不是参数。

如果我正确,该参数将x创建一个新的词法作用域,这将掩盖a我在顶层设置的词法作用域。意味着我们可以将值传递给函数,但不能传递给变量。

而使用宏,我们可以处理变量。

当然可以

(defun nil!f-a ()
  (setf a nil))
Run Code Online (Sandbox Code Playgroud)

但是现在我们失去了将变量传递给此特定函数的功能,因此它是原始版本的残缺版本。

因此,宏允许您在此处执行的确切操作是...?

第二个问题,这是一个真实的陈述吗

“在CL中,您不能将变量传递给函数”

我在这里屈服...

lisp macros common-lisp

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

Lisp Webtales 第 5 章 - 如何让它工作

继我的解决方案使第 4 章中的代码像这里一样工作之后,我需要一些帮助来调试lisp webtales 的第 5 章中的应用程序“linkdemo” 。

我已经仔细地输入了所有代码并消除了书中包含的一个错字。

CCL如果我发出(ql:quickload "linkdemo")我得到这个:

CCL is free software.  It is distributed under the terms of the Apache
Licence, Version 2.0.
? (ql:quickload "linkdemo")
To load "linkdemo":
  Load 1 ASDF system:
    linkdemo
; Loading "linkdemo"
.
;;; Checking for wide character support... yes, using code points.
;;; Checking for wide character support... yes, using code points.
;;; Building Closure with CHARACTER RUNES
.
> Error: The …
Run Code Online (Sandbox Code Playgroud)

web-frameworks common-lisp

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

在clojure中将地图列表“展平”为单个地图?

我想从这个由 jdbc 查询返回的地图列表中:

'({:series_id 1 :expires_at "t1"} {:series_id 2 :expires_at "t2"})
Run Code Online (Sandbox Code Playgroud)

到单个地图,如:

{1 "t1" 2 "t2"}
Run Code Online (Sandbox Code Playgroud)

这样我就可以expires_at简单地使用series_id整数来查找了。

我已经到了:

db.core=> (mapcat #((comp vals select-keys) %1 [:series_id :expires_at]) 
                  '({:series_id 1, :expires_at "t1"} {:series_id 2 :expires_at "t2"}))
(1 "t1" 2 "t2")
Run Code Online (Sandbox Code Playgroud)

但那是一个清单,而不是一张地图。

我想知道这是否是 reduce 的候选者,和/或是否还有其他一些巧妙的方法可以做到这一点。

clojure

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

Laravel 5 中中间件和服务提供者的区别?

服务提供者在引导期间向应用程序容器添加服务,而中间件...?

php laravel laravel-5

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