小编Den*_*nov的帖子

Preg匹配空字符串

如何preg_match为null(空)字符串?

我需要这样的东西:

/([0-9]|[NULL STRING])/
Run Code Online (Sandbox Code Playgroud)

regex preg-match

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

bundle vs npm方法或为什么bundle/gem全局安装?

我对全局依赖的Bundle/Gem方法感到困惑.我认为全球依赖已成为过去.我向您介绍两种处理依赖关系的方法,NPM vs Bundle/Gem.

NPM

让我展示一下NPM的力量.假设您有一个具有以下文件夹结构的应用:

/app
  /admin
     package.json
  /front-end
     package.json
Run Code Online (Sandbox Code Playgroud)

您可以在我的应用程序中看到我有两个其他迷你应用程序.每个都有自己的package.json.

说两者都有q要求,但版本不同.npm install在这两个文件夹中运行将为node_modules每个迷你应用程序安装适当的版本.一切都很好地隔离,并且运作良好.

包/宝石

捆绑方式略有不同.您Gemfile用来指定依赖项.运行后bundle install,宝石将被放入系统范围的位置.这意味着,如果我的应用程序需要在其迷你应用程序中使用不同版本的gem,那么它将无法工作.

解决对我来说没有意义的事情:

  • 我知道有一个bundle install --deployment,但它仅用于生产中的部署.我的代码应该如何在开发中工作?

  • 此外,我知道您可以选择在代码中要求特定版本的gem,但这样可以方便地Gemfile使用特定版本.因为你已经拥有,所以在生产环境中也没有任何意义bundle install --deployment.

我百分百肯定我在这里遗漏了一些非常微不足道的东西.请指出我正确的方向.

gem bundle rubygems npm

9
推荐指数
1
解决办法
3374
查看次数

DDD:什么进入域和什么应用程序?

我发现很难决定某些东西应该是域名还是应用程序的一部分.

通过这个答案阅读有助于很多概念,如授权,但我仍然发现自己正在努力与其他事情.

为了说明我的困惑,请考虑发表评论的案例.以下是在发布评论之前需要执行的操作.我在括号中指出我认为这个功能应该去哪里.

  • 确保允许用户角色/状态对此帖子发表评论(授权,转到应用程序)
  • 确保我们正在评论的帖子存在并发布(域名)
  • 确保用户在最后一分钟没有发布超过5条评论(限制,直觉说它转到应用程序)
  • 确保注释不是空字符串(域)
  • 确保评论没有脏话(域?)
  • 确保评论在此帖子中没有来自同一用户的重复项(域名?)
  • 格式化评论(应用程序)
  • 从评论中删除当前用户不允许的某些HTML标记(应用程序)
  • 检查垃圾评论(应用程序?)

我无法确定检查垃圾评论是否是域关注或应用程序,同样适用于限制.从我的观点来看,这些问题对我来说都很重要,必须存在.但同样适用于授权,我们知道它不应该在域中.

如果我在域服务和应用程序服务之间拆分这些问题,那么我觉得我的域名没有完全执行,实际上依赖于应用程序进行事先检查.在这种情况下,重点是什么,为什么我不应该在应用程序中全部完成以减少混淆?

我目前的设置是这样的:

Controller -> App.CommentingService.Comment() -> Domain.CommentingService.Comment()

如果有人可以通过所有必需的步骤来创建注释并将其分配到正确的层,从而给出一些推理,那将会很有帮助.

domain-driven-design domain-model cqrs

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

如何匹配MongoDB中的多个子文档?

假设我的书籍集中有以下数据:

[
    {
        name: "Animal Farm",
        readers: [
            {
                name: "Johny"
            },
            {
                name: "Lisa"
            }
        ],
        likes: [
            {
                name: "Johny"
            }
        ]
    },

    {
        name: "1984",
        readers: [
            {
                name: "Fred"
            },
            {
                name: "Johny"
            },
            {
                name: "Johny",
                type: "bot"
            }
        ],
        likes: [
            {
                name: "Fred"
            }
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

如何检索所有与"Johny"匹配的读者和喜欢,最终结果如下:

[
    {
        name: "Animal Farm",
        readers: [
            {
                name: "Johny"
            }
        ],
        likes: [
            {
                name: "Johny"
            }
        ]
    },

    {
        name: "1984",
        readers: [ …
Run Code Online (Sandbox Code Playgroud)

mongodb

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

DDD:项目计数是否属于域模型?

假设您正在为论坛建模,并且您正在尽力使用DDD和CQRS(只是单独的阅读模型部分).你有:

Category {
    int id;
    string name;
}

Post {
    int id;
    int categoryId;
    string content;
}
Run Code Online (Sandbox Code Playgroud)

每次创建新帖子时PostCreated都会引发域事件.

现在,我们的观点想要预测每个类别的帖子数量.我的域名不关心计数.我想我有两个选择:

  1. PostCreated在读取模型侧监听,并使用类似的方法递增计数CategoryQueryHandler.incrimentCount(categoryId).
  2. PostCreated在域边监听并使用类似的东西增加计数CategoryRepo.incrimentCount(categoryId).

同样的问题适用于所有其他计数,例如用户的帖子数量,帖子中的评论数量等.如果我不在除了我的观点之外的任何地方使用这些计数,我应该让我的查询处理程序负责持久化吗?

最后,如果我的某个域服务想要计算类别中的帖子数量,我是否必须将count属性实现到类别域模型上,或者该服务只需使用读取模型查询来获取该计数或者存储库查询如CategoryRepo.getPostCount(categoryId).

domain-driven-design repository cqrs

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

如何在摊牌中将单行符视为 <br> ?

如何使用摊牌来进行 GitHub 风格的换行处理?

我尝试过一个扩展,它可以执行以下操作:

return text.replace(/[ ]*\n/g, "<br />\n")
Run Code Online (Sandbox Code Playgroud)

它在某些情况下有效,但会破坏列表等。

markdown showdown

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