- 博客(1050)
- 资源 (6)
- 收藏
- 关注

原创 go如何测试rpc?
"description": "推广人","description": "参谋","description": "编辑","description": "编辑","lead_time": "1天","lead_time": "1天","batch": "2025 年","lead_time": "1天","lead_time": "1天","batch": "2025年","batch": "2025年","origin": "中 国","origin": "中 国",
2025-05-08 10:40:28
69

原创 Go实战全家桶之71:goDb通用查询结果比对--源于实战项目
if err!= nil {if!if err!= nil {return errcontinue} else {return errreturn nil。
2025-04-29 10:13:38
919

原创 Go实战全家桶之70:goElastic通用查询结果比对--源于实战项目
ret.CheckRecordSuite(this.Suite, "dept_id=100", "phone=15888888888|leader=若依")ret.CheckRecordSuite(this.Suite, "dept_id=100", "phone=15888888888|leader=若依")*** CheckRecord leader=若依 OK ****** CheckRecord leader=若依 OK ***
2025-04-29 09:04:14
824

原创 Go实战全家桶之69:go极简代码工具--源于实战项目
"dept_name": "深圳总公司","dept_name": "若依科技","leader": "若依","leader": "若依","msg": "成功",
2025-04-28 22:55:48
472

原创 Go实战全家桶之68:go语言如何开发代码级业务api组件
limiter := rate.NewLimiter(rate.Limit(10), 100) // 10r/s,突发100。访问 `http://localhost:8080/swagger/index.html` 查看 API 文档。├── api/ API 定义(Protobuf/JSON Schema)文档生成 swaggo/swag 自动生成 Swagger/OpenAPI 文档。中间件 Go 标准库 `net/http` 实现鉴权、日志、限流等。
2025-04-28 19:28:17
922

原创 Go实战全家桶之67:goweb提供一个http测试工具--源于实战项目 https://gitee.com/leijmdas/goweb.git
Author 作者: [email protected] 时间(2024-02-18 22:38:21)@Update 作者: [email protected] 时间(2024-02-18 22:38:21)golog.Info("Suite setup", "领域驱动设计,测试驱动开发!@Title 文件名称: asuite_test.go。// 用于 'go test' 的入口。// 依赖 suite.Suite。"msg": "成功",// 每个测试运行前,会执行。
2025-04-27 11:48:21
515

原创 Go实战全家桶之64: go使用redis加锁--源于实战项目
fmt.Printf("[initRedis] 初始化普通模式Redis,检测连接Ping... %s", pong)必须匹配requirepass服务器配置选项中指定的。value string // 唯一标识,一般使用uuid。// 连接到服务器之后,选择的数据库(编号)// host:port地址。// TryLock 加锁重试五次。// Redis 获取redis。// redis 锁。
2025-04-25 14:15:39
872
1

原创 Go实战全家桶之63:goweb通用es查询cache--源于实践项目
import (qdc.Init()return qdcreturn qq。
2025-04-24 17:17:41
328

原创 Go实战全家桶之60:gin路由与权限的改造--源于实践项目
"(*HubComboController).HubComboPublishByIds-fm": {"H", "manage", "combo", "publish"}, // 套餐-发布。"(*HubIncentiveController).HubIncentivePublishByIds-fm": {"H", "encourage", "incentive", "publish"}, //激励-发布。
2025-04-17 17:56:29
1267

原创 Go实战全家桶之55:gowater工程docker制作--源于实战项目
ICHUB_TESTURL: #生产docker安装为空。ENV SWAGGER_TITLE="管理服务-WebServer"# 通过EXPOSE对外暴露服务的端口号。# 通过下面的命令来运行可执行文件。
2025-04-06 12:50:38
971

原创 Go实战全家桶之53: go-family系大全--源于实战项目
web框架: webclient/ webserver。gowater: 基础功能三剑客。gomini: mini代码库。goconfig:公用配置系。goplatform:平台。godi :依赖注入。
2025-04-04 09:49:24
511

原创 Go实战全家桶之15: GO依赖注入框架godi、BEAN工厂接口不生成代码、工业级巨匠开发者神器--源于实践项目--源于实践项目
/ 使用reflect.TypeOf获取接口的动态类型。// 使用reflect.TypeOf获取接口的动态类型。// 取指针指向的类型。// 取指针指向的类型。// 检查是否是指针类型。// 检查是否是指针类型。原来需要生成注入代码。
2024-10-07 07:16:13
1624
原创 go pprof在服务器上怎么部署
• `list <function>`:查看指定函数的详细内存分配信息,包括函数的源代码和内存分配情况。通过以上步骤,可以有效地使用`pprof`判断 Go 程序是否存在内存泄露,并定位和修复内存泄露问题。• `web`:生成内存分配的图形化视图,通常是一个火焰图,可以更直观地看到内存分配的调用栈。• `top`:显示内存消耗最多的函数,列出当前内存占用最多的函数列表,按内存占用大小排序。• `heap`:查看内存分配的堆视图,以图形化的方式展示内存分配情况。
2025-05-06 11:47:16
377
原创 goframe struct 2 map
struct转换为map可以通过反射实现,也可以使用 GoFrame 提供的工具函数(如gref.ToMapmap转换为struct同样可以通过反射实现,也可以结合 GoFrame 的功能来简化操作。在实际开发中,根据具体需求选择合适的方式进行转换。希望这些内容对你有帮助!
2025-04-29 02:31:59
265
原创 go后端开发5大通用组件
default:-1"`11. git.ichub.com/general/lo集合操作组件--已使用:Map、Filter、Reduce、ForEach;@Author 作者: [email protected] 时间(2025-04-19 09:04:44)@Update 作者: [email protected] 时间(2025-04-19 09:04:44)
2025-04-28 23:10:58
975
原创 go语言如何开发业务组件
├── api/ 对外接口定义(Protobuf/JSON Schema)关键在于合理分层、控制复杂度,并始终关注可维护性。│ │ ├── handler.go HTTP/gRPC 请求处理。├── component/ 核心业务逻辑。│ │ ├── service.go 业务逻辑实现。│ │ ├── repository.go 数据访问层。│ ├── order/ 订单组件。
2025-04-28 19:16:16
517
原创 Go实战全家桶之66:gowater/esserver通用ES查询cache--源于实战项目 https://gitee.com/leijmdas/gowater.git
/ @Success 200 {object} page.PageResult "成功"// @Failure 400 {object} string "请求错误"// @Failure 500 {object} string "内部错误"@Update 作者: [email protected] 时间(2024-04-18 22:38:21)
2025-04-26 19:31:02
578
原创 github.com/go-co-op/gocron使用介绍
4. Cron 表达式:使用 `s.Every().Minute().At("*/5")` 等语法,或直接解析标准 cron 表达式。3. 优雅停止:使用 `s.Stop()` 停止调度器,`s.StartAsync()` 需配合 `Wait()` 或信号监听。s.Every().Weekday().At("9:00").Do(task) // 同 Monday-Friday。fmt.Println("Job2 执行:", time.Now().Format("15:04:05"))更多高级用法可参考。
2025-04-26 00:24:30
407
原创 github.com/go-co-op/gocron按天执行启动后没有立即执行
在中,当设置按天执行的定时任务时,默认情况下任务不会在调度器启动时立即执行,而是会等待到下一个预定的时间点。
2025-04-25 23:55:14
345
原创 go github.com/morrisxyang/xreflect给某个字段赋值编辑复制
是一个基于 Go 语言反射的库,用于操作结构体字段的值。
2025-04-24 14:09:30
203
原创 go代码通用写法
1. 需要确保fieldSelector返回值的类型与targetValue类型兼容。如果需要完全类型安全的版本,可以使用代码生成工具为每个需要查询的字段生成特定实现。3. Reflect包的使用会带来轻微性能损耗,必要时可改用代码生成方案。2. 通过`fieldSelector`函数参数实现字段选择的灵活性。2. QueryAll2Cache方法需要返回对应泛型类型的数据集合。1. 使用泛型类型参数`T any`支持不同数据类型。4. 保持原有业务逻辑的同时提高代码复用性。// 查询店铺ID对应的记录。
2025-04-24 07:30:06
520
原创 Go实战全家桶之62:go小数据全缓存
/ 默认过期时间10s;清理间隔30s,即每30s钟会自动清理过期的键值对。// 默认过期时间10s;清理间隔30s,即每30s钟会自动清理过期的键值对。
2025-04-23 10:12:55
1351
原创 go需要面向对象吗
Go 语言(Golang)并不强制要求面向对象编程(OOP),但它提供了一些机制(如结构体、接口和组合)来实现类似 OOP 的部分特性。- 接口(Interface):定义行为契约,支持多态(隐式实现,无需显式声明)。- 没有类继承:Go 通过组合(而非继承)实现代码复用,避免类层次结构的复杂性。- 结构体(Struct):类似类的数据容器,可以绑定方法(Method)。- 组合(Embedding):通过结构体嵌套实现代码复用(替代继承)。- 若依赖动态派发(如反射),Go 的接口机制足够但风格不同。
2025-04-23 08:58:16
370
原创 go timer select
time.Timer是 Go 中用于实现定时器功能的工具,通过通道timer.C接收超时信号。select是 Go 中用于处理多个通道操作的关键字,可以同时监听多个通道的读写操作。将time.Timer和select结合使用,可以实现超时处理、同时监听多个事件等复杂的定时器逻辑,非常适合用于需要时间控制的并发场景。
2025-04-22 22:36:29
498
原创 Go实战全家桶之61:gowebframe多工程示例
go 1.20use (./gocmd./gocfg./godi./golog./gomini./gonats./gorpc./goweb。
2025-04-20 11:39:32
130
原创 go work sync使用心得
所有的子工程 都会升级至v1.5.4。然后go work sync。多个mod子工程升级一个版本。只要一个mod升级,
2025-04-19 18:40:34
203
原创 thrift接口协议
Thrift 是 Apache 基金会下的一个跨语言 RPC 框架,支持多种编程语言(包括 Go),通过接口定义语言(IDL)定义服务,生成代码并实现跨语言通信。- 部分语言(如 Java)提供异步客户端,但 Go 的 Thrift 库(如 `thriftgo`)异步支持较弱。Thrift 支持 Go、Java、Python、C++、Ruby 等主流语言,适合多语言混合架构。Thrift 支持 Go、Java、Python、C++、Ruby 等主流语言,适合多语言混合架构。
2025-04-19 17:06:24
351
原创 为什么我不建议go使用rpc接口
协议缓冲区(Protobuf)的维护成本:RPC 框架(如 gRPC)通常依赖 IDL(接口定义语言)生成代码,需要维护 `.proto` 文件。- 缺乏标准化工具链:相比 HTTP/REST 的广泛工具支持(如 Postman、Swagger),RPC 的调试工具链可能不够成熟。- REST/HTTP + JSON:对于内部服务或快速开发,REST 的简洁性、易调试性(如 `curl` 支持)可能更合适。- 流式接口的兼容性:gRPC 流式接口的升级比 REST 更复杂,容易引发兼容性问题。
2025-04-19 17:03:27
368
原创 go能否象vue一样开发后端组件
Go 语言与 Vue.js 的定位和设计目标存在本质差异,但通过合理的架构设计,Go 完全可以实现类似 Vue 的模块化、组件化后端开发模式。Go 虽然无法直接实现 Vue 的模板化组件,但通过包管理、接口抽象、依赖注入等机制,完全可以构建出高内聚、低耦合、可复用的后端组件体系。状态管理 响应式数据绑定(如 Vuex) 显式状态传递(通过函数参数/返回值)组件类型 视图组件(含模板、样式、逻辑) 功能组件(纯逻辑、无 UI)4. 测试工具:Testify(断言库)、GoMock(Mock 生成)
2025-04-18 08:19:42
410
原创 Go实战全家桶之59:goDb自动比对--源于实战项目
var ret = dao.DbCheckRecord(1062582688334217219, "domain_name=testcloud.ichub.com|object_code=-1|menu_name=品项")@Author 作者: [email protected] 时间(2025-03-31 09:35:13)@Update 作者: [email protected] 时间(2025-03-31 09:35:13)*** CheckRecord menu_name=品项 OK ***
2025-04-14 13:37:30
839
原创 GO关于网站管理的推广与访问
访问时url带utm_id更新推广表visit_count: page_id+visitor_id+visitor_type索引。基于url, page_type,object_type,object_code生成page_id。基于page_id生成utm推广: page_id+utm_source+shop_id为唯一主键。
2025-04-14 10:20:25
190
原创 go defer可以嵌套吗
在 Go 语言中,defer。你可以在一个被defer延迟执行的函数内部再使用defer,但需要注意它们的执行顺序和作用域。
2025-04-13 11:48:55
275
原创 Go实战全家桶之58:goEs自动比对--源于实战项目
VisitAt time.Time `json:"visit_at"` //访问时间。VisitAtInt int64 `json:"visit_at_int,string"` //访问时间。UtmId int64 `json:"utm_id,string"` //推广标识。@Author 作者: [email protected] 时间(2025-03-25 21:40:39)"msg": "成功","msg": "成功",
2025-04-12 14:47:05
743
原创 Go实战全家桶之56:go语言如何找工作
标准库:`net/http`(Web 开发)、`encoding/json`(数据序列化)、`context`(超时控制)、`io/fs`(文件操作)等。- 技术栈标签:列出 `Golang`、`HTTP/REST`、`Microservices`、`Kubernetes` 等。- 工具链:`go test`(单元测试)、`go mod`(依赖管理)、`pprof`(性能分析)等。- 掌握 Go 语言特有的特性(如接口底层实现、`defer` 机制、指针与值传递)。
2025-04-11 13:16:05
661
原创 底比较厚的皮鞋且低价位
提示:选择评分4.8以上的工厂店,可定制颜色和尺码,价格低至50-150元,但需注意退换货政策。- 推荐:森达、奥康等品牌的工厂直营款,厚底设计,价格100-200元,注意查看退货保障。- 电商购买时注意“鞋内长比脚长多0.5-1cm”,厚底鞋可能偏大,建议参考评论区反馈。- 优先选橡胶底或牛筋底,防滑且寿命长,厚度建议3cm左右(显腿长又舒适)。- 特点:鞋底柔软厚实,主打舒适,适合学生党或长时间站立,可选低帮/高帮。- 特点:国潮复古风,橡胶厚底防滑耐磨,适合日常通勤,真皮/PU可选。
2025-04-11 13:02:47
182
原创 go select{}阻塞主线程有什么好处
select{}` 可以同时监听多个通道,当没有 ready 的通道时,它会阻塞当前 goroutine。需结合 `context`、`sync.WaitGroup` 等机制管理生命周期。结合通道(channel)和 `select{}`,可以监听系统信号(如 `SIGINT` 或 `SIGTERM`),实现程序的优雅关闭。相比使用 `for{}` 空循环阻塞,`select{}` 更高效且不会占用 CPU 资源。- 使用 `time.Sleep` 或 `time.After` 设置超时(需谨慎)。
2025-04-11 08:33:53
505
my java unit
2011-11-06
mycppunit test frame
2011-11-06
my cpytest --python test frame
2011-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人