项目介绍

midway_ddd_learn_shopping项目是个人学习搭建的一个TypeScript项目,项目框架选择使用阿里的Midway,使用的数据库是MongoDB,使用的ORM框架是mongoose,采用的架构设计:DDD(领域驱动设计)+CQRS(查询命令职责分离)+EDA(事件驱动设计),后面还会考虑是否加入ES(事件溯源)

为什么选择Midway

Midwayjs是一个用TypeScript开发的Nodejs框架,如果不出意外,应该是后面几年比较主流的Nodejs框架之一。相比较另一个Nodejs框架—Nestjs,Midwayjs可能不太成熟,但框架作者是来自淘宝架构团队,都是国人,在交流上会比较方便,有什么问题可以直接到Midway的github上面直接提issue,很快就能得到回复。
而且从技术选择方面来讲, Midway.js —-|> Egg.js —-|> Koa.js比Nest.js —-|> Express.js,Koa是Express原班人马打造的,肯定是有它的优越性,而且学习坡度也不会太高。

为什么不使用Typeorm,而使用Mongoose

原因是Typeorm对MongoDB的支持不太友好,很多地方要自己手写代码,也不支持事务。而Mongoose提供了一些比较方便快捷的方法提供开发者进行数据模型建立、关联查询、事务处理等。如果是选择使用mysql这样的关系型数据库,则可以考虑使用Typeorm。

需要具备以下知识技能

Typescript

TypeScript菜鸟教程
TypeScript中文网

Midway

Midway官网

Mongoose

Mongoose官网(建议看英文原版,中文版有缺漏)

项目地址

github