首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

目前TRPC-Go有DDD的分层规范吗?

关于TRPC-Go的DDD分层规范,目前并没有官方的文档或规范来指导开发者如何进行分层。然而,在实际的软件开发过程中,开发者可以根据自己的需求和经验来设计合适的分层结构。

在软件开发中,采用DDD(领域驱动设计)的方法可以帮助开发者更好地理解业务需求,并将业务逻辑划分为不同的领域模型。在TRPC-Go中,可以将不同的领域模型划分为不同的包,并在每个包中实现相应的接口和逻辑。

具体来说,可以将领域模型划分为不同的包,例如:

  • domain:包含领域模型的定义和接口
  • infrastructure:包含基础设施层的实现,例如数据库、缓存等
  • application:包含应用层的实现,例如业务逻辑、事务处理等
  • interface:包含接口层的实现,例如API、RPC等

在实际的开发过程中,开发者可以根据自己的需求和经验来调整分层结构,以更好地满足业务需求。同时,也可以参考一些DDD的最佳实践和设计模式,例如:

  • 实体(Entity):具有唯一标识符和生命周期的对象,例如用户、订单等
  • 值对象(Value Object):表示某种特定属性或特征的对象,例如地址、电话号码等
  • 聚合(Aggregate):一组具有内聚性的实体和值对象,例如订单和订单项
  • 领域服务(Domain Service):用于封装领域逻辑的服务,例如计算折扣、生成订单号等
  • 仓储(Repository):用于管理领域模型的持久化存储,例如数据库、缓存等

总之,虽然TRPC-Go目前没有官方的DDD分层规范,但是开发者可以根据自己的需求和经验来设计合适的分层结构,以更好地满足业务需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

保姆级教程!Golang微服务简洁架构实战

导语 | 本文从简洁架构理论出发,依托trpc-go目录规范,简单阐述了整体代码架构如何划分,具体trpc-go服务代码实现细节,和落地步骤,并讨论了和DDD区别。...在后台服务场景下,以trpc-go目录规范可以抽象出一种金字塔结构架构: 这种结构优势体现在: 标准结构:层+模块 结构分层,每层之间划分模块。 数据流向固定,自上而下单一方向。...(二)目录规范 分层按数据流向分为接口层(网关层)、逻辑层,外部依赖层,划分方式和理解成本都不会很高,详细如下: gateway 接口实现地方,服务接口入口处,对应trpc-goservice。...五、总结 微服务代码架构一致性和实现规范一致性可以带来很多好处: (一)为什么不是DDD 其实之所以要提DDD,是因为这是个避不开问题,但答案其实已经DDD是把控中大型项目的杀手锏,但使用DDD...《tRPC-Go目录规范》 3.

2.8K41

【技术分享】Go 工程化-前端性能监控接入层 Layout 设计实践

但是随着这样“一把梭哈”方式生产出项目不断扩大,不断新成员加入你项目,这个时候少了设计理念、规范、约束项目就会变成杂乱、难以继续扩展,甚至不可维。...这里稍微简单看一下 DDD 一些相关概念,来看下面的图: 这里 DDD 架构图,绝对不是简单 MVC 偷换概念,他每一个分层里面都有精心设计一些非常好指导思想。...这在整洁架构(The Clean Architecture)上体现得淋漓尽致: 图片来源:https://sohu.com/a/157301348_468635 这种设计,在 trpc-go 目录规范上也有相关实践...我们重新回到 DDD 的话题上,既然业界上也有这么多 DDD 实践,怎么不可直接用呢? 实际上,DDD 规定了分层,告诉了我们怎么分层比较好,但是没有告诉我们怎么做。...在各大语言框架里面实现 DDD 分层,都是非常脆弱。实现 DDD 项目分层非常复杂,不是一个程序员能一上来就能写好,更别说一开始能根据概念分清楚自己代码应该写在哪里。

86920

存储单位_目前国产手机1t内存

大家好,又见面了,我是你们朋友全栈君。...1.bit(位)   一位二进制数,即 0 或 1   最小存储单位 2.B/Byte(字节)   8位   存储信息基本单位,一个字母一个字节,一个存储单位一个字节 int四个字节, 3.字   ...计算机进行数据处理时,一次存取、加工和传送数据长度称为字(word / W)   一个字通常由一个或多个字节(一般是字节整数倍)构成。   ...字长:计算机每个字所包含位数称为字长。一般我们说8位机、16位机、32位机、64位机指就是计算机字长。     ...YB(尧)——BB——NB——DB——CB——XB   依次以1024倍递增 5.java基本数据类型   byte——1个字节   boolean——1个字节   char——2个字节——java中编码是

