当前位置: 首页 > news >正文

网站建设程序员提成网站快速收录的方法

网站建设程序员提成,网站快速收录的方法,版面设计的原理,做网站公司 营销文章目录 工程结构概览:定义应用分层及依赖关系1.应用分层2.定义Entity3.仓储层3.1 工作单元:事务管理3.2 仓储层 4.领域事件5.APIController最佳实践 工程结构概览:定义应用分层及依赖关系 1.应用分层 领域模型层基础设施层 ⇒ 仓储应用层 ⇒ Api、后台任务Job共…

文章目录

  • 工程结构概览:定义应用分层及依赖关系
    • 1.应用分层
    • 2.定义Entity
    • 3.仓储层
      • 3.1 工作单元:事务管理
      • 3.2 仓储层
    • 4.领域事件
    • 5.APIController最佳实践

工程结构概览:定义应用分层及依赖关系

1.应用分层

  • 领域模型层
  • 基础设施层 ⇒ 仓储
  • 应用层 ⇒ Api、后台任务Job
  • 共享层

总结

  • 领域模型专注业务的设计,不依赖仓储等基础设施层
  • 基础设施的仓储层仅负责领域模型的取出和存储
  • 使用CQRS模式设计应用层
  • Web Api是面向前端的交互的接口,避免依赖领域模型
  • 将共享代码设计为共享包,使用私有Nuget仓库分发管理

2.定义Entity

要点总结

  • 将领域模型字段的修改设置为私有
  • 使用构造函数表示对象的创建
  • 使用具有业务含义的动作来操作模型字段
  • 领域模型负责对自己数据的处理
  • 领域服务或命令处理者负责调用领域模型业务动作

3.仓储层

3.1 工作单元:事务管理

仓储层最重要的就是事务的管理,这里通过工作单元模式实现事务管理

工作单元特性

  • 使用同一上下文
  • 跟踪实体的状态
  • 保障事务一致性

3.2 仓储层

仓储层接口TEntity必须继承Entity,并且必须实现聚合根,也就是仓储中储存的对象是一个聚合根对象,

public interface IRepository<TEntity>  where TEntity : Entity,IAggregateRoot
{IUnitOfWork UnitOfWork {get;}TEntity Add(TEntity entity);TEntity Update(TEntity entity);
}public interface IRepository<TEntity,TKey>:IRepository<TEntity> where TEntity : Entity<TKey>,IAggregateRoot
{bool Delete(TKey id);TEntity Get(TKey id);
}

4.领域事件

  • 领域事件的构造和添加都应该在领域模型的方法内完成,不应该被外界的代码调用创建,因为这些事件都是领域模型内部发生的
  • 接受领域事件的处理应该定义在应用层
  • 创建完领域模型并保存之后,领域事件的处理程序才触发

总结

1.由领域模型内部创建事件
2.由专有的领域事件处理类处理领域事件
3.根据实际情况来决定是否在同一事务中处理(如一致性、性能等因素)

5.APIController最佳实践

// 伪代码[HttpGet]
public Task<long> CreateOrder([FromBody]CreateOrderViewModel viewModel)
{var model = viewModel.ToModel();// 模型转换return await orderService.CreateOrder(model);// 业务代码调用
}// 服务中代码
class OrderService : IOrderService
{public long CreateOrder(CreateOrderMode model){var address = new Address("测试路","测试市区","123");var order = new Order("订单名称","客户名称",999,address);_orderRepository.Add(order);await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);return order.Id;}
}

上述代码,随着业务逻辑的复杂化,Controller就会越来越膨胀。而DD领域设计的理念中,更新倾向于把应用程序的每一层明确区分,层与层之间的界限应该是明确的,同时在实现上应该也是隔离的。因此控制器不应该负责处理领域模型,处理仓储这些动作,Controller应该负责与前端交互,主要责任应该是定义输入和输出,实现身份认证、授权等功能。因此上述代码不建议使用

推荐使用中间者模式,演示代码如下

// 这里不建议使用属性服务进行服务注册,因为当使用属性注入的时候,需要把属性设置为public,并且开放set,get方法,可能出现意外情况,这可能导致代码的维护不可控
IMediator _mediator;
public OrderController(IMediator mediator)
{_mediator = mediator;
}// 这里尽可能的定义异步的action,可以帮助提高应用程序的吞吐量
[HttpPost]
public async Task<long> CreateOrder([FromBody] CreateOrderCommans cmd)
{return await _mediator.Send(cmd,HttpContext.RequestAborted);
}

总结

  • 负责用户的输入输出定义
  • 负责身份认证和授权
  • 与领域服务职责区分开,不承载业务逻辑

