![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
文章平均质量分 75
leijmdas
技术培训 业务咨询 技术方案 java培训 go培训 设计培训 领域驱动设计 测试驱动开发 测试驱动学习 曾经华为员工 三十年从业经验 高级系统架构师
展开
-
跨域NATS消息对接通用解决方案
每个领域要处理来自其它领域的消息 server, 要处理两大类消息:同步异步。每个领域client有两个topic:同步异步,消息源。实际rpc主要的应用场景是领域内部的对接。NATS消息类型:同步、异步。原创 2024-08-23 17:49:08 · 455 阅读 · 0 评论 -
gowebcode代码工厂支持视图生成代码
"metadata_alias": "访问密钥","metadata_memo": "访问密钥","msg": "成功",原创 2024-08-18 12:59:57 · 1072 阅读 · 0 评论 -
go elasticsearch聚合统计
请确保将 http://localhost:9200 替换为你的 Elasticsearch 服务地址,将 your_index 替换为你的索引名,将 price 替换为你想要聚合的字段名。elastic.SetURL("http://localhost:9200"), // 替换为你的 Elasticsearch 服务地址。aggs.Avg("avg_price", "price") // 计算价格的平均值。.Aggregation("stats", aggs) // 添加聚合。原创 2024-08-18 07:58:52 · 276 阅读 · 0 评论 -
gowebfactroy-v4生成泛型接口的通用代码
"specialty": "电子工程","name": "中山之郎","address": "陕西。"msg": "成功",原创 2024-08-17 07:39:20 · 837 阅读 · 0 评论 -
go-micro rpcserver
micro.RegisterInterval(time.Second * 30), //设置间隔多久再次注册服务。micro.RegisterTTL(time.Second * 90), //设置注册服务的过期时间。@Author 作者: leijianming@163.com 时间(2024-02-18 22:38:21)@Update 作者: leijianming@163.com 时间(2024-02-18 22:38:21)logrus.Info("领域驱动设计,测试驱动开发!原创 2024-08-16 23:48:22 · 630 阅读 · 0 评论 -
go1.20泛型和接口实现通用DAO类并封装service类
comment:'部门id'" json:"dept_id,string"`comment:'创建时间'" json:"create_time"`comment:'部门名称'" json:"dept_name"`comment:'创建者'" json:"create_by"`comment:'更新者'" json:"update_by"`comment:'更新时间'" json:"-"`comment:'负责人'" json:"leader"`comment:'联系电话'" json:"phone"`原创 2024-08-14 23:03:04 · 1265 阅读 · 0 评论 -
go字符串模板
import (模板分析函数if err!= nil {panic(err)if err!= nil {panic(err)测试用例var s = `结果。原创 2024-08-14 14:02:48 · 97 阅读 · 0 评论 -
关于ES实体的良好定义
定义两个结体体SysDept、Employee,然后SysDeptEmployee/* 部门id */comment:'部门id'" json:"dept_id,string"`/* 父部门id */comment:'父部门id';/* 祖级列表 */comment:'祖级列表'" json:"ancestors"`.../* 员工编号 */comment:'员工编号'" json:"id"`/* 所属部门 */comment:'所属部门';原创 2024-08-13 08:55:41 · 847 阅读 · 0 评论 -
go语言代码优化--DB数据字典处理,支持多种数据库
mysql. postgres, cockroachtype DbClientDto struct { IchubClientDto Dbtype string `json:"dbtype"` Dbname string `json:"dbname"` Host string `json:"host"` Port string `json:"port"` Username string `json:"username"` Password原创 2024-08-10 17:20:11 · 524 阅读 · 0 评论 -
go 通过泛型实现通用的增删改查
Author 作者: leijianming@163.com 时间: 2024-06-29 08:24:24。@Update 作者: leijianming@163.com 时间: 2024-06-29 08:24:24。@date 时间 : 2024-06-29 08:24:24。@date 时间 : 2024-06-29 08:24:24。@date 时间: 2024-06-29 08:24:24。"name": "万强""name": "杨旭"原创 2024-08-08 14:25:31 · 1610 阅读 · 0 评论 -
小程序框架开发技术选型
即使不跨端,Uni-app也是不错的小程序开发框架,它使用vue语法进行开发,学习门槛低,相关的插件丰富、社区生态繁荣,使用者众多。综上比较,如果您只开发微信小程序,不考虑多端运行,那么选择【原生语言】会是不错的选择,因为有官方背书,其社区生态和框架迭代不会有太大问题,并且语法类似vue2,学习成本不高,打包编译后的文件也非常简洁。5. 多样的开发框架:微信小程序提供了专门的开发框架,也可以使用其他流行的第三方开发框架,开发者可以使用这些框架快速的开发功能丰富、性能优越的小程序。原创 2024-08-06 12:45:29 · 961 阅读 · 0 评论 -
go elasticsearch聚合统计个数
var err = errors.New("找不到" + field)// 统计一个field分组的个数。原创 2024-08-04 08:31:55 · 671 阅读 · 0 评论 -
go micro web.newservice和micro.newservice有什么不同
简而言之, web.newservice 更适合于 Web 应用和服务,而 micro.newservice 提供了更多的灵活性,允许开发者根据需要选择不同的通信协议。在 Go-Micro 中, web.newservice 和 micro.newservice 是两个不同的函数,它们的主要区别在于它们创建服务的方式和使用的场景。这个函数通常用于创建一个基于 Web 的服务,也就是说,它更适合于那些需要通过 HTTP 或者 WebSocket 等 Web 协议来提供服务的场景。原创 2024-08-03 12:02:14 · 136 阅读 · 0 评论 -
goredis配置文件与使用
在这些示例中,我们使用 redis.NewFailoverOptions 和 redis.NewClusterOptions 来分别配置哨兵模式和集群模式的连接参数。SentinelAddrs: []string{":26379", ":26380", ":26381"}, // 哨兵节点的地址列表。Addrs: []string{":7000", ":7001", ":7002"}, // 集群节点的地址列表。MasterName: "mymaster", // 指定主节点的名称。原创 2024-08-02 19:29:43 · 489 阅读 · 0 评论 -
WEB框架一键生成神器:WEBClient&SERVER
运行模式(debug:调试,test:测试,release:正式)Server/service目录创建一个目录如website。进入server目录执行swagini.bat生成。创建一个接口文件,一个接口一个struct。代表使用ichub-dev.yml配置。testUrl通过etcd注册中心查询。环境切换只要改etcd,本服务server 配置。--本服务CLIENT配置。// 每个测试运行前,会执行。本服务swagger配置。router目录下总注册。Docker 容器配置。原创 2024-08-01 17:42:16 · 976 阅读 · 0 评论 -
go对接mqtt
例如,你可以添加多个订阅主题、发布不同的消息或者处理更复杂的MQTT功能,如遗嘱消息、保留消息等。记得在使用时替换示例代码中的服务器地址、端口、主题等参数为你自己的MQTT服务器信息。在Go语言中对接MQTT服务,你可以使用 paho.mqtt.golang 这个库,这是一个Eclipse Paho MQTT客户端的Go语言实现。// ... 省略其他代码 ...// ... 省略其他代码 ...// ... 省略其他代码 ...// ... 省略其他代码 ...原创 2024-07-25 12:27:48 · 573 阅读 · 0 评论 -
goframe gchan使用
gchan 是 GoFrame 中的一个组件,用于提供并发安全的通道(channel)操作。msg, err := gchan.Pop(time.Second * 2) // 接收消息,设置超时时间。3. 非缓冲通道:也可以创建非缓冲通道,这种通道中的消息必须立即被读取,否则发送消息的操作会被阻塞。gchan := gchan.New(10) // 创建一个容量为10的缓冲通道。2. 缓冲通道:可以创建缓冲通道,允许在通道中存储一定数量的消息,直到被读取。gchan.Close() // 关闭通道。原创 2024-07-21 14:49:45 · 273 阅读 · 0 评论 -
goframe gredis使用
2. 使用 g.Redis 单例:GoFrame 推荐使用 g.Redis 单例方式来操作 Redis。8. 自动序列化/反序列化:当给定的参数为 map , slice , struct 时, gredis 内部支持自动使用 json 序列化,并且读取数据时可以使用 gvar.Var 的转换功能实现反序列化。GoFrame 的 gredis 模块是一个用于操作 Redis 的客户端,底层采用了连接池设计,方便开发者进行 Redis 数据库的操作。原创 2024-07-21 11:25:34 · 372 阅读 · 0 评论 -
goframe配置gcfg、gredis、gsession
默认当前目录下config/config.yaml。# 单实例配置示例1。原创 2024-07-21 10:15:18 · 1145 阅读 · 0 评论 -
go如何通过reflect判断一个结构体包括一个成员或者成员包含一个成员
funcfor i := 0;i++ {funcfuncfor i := 0;i++ {true。原创 2024-07-19 09:10:53 · 531 阅读 · 0 评论 -
goframe http客户端
具体的使用方法和 API 可能会随着框架的更新而有所变化,因此建议查看 GoFrame 的官方文档或源代码以获取最新的信息。GoFrame 的 HTTP 客户端默认使用连接池来管理HTTP连接。GoFrame 的 HTTP 客户端是一个用于发起 HTTP 请求的工具,它提供了一套简单易用的 API 来帮助开发者进行网络通信。8. HTTP/2:如果服务器支持 HTTP/2,连接池可以利用多路复用的特性,进一步提高效率。6. 自定义连接池:如果需要,开发者可以自定义连接池的行为,例如实现自己的连接复用逻辑。原创 2024-07-17 08:17:34 · 608 阅读 · 0 评论 -
goframe util字符串处理
fmt.Println(result) // 输出: [Hello World]fmt.Println(result) // 输出: Hello GoFrame。fmt.Println(result) // 输出: Hello World。fmt.Println(lower) // 输出: hello world。fmt.Println(upper) // 输出: HELLO WORLD。fmt.Println(result) // 输出: Hello World。原创 2024-07-17 08:12:01 · 332 阅读 · 0 评论 -
go mod vendor
8. 避免 vendor 目录: 如果你不想使用 vendor 目录,可以在项目的根目录下创建一个空的 vendor 文件(不是目录),这样 Go 就不会尝试查找或创建 vendor 目录。5. 提交 vendor 目录: 将 vendor 目录添加到版本控制系统(如 Git)中,这样其他开发者克隆项目时,可以直接使用 vendor 目录中的依赖,而不需要单独安装。2. 添加依赖到 vendor: 使用 go mod vendor 命令将依赖添加到 vendor 目录。原创 2024-07-17 08:06:52 · 241 阅读 · 0 评论 -
goframe之util
请注意,以上列举的功能仅为一般框架中 util 模块可能包含的功能,并不代表 GoFrame 的 util 模块一定包含所有这些功能。GoFrame 的 util 模块是 GoFrame 框架中提供的一个工具模块,它包含了许多实用的功能,以帮助开发者在项目开发中提高效率。1. 字符串处理:提供字符串操作的工具函数,如格式化、去空格、大小写转换等。12. 反射工具:提供反射操作的工具函数,如类型断言、结构体标签解析等。3. 日期和时间:提供日期和时间的解析、格式化、计算差值等工具函数。原创 2024-07-16 16:31:28 · 225 阅读 · 0 评论 -
goframe之gmap
GoFrame 的 `gmap` 是一个为 Go 语言提供的并发安全的 map 容器模块,它包含多种数据结构的 map 容器,如 `HashMap`、`TreeMap` 和 `ListMap`。例如,在某些场景下,`gmap` 的 `Set` 和 `Get` 操作在基准测试中表现出更低的延迟和更少的内存分配。5. **丰富接口**:`gmap` 提供了丰富的接口,如 `Set`、`Get`、`Remove`、`Contains`、`Size`、`Keys`、`Values` 等,以及批量操作和迭代器功能。原创 2024-04-30 08:10:53 · 154 阅读 · 0 评论 -
goframe之gconv和json类型转换之性能比较
1. 使用断言而非反射: gconv 在进行类型转换时,尽量使用类型断言,而避免使用反射(除了在处理结构体到 map 的转换时使用反射)。3. 避免序列化和反序列化开销:与 json 等模块不同, gconv 直接进行内存中的类型转换,避免了序列化和反序列化过程中的字符串处理开销。2. 优化的代码路径: gconv 模块在设计时,针对常见的数据类型转换进行了代码优化,减少了不必要的类型检查和转换步骤。5. 并发安全性: gconv 在设计时考虑了并发场景,确保在高并发环境下也能保持高性能。原创 2024-07-16 08:20:54 · 219 阅读 · 0 评论 -
goframe之gconv支持类型转换
4. Map 转换:可以将 map、struct 或 *struct 类型的变量转换为 map[string]interface{} 类型,如果变量不是这些类型之一,则转换失败并返回 nil。转换 struct 时,可以使用特定的标签来指定最优先的标签,如果没有指定,则按照 gconv 、 json 、字段名称的顺序检测标签。3. 时间类型转换: gconv 支持将变量转换为 time.Time 对象,如果变量是可解析的日期字符串,可以使用 Time 函数进行转换。原创 2024-07-16 08:13:09 · 506 阅读 · 0 评论 -
goweb制作docker如何提速
在linux环境下。原创 2024-07-13 09:11:33 · 774 阅读 · 0 评论 -
go elasticsearch 客户端连接池配置
请注意, go-elasticsearch 客户端默认使用的 HTTP 客户端已经包含了一个合理的连接池配置,所以通常你不需要手动进行这些配置,除非你有特殊的性能需求或者需要调整连接池的行为。2. 配置连接池参数:在 http.Transport 中设置连接池相关的参数,比如 MaxIdleConns (最大空闲连接数)、 MaxIdleConnsPerHost (每个主机的最大空闲连接数)和 IdleConnTimeout (空闲连接超时时间)等。// 创建一个自定义的 HTTP 客户端。原创 2024-07-11 08:14:56 · 353 阅读 · 0 评论 -
go resty如何配置连接池、工具注册码
在使用 go-resty 库时,设置连接池主要涉及到对 http.Transport 的配置, go-resty 通过 SetTransport 方法允许用户自定义 http.Transport 的属性来实现连接池的功能。通过这种方式,你可以根据自己的需求调整连接池的行为,提高 HTTP 客户端的性能和稳定性。ResponseHeaderTimeout: 20 * time.Second, // 等待响应头的超时时间为 20 秒。这个设置会影响连接池中的连接在获取响应头时的超时行为。原创 2024-07-11 08:07:43 · 174 阅读 · 0 评论 -
Go实战全家桶之一:goconfig 依赖注入实现单例、泛型实现简单工厂模式、工业级巨匠
/ 以下是依赖注入的示例// 注入的对象可以是单例、绑定、新建、无注入//auto 通过LoadBean()方法注入//bind 通过BindUp()方法注入//new 通过New()方法注入//none 不注入//single 单例;注入的对象为简单NEWId int。原创 2024-08-02 19:47:43 · 1968 阅读 · 2 评论 -
go有哪些缓存
选择哪种缓存方式取决于你的具体需求,例如缓存的大小、访问模式、并发需求、是否需要持久化、是否需要分布式支持等。虽然 Redis 是一个独立的缓存系统,但可以通过 Go 的 Redis 客户端库(如 go-redis )来在 Go 应用中使用。虽然 Caffeine 是 Java 中的缓存库,但你可以通过网络调用或服务的方式在 Go 应用中使用。由 Google 开发,用于缓存单值结果的库,支持多种缓存方式,如内存、文件、Redis 等。一个流行的第三方库,提供了一个简单易用的接口来实现缓存。原创 2024-07-07 13:38:03 · 174 阅读 · 0 评论 -
Go实战全家桶之四: gomini迷你框架之集成性能统计功能
通过channel通道,消费者投放数据,服务者统计。启动 goinstall.bat。原创 2024-07-09 10:24:59 · 792 阅读 · 0 评论 -
goweb实战全家桶:gowebfactroy-v3 模板模式通过接口实现
IniDir `json:"-"` //接口。原创 2024-07-07 11:05:46 · 1078 阅读 · 0 评论 -
goweb实战全家桶:gowebfactroy-v3 代码命令行工具--提效神器, 一键生成
comment:'环境'" json:"name"`/* 环境 */原创 2024-07-05 13:10:39 · 822 阅读 · 0 评论 -
短链接-前端实现重定向
短链服务通常是指将一个较长的URL缩短为一个较短的URL,以便于分享或嵌入到有限的空间内。一旦获取到原始URL,前端可以使用JavaScript进行页面跳转,例如使用 window.location.href = '原始URL';在你的服务器上创建一个重定向页面,这个页面的作用是接收短链标识符,查询数据库找到对应的原始URL。确保短链服务的安全性,防止恶意使用,比如禁止生成指向恶意网站的短链,或者对生成的短链进行验证。将原始URL和生成的短链标识符存储在数据库或其他存储系统中,以便于后续查找和重定向。原创 2024-06-30 12:46:57 · 406 阅读 · 0 评论 -
go语言策略模式
策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以互换使用,算法的变化不会影响到使用算法的客户。策略模式主要用于算法的切换,让算法的变化独立于使用算法的客户端。客户端代码创建了两种支付策略的实例,并使用它们创建了 PaymentContext 对象,然后调用 Pay 方法执行支付。在 Go 语言中实现策略模式,通常会定义一个策略接口,然后为每种算法实现该接口。// 执行支付,使用策略模式。// 实现具体的支付策略。原创 2024-06-30 13:44:06 · 452 阅读 · 0 评论 -
go对接WSO2接口查询app、生成 apikey
/ 根据名称查询app获取uuid。"msg": "成功","msg": "成功",// 此登录信息待调接口解决。// 生成apikey。原创 2024-06-18 18:41:51 · 732 阅读 · 0 评论 -
go openapi
通过将OpenAPI规范文件嵌入到Go代码中,gin-swagger可以自动生成在线文档,并提供测试API的功能。swag是一个Go语言的代码生成器,它可以从Go代码中的注释生成Swagger (OpenAPI 2.0) 文档。go-openapi是另一个Go社区的项目,它提供了一套用于处理OpenAPI规范的工具集。Apifox是一个国产的一站式API开发工具,它支持API设计、开发、测试等功能,并且提供了图形化界面,使得开发者可以更加方便地使用OpenAPI规范。原创 2024-04-12 20:43:43 · 563 阅读 · 0 评论 -
Go实战全家桶之九:自研统一网关
"name": "股东会","name": "董事会","msg": "成功",原创 2024-05-28 00:25:09 · 1123 阅读 · 0 评论