1.4K20

亚马逊开店必要使用独立ip目前静态ip购买类似911s5软件

,要想购买独立静态ip卖家可以找到不错类似911s5软件?...一、亚马逊开店需要使用独立ip原因哪些?(独立ip)亚马逊作为全球最大电商平台之一,其销售模式严格监管和管理,因此亚马逊卖家需要严格遵守平台规定。...二、跨境运营使用独立静态ip哪些影响,必要进行静态ip购买?(静态ip购买)提高账户安全性:使用独立静态ip可以防止账户被其他人误认为是同一地址下多个账户。这有助于提高亚马逊账户安全性。...所以我们可以看到使用独立静态ip可以给跨境业务带来极大帮助,结合自己运营情况和业务需要是可以选择进行静态ip购买。三、类似911s5软件能够提供静态ip购买?...(类似911s5软件)911s5曾是出色代理服务商,其动态ip代理更为出色。如果您需要购买静态ip,可以考虑使用目前一些专业静态ip服务商。

79620

涉众给规范“数据精确度”,算设计约束

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>> 第五元素 2022-9-17 10:31 请问一个问题,“数据精确度”属于性能需求?还是业务规则、设计约束?...如果这个度量值是来自规范呢?比如,XX规范要求测量精度为0.5cm。算不算设计约束。 UMLChina潘加宇 应该是性能,是某个度量值。...业务规则是可以表示成表达式东西:a+b=c,a+b>c.... 设计约束是“不好”,带着镣铐跳舞。 电信大楼需求。性能:十级大火燃烧率<1%;设计约束:必须用某品牌泡沫塑料作为建筑材料。...第五元素 2022-9-17 18:34 如果这个度量值是来自规范呢?比如,XX规范要求测量精度为0.5cm。...UMLChina潘加宇 如果这样想,就会演变成“涉众提供素材中已存在内容”都会被归类为设计约束。

34720

腾讯 tRPC-Go 教学——(1)搭建服务

系列文章 腾讯 tRPC-Go 教学——(1)搭建服务 腾讯 tRPC-Go 教学——(2)trpc HTTP 能力 腾讯 tRPC-Go 教学——(3)微服务间调用 腾讯 tRPC-Go 教学——(4...)tRPC 组件生态和使用 腾讯 tRPC-Go 教学——(5)filter、context 和日志组件 腾讯 tRPC-Go 教学——(6)服务发现 腾讯 tRPC-Go 教学——(7)服务配置和指标上报...然后再来好好介绍 tRPC 好处。 本文件不打算将服务目录结构应怎么设计,这是各个团队内部按照自己风格需要去统一规范事情。...难道只能支持 URL query ?...下一篇:《手把手 tRPC-Go 教学——(2)trpc HTTP 能力》 推荐阅读 tRPC 官网 腾讯重复造轮子?我们真的需要这么多RPC框架

1.6K32

DDD领域驱动设计如何进行工程化落地

不过遗憾是,真正领域驱动设计在怎么规范工程结构上面实际也没有非常明确具体规范,因此我们需要根据自己实践经验以及思考和理解来进行划分设计。...,并不在业务范畴之内,可实际情况就是技术细节变化就会影响到业务层,因此这样状况明显是不合理。...为什么每一层都要有不同数据模型对象呢?不同分层在进行接口调用时候,每次都要进行模型对象转换,很多时候对象中参数还都是一样,这样做不是多此一举?...PO (Persistent Objec,持久化对象):实际上是我们在日常工作中最常见数据模型。但是在DDD规范里,PO应该仅仅作为数据库物理表格映射,不能参与到业务逻辑中。...总结 本文主要和大家聊了怎样进行DDD领域驱动设计落地,分析了为什么要进行领域分层以及为什么要实现依赖倒转领域分层结构,同时基于依赖倒转领域分层结构设计了可落地微服务工程结构。

55320

鹅厂火热开发框架:trpc-go设计理念介绍

