BestQA: 基于DDD思想与ENode框架的开源问答系统
开源软件名称:BestQA
开源软件地址:https://gitee.com/yubaolee/BestQA
开源软件介绍:
####系统工程简介: ####系统工程结构: ######Server - BestQA.MessageQueue: 系统消息队列中心
- BestQA.CommandSubscribe: 为系统命令的订阅处理程序
- BestQA.EventSubscribe: 为领域事件订阅处理程序
######Other - BestQA.Commands: 包含所有的命令(即CQRS框架中的Command)及命令处理CommandHandler
- BestQA.Domain: 核心领域层(内部包括领域事件的定义)
- BestQA.EventHandler: 领域事件处理
- BestQA.Metedata: 通用数据结构定义
- BestQA.QueryService: 系统查询接口,即CQRS中的Query
- BestQA.RegisterExtension: 系统中所有命令编码的定义
- BestQA.Repository: 系统数据存储处理,采用EF方式
- BestQA.UnitTest: 系统单元测试
- BestQA.Web: 基于MVC的用户操作界面,前端采用angularjs
- Lee.Infrastructure: 公共类库,与平台无关
####启动顺序: - 创建数据库:BestQA,并使用InitTables.sql进行初始化;
######依次运行: - BestQA.MessageQueue.exe
- BestQA.CommandSubscribe.exe
- BestQA.EventSubscribe.exe
- BestQA.Web(注意修改连接字符串)
######单元测试: - 只运行行BestQA.UnitTest即可,无需任何其它程序
####典型的业务处理流程: 发布一个新问题: - 用户通过WEB发送CreateNewQuestionCmd
- BestQA.MessageQueue收到命令
- BestQA.CommandSubscribe收到通知,调用BestQA.Commands中的CommandHandler处理,最终通过调用BestQA.Domain处理,然后发送QuestionCreatedEvent
- BestQA.MessageQueue收到领域事件
- BestQA.EventSubscribe收到事件通知,调用BestQA.EventHandler中的EventHandler处理,并通过BestQA.Repository把结果写入数据库
|
请发表评论