小编use*_*980的帖子

DDD:我真的需要加载聚合中的所有对象吗?(表现问题)

在DDD中,存储库加载整个聚合 - 我们要么加载所有聚合,要么加载所有聚合.这也意味着应该避免延迟加载.

我关心的是表现方面.如果这会导致数千个对象加载到内存中会怎样?例如,一个聚合Customer回来了一万Orders.

在这种情况下,这是否意味着我需要重新设计并重新考虑我的聚合?DDD是否就此问题提出建议?

domain-driven-design

22
推荐指数
2
解决办法
4251
查看次数

从Elasticsearch中的别名中删除索引

我们如何从别名中删除索引?也就是说,我不再需要将索引与别名相关联.

我的第二个问题是 - 可以在没有任何索引的情况下存在别名吗?

elasticsearch

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

如何从Angular 2中的指令追加动态DOM元素?

我有一个附加元素的Angular 1.x指令.简而言之:

app.directive('mydirective', function() {
  template: '<ng-transclude></ng-transclude>',
  link: function(el) {
    var child = angular.element("<div/>");
    el.append(child);
  }
Run Code Online (Sandbox Code Playgroud)

我可以将此指令迁移到Angular 2,如下所示:

@Directive({
  selector: '[mydirective']
})
export class MyDirective implements OnInit {
  constructor(private elementRef: ElementRef) { }

  ngOnit() {
    var child = angular.element("<div/>");
    this.elementRef.nativeElement.append(child);
  }
}
Run Code Online (Sandbox Code Playgroud)

令我不安的是nativeElement官方文件中的这句话:

当需要直接访问DOM时,使用此API作为最后一个资源.

我的问题是 - 我怎样才能将此指令正确地迁移到Angular 2?我唯一的要求是动态构建一个元素,并使用该指令将其附加到元素.

angular2-directives angular

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

使用内存数据库进行测试.单元测试或集成测试?

概念unit testintegration test定义明确:前者测试一个组件,后者测试多个组件.

Effort用来测试我的Entity Framework存储库.Effort是一个内存数据库实现,因此我们不会访问实际的数据库而只访问内存,因此速度更快.

我只是通过创建一些假数据并使用这些假数据填充内存数据库来测试我的存储库.我不是在嘲笑数据上下文.这些应该被视为单元测试还是集成测试?

编辑:我正在测试我的存储库的方法 - 例如CustomerRepository.GetAllCustomers.我正在使用(比如说)5个客户填充这个内存数据库,调用该方法,并断言我让这5个客户回来了.

unit-testing

8
推荐指数
2
解决办法
2643
查看次数

使用 APP_INITIALIZER 时如何使用 forRoot 导入模块?

我有一个模块负责通过服务查询我的 API,我计划在许多应用程序中使用该模块。反过来,应用程序负责在方法中将配置(例如 API URL)传递给此模块forRoot

export class APIModule {
  static forRoot(appConfig: AppConfig): ModuleWithProviders {
    return {
      ngModule: APIModule,
      providers: [
        services.ProductService,
        services.UserService,
        { provide: AppConfigToken, useValue: appConfig}
      ]
    };
  }
}
Run Code Online (Sandbox Code Playgroud)

我面临一个挑战,因为应用程序(即客户端模块)通过利用 .json 文件从 JSON 文件中获取配置APP_INITIALIZER。这是简化的定义:

@NgModule({
  imports: [
    APIModule.forRoot({ apiUrl: '' }) // ISSUE HERE
  ],
  providers: [{
    provide: APP_INITIALIZER,
    multi: true,
    deps: [AppConfigService],
    useFactory: (appConfigService: AppConfigService) => {
      return () => {
        return appConfigService.getAppConfig();
      }
    }
  }],
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

我的问题是:我怎么能调用APIModule.forRoot …

angular

7
推荐指数
0
解决办法
506
查看次数

什么是node.exe文件?

我正在学习Node.jsWindows环境.到目前为止,我一直在使用Node.js command prompt快捷方式来运行命令.

但Windows安装程序还会创建一个名为Node.js"C:\ Program Files \nodejs \node.exe" 的快捷方式,我不确定它的用途.

我该如何使用该程序?

node.js

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

如何从Visual Studio Online运行Entity Framework的migrate.exe?

我已经使用Visual Studio Online构建定义为我的项目设置了持续集成.

在部署我的数据库(到Azure测试环境)时,我只SQL Server Database Project使用正确的发布设置构建我的数据库.

但我想切换到Entity Framework代码第一种方法并利用迁移功能,这需要我调用migrate.exe.

我的问题是 - 如何从VSO构建定义中运行migrate.exe ?

entity-framework azure-devops

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

更改单元测试中的环境设置(Angular)

在处理 中的设置时,我可以想到两种方法Angular

  1. InjectionToken 根据文档使用 DI 设置。
  2. 环境文件,我在其中设置了每个环境(dev、qa、prod),我导入了通用的“环境”文件,并使用设置环境的标志进行编译。

在单元测试时,我习惯于 #1:我只是创建适合我的单元测试的设置并注入它们。

但是如果我选择#2,我怎么能改变设置呢?说我需要模拟一个设置。我可以在运行单元测试时添加环境标志吗?

angular

6
推荐指数
0
解决办法
2784
查看次数

发布.NET Core API服务时如何使用SatelliteResourceLanguages过滤资源文件

发布 .NET Core API 服务时,输出包括本地化资源(cs、de、es、fr 等)

在寻找防止 .NET Core 发布这些本地化资源文件的解决方案时,我在 Github上遇到了这个提交以实现SatelliteResourceLanguages该目的。

但是我该如何实施呢?

.net-core asp.net-core

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

SignalR 在 DDD 架构中属于什么位置?

我有一个 DDD 应用程序,我试图了解 SignalR 在我的层中的位置:

1. Presentation (Angular)
2. Distributed Services (Web API)
3. Application
4. Domain
5. Data
Run Code Online (Sandbox Code Playgroud)

基本上,当有新数据时,我的 SignalR 集线器会通知客户端(Angular Web 应用程序)。为此,我在后台线程中运行后台服务,该服务每隔一段时间检查数据库并在有新数据时通知客户端。

我倾向于这样思考:

  1. SignalR 集线器属于该Presentation层。鉴于我的演示项目纯粹是客户端(Angular),我将在 Presentation 下添加一个新项目,仅用于集线器。
  2. 每隔一段时间检查数据库的后台服务似乎适合该Application层。我会INotify用一个Notify方法注入一个接口,我会用 SignalR 来实现。

这是否符合 DDD 原则?

domain-driven-design signalr

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