作者:ronaldoliu,腾讯 IEG 后台开发工程师 trpc-go目前公司运用广泛一个开发框架,支持多协议扩展,能够一键集成各种公司现有平台功能,非常方便。那么它到底是怎么做到呢?...trpc-go目前公司里非常火热一个开发框架,集成了很多开箱即用功能,非常方便。trpc-go 代码量不算太多,但是写得还是有点绕,直接阅读可能会比较晕。...因此本文主要对 trpc-go 模块设计进行一个分享,帮助大家构建一个整体视图,后续需要再针对性去阅读各模块源码即可。...参考 wireshark 和 fiddler…… 但是你从实际应用想一个问题,真的客户端在一个连接中一会用协议 A 发送数据一会儿用协议 B ?显然对于业务逻辑来说,这是个伪需求!没人会这么干。...map这个定义

4K92

DDD究竟是个啥?怎么落地?

看到这里时,我心头是一脸不屑,这不就是我每天都在使用? 我们每天新建三层项目不是就老是出现domain目录,还有vo目录,还有service目录??这不就是这么点事情?!...总之,我要说是,你在构建软件时,请一定记住,先起名字,先起领域名字。这应该DDD第一步。没错,我说就是这么赤裸裸,起名字就是DDD第一步。 这就是大概我理解DDD。也是我目前能够想到。...总之,白猫黑猫,懂那一行的人就是你“领域专家”。 领域分层 这里分层主要是DDD历史。就是最早大师们提出来领域驱动设计这事,是一个更加抽象和底层概念。...正如上面领域分层一节中说那样。...通过这次整理学习,我明白了两件事情:DDD真简单,其实我们早就在使用了;DDD不简单,它是一门哲学,简单形而上学使用只是规范了你代码目录,但涉及到更高层面的逻辑抽象,则需要在具体代码构建中慢慢体悟

1.2K30

DDD分层

引起技术实现发生变化原因与引起领域逻辑发生变化原因显然不同,这就导致基础设施和领域逻辑问题会以不同速率发生变化 每一层都有各自职责,显然这也是符合SRP 如何分层 DDD标准形态 ?...本身是接口,repository实现类放在domain层,不要接口,这样满足DDD分层规则,但离DIP差了一步 2、在《DDD之熵》中提过 DDD引入repository放在了领域层,一是对应聚合根概念...分层规范,controller属于ui层,处理restful请求 接受请求 —— 由spring提供能力 请求格式校验及转换 —— 格式校验遵循java Validation规范 权限校验 —— 由网关处理...能划分到别的层?...repository pl client 总结 模块划分以及包结构还只是一家之言,一是充足理论体系支撑,不管按DDD标准,还是变形,更多地有理有据,与团队、也与自己达成一致;二是domain抽象

2.3K20

React语境下前端DDD长年探索经验

我们尝试探索在前端践行DDD可能性。DDD理念,可以帮助我们团队合理形成良好业务沟通规范和业务逻辑沉淀流程;DDD在技术方面的指导,帮助我们构建更加稳固业务系统。...这是很多开发普适性强大众类产品开发者们无法体会到。 前端语境下DDD价值主张 1)前端需要DDD? 这个问题可以细化为,前端需要与业务方领域专家进行沟通?...在设计系统或功能时,需要基于沟通结构领域模型展开完成模块搭建?我们需要在前端建模?我们需要在前端分层?等等。...基于DDD前端应用架构分层 分层也是DDD重要思想。...但是,在整体分层划分上,前后端具有一致性。 图14 遵循DDD前端应用分层示意图 我们以前前端应用开发也有分层思想。

63540

分层架构还好吗?

分层架构,不就是建文件夹艺术? 注:本文更适用于中大型项目,小项目开心就好了。因为时代原因,对部分词汇描述可能不是那么准确,欢迎指正。 当我们开始一个新项目,我们就开始创建一个个折文件夹。...这样一来,我们 domain 层便不依赖 应用分层DDD 与整洁架构 ? 所以,让我们来看个问题。...导致,你了一个巨大比 model 层。 所以,在 DDD 又或者是 Clean Architecture,我们重新命名了不同模式: 使用 Command / Request 作为输入参数。...分层架构重构 ? 所以,我们可以尝试这么去做架构重构 分析、诊断现有项目结构 划分新分层架构 功能测试 使用抽象解耦依赖 进行细粒度代码重构 重新划分领域服务 还有?...不要预先设计,而是定义原则与规范。 以简单设计开始,在生命周期中演进架构。 以多个 common 包,替代统一 common 包 TBC。 结论 ? 那么,我们怎么才能做好分层架构呢?

1.2K20

怎么说服领导,能让我用DDD架构?

