go实战全家桶
文章平均质量分 76
以实战为主,全面讲解go微服务解决方案
leijmdas
技术培训 业务咨询 技术方案 java培训 go培训 设计培训 领域驱动设计 测试驱动开发 测试驱动学习 曾经华为员工 三十年从业经验 高级系统架构师
展开
-
第三代规则引擎开发指导说明书
第三代规则引擎开发指导说明书--通用引擎服务2024年3月20日 培训大纲规则引擎是通用域的动力驱动中心,目前规则引擎支持场景可以有,只要是通用的可以放在通用域,可以使用规则引擎实现: 规则配置: 规则引擎实现统一配置,配置应用范围依据主体 ,主体类型+Id;平台商户成员平台是通用的策略,商户自己配置,未配置找平台成员可以自己配置,未配置找商户,商户未配置找平台规则计算或者使用依据客体:客体类型+Id。Object_id实体记录idO原创 2024-06-03 12:01:07 · 746 阅读 · 0 评论 -
go docker安装步骤
ICHUB_TESTURL: #生产docker安装为空。# 通过EXPOSE对外暴露服务的端口号。# 通过下面的命令来运行可执行文件。sh prepare.sh文件。# 构建该项目的基础镜像。原创 2024-06-02 08:24:36 · 261 阅读 · 0 评论 -
Go实战全家桶之十:自研注册中心
"msg": "成功","msg": "成功","msg": "成功",原创 2024-06-01 17:39:12 · 861 阅读 · 0 评论 -
Go实战全家桶之九:自研统一网关
"name": "股东会","name": "董事会","msg": "成功",原创 2024-05-28 00:25:09 · 1094 阅读 · 0 评论 -
go语言规范
本篇主要描述了公司内部同事都必须遵守的一些开发规矩,如统一开发空间,既使用统一的开发工具来保证代码最后的格式的统一,开发中对文件和代码长度的控制,必须经过go语言自带的检测机制等。【规则3.10.3】导出的错误变量的命名,以Err开始,如ErrSomething,无需导出的错误变量命名,以Error作为后缀,如specificError。【建议3.11.14】 传入的参数是 map,slice,chan 不要传递指针,因为 map,slice,chan 是引用类型,不需要传递指针的指针。原创 2024-05-27 10:21:58 · 515 阅读 · 0 评论 -
graphql嵌套结构体
在Go语言中使用GraphQL,通常需要使用一些库来帮助定义GraphQL的Schema和处理查询。一个流行的库是`graphql-go`,它允许你定义GraphQL的类型和解析器。嵌套结构体在GraphQL中通常表示为嵌套的GraphQL对象类型。这个示例展示了如何定义一个包含嵌套结构体的GraphQL类型,并创建一个简单的查询来检索嵌套数据。// 定义一个GraphQL Schema。// 定义GraphQL的嵌套对象类型。// 定义GraphQL的用户对象类型。// 定义主结构体,包含嵌套结构体。原创 2024-05-25 12:05:00 · 297 阅读 · 0 评论 -
Go实战全家桶之八:统一ES服务接口之通用查询嵌套查询之封装与增删改API
"msg": "成功",原创 2024-05-24 07:32:43 · 1163 阅读 · 0 评论 -
go语言匿名结构体组合技巧
4. **匿名结构体作为函数参数或返回值**:可以将匿名结构体作为函数的参数或返回值,但要注意接收方需要知道如何正确处理这个匿名结构体。7. **可读性**:虽然匿名结构体可以减少代码量,但如果过度使用,可能会降低代码的可读性。2. **访问字段**:由于匿名结构体嵌入了其他结构体,所以可以直接通过匿名结构体访问嵌入结构体的字段。9. **接口实现**:匿名结构体可以隐式地实现嵌入结构体的接口,只要嵌入的结构体实现了该接口。1. **定义匿名结构体**:在需要的地方定义匿名结构体,并嵌入其他结构体。原创 2024-05-23 16:50:48 · 265 阅读 · 0 评论 -
go并发模式
12. **Context传递模式**:使用`context.Context`在goroutines之间传递请求范围的值,如取消信号、截止时间等。14. **非阻塞通道操作**:通过select语句实现非阻塞的通道操作,可以执行多个通道的接收或发送,并根据操作的成功与否进行相应的处理。6. **取消模式**:使用`context.Context`可以传递取消信号,及时终止goroutines的执行。1. **创建模式**:Go中可以通过`go`关键字轻松创建goroutines来执行并发任务。原创 2024-05-22 08:33:56 · 313 阅读 · 0 评论 -
深入理解go并发编程
1. **Go的并发模型**:Go语言的并发模型基于goroutines和channels。3. **同步原语**:Go的`sync`包提供了多种同步原语,如互斥锁(`Mutex`)、读写锁(`RWMutex`)、条件变量(`Cond`)、一次性执行器(`Once`)等,用于处理并发中的同步问题。5. **并发安全的数据结构**:Go提供了一些并发安全的数据结构,如并发安全的Map(`sync.Map`)和Pool(`sync.Pool`),它们在并发访问时不需要额外的同步措施。原创 2024-05-22 08:30:58 · 398 阅读 · 0 评论 -
go语言100个典型错误
内容侧重于Go语言的核心特性和标准库的使用,每个错误都配有具体的示例,说明在何种情况下容易犯这样的错误,适合熟悉Go语言基础的开发者阅读。如果你对Go语言感兴趣,或者正在寻找提高Go编程技能的资源,这本书可能是一个很好的选择。1. **错误管理**:书中讨论了错误处理中常见的问题,例如何时应该包装错误(#49)、错误类型的精确检查(#50)、错误值的精确检查(#51)等。4. **性能优化**:性能是软件开发中的一个重要方面,书中探讨了代码优化不足的问题,以及如何通过不同的技术来确保代码的准确性和性能。原创 2024-05-22 08:28:03 · 122 阅读 · 0 评论 -
gvm go语言版本切换管理工具
是的,GVM(Go Version Manager)是一个用于管理多个 Go 语言版本安装的工具。它允许用户在同一台机器上安装和切换不同版本的 Go 编译器和工具链,从而可以在同一环境中测试和运行不同版本的 Go 代码。请注意,GVM 是独立于 Go 官方版本管理的工具,它是社区驱动的项目。使用 GVM,开发者可以轻松地管理多个 Go 项目,每个项目都可以使用特定版本的 Go 语言进行编译和运行,这在进行多版本兼容性测试或升级旧项目时非常有用。- `gvm list`: 列出所有已安装的 Go 版本。原创 2024-05-20 15:58:55 · 135 阅读 · 0 评论 -
go graphql client
博客: [genqlient](https://blog.khanacademy.org/genqlient-a-truly-type-safe-go-graphql-client/)- 这是一个扩展了 `shurcooL/graphql` 特性的 fork,包括订阅客户端和命名操作等特性。- 它是一个真正类型安全的 Go GraphQL 客户端,可以自动验证查询与你的模式是否匹配。- 这是 Go 语言的一个官方 GraphQL 库,它提供了 GraphQL 服务端的实现。原创 2024-05-20 15:56:18 · 270 阅读 · 0 评论 -
go语言八宝箱
⬆ back to top原创 2024-05-13 09:49:30 · 289 阅读 · 1 评论 -
Go实战全家桶之二: GO依赖注入框架godi之八,godi生成测试套,先生成所有测试函数。
后面会生成每个函数的测试方法。// 指定一个文件生成。原创 2024-05-09 07:21:43 · 383 阅读 · 0 评论 -
Go实战全家桶之四: gomini迷你框架之协程并发框架, 工业级巨匠
/ fmt.Println("长时间运行的操作完成。// fmt.Println("操作超时,退出。"msg": "成功","msg": "成功","msg": "成功",原创 2024-04-27 12:10:10 · 1413 阅读 · 0 评论 -
gomini元数据之三: GOAST发现代码信息,是实现godi自动注入基础
Usage:Flags:"fmt","go/ast","os","reflect","strconv","strings"],"tag": "",},"tag": "",},"tag": "",},"tag": "",},"tag": "",},"tag": "",},"tag": "",},"tag": "",},"BasePkg","Rootdir","Config"原创 2024-05-08 14:22:33 · 725 阅读 · 0 评论 -
Go实战全家桶十章 :领域驱动设计、测试驱动学习,高级程序员与架构师必备。
Go实战全家桶之一:GoConfig 实现springboot相同的配置功能 go继承好别扭,组合实现继承可以吗?Go全家桶规划之二: GO依赖注入框架godi之一,实现BEAN工厂,创建单例或者多实例Go全家桶规划之二: GO依赖注入框架godi之二,实现BEAN工厂自动注册Go全家桶规划之二: GO依赖注入框架godi之三,实现BEAN注册容器、 半自动注册Go全家桶规划之二: GO依赖注入框架godi之四,实现BEAN工厂自动注册了, 通过AST获取所有GO文件的结构体信息Go全家桶规划之二:原创 2024-05-11 10:17:58 · 887 阅读 · 2 评论 -
Go实战全家桶之四: gomini迷你框架之集成gqlengine、rest秒变graphql
定gqlengine.IsGraphQLObject `gqlDesc:"my info"` // gqlDesc用于生成描述信息MyStringField string // 定义一个字段,gqlengine会根据golang的基本类型自动匹配到graphql类型MyIntField int `gqlRequired:"true"` // gqlRequired用于标记该字段是必备非空字段}定义return gr。原创 2024-05-20 13:05:15 · 1156 阅读 · 0 评论 -
Go实战全家桶之五:gonats完成nats消息应用层协议栈,同步消息Request/Response&异步消息Publish;10个channel队列,10个消费协程
/ ServerSync 是一个请求响应服务器结构体,继承了ReqRespBase和basedto.BaseEntitySingle。// 响应消息 msg.RespondMsg(m.To())// 创建一个Subscription来监听特定的Subject。// 创建一个Subscription来监听特定的Subject。// 这里可以添加选择逻辑,例如根据消息内容等。目前实现了同步,异步比较简单,后续实现!// 创建一个请求响应循环。// 创建一个请求响应循环。// 简单的轮询选择。原创 2024-05-01 10:26:20 · 1256 阅读 · 1 评论 -
Go实战全家桶之六:goweb微服务框架和工具,开发更高效
/ @Failure 400 {object} string "请求错误"// @Failure 500 {object} string "内部错误"// @Success 200 {object} webcommon.RuleData "成功"生成websample / config可移到上级目录。启动websample/server/main.go。"msg": "成功",创建或者打开一个新工程。原创 2024-05-10 00:39:23 · 737 阅读 · 0 评论 -
Go实战全家桶之七:gowebfactroy代码智能工厂
配置:app-wso2.yml。copy至db目录下。原创 2024-05-18 00:04:10 · 182 阅读 · 0 评论 -
Go实战全家桶之三:goshorturl链接微服务实现
/ @Failure 400 {object} string "请求错误"// @Failure 500 {object} string "内部错误"// @Success 200 {object} string "成功"// @Param shortCode path string true "短码"// @Tags 短链接服务。// @Description 根据服务。// @Summary 短长转换。原创 2024-04-27 00:22:14 · 359 阅读 · 0 评论 -
Go实战全家桶之一:goconfig 实现springboot配置功能
* 环境根文件: /config/app-env.yml。** 环境文件: /config/app-dev.yml。** 配置文件根目录:自动匹配 /config找到根目录。** 扩展配置项解析 ReadIchubStruct。加密 enc.exe enc xxxx。解密 enc.exe dec xxxx。配置环境变量:BasePath。** 支持不同配置文件。** 常用固定配置项。原创 2024-04-03 18:29:10 · 275 阅读 · 0 评论 -
Go实战全家桶之二: GO依赖注入框架godi之五,实现BEAN注册容器、 全自动注册
根据代码模板生成xxxx_init.go注册代码。原创 2024-04-20 00:02:00 · 704 阅读 · 3 评论 -
Go实战全家桶之二: GO依赖注入框架godi之四,实现BEAN工厂自动注册了, 通过AST获取所有GO文件的结构体信息
logrus.Error("失败", structType)case *ast.StarExpr: //指针方法。case *ast.Ident: //普通方法 //// 如果是文件,可以进行额外操作,比如读取文件内容。// 使用filepath.Walk遍历目录。// 返回nil继续遍历。// 指定需要遍历的目录。用例:工程下所有文件。原创 2024-04-19 07:14:31 · 1127 阅读 · 0 评论