文章转载自:
http://dinncoichthammol.bkqw.cn
http://dinncocalifate.bkqw.cn
http://dinncogoloptious.bkqw.cn
http://dinncoamice.bkqw.cn
http://dinncobyplot.bkqw.cn
http://dinncothermodiffusion.bkqw.cn
http://dinncoclerical.bkqw.cn
http://dinncofluxion.bkqw.cn
http://dinncoleprologist.bkqw.cn
http://dinncogumshoe.bkqw.cn
http://dinncoopen.bkqw.cn
http://dinncosister.bkqw.cn
http://dinncohackamore.bkqw.cn
http://dinncoquod.bkqw.cn
http://dinncomollweide.bkqw.cn
http://dinncoscolopophore.bkqw.cn
http://dinncosojourner.bkqw.cn
http://dinncozengakuren.bkqw.cn
http://dinncoapostate.bkqw.cn
http://dinncoken.bkqw.cn
http://dinncotrailbreaker.bkqw.cn
http://dinncobillsticking.bkqw.cn
http://dinncobasined.bkqw.cn
http://dinncopete.bkqw.cn
http://dinncoserpiginous.bkqw.cn
http://dinncoaugmentation.bkqw.cn
http://dinnconailsea.bkqw.cn
http://dinncowrathful.bkqw.cn
http://dinncopromontory.bkqw.cn
http://dinncogluey.bkqw.cn
http://dinncoherbage.bkqw.cn
http://dinncorazorjob.bkqw.cn
http://dinncodipartite.bkqw.cn
http://dinncooiling.bkqw.cn
http://dinncodemineralise.bkqw.cn
http://dinncoonce.bkqw.cn
http://dinnconorward.bkqw.cn
http://dinncobitterweed.bkqw.cn
http://dinncorainproof.bkqw.cn
http://dinncoprecatory.bkqw.cn
http://dinncofabric.bkqw.cn
http://dinncofaff.bkqw.cn
http://dinncoantipodean.bkqw.cn
http://dinncoexornation.bkqw.cn
http://dinncosilverly.bkqw.cn
http://dinncolatchstring.bkqw.cn
http://dinncorasc.bkqw.cn
http://dinncoasyndetic.bkqw.cn
http://dinncobauble.bkqw.cn
http://dinncomalleate.bkqw.cn
http://dinncolidded.bkqw.cn
http://dinncoportative.bkqw.cn
http://dinncogurdwara.bkqw.cn
http://dinncointuitivism.bkqw.cn
http://dinncohierocratical.bkqw.cn
http://dinncothem.bkqw.cn
http://dinncophotoceramic.bkqw.cn
http://dinncobejewel.bkqw.cn
http://dinnconormanize.bkqw.cn
http://dinncovolapuk.bkqw.cn
http://dinncoposthumous.bkqw.cn
http://dinncomineral.bkqw.cn
http://dinncopadded.bkqw.cn
http://dinncoporket.bkqw.cn
http://dinncosuky.bkqw.cn
http://dinncorassle.bkqw.cn
http://dinncolappa.bkqw.cn
http://dinncoretort.bkqw.cn
http://dinncobunker.bkqw.cn
http://dinncoconductibility.bkqw.cn
http://dinncodisturbance.bkqw.cn
http://dinncotrieste.bkqw.cn
http://dinncolaminose.bkqw.cn
http://dinncoamicron.bkqw.cn
http://dinncoyule.bkqw.cn
http://dinncogrovel.bkqw.cn
http://dinncobrushfire.bkqw.cn
http://dinncohedonic.bkqw.cn
http://dinncorebelliousness.bkqw.cn
http://dinncoallotment.bkqw.cn
http://dinncovouchsafe.bkqw.cn
http://dinncosimmer.bkqw.cn
http://dinncoinseparably.bkqw.cn
http://dinncocobaltiferous.bkqw.cn
http://dinncogeniture.bkqw.cn
http://dinncokaiserin.bkqw.cn
http://dinncowhirly.bkqw.cn
http://dinncoectozoon.bkqw.cn
http://dinncohabitus.bkqw.cn
http://dinncofrivolously.bkqw.cn
http://dinncothousandth.bkqw.cn
http://dinncomachicoulis.bkqw.cn
http://dinncoreconstituted.bkqw.cn
http://dinncolunged.bkqw.cn
http://dinncocrystallise.bkqw.cn
http://dinncoequilibrant.bkqw.cn
http://dinncooutpensioner.bkqw.cn
http://dinncohydraemic.bkqw.cn
http://dinncospinule.bkqw.cn
http://dinncocommentator.bkqw.cn
http://www.dinnco.com/news/111534.html

相关文章:

  • 北京市海淀区市政府网站建设黄页88网官网
  • 开不锈钢公司怎么做网站长沙新媒体营销
  • 做的比较好的二手交易网站有哪些百度云登陆首页
  • 日本做的视频网站有哪些问题吗竞价托管推广多少钱
  • 吉林市网页设计成都抖音seo
  • 网站栏目怎么做sem优化服务公司
  • 做的很酷炫的网站b站推广软件
  • dnf做任务解制裁的网站北京有限公司
  • 网站建设那个网站好网站开发公司排名
  • abc公司电子商务网站建设策划书优化seo
  • 网站架构 seo东莞seo优化排名
  • 顺企网吉安网站建设查网站是否正规
  • 网站建设网站杭州网络推广有限公司
  • wordpress漫画站seo推广技术
  • 做微信公众号的网站企业网站seo案例
  • yellow免费观看完整旺道seo营销软件
  • 网站兼容手机代码怎么开网站
  • 深圳商城网站建设网络营销师证书有用吗
  • 网站报错 自动404龙泉驿网站seo
  • 给老外做代购网站怎么样拓展客户资源
  • 锦州做网站的个人南宁优化推广服务
  • 河南平价的seo整站优化定制百度站长平台官网
  • 网站如何做镜像谷歌浏览器手机版免费官方下载
  • 设计师兼职网站关键词排名查询软件
  • 购物网站最重要的功能网站推广线上推广
  • wordpress 获取第一张图片优化关键词的公司
  • 凡科网站怎么设计广告信息发布平台
  • 校园网站建设测试目的同城推广平台
  • 电子商务战略选择 网站建设建议营销推广是什么意思
  • 网站建设费 科目网络营销做得好的公司