因为没聊到重点呀,你MVC升级DDD;给业务带来了什么、提升了交付效率、降低了公司研发成本,都没有?不仅没有,你还说为了后期迭代维护,前期会需要更多设计和开发时间。咋?...但搞之前,要考虑清楚,DDD 不是 Silver Bullet,你一腔热血虽好,可是也得知晓 DDD 设计原则是什么、它更适合场景是什么、与 MVC 对比什么云泥之别。...二、开发成本 使用 DDD 模式开发代码成本到底在哪?是因为使用 DDD 四层分层结构就比MVC 三层分层结构 更浪费时间?...DDD DDD 分层结构也是面向对象编程本质:”一个对象拥有行为和数据“,在领域层包括了:对象、聚合对象、仓储和Service实现。...DDD 分层结构 DDD 分层结构更注重 Domain 领域层实现,由很薄应用层定义接口和编排接口,由领域层做具体实现。

55820

Keep电商供应链系统DDD实战复盘

文章作者:武清明,目前他在 Keep 负责商业化业务中台研发和规划工作,擅长电商业务系统架构设计,采用 DDD 合理简单化设计复杂电商系统,提升系统功能模块复用性和扩展性。...供应链系统相对于 Keep 电商业务发展明显滞后,甚至可能进一步阻碍 Keep 电商业务发展,而当时供应链系统因缺乏系统性规划、代码缺少规范,导致这个元老级系统积重难返。...当时面临主要问题如下: 系统边界不清晰 架构混乱,系统内部分层不清晰 越来越模糊 usecase,导致代码边界和事务不清晰; 分层后各层职责和接口职责不清晰,导致接口依赖混乱,甚至出现循环依赖。...冻结库存:因秒杀等促销活动或仓间调拨等预占库存数 梳理清楚之后,关于 DDD 架构选型也是要重点考虑内容: 梳理领域模型与非领域模型之间关系 - 六边形架构 保证核心领域模型稳定性 分层设计采用依赖倒置原则...目前在 Keep 负责商业化业务中台研发和规划工作。擅长电商业务系统架构设计,采用 DDD 合理简单化设计复杂电商系统,提升系统功能模块复用性和扩展性。

54920

一个电商供应链系统DDD实战

文章作者:武清明,目前他在 Keep 负责商业化业务中台研发和规划工作,擅长电商业务系统架构设计,采用 DDD 合理简单化设计复杂电商系统,提升系统功能模块复用性和扩展性。...供应链系统相对于 Keep 电商业务发展明显滞后,甚至可能进一步阻碍 Keep 电商业务发展,而当时供应链系统因缺乏系统性规划、代码缺少规范,导致这个元老级系统积重难返。...当时面临主要问题如下: 系统边界不清晰 架构混乱,系统内部分层不清晰 越来越模糊 usecase,导致代码边界和事务不清晰; 分层后各层职责和接口职责不清晰,导致接口依赖混乱,甚至出现循环依赖。...冻结库存:因秒杀等促销活动或仓间调拨等预占库存数 梳理清楚之后,关于 DDD 架构选型也是要重点考虑内容: 梳理领域模型与非领域模型之间关系 - 六边形架构 保证核心领域模型稳定性 分层设计采用依赖倒置原则...目前在 Keep 负责商业化业务中台研发和规划工作。擅长电商业务系统架构设计,采用 DDD 合理简单化设计复杂电商系统,提升系统功能模块复用性和扩展性。

69521

可落地DDD(5)-战术设计

即使用一个规范能够反映对象之间关系,即OO编程。...目前DDD研究主要有以下类别 关于业务分析层面,如何进行概念层面的抽象和设计方法论 关于服务划分、代码分层、职责定义方法论 DDD框架讨论,比如jdon 第3点基本上没怎么广泛讨论。...我认为未来也不会出现什么牛逼DDD框架能够流行起来。DDD是一种建模方法,是针对不同业务领域, 在不同团队不同落地方案,是没办法靠一种框架来约束,来把一件不统一事情来统一起来。...OO 编程 DDD代码分层、职责定义本质上就是OO编程。OO三大基本要素就是继承、多态、组合。这三个是深度抽象结果。没法指导具体编程。...那有了设计模式了,为什么还要DDD呢?为什么很少看到开源软件用DDD呢? 个人理解DDD还是面向企业应用架构,是在众多不确定业务,系统中提炼出来一套规范,这样必然是高度抽象

98930

一个电商供应链系统DDD实战

