自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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实战全家桶之65:goweb通用db查询cache--源于实践项目

/ 使用反射获取字段值。

2025-04-26 11:28:49 572

原创 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实战全家桶之57:go通用Result设计--源于实践项目

self.Msg = "成功"self.Msg = "成功"

2025-04-12 10:12:06 805

原创 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 Micro RPC 客户端调用时设置超时时间

这段代码是 Go Micro RPC 客户端调用时设置超时时间的代码片段。

2025-04-27 17:19:22 359

原创 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

原创 如何开发一个服务实现分布式锁--源于实战项目

分布式锁是一种在分布式系统中用于协调多个进程或线程对共享资源访问的锁机制。

2025-04-18 11:05:15 539

原创 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

Go实战全家桶之三十三: go pprof定位问题,自己埋的坑

perfstat

2025-01-08

Go实战全家桶之三十三: go pprof定位问题,自己埋的坑

perfstat

2025-01-08

个性化推荐与活动配置方案

个性化推荐与活动配置方案

2024-04-04

gofactroy代码工厂生成python,go

go代码工厂

2024-04-04

JAVA工具factroy.rar

springcloud dubbo

2021-10-28

anfang.zip

安防系统安防系统

2019-07-29

rbtest my unit simp-le

ruby good test ,you can study!

2014-08-23

my java unit

java package com.myunit; import testapi.ITestAgent.TestLog; @TestClass public abstract class ITestFixture extends MyAssert implements ISubject { IObserver iobs = null; public ITestFixture() { } public ITestFixture(Class testClass) { MyTestSuite.RegTestSuite(testClass); } public void TestLog(String line) { TestLog.TestLog(line); } // public static RegTestcase regtc=new RegTestcase(new ITestFixture()); public abstract void setUp(); public abstract void tearDown(); public void run(MyTestResult result) { } public int countTestcase() { return 0; } public void log(String inf) { sendMessage(new StringBuffer(inf)); MyLog.log(inf); } @Override public void register(IObserver o) { iobs = o; } @Override public void sendMessage(StringBuffer inf) { if (iobs != null) { iobs.action(inf); } } @Override public void unRegister(IObserver o) { iobs = o; } }

2011-11-06

mycppunit test frame

c++pragma once #include "itestfixture.h" #include "TestSuite.h" class CTestCase : public ITestFixture { //Register CPPUNIT_TEST_SUITE(CTestCase) CPPUNIT_TEST(test_demo_1) CPPUNIT_TEST(test_demo_2) CPPUNIT_TEST_SUITE_END() public: CTestCase(void); ~CTestCase(void); virtual void setUp(); virtual void tearDown(); void test_demo_1(); void test_demo_2(); // REG_TESTCASE(CTestCase::test_demo_1) // static CTestCase itestcase1("TestCase::test_demo_1", &CTestCase::test_demo_1 ); //static CTestCase itestcase1(std::string("TestCase::test_demo_1"), NULL); };

2011-11-06

my cpytest --python test frame

python test ''' Created on 2011-11-2 @author: ACER ''' import glob, os from testframe.TestSuite import * class PyTestRunner: @staticmethod def run(suite): TestSuite.run(suite) @staticmethod def autoloadModule( ): TestSuite.autoloadModule() @staticmethod def runAll( ): PyTestRunner.run( TestSuite.allsuites ) def main(): PyTestRunner.autoloadModule() PyTestRunner.runAll() if __name__ == '__main__': main() ''' '''

2011-11-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除