当前位置:  开发笔记 > 编程语言 > 正文

Node.js应用程序中的域驱动设计

如何解决《Node.js应用程序中的域驱动设计》经验,为你挑选了1个好方法。

TL; DR; 我正在寻找DDD node.js应用程序的一些例子.


嗨,

我要创建节点应用程序.我想知道我找不到任何在域中分离业务逻辑的应用程序示例.

好的,有一些例子:https: //github.com/adrai/node-cqrs-domain - 但这是整个CQRS与事件采购实现.

我的想法是那样做:

//domain/book.js
function Book(title, author)
{
  this._title = title;
  this._author = author;
}

// domain methods ...

//infrastructure/persistance/repository/book-repository.js
function BookRepository()
{}

BookRepository.prototype.save(book)
{
  var bookModel = mappers.mapToOrm(book);
  return bookModel.save();
}

// [...] get, getAll, getNextId

//infrastructure/persistance/orm/book.js
//using http://bookshelfjs.org/
var Book = bookshelf.Model.extend({
  tableName: 'books'
});

//infrastructure/mappers/book-mapper.js
function mapToOrm(book) {
  //mapping [...]
  return new persistance.Book();
}

function mapToDomain(domain) {
  //mapping [...]
  return new domain.Book();
}

但另一方面,我从未见过任何类似的解决方案(使用域模型,orm模型,存储库和映射器).我是以正确的方式思考的吗?也许没有理由在node.js应用程序中分离域中的业务逻辑.如果是这样,为什么?如果没有,你能给我一个DDD实现的例子或改进我的代码吗?

[2017年1月13日]

我在TypeScript中创建了示例应用程序.目前没有存储库,没有太多服务.欢迎提出问题和拉取请求. https://github.com/dawiddominiak/ddd-typescript-bin-packing-problem-solution



1> Wahid Bitar..:

我是Node.js世界的新手。

但是我相信,如果您将TypeScript与Node结合使用可以强制使用大多数DDD原理。

在node.js中“同时具有优势”的问题没有像我们在C#或Java这样的OOP语言中所具有的限制那样多。JavaScript的这种自由和“混乱” 使得很难创建健壮的复杂DomainModel和业务逻辑


不用TypeScript就能很好地构建DDD。说一种语言是“凌乱的”,而DDD很难用它来表达,这是由于对该语言缺乏了解。
推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有