文章作者:武清明,目前他在 Keep 负责商业化业务中台研发和规划工作,擅长电商业务系统架构设计,采用 DDD 合理简单化设计复杂电商系统,提升系统功能模块复用性和扩展性。...供应链系统相对于 Keep 电商业务发展明显滞后,甚至可能进一步阻碍 Keep 电商业务发展,而当时供应链系统因缺乏系统性规划、代码缺少规范,导致这个元老级系统积重难返。...当时面临主要问题如下: 系统边界不清晰 架构混乱,系统内部分层不清晰 越来越模糊 usecase,导致代码边界和事务不清晰; 分层后各层职责和接口职责不清晰,导致接口依赖混乱,甚至出现循环依赖。...冻结库存:因秒杀等促销活动或仓间调拨等预占库存数 梳理清楚之后,关于 DDD 架构选型也是要重点考虑内容: 梳理领域模型与非领域模型之间关系 - 六边形架构 保证核心领域模型稳定性 分层设计采用依赖倒置原则...大部分同学关注 DDD 是因为微服务,没错,DDD 可以说是与微服务天生互补DDD 领域面向划分业务模型边界,微服务面向将单体架构拆分为多个微服务,至于如何拆微服务,DDD 领域拆分则是一个非常好微服务拆分方式

2.4K21

代码分层

看了一下seataexample springcloud-eureka-feign-mybatis-seata,看到一个自己项目中使用代码分层不合理地方,所以总结一下应用分层一些感想。...目前我们项目的代码分层结构是使用Controller>>Service>>Dao>>Mapper>>DB 数据访问方向,当然可能再会分一些package,再加上manager层,manager层参考阿里...我们问题在于Mapper层和DAO层代码一模一样,只是为了使用@Mapper这个注解?不管是叫 XXXDAO 还是 XXXMapper,都暗示了它们与数据库关系。...在 DDD 诞生之前,这些模式就已经存在了,《企业应用架构模式》中甚至还提出了很多可以替代模式。DDD 只是把这些模式进行组合,形成了一套以领域模型模式为基础最佳实践。...不要为了用而用DDD,不管代码分层是不是按DDD,最重要是领域模型方式编程。 代码分层,适合自己最佳实践才是最好,但是要多学习借鉴。

43810

【公开课】ABP CORE 框架入门视频教程《电话薄》基于 Asp.NET Core2.0 EF Core

ASP.NET Boilerplate 基于DDD经典分层架构思想,实现了众多DDD概念(但没有实现所有DDD概念)。...缘起 我目前使用ABP框架已经快3个年头了,大大小小项目也陆陆续续做了十来个。 但是还是很多人会习惯性问我: 角落,ABP框架怎样? 角落,ABP框架可以用于生产环境?...ABP可以做高并发、分布式项目? ABP谁做过真实案例啊,推荐? 巴拉巴拉巴拉巴拉。 针对以上情况,统一回答下:“不是ABP框架行不行,而是你行不行。”...污~ 课程内容 ABP模板项目的生成 ABP框架分层项目简介 实体信息创建 使用codefirst生成数据库 在Application层中实现Person有关方法(一)-MPA版本 在Application...-MPA版本 完成Person编辑功能和删除功能绑定-MPA版本 完成电话号码添加-MPA版本 电话薄入门教程-SPA版本开发 目前已经录制完毕了MPA版本,MPA版本也相对来说会比较简单一些。

1.6K40

tRPC初探,开源RPC框架新成员

插件化:框架在架构设计和具体实现上进行分层和模块化,各个核心模块可拔插,并能够独立演进可扩展:tRPC允许开发者根据自己需求进行定制和扩展,包括添加新传输协议、序列化机制等。...:git clone https://github.com/trpc-group/trpc-go,找到example目录下helloworld目录:按照文档我们可以先运行一下:server端cd trpc-go.../trpc_go.yamlclient端cd trpc-go\examples\helloworld\clientgo run main.go很明显我们发现tRPC服务端运行是需要配置文件,这个我们放在下面再讲...,接下来我们仿照helloworld程序手动了解下tRPC一个接口创建和调用过程:第一步:安装tRPC中对于protobuf文件编译工具go install trpc.group/trpc-go/...= nil {log.Error(err)}log.Info(rsp.Msg)}最后依次运行服务端和客户端代码就可以了与gRPC相比什么不同因为在使用tRPC之前,最熟悉还是gRPC,相比gRPC,

2.5K30
领券